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:
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.
- 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。
- 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文件
主要包括如下几项:
# 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 |
Lunar ,您好
我 们的ODA没有用于RAC, 两个node被当成单点服务器了, 工享storage. 就像你说的“在Exadata上数据库节点的本地磁盘空间是有限的”,我们在各自node上增加了两块硬盘解决dump文件存储, 想请教: 我直接增加他们到file system 可以吗?
谢谢!
ODA我没用过,不过exadata不能增加本地盘