Oracle 12C 新效能 總結篇
RAC基本維護
1)檢查RAC狀態
[grid@rac01 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac01 ~]$ olsnodes -n
rac01 1
rac02 2
[grid@rac01 ~]$ srvctl status asm -a
ASM is running on rac01,rac02
ASM is enabled.
[grid@rac01 ~]$srvctl status res -t
[grid@rac01 ~]$ crs_stat -t
2)關閉開啟RAC環境
[grid@rac01 ~]$ crs_stop -all
[grid@rac01 ~]$ crs_start -all
3)關閉開啟單節點
關閉
[root@rac01 ~]# /u01/app/12.1.0/grid/bin/crsctl stop crs
或者
[grid@rac02 ~]$ srvctl stop listener -n rac01
[grid@rac02 ~]$ srvctl stop nstance -d testshf_n -i TESTSHF1
[grid@rac02 ~]$ srvctl stop asm -n rac01
[grid@rac02 ~]$ srvctl stop nodeapps -n rac01
開啟
[root@rac01 ~]# /u01/app/12.1.0/grid/bin/crsctl start crs
或者
[grid@rac02 ~]$ srvctl start listener -n rac01
[grid@rac02 ~]$ srvctl start nstance -d testshf_n -i TESTSHF1
[grid@rac02 ~]$ srvctl start asm -n rac01
[grid@rac02 ~]$ srvctl start nodeapps -n rac01
CDB和PDB
簡介
Oracle 12C引入了CDB與PDB的新特性,在ORACLE 12C資料庫引入的多租使用者環境(Multitenant Environment)中,允許一個資料庫容器(CDB)承載多個可插拔資料庫(PDB)。CDB全稱為Container Database,中文翻譯為資料庫容器,PDB全稱為Pluggable Database,即可插拔資料庫。在ORACLE 12C之前,執行個體與資料庫是一對一或多對一關聯性(RAC):即一個執行個體只能與一個資料庫相關聯,資料庫可以被多個執行個體所載入。而執行個體與資料庫不可能是一對多的關係。當進入ORACLE 12C後,執行個體與資料庫可以是一對多的關係。下面是官方文檔關於CDB與PDB的關係圖。
這種CDB與PDB是不是感覺和SQL SERVER的單一實例多資料庫結構描述是一回事呢。像PDB$SEED可以看成是master、msdb等系統資料庫,PDBS可以看成使用者建立的資料庫。而可插拔的概念與SQL SERVER中的使用者資料庫的分離、附加其實就是那麼一回事。看來ORACLE也“抄襲”了一把SQL SERVER的概念,只是改頭換面的封裝了一番。
Oracle 單一實例 從32位 遷移到 64位 方法
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
CDB組件(Components of a CDB)
一個CDB資料庫容器包含了下面一些組件:
ROOT組件
ROOT又叫CDB$ROOT, 儲存著ORACLE提供的中繼資料和Common User,中繼資料的一個例子是ORACLE提供的PL/SQL包的原始碼,Common User 是指在每個容器中都存在的使用者。
SEED組件
Seed又叫PDB$SEED,這個是你建立PDBS資料庫的模板,你不能在Seed中添加或修改一個對象。一個CDB中有且只能有一個Seed. 這個感念,個人感覺非常類似SQL SERVER中的model資料庫。
PDBS
CDB中可以有一個或多個PDBS,PDBS向後相容,可以像以前在資料庫中那樣操作 PDBS,這裡指大多數常規操作。
這些組件中的每一個都可以被稱為一個容器。因此,ROOT(根)是一個容器,Seed(種子)是一個容器,每個PDB是一個容器。每個容器在CDB中都有一個獨一無二的的ID和名稱。
1)串連到CDB資料庫
2)查看資料庫是否為CDB
SQL> select name, decode(cdb, 'YES', 'Multitenant Option enabled', 'Regular 12c Database: ') "Multitenant Option" , open_mode, con_id from v$database; NAME Multitenant Option OPEN_MODE CON_ID --------- ----------------------------- -------------------- ---------- Epps Multitenant Option enabled READ WRITE 0
YES表示該資料庫是CDB,如果是NO表示是NO-CDB(普通資料庫)
3)查看當前容器(Container)
3.1
SQL> show con_name CON_NAME------------------------------CDB$ROOT SQL> select sys_context('userenv', 'con_name') "Container DB" from dual; Container DB----------------------------------------------------CDB$ROOTSQL>
4)查看CDB容器中的PDBS資訊
查看CDB中有多少個pluggable database
SQL> select con_id, dbid, guid, name , open_mode from v$pdbs; CON_ID DBID GUID NAME OPEN_MODE ---------- ---------- -------------------------------- ------------------------------ ---------- 2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED READ ONLY 3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS MOUNTED SQL>
5)啟動PDB資料庫
方式1:
SQL> alter pluggable database PDBEPPS open; Pluggable database altered. SQL> select con_id, dbid, guid, name , open_mode from v$pdbs; CON_ID DBID GUID NAME OPEN_MODE ---------- ---------- -------------------------------- ------------------------------ ---------- 2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED READ ONLY 3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS READ WRITE
方式2:
SQL> alter session set container=PDBEPPS;Session altered. SQL> startupPluggable Database opened. SQL>
更多詳情見請繼續閱讀下一頁的精彩內容: