日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术

發(fā)布時(shí)間:2025/3/8 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PDB大致功能描述:

創(chuàng)建:

用create pluggable database的命令,

用file_name_convert的方式拷貝seed pdb的文件到對(duì)應(yīng)的新pdb的路徑下。拷貝的是最基本system和sysaux表空間,

將新建的pdb從mount的狀態(tài)打開到read write的狀態(tài)。

建立pdb用戶的默認(rèn)表空間。

拔出:

a)用dbca進(jìn)行拔出有2種生成結(jié)果,一種是生成打包文件,一種是生成.xml文件和.DFB文件。

a .1)打包方式:

操作的時(shí)候,先close pdb,然后在$ORACLE_HOMEassistantsdbcatemplates,生成一個(gè)xml文件描述pdb原來文件的路徑和scn等信息;

將pdb的數(shù)據(jù)文件復(fù)制到$ORACLE_HOMEassistantsdbcatemplates路徑下;

生成一個(gè)pdb_info.txt描述本次pdb unplug的相關(guān)文件。

將上述3種類型的文件打包成一個(gè)gz包。

在cdb中,以drop pluggable database的方式,刪除pdb的信息和在物理上刪除pdb的數(shù)據(jù)文件。

a.2)生成.xml和.DFB文件的方式

也是類似,只是不打包成一個(gè)gz包,且pdb的多個(gè)數(shù)據(jù)文件也被整合在一個(gè).DFB文件中。最后也刪除cdb中關(guān)于此pdb的信息。

插入:

如果用dbca,原來打包成gz包的來做plug就非常方便,只要選中g(shù)z包,直接plug即可。如果原來是分開文件的方式,也只需根據(jù)xml文件和.DFB文件,先restore數(shù)據(jù)文件,再create pluggable database using xml文件。

克隆:

將pdb至于read only模式,然后利用create pluggable database xxx from xxx…命令進(jìn)行可克隆。注該方法需要將原pdb至于read only模式。可以常用在測試環(huán)境用克隆另外一個(gè)類似的環(huán)境。

PDB手工操作:

a)創(chuàng)建

SQL>?CREATE?PLUGGABLE?DATABASE?mypdb1?ADMIN?USER?pdbadmin?IDENTIFIED?BY?Orac1e_1981?ROLES=(CONNECT)

2??file_name_convert=(‘E:ORA12CAPPORACLEUSERORADATAORA12CPDBSEED’,’E:ORA12CAPPORACLEUSERORADATAORA12Cmypdb1′);

Pluggable?database?created.

SQL>

SQL>?alter?pluggable?database?mypdb1?open;

Pluggable?database?altered.

SQL>

b)拔出:

SQL>?ALTER?PLUGGABLE?DATABASE?mypdb1?CLOSE;

Pluggable?database?altered.

SQL>

SQL>?alter?pluggable?database?MYPDB1?unplug?into?‘E:ora12capporacleuserproduct12.1.0dbhome_1assistantsdbcatemplatesora12c_MYPDB1.xml’;

Pluggable?database?altered.

SQL>

SQL>?host?cp?-R?E:ora12capporacleuseroradataora12cmypdb1?E:ora12capporacleuseroradataora12cmypdb1_bak

SQL>?DROP?PLUGGABLE?DATABASE?mypdb1?including?datafiles;

Pluggable?database?dropped.

c)插入:

SQL>??–注:不需要拷貝回去temp?tablespace的文件。不然在下一個(gè)create?pluggable?database的時(shí)候會(huì)報(bào)錯(cuò)ORA-01119。

SQL>?host?cp?E:ora12capporacleuseroradataora12cmypdb1_bak*.DBF??E:ora12capporacleuseroradataora12cmypdb1

SQL>

SQL>?create?pluggable?database?b_pdb1?using?‘E:ora12capporacleuserproduct12.1.0dbhome_1assistantsdbcatemplatesora12c_MYPDB1.xml’?nocopy;

Pluggable?database?created.

SQL>

SQL>?alter?pluggable?database?b_pdb1?open;

Pluggable?database?altered.

SQL>

d)克隆:

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

DBID?NAME???????????????????????????OPEN_MODE

———-?——————————?———-

4039091088?PDB$SEED???????????????????????READ?ONLY

2213957720?B_PDB1?????????????????????????READ?WRITE

4261134367?MYPDB2?????????????????????????READ?WRITE

SQL>

SQL>

SQL>

SQL>?alter?pluggable?database?mypdb2?close;

Pluggable?database?altered.

SQL>?alter?pluggable?database?mypdb2?open?read?only;

Pluggable?database?altered.

SQL>?create?pluggable?database?b_pdb2

2??from?MYPDB2

3??file_name_convert?=(‘E:ora12capporacleuseroradataora12cmypdb2′,’E:ora12capporacleuseroradataora12cb_pdb2’);

Pluggable?database?created.

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

DBID?NAME???????????????????????????OPEN_MODE

———-?——————————?———-

4039091088?PDB$SEED???????????????????????READ?ONLY

2213957720?B_PDB1?????????????????????????READ?WRITE

4261134367?MYPDB2?????????????????????????READ?ONLY

2540280635?B_PDB2?????????????????????????MOUNTED

SQL>?alter?pluggable?database?B_PDB2?open;

Pluggable?database?altered.

SQL>

常用檢查語句:

SQL>?SELECT?sys_context(‘userenv’,’con_name’)?MY_CONTAINER?FROM?dual;

MY_CONTAINER

——————–

CDB$ROOT

SQL>

SQL>?SHOW?con_name

CON_NAME

——————————

CDB$ROOT

SQL>

SQL>?SELECT

2??‘DB_NAME:?‘??||sys_context(‘userenv’,?‘db_name’)||

3??‘?/?CDB?:?‘?????||(select?cdb?from?v$database)||

4??‘?/?AUTH_ID:?‘??||sys_context(‘userenv’,?‘a(chǎn)uthenticated_identity’)||

5??‘?/?USER:?‘?????||sys_context(‘userenv’,?‘current_user’)||

6??‘?/?CONTAINER:?‘||nvl(sys_Context(‘userenv’,?‘con_Name’),?‘NON-CDB’)

7??as?“DB?DETAILS”

8??FROM?DUAL;

DB?DETAILS

—————————————————————————————————-

DB_NAME:?ora12c?/?CDB?:?YES?/?AUTH_ID:?HE-PCjijihe?/?USER:?SYS?/?CONTAINER:?CDB$ROOT

SQL>

SQL>?alter?session?set?container=MYPDB2;

Session?altered.

SQL>?SELECT

2??‘DB_NAME:?‘??||sys_context(‘userenv’,?‘db_name’)||

3??‘?/?CDB?:?‘?????||(select?cdb?from?v$database)||

4??‘?/?AUTH_ID:?‘??||sys_context(‘userenv’,?‘a(chǎn)uthenticated_identity’)||

5??‘?/?USER:?‘?????||sys_context(‘userenv’,?‘current_user’)||

6??‘?/?CONTAINER:?‘||nvl(sys_Context(‘userenv’,?‘con_Name’),?‘NON-CDB’)

7??as?“DB?DETAILS”

8??FROM?DUAL;

DB?DETAILS

————————————————————————————————

DB_NAME:?ora12c?/?CDB?:?YES?/?AUTH_ID:?HE-PCjijihe?/?USER:?SYS?/?CONTAINER:?MYPDB2

SQL>

SQL>?select?v.name,?v.open_mode,?nvl(v.restricted,?‘n/a’)?“RESTRICTED”,?d.status

2??from?v$PDBs?v?inner?join?dba_pdbs?d

3??using?(GUID)

4??order?by?v.create_scn

5??/

NAME???????????????????????????OPEN_MODE??RESTRICTED??????STATUS

——————————?———-?—————?————-

PDB$SEED???????????????????????READ?ONLY??NO??????????????NORMAL

MYPDB1?????????????????????????READ?WRITE?NO??????????????NORMAL

MYPDB2?????????????????????????READ?WRITE?NO??????????????NORMAL

SQL>?alter?pluggable?database?mypdb1?close;

Pluggable?database?altered.

SQL>?select?v.name,?v.open_mode,?nvl(v.restricted,?‘n/a’)?“RESTRICTED”,?d.status

2??from?v$PDBs?v?inner?join?dba_pdbs?d

3??using?(GUID)

4??order?by?v.create_scn

5??/

NAME???????????????????????????OPEN_MODE??RESTRICTED??????STATUS

——————————?———-?—————?————-

PDB$SEED???????????????????????READ?ONLY??NO??????????????NORMAL

MYPDB1?????????????????????????MOUNTED????n/a?????????????NORMAL

MYPDB2?????????????????????????READ?WRITE?NO??????????????NORMAL

SQL>?alter?pluggable?database?mypdb1?open?restricted;

Pluggable?database?altered.

SQL>?select?v.name,?v.open_mode,?nvl(v.restricted,?‘n/a’)?“RESTRICTED”,?d.status

2??from?v$PDBs?v?inner?join?dba_pdbs?d

3??using?(GUID)

4??order?by?v.create_scn

5??/

NAME???????????????????????????OPEN_MODE??RESTRICTED??????STATUS

——————————?———-?—————?————-

PDB$SEED???????????????????????READ?ONLY??NO??????????????NORMAL

MYPDB1?????????????????????????READ?WRITE?YES?????????????NORMAL

MYPDB2?????????????????????????READ?WRITE?NO??????????????NORMAL

SQL>

評(píng):感覺PDB不像什么革命性的技術(shù),只是將數(shù)據(jù)庫至于mount模式后,拷貝數(shù)據(jù)文件,做成一個(gè)備份,然后將此備份plug和unplug。這樣的技術(shù),感覺跨平臺(tái)的遷移不太理想。

另外,由于一個(gè)cdb中可以掛多個(gè)pdb,資源的分配使用就變得非常重要了,在12c中,估計(jì)原來幾乎不常用的Resource Manager plan會(huì)逐步用起來。

關(guān)于redo,由于redo是可以多個(gè)pdb共享,因此cdb的管理者可以通過logmnr的方式去挖對(duì)應(yīng)pdb的日志,從dump出來的redo log來看,redo log中含有container id(CON_ID,0為cdb,1為cdb$root, 2為pdb seed,3以上為pdb),pdbid和pxid,至少這些信息可以用于區(qū)分不同pdb中的事務(wù)。

我們一直都在努力堅(jiān)持原創(chuàng).......請(qǐng)不要一聲不吭,就悄悄拿走。

我原創(chuàng),你原創(chuàng),我們的內(nèi)容世界才會(huì)更加精彩!

【所有原創(chuàng)內(nèi)容版權(quán)均屬TechTarget,歡迎大家轉(zhuǎn)發(fā)分享。但未經(jīng)授權(quán),嚴(yán)禁任何媒體(平面媒體、網(wǎng)絡(luò)媒體、自媒體等)以及微信公眾號(hào)復(fù)制、轉(zhuǎn)載、摘編或以其他方式進(jìn)行使用。】

微信公眾號(hào)

TechTarget

官方微博

TechTarget中國

總結(jié)

以上是生活随笔為你收集整理的oracle pdb是什么意思,浅谈Oracle数据库12c PDB技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。