为Exadata 服务器创建共享文件系统(DBFS)

联系:QQ(5163721)

标题:为Exadata 服务器创建共享文件系统(DBFS)

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

DBFS是Oracle 11.2的新特性,他提供了在Linux操作系统中将Oracle的ASM数据库映射成文件系统来使用的功能。操作上的文件在DBFS内部是以SecureFiles LOBs(SecureFiles LOB是11.1的新特性,对比与以前的BasicFiles LOBs,Oracle称SecureFiles LOBs为全新设计的LOBs)的形式存储在数据表中。由于篇幅关系,这里不详细描述SecureFiles LOBs了。

其配置过程非常简单,具体参见MOS:

Configuring a Database for DBFS on Oracle Database Machine [ID 1191144.1]
List of Critical Patches Required For Oracle 11.2 DBFS and DBFS Client [ID 1150157.1]

在Exadata上数据库节点的本地磁盘空间是有限的,因此,在做数据加载时,我们需要想办法使用更大的空间来存放数据(以便后续加载到exadata上的数据库中),通常,DBFS是一个很好的选择。

如果经常使用的话,写一个shell自己动完成所有过程,测试过,也就是几分钟,O(∩_∩)O哈哈~。

下面详细讲解一下配置的过程:

配置DBFS 文件系统

为Exadata 服务器创建共享文件系统(DBFS)

创建过程

1、 Run these commands as the root user.

1. add the oracle user to the fuse group on Linux

#su – root

#dcli -g dbs_group -l root usermod -a -G fuse oracle

2. Create an empty directory that will be used as the mount point for the DBFS filesystem

# dcli -g dbs_group -l root mkdir /dbfsmnt

3. Change ownership on the mount point directory so oracle can access it

# dcli -g dbs_group -l root chown oracle:dba /dbfsmnt

4. Create the /etc/fuse.conf file with the user_allow_other option. Ensure proper privileges are applied to this file

# dcli -g dbs_group -l root “echo user_allow_other > /etc/fuse.conf”

#dcli -g dbs_group -l root chmod 644 /etc/fuse.conf

2、To pick up the additional group (fuse) membership for the oracle user, Clusterware must be restarted. For example, to restart Clusterware on all nodes at the same time (non-rolling), you can use the following commands as root:

# /u01/app/11.2.0/grid/bin/crsctl stop cluster -all

# /u01/app/11.2.0/grid/bin/crsctl start cluster –all

or

# /u01/app/11.2.0/grid/bin/crsctl stop cluster -f

3、Create a database to hold the DBFS repository. Follow Note 1191144.1 to create the DBFS repository database.

可以利用现有数据库,或创建新db

4、Create the DBFS repository inside the repository database. To create the repository, create a new tablespace to hold the DBFS objects and a database user that will own the objects.

create tablespace dbfsts datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

alter tablespace dbfsts add datafile ‘+DBFS_DG’ size 30g;

–创建dbfs用户

create user dbfs_user identified by dbfs_passwd default tablespace dbfsts quota unlimited on dbfsts;

–为dbfs用户授权

grant create session, create table, create procedure, dbfs_role to dbfs_user;

5、Start DBFS with dbfs user

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus dbfs_user/dbfs_passwd

SQL>start dbfs_create_filesystem_advanced dbfsts FS1 nocompress nodeduplicate noencrypt non-partition

注:This script takes six arguments:

  • dbfsts: tablespace for the DBFS database objects
  • FS1: filesystem name, this can be any string and will appear as a directory under the mount point
  • nocompress: compression setting
  • nodeduplicate: deduplication setting
  • noencrypt: encryption setting
  • non-partition: partitioning setting

For more information about these arguments, see the DBFS documentation at http://download.oracle.com/docs/cd/E11882_01/appdev.112/e18294/adlob_client.htm#CIHDJHDD.

6、Perform the one-time setup steps for mounting the filesystem.

注:·  There are two options for mounting the DBFS filesystem and each will result in the filesystem being available at /dbfs_direct. Choose one of the two options.

  1. The first option is to utilize the dbfs_client command directly, without using an Oracle Wallet. There are no additional setup steps required to use this option.

本次安装选择了方法A。

  1. The second option is to use the Oracle Wallet to store the password and make use of the mount command. The wallet directory (/home/oracle/dbfs/wallet in the example here) may be any oracle-writable directory (creating a new, empty directory is recommended). All commands in this section should be run by the oracle user unless otherwise noted.

7、Download the mount-dbfs.sh script

如果是win下编辑的文件,需要用如下方法转换。本次下载的文件未转换

# dos2unix /tmp/mount-dbfs.sh

8、编辑mount-dbfs.sh文件

主要包括如下几项:

  • DBNAME
  • MOUNT_POINT
  • DBFS_USER
  • ORACLE_HOME (should be the RDBMS ORACLE_HOME directory)
  • NOHUP_LOG (used only if WALLET=false)
  • DBFS_PASSWD (used only if WALLET=false)
  • DBFS_PWDFILE (used only if WALET=false)
  • WALLET (must be true or false)
  • TNS_ADMIN (used only if WALLET=true)

# cat mount-dbfs.sh

#!/bin/bash

### This script is from Note 1054431.1, ensure you have the latest version

### Note 1054431.1 provides information about the setup required to use this script

### updated 22-MAR-2011

###########################################

### Everyone must set these values

###########################################

### Database name for the DBFS repository as used in “srvctl status database -d $DBNAME”

DBNAME=lunar3

### Mount point where DBFS should be mounted

MOUNT_POINT=/dbfsmnt

### Username of the DBFS repository owner in database $DBNAME

DBFS_USER=dbfs_user

### RDBMS ORACLE_HOME directory path

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

### Full path to a logfile (or /dev/null) for output from dbfs_client’s nohup

### Useful for debugging, normally use /dev/null

NOHUP_LOG=/dev/null

### Syslog facility name (default local3)

### This is only needed if you want to capture debug outputs using syslog

LOGGER_FACILITY=local3

###########################################

### If using password-based authentication, set these

###########################################

### This is the plain text password for the DBFS_USER user

DBFS_PASSWD=dbfs_passwd

### The file used to temporarily store the DBFS_PASSWD so dbfs_client can read it

### This file is removed immediately after it is read by dbfs_client

DBFS_PWDFILE=/home/oracle/.dbfs-passwd.txt

### mount options for dbfs_client

MOUNT_OPTIONS=allow_other,direct_io

###########################################

### If using wallet-based authentication, modify these

###########################################

### WALLET should be true if using a wallet, otherwise, false

WALLET=false

### TNS_ADMIN is the directory containing tnsnames.ora and sqlnet.ora used by DBFS

TNS_ADMIN=/home/oracle/dbfs/tnsadmin

### mount options for wallet-based mounts are in /etc/fstab

###########################################

### No editing is required below this point

###########################################

MOUNT=/bin/mount

GREP=/bin/grep

AWK=/bin/awk

XARGS=’/usr/bin/xargs -r’

ECHO=/bin/echo

LOGGER=’/bin/logger -t DBFS’

RMF=’/bin/rm -f’

PS=/bin/ps

SLEEP=/bin/sleep

KILL=/bin/kill

READLINK=/usr/bin/readlink

BASENAME=/bin/basename

FUSERMOUNT=/bin/fusermount

ID=/usr/bin/id

SRVCTL=$ORACLE_HOME/bin/srvctl

DBFS_CLIENT=$ORACLE_HOME/bin/dbfs_client

HN=/bin/hostname

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64

export ORACLE_HOME LD_LIBRARY_PATH TNS_ADMIN

export PATH=$ORACLE_HOME/bin:$PATH

logit () {

### type: info, error, debug

type=$1

msg=$2

if [ “$type” = “info” ]; then

$ECHO $msg

$LOGGER -p ${LOGGER_FACILITY}.info $msg

elif [ “$type” = “error” ]; then

$ECHO $msg

$LOGGER -p ${LOGGER_FACILITY}.error $msg

elif [ “$type” = “debug” ]; then

$ECHO $msg

$LOGGER -p ${LOGGER_FACILITY}.debug $msg

fi

}

### must not be root

if [ `$ID -u` -eq 0 ]; then

logit error “Run this as the Oracle software owner, not root”

exit 1

fi

### determine how we were called, derive location

SCRIPTPATH=`$READLINK -f $0`

SCRIPTNAME=`$BASENAME $SCRIPTPATH`

### must cd to a directory where the oracle owner can get CWD

cd /tmp

case “$1” in

‘start’)

logit info “$SCRIPTNAME mounting DBFS at $MOUNT_POINT from database $DBNAME”

### check to see if it is already mounted

$SCRIPTPATH status > /dev/null 2>&1

if [ $? -eq 0 ]; then

logit error “$MOUNT_POINT already mounted, use \”$SCRIPTNAME stop\” “\

“before attempting to start”

$SCRIPTPATH status

exit 1

fi

### set the ORACLE_SID dynamically based on OCR info, if it is running

export ORACLE_SID=$($SRVCTL status instance -d $DBNAME -n `$HN -s`| \

$GREP ‘is running’ | $AWK ‘{print $2}’ )

logit info “ORACLE_SID is $ORACLE_SID”

### if there’s no SID defined locally or it isn’t running, stop

if [ -z “$ORACLE_SID” -a “$WALLET” = ‘false’ ]; then

logit error “No running ORACLE_SID available on this host, exiting”

exit 2

fi

### if using password-based startup, use this

if [ “$WALLET” = ‘false’ -a -n “$DBFS_PASSWD” ]; then

$RMF $DBFS_PWDFILE

if [ -f $DBFS_PWDFILE ]; then

logit error “please remove $DBFS_PWDFILE and try again”

exit 1

fi

$ECHO $DBFS_PASSWD > $DBFS_PWDFILE

logit info “spawning dbfs_client command using SID $ORACLE_SID”

(nohup $DBFS_CLIENT ${DBFS_USER}@ -o $MOUNT_OPTIONS \

$MOUNT_POINT < $DBFS_PWDFILE | $LOGGER -p ${LOGGER_FACILITY}.info 2>&1 & ) &

$RMF $DBFS_PWDFILE

elif [ “$WALLET” = true ]; then

### in this case, expect that the /etc/fstab entry is configured,

###   just mount (assume ORACLE_SID is already set too)

logit info “doing mount $MOUNT_POINT using SID $ORACLE_SID with wallet now”

$MOUNT $MOUNT_POINT

fi

### allow time for the mount table update before checking it

$SLEEP 1

### set return code based on success of mountin

$SCRIPTPATH status > /dev/null 2>&1

if [ $? -eq 0 ]; then

logit info “Start — ONLINE”

exit 0

else

logit info “Start — OFFLINE”

exit 1

fi

;;

‘stop’)

$SCRIPTPATH status > /dev/null

if [ $? -eq 0 ]; then

logit info “unmounting DBFS from $MOUNT_POINT”

$FUSERMOUNT -u $MOUNT_POINT

$SCRIPTPATH status > /dev/null

if [ $? -eq 0 ]; then

logit error “Stop – stopped, but still mounted, error”

exit 1

else

logit info “Stop – stopped, now not mounted”

exit 0

fi

else

logit error “filesystem $MOUNT_POINT not currently mounted, no need to stop”

fi

;;

‘check’|’status’)

### check to see if it is mounted

$MOUNT | $GREP “${MOUNT_POINT} ” > /dev/null

if [ $? -eq 0 ]; then

logit debug “Check — ONLINE”

exit 0

else

logit debug “Check — OFFLINE”

exit 1

fi

;;

‘restart’)

logit info “restarting DBFS”

$SCRIPTPATH stop

$SLEEP 2

$SCRIPTPATH start

;;

‘clean’|’abort’)

logit info “cleaning up DBFS using fusermount and kill on dbfs_client and mount.dbfs”

$FUSERMOUNT -u $MOUNT_POINT

$SLEEP 1

$PS -ef | $GREP “$MOUNT_POINT ” | $GREP dbfs_client| $GREP -v grep | \

$AWK ‘{print $2}’ | $XARGS $KILL -9

$PS -ef | $GREP “$MOUNT_POINT ” | $GREP mount.dbfs | $GREP -v grep | \

$AWK ‘{print $2}’ | $XARGS $KILL -9

;;

*)

$ECHO “Usage: $SCRIPTNAME { start | stop | check | status | restart | clean | abort }”

;;

esac

9、After editing, copy the script (rename it if desired or needed) to the proper location (GI_HOME/crs/script) on database nodes and set proper permissions on it, as the root user:

#dcli -g dbs_group -l root -d /u01/app/11.2.0/grid/crs/script -f /tmp/mount-dbfs.sh

#dcli -g dbs_group -l root chown oracle:dba /u01/app/11.2.0/grid/crs/script/mount-dbfs.sh

#dcli -g dbs_group -l root chmod 750 /u01/app/11.2.0/grid/crs/script/mount-dbfs.sh

如果提示fusermount permission denied

#dcli -g dbs_group -l root chmod o+rx /bin/fusermount

10、用oracle用户执行下面的步骤在RAC中注册信息

ACTION_SCRIPT=/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh

RESNAME=dbfs_mount

DBNAME=lunar3

DBNAMEL=`echo $DBNAME | tr A-Z a-z`

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

PATH=$ORACLE_HOME/bin:$PATH

export PATH ORACLE_HOME

crsctl add resource $RESNAME \

-type local_resource \

-attr “ACTION_SCRIPT=$ACTION_SCRIPT, \

CHECK_INTERVAL=30, \

START_DEPENDENCIES=’hard(ora.$DBNAMEL.db)pullup(ora.$DBNAMEL.db)’,\

STOP_DEPENDENCIES=’hard(ora.$DBNAMEL.db)’,\

SCRIPT_TIMEOUT=300”

11、After the resource is created, you should be able to see the dbfs_mount resource by running crsctl stat res dbfs_mount and it should show OFFLINE on all nodes. For example:

[oracle@dm01db04 ~]$ srvctl stop database -d lunar3

[oracle@dm01db04 ~]$ crsctl status resource -t

——————————————————————————–

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

——————————————————————————–

Local Resources

——————————————————————————–

dbfs_mount

OFFLINE OFFLINE      dm01db01

OFFLINE OFFLINE      dm01db02

OFFLINE OFFLINE      dm01db03

OFFLINE OFFLINE      dm01db04

ora.DATA_DM01.dg

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.DBFS_DG.dg

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.LISTENER.lsnr

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.RECO_DM01.dg

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.asm

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.gsd

OFFLINE OFFLINE      dm01db01

OFFLINE OFFLINE      dm01db02

OFFLINE OFFLINE      dm01db03

OFFLINE OFFLINE      dm01db04

ora.net1.network

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.ons

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

ora.registry.acfs

ONLINE  ONLINE       dm01db01

ONLINE  ONLINE       dm01db02

ONLINE  ONLINE       dm01db03

ONLINE  ONLINE       dm01db04

——————————————————————————–

Cluster Resources

——————————————————————————–

ora.LISTENER_SCAN1.lsnr

1        ONLINE  ONLINE       dm01db04

ora.LISTENER_SCAN2.lsnr

1        ONLINE  ONLINE       dm01db03

ora.LISTENER_SCAN3.lsnr

1        ONLINE  ONLINE       dm01db01

ora.cvu

1        ONLINE  ONLINE       dm01db02

ora.dm01db01.vip

1        ONLINE  ONLINE       dm01db01

ora.dm01db02.vip

1        ONLINE  ONLINE       dm01db02

ora.dm01db03.vip

1        ONLINE  ONLINE       dm01db03

ora.dm01db04.vip

1        ONLINE  ONLINE       dm01db04

ora.lunar1.db

1        ONLINE  ONLINE       dm01db01                 Open

2        ONLINE  ONLINE       dm01db02                 Open

3        ONLINE  ONLINE       dm01db03                 Open

4        ONLINE  ONLINE       dm01db04                 Open

ora.lunar1.lunar1_pub.svc

1        ONLINE  ONLINE       dm01db01

ora.lunar2.db

1        ONLINE  ONLINE       dm01db02                 Open

2        ONLINE  ONLINE       dm01db01                 Open

3        ONLINE  ONLINE       dm01db03                 Open

4        ONLINE  ONLINE       dm01db04                 Open

ora.lunar2.lunar2_pub.svc

1        ONLINE  ONLINE       dm01db02

ora.lunar3.db

1        OFFLINE OFFLINE                               Instance Shutdown

2        OFFLINE OFFLINE                               Instance Shutdown

3        OFFLINE OFFLINE                               Instance Shutdown

4        OFFLINE OFFLINE                               Instance Shutdown

ora.lunar3.lunar3_pub.svc

1        OFFLINE OFFLINE

ora.oc4j

1        ONLINE  ONLINE       dm01db02

ora.scan1.vip

1        ONLINE  ONLINE       dm01db04

ora.scan2.vip

1        ONLINE  ONLINE       dm01db03

ora.scan3.vip

1        ONLINE  ONLINE       dm01db01

[oracle@dm01db04 ~]$ crsctl stat res dbfs_mount -t

——————————————————————————–

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

——————————————————————————–

Local Resources

——————————————————————————–

dbfs_mount

OFFLINE OFFLINE      dm01db01

OFFLINE OFFLINE      dm01db02

OFFLINE OFFLINE      dm01db03

OFFLINE OFFLINE      dm01db04

12、To bring dbfs_mount online which will mount the filesystem on all nodes, run crsctl start resource dbfs_mount from any cluster node

[oracle@dm01db04 ~]$ crsctl start resource dbfs_mount

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db03’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db01’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db02’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db04’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db01’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db01’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db03’ succeeded

CRS-2672: Attempting to start ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db03’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db04’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db04’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db01’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db01’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db03’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db03’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db04’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db04’

CRS-2676: Start of ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’ succeeded

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db02’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db02’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db02’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db02’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2678: ‘dbfs_mount’ on ‘dm01db02’ has experienced an unrecoverable failure

CRS-0267: Human intervention required to resume its availability.

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db02’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2678: ‘dbfs_mount’ on ‘dm01db01’ has experienced an unrecoverable failure

CRS-0267: Human intervention required to resume its availability.

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db01’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2678: ‘dbfs_mount’ on ‘dm01db03’ has experienced an unrecoverable failure

CRS-0267: Human intervention required to resume its availability.

CRS-2673: Attempting to stop ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-5809: Failed to execute ‘ACTION_SCRIPT’ value of ‘/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh’ for ‘dbfs_mount’. Error information ‘no exe permission, file [/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh]’

CRS-2678: ‘dbfs_mount’ on ‘dm01db04’ has experienced an unrecoverable failure

CRS-0267: Human intervention required to resume its availability.

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db04’

CRS-2677: Stop of ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db03’

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db02’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db01’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db04’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db03’ succeeded

CRS-4000: Command Start failed, or completed with errors.

上面提示mount-dbfs.sh权限不足,需要做如下授权:

—————————————————————-

#dcli -g dbs_group -l root chmod 755 /u01/app/11.2.0/grid/crs/script/mount-dbfs.sh

单独在一个节点上执行mount-dbfs.sh ,方法如下:

#/u01/app/11.2.0/grid/crs/script/mount-dbfs.sh [ start | stop | check ]

Q1:使用grid用户注册dbfs 资源后crsctl start resource dbfs-mount 显示db启动后,dbfs-mount在各节点上failed。后来将该dbfs资源删除后,使用oracle用户重新在crs中注册,该问题解决。

oracle@dm01db04 ~]$ crsctl start resource dbfs_mount -f

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db04’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db03’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db01’

CRS-2672: Attempting to start ‘ora.lunar3.db’ on ‘dm01db02’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db03’ succeeded

CRS-2672: Attempting to start ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db03’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db02’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db02’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db04’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db04’

CRS-2676: Start of ‘ora.lunar3.db’ on ‘dm01db01’ succeeded

CRS-2672: Attempting to start ‘dbfs_mount’ on ‘dm01db01’

CRS-2676: Start of ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’ succeeded

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db02’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db02’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db04’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db04’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db01’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db01’

CRS-2674: Start of ‘dbfs_mount’ on ‘dm01db03’ failed

CRS-2679: Attempting to clean ‘dbfs_mount’ on ‘dm01db03’

CRS-2681: Clean of ‘dbfs_mount’ on ‘dm01db02’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db02’

CRS-2681: Clean of ‘dbfs_mount’ on ‘dm01db03’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’

CRS-2677: Stop of ‘ora.lunar3.lunar3_pub.svc’ on ‘dm01db03’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db03’

CRS-2681: Clean of ‘dbfs_mount’ on ‘dm01db04’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db04’

CRS-2681: Clean of ‘dbfs_mount’ on ‘dm01db01’ succeeded

CRS-2673: Attempting to stop ‘ora.lunar3.db’ on ‘dm01db01’

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db02’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db03’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db04’ succeeded

CRS-2677: Stop of ‘ora.lunar3.db’ on ‘dm01db01’ succeeded

CRS-4000: Command Start failed, or completed with errors.

Mount后验证

[root@dm01db03 ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VGExaDb-LVDbSys1

                       30G  5.9G   23G  21% /

/dev/sda1             124M   16M  102M  14% /boot

/dev/mapper/VGExaDb-LVDbOra1

                       99G   38G   56G  41% /u01

tmpfs                  81G  192M   81G   1% /dev/shm

dbfs-dbfs_user@:/     900G  313M  900G   1% /dbfsmnt

此条目发表在 FAQ, 安装和升级, 日常运维 分类目录。将固定链接加入收藏夹。

为Exadata 服务器创建共享文件系统(DBFS)》有 2 条评论

  1. Ying Broman 说:

    Lunar ,您好
    我 们的ODA没有用于RAC, 两个node被当成单点服务器了, 工享storage. 就像你说的“在Exadata上数据库节点的本地磁盘空间是有限的”,我们在各自node上增加了两块硬盘解决dump文件存储, 想请教: 我直接增加他们到file system 可以吗?
    谢谢!

Ying Broman 进行回复 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注