Oracle 12c 如何在 PDB 中添加 SCOTT 模式(数据泵方式)
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 模式(数据泵方式)的更多相关文章
- Oracle 12c 如何在 PDB 中添加 SCOTT 模式(手工方式)
Oracle 12c 建库后,没有 scott 模式,本篇使用手工脚本方式,在12c版本中创建 scott 模式及相关表. 目录 1. PDB中创建用户 2. PDB中用户授权 3. PDB中创建表空 ...
- 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 用户 ...
- Oracle 12c在SQL Devolper中添加cdb和pdb连接
Oracle 12c如果按默认流程安装的话会有一个叫orcl的cdb容器和一个叫pdborcld的pdb容器 一.连接名为orcl的cdb容器 连接名:localorcl 用户名:SYS 口令:Ora ...
- Oracle 12c在PDB中创建scott/tiger
scott/tiger一直以来是oracle数据的默认用户,但是跟之前的版本相比,Oracle 12c引入了PDB管理,所以要麻烦一些 下面假设管理员为SYS/Oracle12csys,在orcl实例 ...
- 如何在Eclipse中添加Tomcat的jar包
原文:如何在Eclipse中添加Tomcat的jar包 右键项目工程,点击Java Build Path 点击Add Library,选择Server Runtime 选择Tomcat版本 此时就看到 ...
- 如何在Eclipse中添加Servlet-api.jar的方法
方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建:将你的tomcat目录下的common/lib/servlet.jar加进来.如果你建立了一个 ...
- 如何在niosII中添加i2c外设_winday_新浪博客
如何在niosII中添加i2c外设_winday_新浪博客 如何在niosII中添加i2c外设 winday 摘要:本文说明了如何在niosII添加第三方i2c外设,以供参考. 由于本人使用的Alte ...
- Oracle 12C CDB、PDB常用管理命令
Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs --查看所有pdbselect name,open_mode from v$pdbs; ...
- DataGridView 中添加CheckBox和常用处理方式 .
DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataG ...
随机推荐
- Matplotlib数据可视化(1):入门介绍
1 matplot入门指南¶ matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来 ...
- ORB-SLAM2 论文&代码学习 ——Tracking 线程
本文要点: ORB-SLAM2 Tracking 线程 论文内容介绍 ORB-SLAM2 Tracking 线程 代码结构介绍 写在前面 上一篇文章中我们已经对 ORB-SLAM2 系统有了一个概览性 ...
- 无线网络WPA加密算法基础
2013-11-13 23:08 (分类:网络安全) 对无线没什么认识,总听说有人蹭网,还有卖蹭网器的,于是补充一下知识. 无线加密有两类:WEP WAP,目前采用WEP加密的非常少了,WEP应该只是 ...
- Angular常用命令
一. Angular常用命令 1. ng new 文件夹名 (新建项目,选择y使用路由) 2. ng serve --open (默认浏览器运行项目) 3. ng serve --port 6060 ...
- Error serializing object:序列化对象时出错
序列化对象时出错 :Error serializing object. Error serializing object. Cause: java.io.NotSerializableExceptio ...
- 学习笔记——python(继承)
学习笔记(Python继承) 有几种叫法(父类-子类.基类-派生类)先拿代码演示一下: class father: def work(self): print("work>>&g ...
- Redis 为什么这么快?
1. 纯内存操作,肯定快 数据存储在内存中,读取的时候不需要进行磁盘的 IO 2. 单线程,无锁竞争损耗 单线程保证了系统没有线程的上下文切换 使用单线程,可以避免不必要的上下文切换和竞争条件,没有多 ...
- linux下tar命令解压到指定的目录
linux下tar命令解压到指定的目录 : #tar zxvf xx.tar.gz -C /xx//把根目录下的xx.tar.gz解压到/xx/下,前提要保证存在/xx这个目录 这个和cp命令有点不同 ...
- C#实现把String字符串转化为SQL语句中的In后接的参数
实现把String字符串转化为In后可用参数代码: public string StringToList(string aa) { string bb1 = "("; if (!s ...
- 有关鼠标在页面body获取点击事件的问题
首先说到这个问题我们先来谈谈body的高度问题,关于body高度的设置. 有些小伙伴可能就会说这个是多么的简单,直接进行如下操作不就可以了 body{ height:100%; } 这个设置虽然是想法 ...