1. 程式人生 > >Oracle 12c 建立共享 ORACLE_HOME的ACFS檔案系統

Oracle 12c 建立共享 ORACLE_HOME的ACFS檔案系統

背景介紹: ORACLE 的叢集檔案系統ACFS (ASM Cluster FileSystem) 是Oracle 在11.2 之後引入的新特性,可在ASM磁碟組上建立卷(volumn)進而建立檔案系統(ACFS),可存放的目標檔案支援二進位制格式的檔案,這樣我們就可以把ORACLE_HOME 目錄放在ACFS上,此時多個RAC 節點共享一個ORACLE_HOME, 在升級打patch的時候非常方便。 本文就來實現如果建立共享ORACLE_HOME的ACFS。 前提: ORACLE RAC的GI部分(CRS 和 ASM)已經安裝完畢, 資料庫軟體還沒有安裝。 作業系統版本: Solaris 11.1 資料庫版本: Oracle 12.1.0.1 1. 用root使用者在各個節點啟動crs,啟動ACFS驅動程式,執行:  

  1. $CRS_HOME/bin/crsctl start crs
  2. $CRSHOME/bin/acfsload start

2.  在主節點上建立 volumn:  

  1. $CRSHOME/bin/asmca -silent -createVolume -volumename ${VOL_NAME} -volumeDiskGroup ${DISKGRP_ACFS} -volumeSizeGB ${VOL_SIZE}\

命令解釋:使用asmca的靜默模式。 VOL_NAME -> 自助命名的卷名稱 DISKGRP_ACFS  -> 選擇在哪個磁碟組上建立卷 VOL_SIZE -> 建立卷的大小,如果安裝ORACLE_HOME,一般要大於5G 3.  用crs的使用者檢視卷資訊:  

  1. $CRSHOME/bin/asmcmd volinfo -G ${DISKGRP_ACFS} ${VOL_NAME}

4. 以crs使用者執行命令,作用是格式化卷,建立ACFS檔案系統:  

  1. $CRSHOME/bin/asmca -silent -createACFS -acfsVolumeDevice ${VOL_DEVICE} -acfsMountPoint ${mount_dir} -acfsUserName ${DB_USER} -acfsGroupName oinstall

命令解釋: -acfsVolumeDevice 引數制定在哪個捲上建立(格式化)為ACFS檔案系統; -acfsMountPoint 引數表示把ACFS檔案系統mount到作業系統的具體目錄,這個目錄就是我們的ORACLE_HOME的位置,比如 /u01/app/oracle/product/12.1.0/dbhome_1; -acfsUserName 和 -acfsGroupName 就是為了設定這個目錄的許可權,所以分別為 oracle:oinstall (資料庫的使用者和組) 5.  以root使用者在執行步驟4的節點執行指令碼:  

  1. 1 $CRSHOME/bin/srvctl add filesystem -d ${VOL_DEVICE} -m ${mount_dir} -u ${DB_USER} -autostart ALWAYS
  2. 2
  3. 3 if [ $? = "0" -o $? = "2" ]; then 4    $CRSHOME/bin/srvctl start filesystem -d ${VOL_DEVICE} 5    if [ $? = "0" ]; then
  4. 6        chown ${DB_USER}:oinstall ${mount_dir} 7        chmod 775 ${mount_dir} 8    fi 9    else 10        echo "Creating CRS resources failed " 11        exit 1 12 fi

解釋:1行把ACFS加入 叢集的資源,隨著crs啟動自動啟動, 如果成功啟動ACFS,效果就是RAC的各個節點的 mount_dir 目錄是共享的,在一個節點建立測試檔案,其它節點就可以看到了。 6.  繼續RAC的安裝,執行database的安裝過程。 注意事項: mount_dir的選擇:如果選定ORACLE_HOME為/u01/app/oracle/product/12.1.0/dbhome_1, 那麼mount_dir 最好選擇它的上級目錄:/u01/app/oracle/product/12.1.0, 因為ACFS建立成功之後會在mount_dir 下自動生成一個lost_found資料夾,而且刪不掉,有些版本的oracle是不允許在安裝之前家目錄為非空,所以當installer發現有一個lost_found 資料夾會停止安裝並報錯。