程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle12c數據庫CDB用戶創建與表空間分配的問題

Oracle12c數據庫CDB用戶創建與表空間分配的問題

編輯:Oracle教程

Oracle12c數據庫CDB用戶創建與表空間分配的問題


 

Oracle12c中,增加了可插接數據庫的概念,即PDB,允許一個數據庫容器(CDB)承載多個可插

拔數據庫(PDB)。CDB全稱為ContainerDatabase,中文翻譯為數據庫容器,PDB全稱為Plugga

bleDatabase,即可插拔數據庫。在ORACLE 12C之前,實例與數據庫是一對一或多對一關系

(RAC):即一個實例只能與一個數據庫相關聯,數據庫可以被多個實例所加載。而實例與數據庫

不可能是一對多的關系。當進入ORACLE 12C後,實例與數據庫可以是一對多的關系。下面是官方

文檔關於CDB與PDB的關系圖。

 

對於PDB確實給程序員帶來了不少好處,不過這也給管理者帶來了一些不同。首先,容器數據庫創建

新用戶並分配表空間時必須在沒有PDB的情況下進行或PDB與CDB有相同的表空間的時候進行,否則

會報錯。如果是在PDB與CDB有相同表空間的情況下給CDB用戶分配表空間,則會分配CDB的表空間

給用戶PDB的表空間並不受影響。而且,CDB用戶必須以‘C##’為開頭,否則創建不了,但是在Oracle Enterprise Manager下我看不見我

自己創建的角色,在sql-plus窗口下也看不到剛剛創建的用戶,登陸的時候只有以dba身份才能登得上去

,不知道是不是我自己電腦的問題還是。以下是創建’c##’開頭的用戶

 

創建用戶c##admin,並未該用戶賦予了dba權限,連接。這是在沒有PDB的情況下創建用戶

“C##ADMIN”並分配”USERS‘表空間。我們再次以system身份連接數據庫,然後在容器數

據庫(CDB)中創建表空間test,注意,這時插接式數據庫(PDB)中沒有test這個表空間,

然後在容器數據庫(CDB)創建新的用戶c##test並分配test表空間給它作為他的默認表空間

。由於在PDBORCL中並沒有表空間,所以這裡報錯了。如下圖所示:

\

 

----切換到PDB “PDBORCL”

SQL> alter sessionset container = pdborcl;

會話已更改。

SQL> createtablespace test --創建表空間test

2 datafile 'f:\oracledata\test.dbf'

3 size1m autoextend on;

表空間已創建。

--由於現在不論是在CDB好是在PDB中都有了表空間test了,所以創建用戶並分配表空

間成功了。

SQL> createuser c##test

2 identified by test

3 default tablespace test

4 temporary tablespace temp;

用戶已創建。

SQL>

\

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved