您的位置:首页 > 数据库 > Oracle

oracle12c 实战 创建PDB用户 创建表空间 导入DMP数据

2016-06-14 00:00 1751 查看
摘要: 对于一个习惯使用oracle11g的数据库管理员,开始接触安装oracle12c后,所要遇到的问题。

对于一个习惯使用oracle11g的数据库管理员,开始接触安装oracle12c后,第一个问题就是怎么连基本的用户都创建不了,连DBA权限都不管用。



原来oracle11的DB变为了CDB(Container Database)和PDB(Pluggable Database)两个概念,CDB就相当于oracle11以前创建的数据库,而PDB则是oracle12引入的插接式数据库,可创建多个挂载在CDB下,这就意味着你无法在CDB中创建普通用户,所创建的用户前必须加上“C##”来显示这是CDB级的用户才能成功创建,



例:create user C##joker identified by "joker"; ----“C##joker”为用户名,“joker”为密码

所以对于用惯了oracle11的同志来说,要创建普通用户需要在PDB环境中这么添加。

在安装好oracle12后,

首先以 SYS as SYSDBA@ORCL登录,相当于进入CDB;

然后,创建PDB挂载在CDB下:

在windows中,直接进入“Database Configuration Assistant”添加PDB;



在Linux中创建PDB,参考如下:

http://jingyan.baidu.com/article/f71d6037ac90101ab641d1d1.html

可使用如下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";(端口号跟斜线,不再是冒号)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: