前提環境(ip,內核參數,環境變量,存儲等等。。。)已准備好。
(一) 安裝grid
1. Grid用戶登錄上傳並解壓
上傳linuxx64_12201_grid_home.zip至/u01/app/product/12.2/crs
解壓壓縮包
$unzip linuxx64_12201_grid_home.zip
以root用戶登錄
安裝cvuqdisk
# cd /u01/app/product/12.2/crs/cv/rpm/
# rpm -ivh cvuqdisk-1.0.10-1.rpm (所有節點都要安裝)
第二台服務器安裝cvuqdisk
將第一台服務器解壓出來的cvuqdisk-1.0.10-1.rpm傳至第二台服務器的grid根目錄下
# rpm -ivh cvuqdisk-1.0.10-1.rpm
2. 配置互信
qgzf1:
以root登錄
#cd /u01/app/product/12.2/crs/deinstall
# sh sshUserSetup.sh -user grid -hosts "qgzf1 qgzf2" -advanced -exverify -confirm -noPromptPassphrase
根據提示輸入4次密碼 grid
切換grid用戶執行以下命令(兩台服務器都需要執行)
# ssh-agent bash --login -i
# ssh-add ~/.ssh/id_rsa
ntzf1
以root登錄
#cd /u01/app/product/12.2/crs/deinstall
# sh sshUserSetup.sh -user grid -hosts "ntzf1 ntzf2" -advanced -exverify -confirm -noPromptPassphrase
根據提示輸入4次密碼 grid
切換grid用戶執行以下命令(兩台服務器都需要執行)
# ssh-agent bash --login -i
# ssh-add ~/.ssh/id_rsa
3. 開始安裝grid
打開終端
#export LANG=en不輸入此命令,則為中文界面
#cd $ORACLE_HOME
# ./gridSetup.sh
如圖所示,下一步
下一步
輸入scan-name,下一步
根據實際進行修改:scan name和SCAN port
單擊add,根據實際填寫
public hostname輸入qgzf2
virtual hostname輸入qgzf2-vip
單擊2
ssh 連接 輸入 grid口令,點擊測試
單擊3
測試通過,單擊4下一步
單擊下一步
單擊下一步
選擇YES,單擊下一步
如圖diskgroup name輸入ocr,選擇外部,單擊change discovery path選擇多路徑磁盤組路徑 /dev/mapper/* 找到磁盤 下一步 (根據實際路徑選擇)
如圖diskgroup name輸入MGMT,選擇normal,單擊change discovery path選擇多路徑磁盤組路徑 /dev/mapper/* 找到磁盤 下一步
選擇如圖所示,密碼輸入
單擊下一步
單擊下一步
如果上述列表有swap空間大小錯誤則執行以下命令(大小需按實際情況確定)
如:創建8個G的內存空間
Root用戶執行
#dd if=/dev/zero of=/root/swapfile bs=1G count=8 //(8G)
#mkswap /root/swapfile
#swapon /root/swapfile
如果有失敗可以選fixable為yes的可以單擊Fix & Check Again
根據提示執行sh腳本即可
如果ping scan IP能ping通可以忽略
確定后點擊跳過 下一步
4. 創建磁盤組
Grid用戶登錄
#asmca
右鍵選中未啟動的實例啟動
點擊創建 輸入磁盤名data,全選磁盤,確定
查看狀態(grid用戶)
#crsctl stat res -t
(二) 安裝oracle
以oracle用戶登錄 上傳安裝包linuxx64_12201_database到/u01/app/oracle目錄下解壓
$unzip linuxx64_12201_database.zip
1. oracle配置互信
以root登錄
#cd /u01/app/oracle/database/sshsetup
# sh sshUserSetup.sh -user oracle -hosts "ntzf1 ntzf2" -advanced -exverify -confirm -noPromptPassphrase
根據提示輸入4次密碼 oracle
切換oracle用戶執行以下命令(兩台服務器都需要執行)
$ ssh-agent bash --login -i
$ssh-add ~/.ssh/id_rsa
oracle用戶輸入:
vncserver :3
登錄vncserver
2. 安裝oracle基礎軟件
oracle用戶:
$cd /u01/app/oracle/database/
$./runInstaller
如圖提示下列失敗點可忽略
#sh /u01/app/oracle/product/12.2/db/root.sh
3. 創建數據庫實例
# dbca
歸檔,閃回后續開啟
如上圖asm完整性檢查失敗則跳轉到 創建磁盤組
查看是否有實例未啟動,手動啟動后重新檢查
4. 創建表空間,及目錄
Grid用戶
#asmcmd
#ls (查看磁盤組)
#cd +DATA (進入,data)
#ls (查看文件夾)
#mkdir tablespace (創建表空間目錄)
#ls (確認)
#quit (退出)
(三) 打補丁
1. 補丁安裝(漏掃打補丁)
l 每一個節點都要執行
l 更新OPatch
l # cd /u01/app/product/12.2/crs/
l # mv OPatch OPatch_old //備份OPatch
l 上傳p6880880_122010_Linux-x86-64.zip包至/u01/app/product/12.2/crs/目錄解壓
l # unzip p6880880_122010_Linux-x86-64.zip
l # chown grid:oinstall OPatch -R //修改為grid權限
l
l # cd /u01/app/oracle/product/12.2/db/
l # mv OPatch OPatch_old
l # cp /u01/app/product/12.2/crs/OPatch /u01/app/oracle/product/12.2/db/ -frp
l # chown oracle:oinstall OPatch -R
l Root用戶登錄
以下步驟rac1和rac2都要操作
將補丁包p27010711_122010_Linux-x86-64.zip上傳至/tmp目錄下解壓
#unzip p27010711_122010_Linux-x86-64.zip
第一步打GI(27100009補丁包)補丁(grid)和 (oracle)
#chown grid:oinstall 27010711 -R (修改grid權限)
#srvctl status listener (oralce用戶關閉監聽)單節點執行
#srvctl stop listener
#srvctl stop database -d orcl(oracle用戶)關閉數據庫
#srvctl status database -d orcl -f -v
查看數據庫實例,如有開啟則sqlplus進去關閉
#關閉crs (root)(雙節點執行)
#cd /u01/app/product/12.2/crs/bin
#./crsctl stop crs
#/u01/app/product/12.2/crs/crs/install/rootcrs.sh -prepatch -nonrolling
#su – grid 切換grid用戶
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/26839277 (輸入y)
#依次打/tmp/27010711/27100009/目錄下的補丁
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27105253
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27128906
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27144050
#/u01/app/product/12.2/crs/OPatch/opatch apply -oh /u01/app/product/12.2/crs/ -local /tmp/27010711/27100009/27335416
#su – oracle 切換oracle用戶
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27100009/27335416/
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27100009/27105253/
第二步打OJVM補丁包(27001739補丁包)(oracle)
#/u01/app/oracle/product/12.2/db/OPatch/opatch apply -oh /u01/app/oracle/product/12.2/db/ -local /tmp/27010711/27001739/
#如上雙節點都執行完之后雙節點執行如下
#/u01/app/product/12.2/crs/crs/install/rootcrs.sh -postpatch -nonrolling(root用戶,如果報錯則重復執行一次)
以下只在一個節點操作
# ./crsctl start cluster -all 啟動集群服務
#sqlplus /as sysdba
#startup
#alter system set cluster_database=false scope=spfile
#quit
#$ORACLE_HOME/bin/srvctl stop database -d orcl
#sqlplus /as sysdba
#startup upgrade
#quit
#cd /u01/app/oracle/product/12.2/db/OPatch
#./datapatch -verbose
#sqlplus / as sysdba
#shutdown
#startup
#quit
#sqlplus / as sysdba
#alter system set cluster_database=true scope=spfile
# shutdown
#quit
#$ORACLE_HOME/bin/srvctl start database -d orcl
查詢是否有實效對象
#sqlplus / as sysdba
#select count(*) from dba_objects where status <> 'VALID';
如果不為0則執行
完成之后再查詢是否為0
(五) 常用命令
Grid or oracle用戶
#srvctl stop database -d orcl 停止數據庫實例
#srvctl status database -d orcl -f -v 查看數據庫實例
#srvctl start database -d orcl 啟動數據庫實例
#srvctl status asm -a 查看asm狀態
#crsctl stat res -t grid,查看集群狀態AA
Root用戶
#cd /u01/app/product/12.2/crs/bin
#./crsctl stop cluster -all 停止集群服務
#./crsctl start cluster -all 啟動集群服務
查看已打補丁
/u01/app/oracle/product/12.2/db/OPatch/opatch lsinv