真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle12C新特性——cdb與pdb

 Oracle 12C引入了CDB與PDB的新特性,在ORACLE 12C數(shù)據(jù)庫(kù)引入的多租用戶環(huán)境(Multitenant Environment)中,允許一個(gè)數(shù)據(jù)庫(kù)容器(CDB)承載多個(gè)可插拔數(shù)據(jù)庫(kù)(PDB)。CDB全稱為Container Database,中文翻譯為數(shù)據(jù)庫(kù)容器,PDB全稱為Pluggable Database,即可插拔數(shù)據(jù)庫(kù)。在ORACLE 12C之前,實(shí)例與數(shù)據(jù)庫(kù)是一對(duì)一或多對(duì)一關(guān)系(RAC):即一個(gè)實(shí)例只能與一個(gè)數(shù)據(jù)庫(kù)相關(guān)聯(lián),數(shù)據(jù)庫(kù)可以被多個(gè)實(shí)例所加載。而實(shí)例與數(shù)據(jù)庫(kù)不可能是一對(duì)多的關(guān)系。當(dāng)進(jìn)入ORACLE 12C后,實(shí)例與數(shù)據(jù)庫(kù)可以是一對(duì)多的關(guān)系。下面是官方文檔關(guān)于CDB與PDB的關(guān)系圖。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、囊謙ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的囊謙網(wǎng)站制作公司

 Oracle12C新特性——cdb與pdb

    

    其實(shí)大家如果對(duì)SQL SERVER比較熟悉的話,這種CDB與PDB是不是感覺(jué)和SQL SERVER的單實(shí)例多數(shù)據(jù)庫(kù)架構(gòu)是一回事呢。像PDB$SEED可以看成是master、msdb等系統(tǒng)數(shù)據(jù)庫(kù),PDBS可以看成用戶創(chuàng)建的數(shù)據(jù)庫(kù)。而可插拔的概念與SQL SERVER中的用戶數(shù)據(jù)庫(kù)的分離、附加其實(shí)就是那么一回事。看來(lái)ORACLE也“抄襲”了一把SQL SERVER的概念,只是改頭換面的包裝了一番。

 

 

1、CDB組件(Components of a CDB)

 

一個(gè)CDB數(shù)據(jù)庫(kù)容器包含了下面一些組件:

ROOT組件

ROOT又叫CDB$ROOT, 存儲(chǔ)著ORACLE提供的元數(shù)據(jù)和Common User,元數(shù)據(jù)的一個(gè)例子是ORACLE提供的PL/SQL包的源代碼,Common User 是指在每個(gè)容器中都存在的用戶。

SEED組件

  Seed又叫PDB$SEED,這個(gè)是你創(chuàng)建PDBS數(shù)據(jù)庫(kù)的模板,你不能在Seed中添加或修改一個(gè)對(duì)象。一個(gè)CDB中有且只能有一個(gè)Seed. 這個(gè)感念,個(gè)人感覺(jué)非常類似SQL SERVER中的model數(shù)據(jù)庫(kù)。

PDBS

    CDB中可以有一個(gè)或多個(gè)PDBS,PDBS向后兼容,可以像以前在數(shù)據(jù)庫(kù)中那樣操作PDBS,這里指大多數(shù)常規(guī)操作。

這些組件中的每一個(gè)都可以被稱為一個(gè)容器。因此,ROOT(根)是一個(gè)容器,Seed(種子)是一個(gè)容器,每個(gè)PDB是一個(gè)容器。每個(gè)容器在CDB中都有一個(gè)獨(dú)一無(wú)二的的ID和名稱。

注意:

①:一個(gè)CDB可以包含253個(gè)PDB(去掉一個(gè)是seed還能創(chuàng)建252個(gè)PDB)。

②:Root,seed以及每一個(gè)PDB的數(shù)據(jù)文件是獨(dú)立的。

③:一個(gè)單實(shí)例的CDB有一個(gè)redo log;RAC環(huán)境中每個(gè)實(shí)例有一個(gè)redo log。

④:只有一組后臺(tái)進(jìn)程,它們被ROOT和所有PDB共享。

⑤:Root的全局?jǐn)?shù)據(jù)庫(kù)名就是CDB的全局?jǐn)?shù)據(jù)庫(kù)名;PDB的全局?jǐn)?shù)據(jù)庫(kù)名是由PDB name和DB_DOMAIN參數(shù)共同定義的。

⑥:一個(gè)CDB使用一個(gè)SPFILE或者一個(gè)PFILE,其中為ROOT設(shè)置的參數(shù)的值可以被PDB繼承。另外,也可以使用ALTER SYSTEM語(yǔ)句來(lái)設(shè)置PDB的參數(shù)。對(duì)參數(shù)文件執(zhí)行     操作時(shí),必須使用common user并且使用AS SYSDBA, ASSYSOPER, AS SYSBACKUP來(lái)連接數(shù)據(jù)庫(kù)。要?jiǎng)?chuàng)建CDB,必須要將初始化參數(shù)ENABLE_PLUGGABLE_DATABASE的     值設(shè)置為TRUE。

⑦:所有PDB的字符集都使用CDB的字符集。

      可以設(shè)置所有PDB的時(shí)區(qū)與CDB相同,也可以單獨(dú)為PDB設(shè)置時(shí)區(qū)。

      塊大小被應(yīng)用于整個(gè)CDB。

      一個(gè)CDB也僅有一個(gè)控制文件(可以多路復(fù)用)。

⑧:Root與每一個(gè)PDB都有自己的SYSAUX表空間和SYSTEM表空間。可以為root和每一個(gè)PDB設(shè)置默認(rèn)表空間。而默認(rèn)的臨時(shí)表空間對(duì)于整個(gè)CDB只有一個(gè),但是可以為     每個(gè)PDB創(chuàng)建臨時(shí)表空間。

⑨:撤銷表空間對(duì)于CDB是唯一的。在CDB中,初始化參數(shù)UNDO_MANAGEMENT必須被設(shè)置為AUTO。當(dāng)前容器為PDB時(shí),無(wú)法通過(guò)數(shù)據(jù)字典視圖查看撤銷表空間,只能通     過(guò)動(dòng)態(tài)性能視圖。

2、PDB簡(jiǎn)介

2.1、PDB新特點(diǎn)的優(yōu)勢(shì)

 》可以把多個(gè)PDB集成進(jìn)一個(gè)平臺(tái)。

 》可以快速提供一個(gè)新的PDB或一個(gè)已有PDB的克隆。

 》通過(guò)拔插技術(shù),可以快速把存在的數(shù)據(jù)庫(kù)重新部署到一個(gè)新平臺(tái)上。

 》多個(gè)PDB數(shù)據(jù)庫(kù)補(bǔ)丁或升級(jí)一次完成。

 》通過(guò)把單個(gè)PDB拔插到較高版本的不同CDB,可以補(bǔ)丁或升級(jí)一個(gè)PDB。

 》從同一個(gè)CDB中眾多PDB中分離出某個(gè)PDB的內(nèi)容。

 》分離這些PDB應(yīng)用管理員的責(zé)任。

 

2.2、PDB新特點(diǎn)的功能

 》在一個(gè)CDB中,你可以擁有很多PDB。

 》PDB和12.1之前版本的普通數(shù)據(jù)庫(kù)是向后兼容的。

 》PDB對(duì)應(yīng)用是透明的——你不需要改變客戶端代碼或數(shù)據(jù)庫(kù)對(duì)象。

 》RAC中每個(gè)實(shí)例作為一個(gè)整體打開(kāi)CDB(因此CDB和其中的PDB數(shù)據(jù)庫(kù)版本都是相同的)。

 》會(huì)話僅僅看到它自己連接的那個(gè)PDB。

 》你可以從一個(gè)CDB拔出一個(gè)PDB,然后插入另一個(gè)CDB。

 》你可以在同一個(gè)CDB或不同CDB間克隆PDB。

 》資源管理器隨著PDB的功能得以擴(kuò)展。

 》通過(guò)SQL語(yǔ)句實(shí)現(xiàn)了實(shí)體PDB的操作(創(chuàng)建,拔出,插入,克隆,清除,設(shè)置打開(kāi)模式)。

 》當(dāng)連接到所謂的“根”(root)時(shí),CDB管理員來(lái)執(zhí)行這些操作。

 》所有的PDB能被一次備份,但可以分別單獨(dú)恢復(fù)。

 

2.3、PDB的詳解

 》每個(gè)PDB有自己的私有數(shù)據(jù)字典用于用戶創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象;另一方面,CDB作為一個(gè)整體也包含Oracle提供系統(tǒng)的數(shù)據(jù)字典,其中,每個(gè)數(shù)據(jù)字典定義自己的命名空間。換句話說(shuō),有全局?jǐn)?shù)據(jù)字典(CDB級(jí))和本地?cái)?shù)據(jù)字典(PDB級(jí))。

 》有新的分開(kāi)的數(shù)據(jù)字典架構(gòu),該架構(gòu)允許一個(gè)PDB被快速?gòu)囊粋€(gè)CDB拔出并插入一個(gè)不同的CDB。

 》每個(gè)PDB只能看到oracle提供系統(tǒng)的只讀定義。

 》有全局?jǐn)?shù)據(jù)庫(kù)參數(shù),也有本地?cái)?shù)據(jù)庫(kù)參數(shù)。PDB參數(shù)僅僅屬于特定的PDB,并且拔出后,PDB參數(shù)也將保持不變。

 》數(shù)據(jù)庫(kù)用戶可以是全局的(CDB)或本地的(PDB)。SYS和SYSTEM用戶一開(kāi)始就在兩級(jí)DB中存在。如果你在CDB中創(chuàng)建了一個(gè)新用戶,那么你在PDB中也能看到這個(gè)用戶。在PDB中創(chuàng)建的用戶只能在該P(yáng)DB中使用。

 》臨時(shí)表空間可以是全局或本地的。

 》Redo日志和Undo表空間都是全局的(CDB級(jí))。

 》Data Guard在CDB級(jí)作為一個(gè)整體發(fā)揮作用;RMAN調(diào)度的備份也作為一個(gè)整體在CDB級(jí)完成;任何時(shí)候,你可以只備份一個(gè)PDB。

 》應(yīng)用連接PDB時(shí),不需做代碼修改;系統(tǒng)管理員可以連接CDB;連接串中的服務(wù)名確定目標(biāo)PDB。

 》PDB允許更加清晰的聲明定義一個(gè)應(yīng)用;一個(gè)PDB對(duì)同一個(gè)CDB里的其他PDB一無(wú)所知;每個(gè)PDB是個(gè)密閉的容器。這保證了新層面DB的獨(dú)立和安全。

3、日常操作:

3.1、查看當(dāng)前的容器

SQL> show con_name;

CON_NAME

------------------------------

CDB$ROOT

------或:

SQL> select Sys_Context('Userenv', 'Con_Name') "current Container" from dual;

current Container

--------------------------------------------------------------------------------

CDB$ROOT

3.2、查看CDB中的PDB信息:

SQL>  select con_id, dbid, guid, name , open_mode from v$pdbs;

    CON_ID       DBID GUID                             NAME                           OPEN_MODE

---------- ---------- -------------------------------- ------------------------------ ----------

         2  427872663 439BFCB2A2EE1BE7E055000000000001 PDB$SEED                       READ ONLY

         3 1891424478 439C5B1174C121B7E055000000000001 FEIGE                          READ WRITE  ---feige就是一個(gè)PDB

3.3、創(chuàng)建一個(gè)新的PDB:

SQL> create pluggable database test_pdb admin user admin identified by admin;

SQL> alter pluggable database test_pdb open;    ----將test_pdb 打開(kāi)

SQL> select con_id,dbid,con_uid,guid,name,open_mode,create_scn,total_size,block_size from v$pdbs;   ---查看pdb的狀態(tài)

    CON_ID       DBID    CON_UID GUID                             NAME                           OPEN_MODE  CREATE_SCN TOTAL_SIZE BLOCK_SIZE

---------- ---------- ---------- -------------------------------- ------------------------------ ---------- ---------- ---------- ----------

         2  427872663  427872663 439BFCB2A2EE1BE7E055000000000001 PDB$SEED                       READ ONLY     1594401  838860800       8192

         3 1891424478 1891424478 439C5B1174C121B7E055000000000001 FEIGE                          READ WRITE    1753608  865075200       8192

         4 2998508999 2998508999 53F376E8715628BCE055000000000001 TEST_PDB                       READ WRITE    1757024  859832320       8192

(“admin user”子句是必須的,在擴(kuò)展格式,給新用戶賦予了權(quán)限和角色,該用戶僅在admin內(nèi)可以創(chuàng)建新會(huì)話。在創(chuàng)建完可插拔數(shù)據(jù)庫(kù)后,新的PDB處于MOUNTED模式)

3.4、克隆一個(gè)pdb

SQL> create pluggable database test2_pdb from test_pdb;   ---test_pdb必須是打開(kāi)的,才可以被打開(kāi)

SQL> alter pluggable database test2_pdb open;   ---然后打開(kāi)這個(gè)pdb

3.5、切換到PDB,或切換到CDB

SQL> alter session set container=test_pdb;  ---切換到pdb中

SQL> alter session set container=cdb$root;  ---切換到CDB中

3.6、關(guān)閉一個(gè)pdb和關(guān)閉所有的pdb

SQL> alter pluggable database test_pdb close;   ---關(guān)閉test_pdb這個(gè)pdb數(shù)據(jù)庫(kù)

SQL> alter pluggable database all close;    ---關(guān)閉數(shù)據(jù)庫(kù)中所有的pdb

3.7、插拔一個(gè)pdb數(shù)據(jù)庫(kù)

SQL> alter pluggable database feige close;    ---先將feige這個(gè)pdb關(guān)閉

SQL> alter pluggable database feige unplug into '/opt/oracle/oradata/feige.xml'; 

(feige.xml:文件確定數(shù)據(jù)文件的名字和全路徑等信息。這些信息在插入操作時(shí)會(huì)用到。注意:PDB還是其從中拔出的CDB的一部分,只是現(xiàn)在狀態(tài)變?yōu)榱税纬觯║NPLUGGED)而已。)

SQL> drop pluggable database feige keep datafiles;  ----在當(dāng)前的容器中刪除這個(gè)pdb

----如果在這個(gè)服務(wù)器上,有兩個(gè)容器,則進(jìn)入另一個(gè)容器,插入這個(gè)pdb

exec DBMS_PDB.Check_Plug_Compatibility(PDB_Descr_File=>'/opt/oracle/oradata/feige.xml');  --查看pdb和這個(gè)容器是否兼容,如果報(bào)錯(cuò)說(shuō)明不兼容

----開(kāi)始插入pdb,(using關(guān)鍵字后必須跟上PDB描述的絕對(duì)路徑,即,先前拔出操作時(shí)產(chǎn)生的.XML文件)

create pluggable database feige  using '/opt/oracle/oradata/feige.xml'  move file_name_convert = ('/cdb1/', '/cdb2/');

----最后打開(kāi)這個(gè)pdb

alter pluggable database feige open;

3.8、連接pdb數(shù)據(jù)庫(kù):

 連接pdb其實(shí)和連接正常的單實(shí)例數(shù)據(jù)庫(kù)是一樣的,連接注冊(cè)的服務(wù)名即可,可以通過(guò)下面的方式:

①:使用監(jiān)聽(tīng)注冊(cè)的服務(wù)名連接,如下:

[oracle@localhost ~]$ lsnrctl status    ---通過(guò)這個(gè)命令查找注冊(cè)的服務(wù)名

[oracle@localhost ~]$ sqlplus system/oracle@192.168.2.100:1521/feige      ---這樣連接到PDB數(shù)據(jù)庫(kù)

②:通過(guò)tnsnames配置文件連接,如下:

feige =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = feige)

    )

  )

[oracle@localhost admin]$ sqlplus system/oracle@feige      ----使用這種方式連接

---至此,cdb與pdb就先總結(jié)到這里,一些基礎(chǔ)的知識(shí)和操作都有介紹


當(dāng)前文章:Oracle12C新特性——cdb與pdb
文章起源:http://weahome.cn/article/iicgih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部