上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。
继上次在PVE环境上搭建了oracle12C RAC环境(请参考博文“”)并且安装使用CDB和PDB(请参考博文“”)之后,继续往下深入,在这个RAC环境中安装第二个CDB,验证一个RAC环境下面使用多个CDB和PDB的复杂应用情况。
使用oracle账号登录系统,然后执行dbca进行安装:
这里选择中文字符集:
登录grid账号运行 crsctl stat res -t 检查rac状态,看看新建的cdb2 数据库是否成功启动并open:
grid@oraclenode2 ~]$ crsctl stat res -t--------------------------------------------------------------------------------Name Target State Server State details --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.DATA.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.GRID.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.LISTENER.lsnr ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.RECOVERY.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.SYSTEM.dg ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.chad ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.net1.network ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLEora.ons ONLINE ONLINE oraclenode1 STABLE ONLINE ONLINE oraclenode2 STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oraclenode2 STABLEora.MGMTLSNR 1 ONLINE ONLINE oraclenode2 169.254.210.79 192.1 68.170.33,STABLEora.asm 1 ONLINE ONLINE oraclenode2 Started,STABLE 2 ONLINE OFFLINE STABLE 3 ONLINE ONLINE oraclenode1 Started,STABLEora.cdb2.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 LEora.cvu 1 ONLINE ONLINE oraclenode2 STABLEora.mgmtdb 1 ONLINE ONLINE oraclenode2 Open,STABLEora.oraclenode1.vip 1 ONLINE ONLINE oraclenode1 STABLEora.oraclenode2.vip 1 ONLINE ONLINE oraclenode2 STABLEora.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 LEora.qosmserver 1 ONLINE ONLINE oraclenode2 STABLEora.scan1.vip 1 ONLINE ONLINE oraclenode2 STABLE--------------------------------------------------------------------------------
上面可以看到cdb2数据库也已经起来了。也就是说这个RAC集群上面同时运行了2个CDB数据库,一个是orcl数据库,一个是cdb2数据库,实现了同时运行多个CDB数据库,每个CDB内又可以运行多个PDB数据库,这样可以实现比较复杂的业务场景。
多个CDB数据库切换:
有了多个CDB,如何在多个CDB中进行切换?是通过切换环境变量ORACLE_UNQNAME和ORACLE_SID来实现:
#现在环境变量指向是orcl数据库CDB:[oracle@oraclenode1 ~]$ [oracle@oraclenode1 ~]$ env|grep ORA ORACLE_UNQNAME=orclORACLE_SID=orcldb11ORACLE_BASE=/data/oracle/app/oracleORACLE_HOSTNAME=oraclenode1ORACLE_TERM=xtermORACLE_HOME=/data/oracle/app/oracle/product/12.2.0.1/db_1[oracle@oraclenode1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 17 09:48:24 2019Copyright (c) 1982, 2016, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> show con_name;CON_NAME------------------------------CDB$ROOTSQL> quitDisconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production[oracle@oraclenode1 ~]$ #现在改变环境变量ORACLE_UNQNAME和ORACLE_SID,改为指向cdb2。#注意ORACLE_SID需要指向你所在的rac数据库实例,我这里的SID有2个,一个是CDB21,一个是CDB22,需要根据实际环境进行设定:[oracle@oraclenode1 ~]$ export ORACLE_UNQNAME=cdb2[oracle@oraclenode1 ~]$ ORACLE_SID=cdb21 [oracle@oraclenode1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Thu Jan 17 09:49:17 2019Copyright (c) 1982, 2016, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> show con_name;CON_NAME------------------------------CDB$ROOTSQL> select con_id, dbid, guid, name , open_mode from v$pdbs; CON_ID DBID GUID---------- ---------- --------------------------------NAME--------------------------------------------------------------------------------OPEN_MODE---------- 2 1189951802 7F93FC28620574A8E0532001A8C0A08APDB$SEEDREAD ONLY 3 3521891460 7F9433F3F69A1333E0532101A8C089D8CDB2_PDB1READ WRITE CON_ID DBID GUID---------- ---------- --------------------------------NAME--------------------------------------------------------------------------------OPEN_MODE----------SQL> quitDisconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production[oracle@oraclenode1 ~]$
总结:
oracle12C数据库上可以创建多个CDB,每个CDB内可以创建多个PDB,管理多个CDB可以通过切换不同的SID环境变量进行切换。如果是RAC环境,数据库实例会同时运行在所有RAC节点上。
多个CDB可以灵活使用asm磁盘组,多个CDB可以共用asm磁盘组,也可以单独使用磁盘组,非常灵活。