標籤:
Oracle12c 中,增加了可插接資料庫的概念,即PDB,允許一個資料庫容器(CDB)承載多個可插拔資料庫(PDB)。CDB全稱為 ContainerDatabase,中文翻譯為資料庫容器,PDB全稱為PluggableDatabase,即可插拔資料庫。下面是官方文檔關於CDB與PDB的關係圖。
在CDB中,只能建立以c##或C##開頭的使用者,如果不加c##,則會提示錯誤“ORA-65096:公用使用者名稱或角色名稱無效”,只有在PDB資料庫中才能建立我們習慣性命名的使用者,oracle稱之為Local User,前者稱之為Common User。本文主要解決如何建立DPB使用者並設定預設資料表空間全過程。
1、建立PDB
在12C安裝時,會提示你是否安裝可插接式資料庫,如所示:
該項為預設安裝,如果當時沒有安裝,可以用以下語句建立:
CREATE pluggable DATABASE pdborcl admin USER pdbadmin identified BY Learning roles=(connect)file_name_convert= (‘D:\App\Oracle\oradata\orcl\pdbseed‘, ‘D:\App\Oracle\oradata\orcl\pdborcl‘);
其中pdborcl是我建立的可插接式資料庫,pdbadmin是建立的使用者,Learning是密碼。file_name_convert換成相應目錄。至此PDB建立成功。
2、啟動PDB資料庫
1)開啟SQL Plus, 以system使用者登入,注意輸入密碼後面加入“as sysdba”;
這是如果建立普通使用者則會提示“ORA-65096:公用使用者名稱或角色名稱無效”。
輸入
show con_name
顯示如:
可以看出當前容器為CDB。
2)輸入以下代碼,啟動PDB資料庫:
alter session set container=pdborcl; startup;
3)修改tnsnames.ora:
在"D:\App\Oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN"目錄下,用記事本開啟tnsnames.ora,在最後添加
ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = PDBORCL)))
儲存後退出。
3、pl/sql developer登陸
這裡要注意Database的選擇。
4、建立預設資料表空間
1)用dba賬戶登陸
2)建立資料表空間,並修改使用者預設資料表空間
1 -- 建立臨時空間 2 create temporary tablespace pdbadmin_temp 3 tempfile ‘D:\App\Oracle\oradata\orcl\pdborcl\pdbadmin_temp01.dbf‘ 4 size 32m 5 autoextend on 6 next 32m MAXSIZE unlimited 7 extent management local; 8 9 10 -- 建立資料資料表空間11 create tablespace pdbadmin_data12 logging13 datafile ‘D:\App\Oracle\oradata\orcl\pdborcl\pdbadmin_data01.dbf‘14 size 10240m15 autoextend on16 next 100m MAXSIZE unlimited 17 extent management local;18 19 -- 更改使用者預設資料表空間20 alter user pdbadmin default tablespace pdbadmin_data temporary tablespace pdbadmin_temp;
參考資料:
1、http://www.cnblogs.com/kerrycode/p/3386917.html
2、http://blog.csdn.net/yuguanquan1990/article/details/17495331
Oracle 12c建立PDB使用者並設定預設資料表空間