Oracle 12c 建库后,没有 scott 模式,本篇使用数据泵方式,在12c版本之前数据库中 expdp 导出 scott 模式,并连接 12c 的 pdb 进行 impdp 导入。

目录

1. 在11g版本中数据泵导出

  1.1 创建 directory 目录

  1.2 数据泵导出

  1.3 确认scott用户及权限信息

2. 在12c版本中数据泵导入

  2.1 配置TNSNAMES.ora

  2.2 测试连接PDB

  2.3 执行scott用户及权限信息

  2.4 创建 directory 目录

  2.5 数据泵导入

  2.6 验证数据

1. 在11g版本中数据泵导出

1.1 创建 directory 目录

SQL> select * from dba_directories;

SQL> create directory backup_dir as '/u01/app/oracle/backup';

Directory created.

SQL> grant read,write on directory backup_dir to system;

Grant succeeded.

1.2 数据泵导出

[oracle@henry ~]$ expdp system/oracle directory=backup_dir dumpfile=expdp_scott.dmp logfile=expdp_scott.log schemas=scott

Export: Release 11.2.0.4.0 - Production on Fri May 24 19:53:16 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** directory=backup_dir dumpfile=expdp_scott.dmp logfile=expdp_scott.log schemas=scott
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 384 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."A" 5.460 KB 6 rows
. . exported "SCOTT"."ABC" 5 KB 1 rows
. . exported "SCOTT"."DEPT" 5.929 KB 4 rows
. . exported "SCOTT"."EMP" 8.562 KB 14 rows
. . exported "SCOTT"."SALGRADE" 5.859 KB 5 rows
. . exported "SCOTT"."TESTEMP" 8.648 KB 19 rows
. . exported "SCOTT"."BONUS" 0 KB 0 rows
. . exported "SCOTT"."TBA" 0 KB 0 rows
. . exported "SCOTT"."TBS_C" 0 KB 0 rows
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/u01/app/oracle/backup/expdp_scott.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 19:54:28

1.3 确认scott用户及权限信息

用户(模式)导出,要事先知道该用户(模式)在原来数据库中所涉及的表空间、系统权限、对象权限、角色权限等。我们可以通过调用 dbms.metadata 包来获得相关资源。

SQL> select dbms_metadata.get_ddl('USER','SCOTT') from dual;

CREATE USER "SCOTT" IDENTIFIED BY VALUES 'S:F2071AA98BBC32C96BBADA4D194880F30491BAD413C402C5887BF4439B7C;F894844C34402B67'
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP" SQL> select dbms_metadata.get_granted_ddl('OBJECT_GRANT','SCOTT') from dual;
ERROR:
ORA-31608: specified object of type OBJECT_GRANT not found
ORA-06512: at "SYS.DBMS_METADATA", line 5088
ORA-06512: at "SYS.DBMS_METADATA", line 7737
ORA-06512: at line 1 SQL> select dbms_metadata.get_granted_ddl('ROLE_GRANT','SCOTT') from dual; GRANT "CONNECT" TO "SCOTT"
GRANT "RESOURCE" TO "SCOTT"
GRANT "DBA" TO "SCOTT" SQL> select dbms_metadata.get_granted_ddl('SYSTEM_GRANT','SCOTT') from dual; GRANT UNLIMITED TABLESPACE TO "SCOTT" SQL> select dbms_metadata.get_ddl('TABLESPACE','SCOTT') from dual;
ERROR:
ORA-31603: object "SCOTT" of type TABLESPACE not found in schema "SYS"
ORA-06512: at "SYS.DBMS_METADATA", line 5088
ORA-06512: at "SYS.DBMS_METADATA", line 7589
ORA-06512: at line 1

相关报错说明该用户在原来数据库中对应的元数据不存在,直接忽略。将上面的获取到的语句进行整理备用。最后,将导出的文件,拷贝至12c所在的服务器(实验环境的具体路径和11g所在的服务器是一致的)。

2. 在12c版本中数据泵导入

2.1 配置TNSNAMES.ora

在12c的PDB中普通用户无法像非CDB那样直接通过 conn 互切用户(比如在一个PDB中,普通henry用户无法直接切换到其他普通用户),默认在PDB中 sys 用户也无法直接切换到 henry 用户,例如:

SQL> alter session set container=pdb1;

Session altered.

SQL> select username from dba_users where username='HENRY';

USERNAME
------------------------------
HENRY SQL> show user;
USER is "SYS"
SQL> show con_name; CON_NAME
------------------------------
PDB1
SQL> conn henry/henry
ERROR:
ORA-01017: invalid username/password; logon denied Warning: You are no longer connected to ORACLE.

必须配置 tnsnames.ora 连接字符串别名,并通过 sqlplus 命令进行连接。

[oracle@henry ~]$ cd $ORACLE_HOME/network/admin/
[oracle@henry admin]$ vim tnsnames.ora

在tnsnames.ora文件中添加连接字符串

PDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = henry)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PDB1)
)
)

2.2 测试连接PDB

查看当前CDB中的PDB

SQL> show pdbs

    CON_ID CON_NAME     OPEN MODE  RESTRICTED
---------- ------------ ---------- ----------
2    PDB$SEED READ ONLY NO
3    PDB1 READ WRITE NO

当前CDB中只有一个用户PDB:PDB1

因为已经添加过连接字符串,现在尝试连接PDB1

[oracle@henry ~]$ sqlplus henry/henry@pdb1

SQL*Plus: Release 12.2.0.1.0 Production on Fri May 24 21:06:36 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Fri May 24 2019 21:04:59 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> show user;
USER is "HENRY"
SQL> show con_name CON_NAME
------------------------------
PDB1

测试连接成功。

2.3 执行scott用户及权限信息

该语句信息在1.3小节通过 dbms.metadata 包得到。

CREATE USER "SCOTT" IDENTIFIED BY VALUES 'S:F2071AA98BBC32C96BBADA4D194880F30491BAD413C402C5887BF4439B7C;F894844C34402B67'
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"; GRANT "CONNECT" TO "SCOTT";
GRANT "RESOURCE" TO "SCOTT";
GRANT "DBA" TO "SCOTT";
GRANT UNLIMITED TABLESPACE TO "SCOTT"

2.4 创建 directory 目录

[oracle@henry ~]$ mkdir /u01/app/oracle/backup

12c数据库所在的服务器具体目录路径和11g是一样的(具体路径根据实际情况),backup目录下放着11g数据泵导出来的 scott 模式的dmp文件。

[oracle@henry ~]$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri May 24 20:06:25 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> show con_name; CON_NAME
------------------------------
PDB1 SQL> select * from dba_directories; SQL> create directory backup_dir as '/u01/app/oracle/backup'; Directory created. SQL> grant read,write on directory backup_dir to system; Grant succeeded.

2.5 数据泵导入

[oracle@henry ~]$ impdp system/oracle@pdb1 directory=backup_dir dumpfile=expdp_scott.dmp logfile=impdp_scott.log schemas=scott

Import: Release 12.2.0.1.0 - Production on Fri May 24 20:12:35 2019

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "SYSTEM"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/********@pdb1 directory=backup_dir dumpfile=expdp_scott.dmp logfile=impdp_scott.log schemas=scott
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"SCOTT" already exists Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."A" 5.460 KB 6 rows
. . imported "SCOTT"."ABC" 5 KB 1 rows
. . imported "SCOTT"."DEPT" 5.929 KB 4 rows
. . imported "SCOTT"."EMP" 8.562 KB 14 rows
. . imported "SCOTT"."SALGRADE" 5.859 KB 5 rows
. . imported "SCOTT"."TESTEMP" 8.648 KB 19 rows
. . imported "SCOTT"."BONUS" 0 KB 0 rows
. . imported "SCOTT"."TBA" 0 KB 0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 2 error(s) at Fri May 24 20:13:28 2019 elapsed 0 00:00:44

2.6 验证数据

[oracle@henry ~]$ sqlplus scott/tiger@pdb1

SQL*Plus: Release 12.2.0.1.0 Production on Fri May 24 21:16:54 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Last Successful login time: Fri May 24 2019 21:16:43 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> show user
USER is "SCOTT"
SQL> show con_name CON_NAME
------------------------------
PDB1
SQL> select count(*) from emp; COUNT(*)
----------
14 SQL> select count(*) from dept; COUNT(*)
----------
4

Oracle 12c 如何在 PDB 中添加 SCOTT 模式(数据泵方式)的更多相关文章

  1. Oracle 12c 如何在 PDB 中添加 SCOTT 模式(手工方式)

    Oracle 12c 建库后,没有 scott 模式,本篇使用手工脚本方式,在12c版本中创建 scott 模式及相关表. 目录 1. PDB中创建用户 2. PDB中用户授权 3. PDB中创建表空 ...

  2. Oracle 12c 多租户家族(12c 18c 19c)如何在 PDB 中添加 HR 模式

    Oracle 12c 多租户家族(12c [12.2.0.1].18c [12.2.0.2].19c [12.2.0.3])如何在 PDB 中添加模式:19c (19.3) 手工添加示例 HR 用户 ...

  3. Oracle 12c在SQL Devolper中添加cdb和pdb连接

    Oracle 12c如果按默认流程安装的话会有一个叫orcl的cdb容器和一个叫pdborcld的pdb容器 一.连接名为orcl的cdb容器 连接名:localorcl 用户名:SYS 口令:Ora ...

  4. Oracle 12c在PDB中创建scott/tiger

    scott/tiger一直以来是oracle数据的默认用户,但是跟之前的版本相比,Oracle 12c引入了PDB管理,所以要麻烦一些 下面假设管理员为SYS/Oracle12csys,在orcl实例 ...

  5. 如何在Eclipse中添加Tomcat的jar包

    原文:如何在Eclipse中添加Tomcat的jar包 右键项目工程,点击Java Build Path 点击Add Library,选择Server Runtime 选择Tomcat版本 此时就看到 ...

  6. 如何在Eclipse中添加Servlet-api.jar的方法

    方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建:将你的tomcat目录下的common/lib/servlet.jar加进来.如果你建立了一个 ...

  7. 如何在niosII中添加i2c外设_winday_新浪博客

    如何在niosII中添加i2c外设_winday_新浪博客 如何在niosII中添加i2c外设 winday 摘要:本文说明了如何在niosII添加第三方i2c外设,以供参考. 由于本人使用的Alte ...

  8. Oracle 12C CDB、PDB常用管理命令

    Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs  --查看所有pdbselect name,open_mode from v$pdbs;  ...

  9. DataGridView 中添加CheckBox和常用处理方式 .

    DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataG ...

随机推荐

  1. RFC笔记—IP Version 6 Addressing Architecture

    IP Version 6 Addressing Architecture,RFC4291 It includes the basic formats for the various types of ...

  2. C语言快速排序函数------qsort();

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> ty ...

  3. matplotlib如何画子图

    目录 前言 常用的两种方式 方式一:通过plt的subplot 方式二:通过figure的add_subplot 方式三:通过plt的subplots 如何不规则划分 前言 Matplotlib的可以 ...

  4. Redis的“假事务”与分布式锁

    关注公众号:CoderBuff,回复"redis"获取<Redis5.x入门教程>完整版PDF. <Redis5.x入门教程>目录 第一章 · 准备工作 第 ...

  5. 微信小程序入门笔记-使用云开发(4)

    1.云数据库 一.介绍 云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象.一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数 ...

  6. count(1)比count(*)效率高?

    SELECT COUNT(*) FROM table_name是个再常见不过的统计需求了. 本文带你了解下Mysql的COUNT函数. 一.COUNT函数 关于COUNT函数,在MySQL官网中有详细 ...

  7. 「Flink」使用Managed Keyed State实现计数窗口功能

    先上代码: public class WordCountKeyedState { public static void main(String[] args) throws Exception { S ...

  8. update mysql row (You can't specify target table 'x' for update in FROM clause)

    sql语句(update/delete都会出现此问题) update x set available_material_id = null where id not in (select id fro ...

  9. Mysql 两种引擎的区别

    MyISAM与InnoDB的区别是什么? 1. 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 ...

  10. CF926B Add Points

    一道尚未评定的水题 更好的阅读体验 思路 来分析分析样例: 3 -5 10 5 我们把它升序排列,会得到这个东西↑ 不仔细地观察后可以发现:加一个(0,0)的点显然是最优的 再用脚趾头想想为什么,我们 ...