對於一個習慣使用oracle11g的數據庫管理員,開始接觸安裝oracle12c後,第一個問題就是怎麼連基本的用戶都建立不了,連DBA權限都無論用。html
原來oracle11的DB變爲了CDB(Container Database)和PDB(Pluggable Database)兩個概念,CDB就至關於oracle11之前建立的數據庫,而PDB則是oracle12引入的插接式數據庫,可建立多個掛載在CDB下,這就意味着你沒法在CDB中建立普通用戶,所建立的用戶前必須加上「C##」來顯示這是CDB級的用戶才能成功建立,java
例:create user C##joker identified by "joker"; ----「C##joker」爲用戶名,「joker」爲密碼linux
因此對於用慣了oracle11的同志來講,要建立普通用戶須要在PDB環境中這麼添加。sql
在安裝好oracle12後,數據庫
首先以 SYS as SYSDBA@ORCL登陸,至關於進入CDB;windows
而後,建立PDB掛載在CDB下:session
在windows中,直接進入「Database Configuration Assistant」添加PDB;oracle
在Linux中建立PDB,參考以下:ide
http://jingyan.baidu.com/article/f71d6037ac90101ab641d1d1.htmlspa
可以使用以下sql查詢你所建立的PDB:
select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs;----查詢pdb有哪些
以後,在CDB環境中進入PDB,sql以下:
alter session set container=JOKERPDB;---開啓PDB數據庫鏈接 alter pluggable database JOKERPDB open;----打開PDB數據庫
以後,手動配置PDB的tnsnames.ora
JOKERPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JOKERPDB) ) )
以後,進入tns配好的PDB數據庫,並在PDB下建立PDB用戶,sql以下:
create user JOKER identified by "joker"; grant DBA to JOKER;---給用戶DBA權限;友情提示:權限大小酌情
以後,給用戶建立表空間,sql以下:
create tablespace JOKERSPACE logging datafile 'D:/oracle12/oradata/joker/datafile/JOKER.dbf' size 524288000 autoextend on next 104857600 maxsize 32767M extent management local; alter user JOKER default tablespace JOKERSPACE;---用戶綁定表空間 alter user JOKER quota unlimited on JOKERSPACE;---限制表空間,unlimited表示不限制
最後附上導入DMP數據:
windows在cmd中執行,linux用"su oracle"執行 imp username/password@pdb file=D:/joker.dmp fromuser=JOKER touser=JOKER log=imp.log buffer=100000000 username/password@pdb----依次是PDB用戶名,密碼,數據庫名 log----------------------生成導入日誌,地址本身定義 buffer-------------------緩衝區,防止數據過大
Oracle12C 鏈接數據庫 "jdbc:oracle:thin:@localhost:1521/JOKERPDB";(端口號跟斜線,再也不是冒號)