Linux下配置oracle12c创建pdb过程

Oracle12c的安装略过,从我们拿到了一个空的oracle12c数据库说起,我的需求是要把以前oracle11g上面的数据库迁移到oracle12c上面。为了充分利用oralce12c的新特性CDB与PDB。我们根据业务的需求,将相同业务的数据放到一个PDB中,这样我们会在oracle12c的CDB中建立多个PDB。下面是详细的操作步骤:

一.创建表空间

1、在linux目录下创建表空间的目录“/usr/oracle/creditdb/CREDITLOG”

2、在conn /as sysdba下,输入create tablespace TS_CREDITLOG datafile ‘/usr/oracle/creditdb/CREDITLOG/TS_CREDITLOG01.dbf’ size 20M;

Linux下配置oracle12c创建pdb过程_第1张图片
如果出现上图,说明新创建的表空间文件夹没有访问读写权限,需要在root用户下分配目录权限,执行chmod -R 777/usr/oracle/creditdb/CREDITLOG 授权

授权成功后,在执行创建表空间语句,创建成功。

二. 创建PDB

1、输入:create pluggable database pdbcreditlog ADMIN USER creditlog IDENTIFIED BY 123456 default tablespace TS_CREDITLOG;执行时间有些长,需要耐心等待1-2分钟,之后提示创建成功。

2、查看pdb,show pdbs,看见了新创建的PDBCREDITLOG。
Linux下配置oracle12c创建pdb过程_第2张图片

3、开启新创建的pdb,输入:alter pluggable database pdbcreditlog open,并查看openmode的状态由“MOUNTED”变为“READ WRITE”。

三. 用户授权

1、将session切换到当前pdbcreditlog下,输入alter session set container=pdbcreditlog。

2、授权creditlog用户为dba角色,输入grant dba to creditlog;

3、Commit提交确认。如下图:

四. 配置监听文件

打开服务器端的oracle安装目录找到下面文件。安装目录/usr/oracle/app/product/12.1.0/dbhome_1/network/admin

1、tnsnames.ora文件

在下方新增如下代码:

PDBCREDITLOG =

(DESCRIPTION =

(ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

(CONNECT_DATA =

  (SERVICE_NAME = pdbcreditlog)

)

)

Linux下配置oracle12c创建pdb过程_第3张图片

2、Listener.ora文件

(SID_DESC=

     (GLOBAL_DBNAME=pdbcreditlog)

     (SID_NAME=pdbcreditlog)

   )

Linux下配置oracle12c创建pdb过程_第4张图片

3、sqlnet.ora文件

查看是否有这个文件,如果没有手动加上这个文件,

并添加SQLNET.ALLOWED_LOGON_VERSION=8代码行。

五. 测试链接

1、测试命令端是否能链接成功

2、测试PL/SQL developer是否能够链接成功

3、测试jdbc是否能够链接成功

jdbc:oracle:thin:@//10.0.0.133:1521/pdbcreditlog

六. 数据备份还原

1、dmp文件夹授权,输入chmod -R 777 /data/web/credit-dmp

2、pdb用户登录pdb,conn CREDITLOG/123456@PDBCREDITLOG

3、查询并创建目录

select * from dba_directories;

create or replace directory DB_BAK as ‘/data/web/credit-dmp’

4、Sys用户登录pdb,conn sys/P@ssw0rd@PDBCREDITLOG

5、为用户授权目录读写权限grant read,write on directory DB_BAK to CREDITLOG

6、执行impdp命令

对于源库和目标库用户及表空间名称相同的执行如下语句:

impdp CREDITPLATFORM/123456@PDBCREDITPLATFORMDIRECTORY=DB_BAK DUMPFILE=CREDITPLATFORM_NEW20160420.dmp full=y table_exists_action=replace

对于源库和目标库用户及表空间名称不相同的执行如下语句:

impdp CREDITPLATFORM/123456@PDBCREDITPLATFORMDIRECTORY=DB_BAK DUMPFILE=CREDITPLATFORM_NEW20160420.dmp REMAP_SCHEMA=CREDITPLATFORM_NEW:CREDITPLATFORM remap_tablespace=TS_CREDITPLATFORM_NEW:TS_CREDITPLATFORM full=y

原文转自https://jingyan.baidu.com/article/f71d6037ac90101ab641d1d1.html

你可能感兴趣的:(oracle12c,pdb,oracle12c,pdb)