ProxmoxVE 之 安裝oracle12C 數據庫(CDB和PDB)


    前兩天在PVE環境上搭建了oracle12C 的RAC環境(詳見另一篇博文“ProxmoxVE 之 安裝oracle12C rac集羣”),安裝完成了grid集羣環境的安裝以及oracle數據庫軟件的安裝,具備了創建數據庫的條件。現在在這個RAC環境上使用dbca創建數據庫CDB和PDB。


相關規劃如下:

a、存儲規劃:

    1、  GRID集羣組件磁盤組

+grid: 1個,用於OCR+VOTING DISK ,85G ,使用asmdiskc ,共享存儲

    2、  數據庫安裝磁盤組

+system:用於數據庫基本表空間,控制文件,參數文件等,50G,使用asmdiskd ,共享存儲

+recovery:用於歸檔與閃回日誌空間,50G,使用asmdiske ,共享存儲

+data:用戶數據庫業務表空間,50G,使用asmdiskf ,共享存儲


b、IP規劃:

    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、軟件版本:

    操作系統:CentOS 7.2

    數據庫:ORACLE12c R2

    集羣管理軟件:ORACLEGRID 12.2.0.1


d、主機名規劃:    

#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、用戶及用戶組規劃:

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、目錄規劃:

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磁盤組安裝:

    登錄grid賬號,ssh grid@oraclenode1 -X   ,運行 asmca ,按照規劃創建asm磁盤組,其中grid磁盤組在配置grid的時候已經創建了,剩下system、recovery、data三個磁盤組需要創建:

image.png

image.png

創建完成之後:

image.png

上面顯示4個asm磁盤組都已經創建完成。接下來安裝CDB數據庫和PDB數據庫。


CDB數據庫安裝:

    以oracle賬號登錄,ssh oracle@oraclenode1 -X ,運行 dbca :

image.png

image.png

image.png


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

上面這一步很重要,字符集一旦選定就不能改了。提前跟需求部門確定字符集,如果是數據庫遷移,提前確定源數據庫的字符集,使之一致。


image.png

image.png

使用統一的密碼 : oracle

image.png


image.png


image.png

image.png

image.png

image.png

開始安裝,耐心等待。。。。。

安裝完成,如下:

image.png

使用grid登錄,使用crsctl status res -t 命令查看狀態如下:

[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 ~]$

現在就可以很開心的使用CDB和PDB了,相關的概念和常用操作具體可以參考這個網址:

http://blog.51cto.com/fengfeng688/1946278

需要注意的是,oracle和grid的環境變量中有一個SID,兩個rac節點需要不一樣,比如數據庫安裝的時候SID前綴設置爲orcldb1 ,那麼兩個節點的$ORACLE_SID分別應該是: 

orcldb11

orcldb12

grid的環境變量,$ORACLE_SID分別是:

ASMI

ASM2

如果SID沒有設置對,查看集羣資源的時候會看到db資源處於OPEN狀態,但是使用oracle賬號登錄使用sqlplus進入數據庫管理的時候會提示connect to an idle instance 。


CDB和PDB相關測試:

  

查看當前的容器:
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
--------------------

創建一個測試pdb:
SQL> create pluggable database test_pdb admin user admin identified by admin;
Pluggable database created.

將一個pdb打開:
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

從一個pdb中克隆一個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.

關閉一個pdb:
SQL> alter pluggable database test_pdb close;
Pluggable database altered.

關閉所有的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.
上面報錯,是因爲在rac環境,需要在所有實例中關閉pdb,在另外一個節點oraclenode2中也關閉pdb後,在執行下面的語句:
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.

在另一個節點oraclenode2上執行存儲過程檢查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
報錯說沒有Check_Plug_Compatibility這個存儲過程,忽略,因爲是同一套集羣,版本是一致的。、

將xml文件拷貝到另一個節點oraclenode2上,並執行從xml中創建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相關的簡單測試完成。


總結:

    在安裝完成RAC集羣的情況下,再安裝數據庫軟件,安裝數據庫就顯得比較簡單了,主要難點還是在安裝RAC集羣grid上面 。

    數據庫的安裝主要的工作應該是需要放在根據實際生產環境規劃存儲,規劃數據文件,規劃CDB和PDB,以及優化相關的數據庫參數。安裝本身來說是比較簡單的,只需要在圖形化界面中運行dbca一路根據規劃進行安裝即可。

    在我自己的安裝過程中,碰到一個問題是安裝成功後發現sqlplus進去提示connect to an idle instance  ,後面檢查發現是oracle賬號的$ORACLE_SID環境變量設置不正確導致的,調整正確後就正常了。

    CDB和PDB還有客戶端的連接使用這一塊沒有測試。

    從方便性上現在還不能說有了PDB之後就更方便了,只能說有了PDB之後,對於更多複雜應用和更大型的數據庫應用邏輯區分更清楚一些了,同一類的業務,可以新建一個CDB,在一個CDB中對每一個業務創建一個PDB。原來的數據庫是通過用戶schema來區分,現在直接通過pdb區分。另外數據導入導出方面沒有經過測試,不知道PDB的拔出插入是不是比以前的expdp或者rman方式要效率高,只有在今後使用過程中通過實踐來檢驗了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章