您好,登錄后才能下訂單哦!
上面左邊是我的個(gè)人微信,如需進(jìn)一步溝通,請(qǐng)加微信。 右邊是我的公眾號(hào)“Openstack私有云”,如有興趣,請(qǐng)關(guān)注。
前兩天在PVE環(huán)境上搭建了oracle12C 的RAC環(huán)境(詳見(jiàn)另一篇博文“ProxmoxVE 之 安裝oracle12C rac集群”),安裝完成了grid集群環(huán)境的安裝以及oracle數(shù)據(jù)庫(kù)軟件的安裝,具備了創(chuàng)建數(shù)據(jù)庫(kù)的條件。現(xiàn)在在這個(gè)RAC環(huán)境上使用dbca創(chuàng)建數(shù)據(jù)庫(kù)CDB和PDB。
相關(guān)規(guī)劃如下:
a、存儲(chǔ)規(guī)劃:
1、 GRID集群組件磁盤(pán)組
+grid: 1個(gè),用于OCR+VOTING DISK ,85G ,使用asmdiskc ,共享存儲(chǔ)
2、 數(shù)據(jù)庫(kù)安裝磁盤(pán)組
+system:用于數(shù)據(jù)庫(kù)基本表空間,控制文件,參數(shù)文件等,50G,使用asmdiskd ,共享存儲(chǔ)
+recovery:用于歸檔與閃回日志空間,50G,使用asmdiske ,共享存儲(chǔ)
+data:用戶數(shù)據(jù)庫(kù)業(yè)務(wù)表空間,50G,使用asmdiskf ,共享存儲(chǔ)
b、IP規(guī)劃:
oraclenode1:
publicip : ens18 :192.168.1.32
vip:192.168.1.36
privateip :ens19 :192.168.170.32
oraclenode2:
publicip : ens18 :192.168.1.33
vip:192.168.1.37
privateip :ens19 :192.168.170.33
scanip :192.168.1.38
c、軟件版本:
操作系統(tǒng):CentOS 7.2
數(shù)據(jù)庫(kù):ORACLE12c R2
集群管理軟件:ORACLEGRID 12.2.0.1
d、主機(jī)名規(guī)劃:
#public ip
192.168.1.32 oraclenode1
192.168.1.33 oraclenode2
#private ip
192.168.170.32 oraclenode1pri
192.168.170.32 oraclenode2pri
#vip ip
192.168.1.36 oraclenode1vip
192.168.1.37 oraclenode2vip
#scan ip
192.168.1.38 oraclenodescan
e、用戶及用戶組規(guī)劃:
groupadd -g 60001 oinstall
groupadd -g 60002 dba
groupadd -g 60003 oper
groupadd -g 60004 backupdba
groupadd -g 60005 dgdba
groupadd -g 60006 kmdba
groupadd -g 60007 asmdba
groupadd -g 60008 asmoper
groupadd -g 60009 asmadmin
useradd -u 61001 -g oinstall -G asmadmin,asmdba,dba,asmoper grid
useradd -u 61002 -g oinstall -G dba,backupdba,dgdba,kmdba,asmadmin,oper,asmdba oracle
echo "grid" | passwd --stdin grid
echo "oracle" | passwd --stdin oracle
f、目錄規(guī)劃:
mkdir -p /data/oracle/app/grid
mkdir -p /data/oracle/app/12.2.0.1/grid
chown -R grid:oinstall /data/oracle
mkdir -p /data/oracle/app/oraInventory
chown -R grid:oinstall /data/oracle/app/oraInventory
mkdir -p /data/oracle/app/oracle
chown -R oracle:oinstall /data/oracle/app/oracle
chmod -R 775 /data/oracle
asm磁盤(pán)組安裝:
登錄grid賬號(hào),ssh grid@oraclenode1 -X ,運(yùn)行 asmca ,按照規(guī)劃創(chuàng)建asm磁盤(pán)組,其中g(shù)rid磁盤(pán)組在配置grid的時(shí)候已經(jīng)創(chuàng)建了,剩下system、recovery、data三個(gè)磁盤(pán)組需要?jiǎng)?chuàng)建:
創(chuàng)建完成之后:
上面顯示4個(gè)asm磁盤(pán)組都已經(jīng)創(chuàng)建完成。接下來(lái)安裝CDB數(shù)據(jù)庫(kù)和PDB數(shù)據(jù)庫(kù)。
CDB數(shù)據(jù)庫(kù)安裝:
以oracle賬號(hào)登錄,ssh oracle@oraclenode1 -X ,運(yùn)行 dbca :
上面這一步很重要,字符集一旦選定就不能改了。提前跟需求部門(mén)確定字符集,如果是數(shù)據(jù)庫(kù)遷移,提前確定源數(shù)據(jù)庫(kù)的字符集,使之一致。
使用統(tǒng)一的密碼 : oracle
開(kāi)始安裝,耐心等待。。。。。
安裝完成,如下:
使用grid登錄,使用crsctl status res -t 命令查看狀態(tài)如下:
[grid@oraclenode2 ~]$ crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.DATA.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.GRID.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.LISTENER.lsnr ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.RECOVERY.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.SYSTEM.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.chad ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.net1.network ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE ora.ons ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oraclenode1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE oraclenode1 169.254.178.157 192. 168.170.32,STABLE ora.asm 1 ONLINE ONLINE oraclenode1 Started,STABLE 2 ONLINE ONLINE oraclenode2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE oraclenode1 STABLE ora.mgmtdb 1 ONLINE ONLINE oraclenode1 Open,STABLE ora.oraclenode1.vip 1 ONLINE ONLINE oraclenode1 STABLE ora.oraclenode2.vip 1 ONLINE ONLINE oraclenode2 STABLE ora.orcl.db 1 ONLINE ONLINE oraclenode1 Open,HOME=/data/orac le/app/oracle/produc t/12.2.0.1/db_1,STAB LE 2 ONLINE ONLINE oraclenode2 Open,HOME=/data/orac le/app/oracle/produc t/12.2.0.1/db_1,STAB LE ora.qosmserver 1 ONLINE ONLINE oraclenode1 STABLE ora.scan1.vip 1 ONLINE ONLINE oraclenode1 STABLE -------------------------------------------------------------------------------- [grid@oraclenode2 ~]$
現(xiàn)在就可以很開(kāi)心的使用CDB和PDB了,相關(guān)的概念和常用操作具體可以參考這個(gè)網(wǎng)址:
https://blog.51cto.com/fengfeng688/1946278
需要注意的是,oracle和grid的環(huán)境變量中有一個(gè)SID,兩個(gè)rac節(jié)點(diǎn)需要不一樣,比如數(shù)據(jù)庫(kù)安裝的時(shí)候SID前綴設(shè)置為orcldb1 ,那么兩個(gè)節(jié)點(diǎn)的$ORACLE_SID分別應(yīng)該是:
orcldb11
orcldb12
grid的環(huán)境變量,$ORACLE_SID分別是:
ASMI
ASM2
如果SID沒(méi)有設(shè)置對(duì),查看集群資源的時(shí)候會(huì)看到db資源處于OPEN狀態(tài),但是使用oracle賬號(hào)登錄使用sqlplus進(jìn)入數(shù)據(jù)庫(kù)管理的時(shí)候會(huì)提示connect to an idle instance 。
CDB和PDB相關(guān)測(cè)試:
查看當(dāng)前的容器: SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT 查看CDB中的PDB信息: SQL> select con_id, dbid, guid, name , open_mode from v$pdbs; CON_ID DBID GUID ---------- ---------- -------------------------------- NAME -------------------------------------------------------------------------------- OPEN_MODE -------------------- 2 2349385738 7F78C92375923F6DE0532001A8C0107F PDB$SEED READ ONLY 3 364970257 7F7A374E7B7E37F5E0532001A8C09EA4 ORCL_PDB1 READ WRITE CON_ID DBID GUID ---------- ---------- -------------------------------- NAME -------------------------------------------------------------------------------- OPEN_MODE -------------------- 創(chuàng)建一個(gè)測(cè)試pdb: SQL> create pluggable database test_pdb admin user admin identified by admin; Pluggable database created. 將一個(gè)pdb打開(kāi): SQL> alter pluggable database test_pdb open; Pluggable database altered. SQL> select con_id,dbid,con_uid,guid,name,open_mode,create_scn,total_size,block_size from v$pdbs; CON_ID DBID CON_UID GUID ---------- ---------- ---------- -------------------------------- NAME -------------------------------------------------------------------------------- OPEN_MODE CREATE_SCN TOTAL_SIZE BLOCK_SIZE -------------------- ---------- ---------- ---------- 2 2349385738 2349385738 7F78C92375923F6DE0532001A8C0107F PDB$SEED READ ONLY1408773 801112064 8192 3 364970257 364970257 7F7A374E7B7E37F5E0532001A8C09EA4 ORCL_PDB1 READ WRITE1467170 911212544 8192 CON_ID DBID CON_UID GUID ---------- ---------- ---------- -------------------------------- NAME -------------------------------------------------------------------------------- OPEN_MODE CREATE_SCN TOTAL_SIZE BLOCK_SIZE -------------------- ---------- ---------- ---------- 4 841599650 841599650 7F7A57321EE03A16E0532001A8C0E4B4 TEST_PDB READ WRITE1471014 801112064 8192 從一個(gè)pdb中克隆一個(gè)pdb: SQL> create pluggable database test2_pdb from test_pdb; Pluggable database created. SQL> alter pluggable database test2_pdb open; Pluggable database altered. 切換cdb和pdb線程: SQL> alter session set container=test_pdb; Session altered. SQL> alter session set container=cdb$root; Session altered. 關(guān)閉一個(gè)pdb: SQL> alter pluggable database test_pdb close; Pluggable database altered. 關(guān)閉所有的pdb: SQL> alter pluggable database all close; Pluggable database altered. 拔出pdb并生成xml文件: SQL> alter pluggable database orcl_pdb1 unplug into '/home/oracle/orcl_pdb1.xml'; alter pluggable database orcl_pdb1 unplug into '/home/oracle/orcl_pdb1.xml' * ERROR at line 1: ORA-65025: Pluggable database ORCL_PDB1 is not closed on all instances. 上面報(bào)錯(cuò),是因?yàn)樵趓ac環(huán)境,需要在所有實(shí)例中關(guān)閉pdb,在另外一個(gè)節(jié)點(diǎn)oraclenode2中也關(guān)閉pdb后,在執(zhí)行下面的語(yǔ)句: SQL> alter pluggable database orcl_pdb1 unplug into '/home/oracle/orcl_pdb1.xml'; Pluggable database altered. 刪除pdb: SQL> drop pluggable database orcl_pdb1 keep datafiles; Pluggable database dropped. 在另一個(gè)節(jié)點(diǎn)oraclenode2上執(zhí)行存儲(chǔ)過(guò)程檢查pdb兼容性: SQL> exec DBMS_PDB.Check_Plug_Compatibility(PDB_Descr_File=>'/home/oracle/orcl_pdb1.xml'); BEGIN DBMS_PDB.Check_Plug_Compatibility(PDB_Descr_File=>'/home/oracle/orcl_pdb1.xml'); END; * ERROR at line 1: ORA-06550: line 1, column 7: PLS-00221: 'CHECK_PLUG_COMPATIBILITY' is not a procedure or is undefined ORA-06550: line 1, column 7: PL/SQL: Statement ignored 報(bào)錯(cuò)說(shuō)沒(méi)有Check_Plug_Compatibility這個(gè)存儲(chǔ)過(guò)程,忽略,因?yàn)槭峭惶准海姹臼且恢碌??!? 將xml文件拷貝到另一個(gè)節(jié)點(diǎn)oraclenode2上,并執(zhí)行從xml中創(chuàng)建pdb: SQL> create pluggable database orcl_pdb1 using '/home/oracle/orcl_pdb1.xml' ; Pluggable database created. SQL> SQL> alter pluggable database orcl_pdb1 open; Pluggable database altered. SQL>
至此,CDB和PDB相關(guān)的簡(jiǎn)單測(cè)試完成。
總結(jié):
在安裝完成RAC集群的情況下,再安裝數(shù)據(jù)庫(kù)軟件,安裝數(shù)據(jù)庫(kù)就顯得比較簡(jiǎn)單了,主要難點(diǎn)還是在安裝RAC集群grid上面 。
數(shù)據(jù)庫(kù)的安裝主要的工作應(yīng)該是需要放在根據(jù)實(shí)際生產(chǎn)環(huán)境規(guī)劃存儲(chǔ),規(guī)劃數(shù)據(jù)文件,規(guī)劃CDB和PDB,以及優(yōu)化相關(guān)的數(shù)據(jù)庫(kù)參數(shù)。安裝本身來(lái)說(shuō)是比較簡(jiǎn)單的,只需要在圖形化界面中運(yùn)行dbca一路根據(jù)規(guī)劃進(jìn)行安裝即可。
在我自己的安裝過(guò)程中,碰到一個(gè)問(wèn)題是安裝成功后發(fā)現(xiàn)sqlplus進(jìn)去提示connect to an idle instance ,后面檢查發(fā)現(xiàn)是oracle賬號(hào)的$ORACLE_SID環(huán)境變量設(shè)置不正確導(dǎo)致的,調(diào)整正確后就正常了。
CDB和PDB還有客戶端的連接使用這一塊沒(méi)有測(cè)試。
從方便性上現(xiàn)在還不能說(shuō)有了PDB之后就更方便了,只能說(shuō)有了PDB之后,對(duì)于更多復(fù)雜應(yīng)用和更大型的數(shù)據(jù)庫(kù)應(yīng)用邏輯區(qū)分更清楚一些了,同一類(lèi)的業(yè)務(wù),可以新建一個(gè)CDB,在一個(gè)CDB中對(duì)每一個(gè)業(yè)務(wù)創(chuàng)建一個(gè)PDB。原來(lái)的數(shù)據(jù)庫(kù)是通過(guò)用戶schema來(lái)區(qū)分,現(xiàn)在直接通過(guò)pdb區(qū)分。另外數(shù)據(jù)導(dǎo)入導(dǎo)出方面沒(méi)有經(jīng)過(guò)測(cè)試,不知道PDB的拔出插入是不是比以前的expdp或者rman方式要效率高,只有在今后使用過(guò)程中通過(guò)實(shí)踐來(lái)檢驗(yàn)了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。