版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、oracle 12c引入了cdb與pdb的新特性,在oracle 12c數(shù)據(jù)庫引入的多租用戶環(huán)境(multitenant environment)中,允許一個數(shù)據(jù)庫容器(cdb)承載多個可插拔數(shù)據(jù)庫(pdb)。cdb全稱為container database,中文翻譯為數(shù)據(jù)庫容器,pdb全稱為pluggable database,即可插拔數(shù)據(jù)庫。在oracle 12c之前,實例與數(shù)據(jù)庫是一對一或多對一關系(rac):即一個實例只能與一個數(shù)據(jù)庫相關聯(lián),數(shù)據(jù)庫可以被多個實例所加載。而實例與數(shù)據(jù)庫不可能是一對多的關系。當進入oracle 12c后,實例與數(shù)據(jù)庫可以是一對多的關系。下面是官方文檔關于c
2、db與pdb的關系圖。其實大家如果對sql server比較熟悉的話,這種cdb與pdb是不是感覺和sql server的單實例多數(shù)據(jù)庫架構(gòu)是一回事呢。像pdb$seed可以看成是master、msdb等系統(tǒng)數(shù)據(jù)庫,pdbs可以看成用戶創(chuàng)建的數(shù)據(jù)庫。而可插拔的概念與sql server中的用戶數(shù)據(jù)庫的分離、附加其實就是那么一回事??磥韔racle也“抄襲”了一把sql server的概念,只是改頭換面的包裝了一番。cdb組件(components of a cdb)一個cdb數(shù)據(jù)庫容器包含了下面一些組件:root組件root又叫cdb$root, 存儲著oracle提供的元數(shù)據(jù)和common
3、user,元數(shù)據(jù)的一個例子是oracle提供的pl/sql包的源代碼,common user 是指在每個容器中都存在的用戶。seed組件 seed又叫pdb$seed,這個是你創(chuàng)建pdbs數(shù)據(jù)庫的模板,你不能在seed中添加或修改一個對象。一個cdb中有且只能有一個seed. 這個感念,個人感覺非常類似sql server中的model數(shù)據(jù)庫。pdbs cdb中可以有一個或多個pdbs,pdbs向后兼容,可以像以前在數(shù)據(jù)庫中那樣操作pdbs,這里指大多數(shù)常規(guī)操作。這些組件中的每一個都可以被稱為一個容器。因此,root(根)是一個容器,seed(種子)是一個容器,每個pdb是一個容器。每個容器在
4、cdb中都有一個獨一無二的的id和名稱。1)連接到cdb數(shù)據(jù)庫連接到cdb數(shù)據(jù)庫容器非常簡單,跟以前連接數(shù)據(jù)庫是一樣的oracleget-orasvr02 $ sqlplus / as sysdbasql*plus: release 12.1.0.1.0 production on sun oct 20 23:41:36 2013copyright (c) 1982, 2013, oracle. all rights reserved.connected to an idle instance.sqloracleget-orasvr02 $ sqlplus sys/password as sy
5、sdbasql*plus: release 12.1.0.1.0 production on sun oct 20 23:43:17 2013copyright (c) 1982, 2013, oracle. all rights reserved.connected to an idle instance.2)查看數(shù)據(jù)庫是否為cdbsql select name, decode(cdb, yes, multitenant option enabled, regular 12c database: ) multitenant option , open_mode, con_id from v$
6、database;name multitenant option open_mode con_id- - - -epps multitenant option enabled read write 0yes表示該數(shù)據(jù)庫是cdb,如果是no表示是no-cdb(普通數(shù)據(jù)庫)3)查看當前容器(container)3.1sql show con_namecon_name-cdb$rootsql3.2sql select sys_context(userenv, con_name) container db from dual;container db-cdb$rootsql4)查看cdb容器中的pdb
7、s信息查看cdb中有多少個pluggable databasesql 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 mountedsql5)啟動pdb數(shù)據(jù)庫方式1:sql alter pluggable data
8、base 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 se
9、t container=pdbepps;session altered.sql startuppluggable database opened.sql6)關閉pdb數(shù)據(jù)庫sql alter pluggable database pdbepps close;pluggable database altered.sql select con_id, dbid, guid, name , open_mode from v$pdbs; con_id dbid guid name open_mode- - - - - 2 4071321146 e89e8da2866e3157e043de07a8c09
10、238 pdb$seed read only 3 1930201447 e89e9418b882350ce043de07a8c092b6 pdbepps mountedsql7)在容器間切換sql alter session set container=pdbepps;session altered.sql show con_name;con_name-pdbeppssqlsql alter session set container=cdb$root;session altered.sql show con_name;con_name-cdb$rootsqloracle 12c加入了一個非常
11、有新意的功能“可插拔數(shù)據(jù)庫”特性,實現(xiàn)了數(shù)據(jù)庫(pdb)在“容器”(cdb)上的拔功能,既能提高系統(tǒng)資源的利用率,也簡化大面積數(shù)據(jù)庫的管理和遷移工作。下面我們體驗一下可插拔數(shù)據(jù)庫的cdb和pdb的操作:基本信息:根容器(cdb):cup可插拔數(shù)據(jù)庫(pdb):tea啟動根容器:oracleeric $export oracle_sid=cuporacleeric $sqlplus / as sysdbasql*plus: release 12.1.0.2.0 production on wed jan 21 16:00:06 2015copyright (c) 1982, 2014, orac
12、le. all rights reserved.connected to an idle instance.sqlstartup -不會直接啟動所有可插拔數(shù)據(jù)庫,如需啟動所有可插拔數(shù)據(jù)庫,執(zhí)行命令:alter pluggable database all openoracle instance started.total system global area 767557632 bytesfixed size 2929112 bytesvariable size 574623272 bytesdatabase buffers 184549376 bytesredo buffers 545587
13、2 bytesdatabase mounted.database opened.停止根容器:sqlshutdown immediate database closed.database dismounted.oracle instance shut down.查看是否創(chuàng)建了cdb,如果有顯示名字:sqlselect name,cdb from v$database;name cdb- -cup yessqlshow parameter service;name type value- - -service_names string cup查看容器名字,其中有3個容器:根容器、種子容器和自己創(chuàng)建
14、的容器:sqlselect con_id,name from v$containers; con_id name- - 1 cdb$root -根容器 2 pdb$seed -種子容器,只可讀 3 tea -自己創(chuàng)建的可插拔數(shù)據(jù)庫sqlselect file_name from dba_data_files; file_name-/oracle/app/oradata/cup/datafile/o1_mf_system_bch07kvz_.dbf/oracle/app/oradata/cup/datafile/o1_mf_sysaux_bch020oo_.dbf/oracle/app/orad
15、ata/cup/datafile/o1_mf_undotbs1_bch0d2on_.dbf/oracle/app/oradata/cup/datafile/o1_mf_users_bch0d15n_.dbfsqlselect file_name from cdb_data_files;file_name-/oracle/app/oradata/cup/datafile/o1_mf_system_bch07kvz_.dbf/oracle/app/oradata/cup/datafile/o1_mf_sysaux_bch020oo_.dbf/oracle/app/oradata/cup/dataf
16、ile/o1_mf_undotbs1_bch0d2on_.dbf/oracle/app/oradata/cup/datafile/o1_mf_users_bch0d15n_.dbf創(chuàng)建公共用戶:sqlcreate user c#eric identified by gao;user created.sqlconn c#eric/gao error:ora-01045: user c#eric lacks create session privilege; logon denied -沒有權(quán)限,我們可以單獨給其賦予權(quán)限,也可以給其指定角色。warning: you are no longer c
17、onnected to oracle.sqlconn / as sysdbaconnected.sqlgrant dba to c#eric container=all; -給其dba角色,角色范圍覆蓋所有的容器grant succeeded.sqlconn c#eric/gaoconnected. -連接成功切換容器:首先啟動自己創(chuàng)建的容器數(shù)據(jù)庫:sqlalter pluggable database tea open; -首先啟動pdb數(shù)據(jù)庫sqlalter session set container = tea;session altered.sqlshow con_name -查看當前
18、所在的容器名con_name-tea關閉可插拔數(shù)據(jù)庫:sqlalter pluggable database tea close immediate;pluggable database altered.以下幾個場景適合于使用pluggable database:1. 在產(chǎn)品系統(tǒng)中的某些應用實際僅使用十分少量的硬件資源。但是如果存在大量這樣的應用,則還是需要構(gòu)造大量的數(shù)據(jù)庫實例并為這些小規(guī)模的數(shù)據(jù)庫分配存儲空間2. 對于那些并不十分復雜或重要,需要全職dba花費大量時間管理的數(shù)據(jù)庫3. 為了更好地利用硬件和dba資源,用戶有必要將大量的部門級應用整合到少數(shù)幾個oracle rdbms數(shù)據(jù)庫中以
19、便部署和管理pluggable database 可拔插數(shù)據(jù)庫允許dba整合大量的小的部門級數(shù)據(jù)庫到一個更龐大的數(shù)據(jù)庫中。pluggable database 帶來的好處在一個集中化的平臺上操作多個數(shù)據(jù)庫將有效降低成本:1. 更少的實例損耗2. 更低的存儲成本減少對dba資源的使用,以及便于維護安全性: 無需應用修改 更快和簡便的配置 節(jié)省了打patch和升級的時間 分離了以下責任: 不同應用的管理員 應用程序管理員和dba 應用用戶 提供isolation 保證與非cdb 完整的向后兼容性 完整的rac操作使用 與oracle enterprise manager和resource mana
20、ger整合在一起 可以集中化管理多個數(shù)據(jù)庫 備份和災難恢復 補丁和升級12c pluggable database container database可插拔數(shù)據(jù)庫特性專題2013/07/13bymaclean liu4條評論oracle database 12c中帶來一種全新的架構(gòu),允許用戶在一個獨立的oracle數(shù)據(jù)庫中擁有多個pluggable可拔插的數(shù)據(jù)庫。這種pluggable 可拔插數(shù)據(jù)庫的出現(xiàn)是為了對應 用戶目前使用rdbms數(shù)據(jù)庫的現(xiàn)狀,即有一些用戶擁有大量的部門級應用構(gòu)建于oracle rdbms數(shù)據(jù)庫之上。以下幾個場景適合于使用pluggable database:1. 在
21、產(chǎn)品系統(tǒng)中的某些應用實際僅使用十分少量的硬件資源。但是如果存在大量這樣的應用,則還是需要構(gòu)造大量的數(shù)據(jù)庫實例并為這些小規(guī)模的數(shù)據(jù)庫分配存儲空間2. 對于那些并不十分復雜或重要,需要全職dba花費大量時間管理的數(shù)據(jù)庫3. 為了更好地利用硬件和dba資源,用戶有必要將大量的部門級應用整合到少數(shù)幾個oracle rdbms數(shù)據(jù)庫中以便部署和管理pluggable database 可拔插數(shù)據(jù)庫允許dba整合大量的小的部門級數(shù)據(jù)庫到一個更龐大的數(shù)據(jù)庫中。pluggable database 帶來的好處在一個集中化的平臺上操作多個數(shù)據(jù)庫將有效降低成本:1. 更少的實例損耗2. 更低的存儲成本減少對dba
22、資源的使用,以及便于維護安全性: 無需應用修改 更快和簡便的配置 節(jié)省了打patch和升級的時間 分離了以下責任: 不同應用的管理員 應用程序管理員和dba 應用用戶 提供isolation 保證與非cdb 完整的向后兼容性 完整的rac操作使用 與oracle enterprise manager和resource manager整合在一起 可以集中化管理多個數(shù)據(jù)庫 備份和災難恢復 補丁和升級上圖給出了一個container database 并帶有4個containers, root(cdb$root)和其他的三個pluggable database。每一個pluggable databa
23、se均擁有自己的獨立應用程序,這些pluggable database要么有自己的dba, 要么被container administrator即sys用戶管理;sys用戶屬于root(cdb$root) container 是一個common user。 sys用戶還是像之前的版本那樣權(quán)威,他可以管理root container 和其他所有的pluggable database。一個pluggable database可拔插數(shù)據(jù)庫是 一堆database schemas數(shù)據(jù)庫模式的集合以一個分離的數(shù)據(jù)庫邏輯形象呈現(xiàn)給用戶和應用程序。但是在物理級別,container database擁有一個
24、數(shù)據(jù)庫實例以及多個數(shù)據(jù)文件,和普通的非cdb是一樣的。 不管是客戶端程序還是數(shù)據(jù)庫對象均無需修改,以適應cdb。用戶將很方便地將一個非cdb 插入到一個cdb中, cdb避免了以下的冗余: 后臺進程 內(nèi)存分配 多分數(shù)據(jù)字典源數(shù)據(jù)一個cdb將多個應用合并到單一的一個實例中, 這導致 僅使用 一套后臺進程,一份sga內(nèi)存分配和root container中的一份數(shù)據(jù)字典。當然pdb還將在自己的數(shù)據(jù)字典中維護部分數(shù)據(jù)關于cdb 數(shù)據(jù)字典實際情況的測試:通過下面的實驗我們可以得出如下結(jié)論:1. 每一個container 維護自己的一套底層數(shù)據(jù)字典 數(shù)據(jù)實際存放在c_obj#(c_obj# 的shari
25、ng為none,意味著本質(zhì)上 pdb還是有自己獨立的數(shù)據(jù)字典的。)這樣的cluster中,而tab$、ind$等字典基表則成為metadata link2. _current_edition_obj用作current container的obj視圖3. _next_object 和 _default_auditing_options_ 是2個特殊的對象sql col owner for a20sql col table_name for a30sql l 1* select con_id,owner,table_name from cdb_tables where table_name=tab
26、$sql / con_id owner table_name- - - 1 sys tab$ 4 sys tab$ 2 sys tab$ 1* select con_id,owner,segment_name,tablespace_name,header_file,header_block,blocks from cdb_segments where segment_name=c_obj#sql / con_id owner segment_name tablespace_name header_file header_block blocks- - - - - - - 2 sys c_obj
27、# system 5 144 1536 4 sys c_obj# system 13 144 1536 1 sys c_obj# system 1 144 1536sql select name from v$datafile where file# in ( 5,1,13);sql select sharing,count(*) from dba_objects group by sharing;sharing count(*)- -metadata link 84206none 6424object link 147可以看到pdb中大部分的對象其實是metadata link 和objec
28、t link 1* select object_name,object_type,sharing from dba_objects where object_name in (c_obj#,obj$,user$,seg$)sql /object_name object_type sharing- - -c_obj# cluster noneobj$ table metadata linkuser$ table metadata linkseg$ table metadata linkc_obj# 的sharing為none,意味著本質(zhì)上 pdb還是有自己獨立的數(shù)據(jù)字典的。sharingvarc
29、har2(13) values:metadata link - if the object is metadata-linked or a metadata link to an object in the rootobject link - if the object is object-linked or an object link to an object in the rootnone - if none of the above appliesoraclelocalhost:$ export oracle_sid=macoraclelocalhost:$ sqlplus / as
30、sysdba / 首先檢查該db是否為cdb container databasesql select name, cdb, con_id from v$database;name cdb con_id- - -mac yes 0并檢查實例名:sql select instance_name, status, con_id from v$instance;select con_id,dbid,name,open_mode,total_size from v$pdbs; con_id dbid name open_mode total_size- - - - - 2 4062078151 pdb
31、$seed read only 283115520 3 1965483069 macp1 read write 288358400 4 1550789943 macp2 mounted 0v$pdbs的數(shù)據(jù)來源于x$con內(nèi)部視圖而x$con的數(shù)據(jù)應當主要來源是控制文件controlfile中的pluggable database records部分:面的測試可以證明v$pdbs的數(shù)據(jù)來源于控制文件,但是 total_size需要open pluggable db后才能獲得sql startup mount;oracle instance started.ql select con_id,dbid,name,open_mode,total_size from v$pdbs; con_id dbid name open_mode total_size- - - - - 2 4062078151 pdb$seed mounted 0 3 1965483069 macp1 mounted 0 4 1550789943 macp2 mounted sql alter pluggable database macp1 open;alter plug
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版酒吧場地租賃及節(jié)日主題裝飾合同3篇
- 2025年消防應急疏散演練服務補充協(xié)議3篇
- 2025年上半年鄂爾多斯公安局警航支隊后勤保障中心招考特警隊員易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧省鞍山市面向"雙一流"建設高校招聘2025年上半年應屆畢業(yè)生第二批重點基礎提升(共500題)附帶答案詳解-1
- 2025年環(huán)保項目投資合同協(xié)議(全新版)3篇
- 2025年上半年遼寧朝陽師范高等??茖W校招聘博士研究生8人重點基礎提升(共500題)附帶答案詳解-1
- 2025年上半年貴州黔西南普安縣招聘事業(yè)單位新增人員246人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年貴州黔東南從江縣從大學生志愿服務西部志愿者中招聘事業(yè)單位人員擬聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年貴州遵義市道真縣事業(yè)單位招聘三支一扶人員5人重點基礎提升(共500題)附帶答案詳解-1
- 2025年上半年貴州省遵義市直事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- MOOC 電工學(電氣工程學概論)-天津大學 中國大學慕課答案
- 2019級水電站動力設備專業(yè)三年制人才培養(yǎng)方案
- 室內(nèi)裝飾裝修施工組織設計方案
- 洗浴中心活動方案
- 送電線路工程施工流程及組織措施
- 肝素誘導的血小板減少癥培訓課件
- 韓國文化特征課件
- 抖音認證承諾函
- 清潔劑知識培訓課件
- 新技術(shù)知識及軍事應用教案
- 高等數(shù)學(第二版)
評論
0/150
提交評論