oracle pdb是什么意思,淺談Oracle數據庫12c PDB技術

PDB大致功能描述:

創建:

用create pluggable database的命令,

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

將新建的pdb從mount的狀態打開到read write的狀態。

建立pdb用戶的默認表空間。

拔出:

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

a .1)打包方式:

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

將pdb的數據文件復制到$ORACLE_HOMEassistantsdbcatemplates路徑下;

生成一個pdb_info.txt描述本次pdb unplug的相關文件。

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

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

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

也是類似,只是不打包成一個gz包,且pdb的多個數據文件也被整合在一個.DFB文件中。最后也刪除cdb中關于此pdb的信息。

插入:

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

克隆:

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

PDB手工操作:

a)創建

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的文件。不然在下一個create?pluggable?database的時候會報錯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’,?‘authenticated_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’,?‘authenticated_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>

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

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

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

我們一直都在努力堅持原創.......請不要一聲不吭,就悄悄拿走。

我原創,你原創,我們的內容世界才會更加精彩!

【所有原創內容版權均屬TechTarget,歡迎大家轉發分享。但未經授權,嚴禁任何媒體(平面媒體、網絡媒體、自媒體等)以及微信公眾號復制、轉載、摘編或以其他方式進行使用。】

微信公眾號

TechTarget

官方微博

TechTarget中國

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle查詢sql時間ain,Oracle SQL 時間查詢

一、在使用Oracle的to_date函數來做日期轉換時,很多Java程序員也許會和我一樣,直覺的采用ldquo;yyyy-MM-dd HH:mm:ssrdquo;的to_date()與24小時制表示法及mm分鐘的顯示:一、在使用Oracle的to_date函數來做日期轉換時,很多Java程序…

室內定位算法_001:室內定位算法技術咨詢服務工作室簡介(更新)

點擊藍字關注我們團隊成員:何博士(中國科學院大學,博士) 楊博士(加拿大多倫多大學,博士后)微信聯系號:UWB_cwhe服務模式:1. 為企業提供定位算法技術支持與指導,以提高企業室內定位系統產品的穩定…

雙系統還是虛擬機 linux系統時間,你會選擇Mac虛擬機還是雙系統

在Mac上運行雙系統,你是會選擇Mac虛擬機呢還是直接雙系統?今天我們就這個問題來討論一下這兩之前的區別,究竟是選擇Mac最好用的虛擬機 parallels desktop還是Boot Camp?1、安裝在pd虛擬機中,安裝系統和安裝驅動完全自動…

oracle中修改多個字段默認值_利用VBA代碼在已有的數據表中刪除、添加、修改字段...

大家好,今日繼續給大家講解VBA數據庫解決方案的第21講,如何利用VBA代碼在已有的數據表中刪除,添加,修改字段。這個內容是操作數據庫的一項必修的內容,還望大家在實際工作中多利用,所以這節的知識,對于讀者提高自己的數…

cs1.5 linux服務端,CS1.5在linux上的配置

CS1.5在linux上的配置作者:作者第一步下載所需要的軟件:hlds_l_3110_full.tar.gzhlds_l_3110b_beta.tar.gzcs_15_full.tar.gzmetamod-1.13.tgzcm_cstrike_1_80_19-en_beta.zipsm_cstrike-2.6.15.zip第二步 解壓 hlds_l_3110_full.tar.gzhlds_l_3110b_bet…

java跟python優勢_當前Java與Python相比還有哪些優勢

首先,Java語言與Python語言都是非常流行的全場景編程語言,在很多開發場景下,既可以使用Java語言,也可以采用Python語言,比如Web開發、大數據開發等等。隨著近幾年大數據和人工智能領域的熱度越來越高,Pytho…

linux添加刪除回環地址,CentOS7如何添加本地回環地址?CentOS7添加本地回環地址的方法...

1、臨時添加ip addr add 10.10.1.1/32 dev lo:1重啟失效2、永久添加cd /etc/sysconfig/network-scriptscp ifcfg-lo ifcfg-lo:1[rootlocalhost network-scripts]# cat ifcfg-lo:1DEVICElo:1IPADDR10.10.1.1NETMASK255.255.255.255ONBOOTyesNAMEloopback1[rootlocalhost network…

python判斷語句的復雜度_Python內置方法的時間復雜度(轉)

本文翻譯自Python Wiki本文基于GPL v2協議,轉載請保留此協議。本頁面涵蓋了Python中若干方法的時間復雜度(或者叫“大歐”,“Big O”)。該時間復雜度的計算基于當前(譯注:至少是2011年之前)的CPython實現。其他Python的實現(包括老版本或者尚…

linux中的碼字軟件,碼字寫作軟件下載

極音創作linux版一款的掌上碼字軟件,這款軟件支持ios,mac,Windows和Android設備上自動同步文件,有需要的朋友快來下載吧!軟件特色1、【文件功能】在本軟件的左側是導航欄,羅列了幾個常用的功能。在導航條上…

linux svn可視化工具,CentOS6.5安裝SVN 可視化管理工具iF.SVNAdmin

實際系統環境:CentOS 6.5 x64一、安裝Apache通常系統都已經裝好了,但我的服務器上卻沒有安裝,所以要安裝:# yum install httpd二、安裝SVN根據SVN官網指南使用yum進行安裝:# yum install subversion mod_dav_svn三、配…

skywalking使用方法_SkyWalking 源碼分析—— Collector Server Component 服務器組件

摘要: 原創出處 http://www.iocoder.cn/SkyWalking/collector-server-component/「芋道源碼」歡迎轉載,保留摘要,謝謝!本文主要基于 SkyWalking 3.2.6 正式版1. 概述2. 接口2.1 Server2.2 ServerHandler3. gRPC 實現3.1 GRPCServer3.2 GRPCHa…

linux dns及時添加,在ARM Linux上成功實現添加DNS庫

工作需要要在嵌入Linux上實現DNS, 從Delphi的Indy9中移植了一個DNS,用了半年了還可以。今日偶然看到了網上有源碼(竟然原來沒有搜到ftp://ftp.isc.org/isc/bind9/9.5.0/bind-9.5.0.tar.gz)1. 找到bind-9.5.0.tar.gz源碼,其中有包含DNS協議的源…

掃地機器人返充原理_掃地機器人全解析

文章引用自 薛先生 ,版權完全歸屬薛先生。其公眾號:Alphatree and Evelyn2018-12-12思考出發點:那個多數人印象中亂碰亂撞、還拖著臟污滿屋跑的添亂掃地機,還需要多久才能變聰明?掃地機器人的本質到底是什么? 該用家電…

wxpython多線程 假死_wxpython中利用線程防止假死的實現方法

前段時間我編寫了一個工業控制的軟件,在使用中一直存在一個問題,就是當軟件檢索設備時,因為這個功能執行的時間比較長,導致GUI界面假死,讓用戶分辨不清楚軟件到底仍在執行,還是真的掛掉了。(雖然我設計了同…

linux dns 內網ip,Ubuntu中ip地址、網關、網絡號、DNS等解釋

在Ubuntu中查看ip地址,輸入指令:ifconfig在Ubuntu中查看網關,DNS服務器的命令:nm-tool其中,inet 地址即為ip地址。在圖中,我們看到有廣播地址,還有掩碼,當然在一個計算機網絡中&…

10分鐘用python編寫貪吃蛇小游戲_牛得一批!10分鐘用Python編寫一個貪吃蛇小游戲...

貪吃蛇,大家應該都玩過。當初第一次接觸貪吃蛇的時候 ,還是能砸核桃的諾基亞上,當時玩的不亦樂乎。今天,我們用Python編程一個貪吃蛇游戲,下面我們先看看效果:好了,先介紹一個思路所有的游戲最主…

linux 進程函數替換,Linux使用exec函數實現進程替換的代碼分享

這篇文章主要介紹了Linux 進程替換(exec函數)實現代碼的相關資料,需要的朋友可以參考下Linux 進程替換(exec函數)實現代碼# include#include#include#include#include#include#includeint main(){pid_t idfork();if(id0){printf("child is running\n");sleep(1);char…

ad怎么批量改元器件封裝_AD6.8的原理圖中如何批量修改封裝?

AD6.8的原理圖中如何批量修改封裝呀?一直未用這個功能,99SE中全局參數很好用,不過在AD6做修改的卻只有當前選中的一個有效.相同屬性的不作修改....是不是在別的地方有設置呀?高手指教...protel dxp 中將原件的對象整體編輯在工作區選擇要改的原件 右擊鼠標 選擇fi…

cnn程序流程圖_C#?VISIO?畫流程圖

還是沒有做PPT的靈感,總結下前段時間做的VISIO好了。網上VISIO的資料那個少啊,姐艱辛地做了一個星期啊一個星期,中間還夾雜著PMP道德題的高強度訓練,和各種“不知道為啥那么難,為啥怎么做準確率都不高,難道…

Linux下netstat常用,Linux netstat常用命令

1、統計80端口連接數netstat -nat|grep -i "80"|wc -l2、統計httpd協議連接數(查看Apache的并發請求數及其TCP連接狀態)ps -ef|grep httpd|wc -l3、統計已連接上的,狀態為“establishednetstat -na|grep ESTABLISHED|wc -l4、查出哪個IP地址連接最多,將其…