12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb做数据泵导入导出时和传统的数据库有少许不同。
1,需要为pdb添加tansnames
2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/pwd@tnsname
数据泵导出
1、查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl
1
2
|
[oracle@
test
admin]$
echo
$ORACLE_SID
[oracle@
test
admin]orcl
|
登录cdb,查看pdb,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs
CON_ID CON_NAME
OPEN
MODE RESTRICTED
---------- ------------------------------ ---------- ----------
PDB$SEED
READ
ONLY
NO
PDBORCL MOUNTED
SQL>
alter
pluggable
database
all
open
;
Pluggable
database
altered.
SQL> show pdbs
CON_ID CON_NAME
OPEN
MODE RESTRICTED
---------- ------------------------------ ---------- ----------
PDB$SEED
READ
ONLY
NO
PDBORCL
READ
WRITE
NO
|
切换到pdborcl
1
2
3
4
5
|
SQL>
alter
session
set
container=pdborcl;
Session altered.
SQL>
|
2、查看示例用户scott,以后的schema级别导入导出就使用该用户的数据。
1
2
3
4
5
6
7
8
|
SQL>
select
owner, table_name
from
dba_tables
where
owner=
'SCOTT'
;
OWNER TABLE_NAME
------------------------------ ----------------------------------------
SCOTT SALGRADE
SCOTT BONUS
SCOTT EMP
SCOTT DEPT
|
3、单独创建一个dba权限的数据泵用户
1
2
|
SQL>
grant
dba
to
dp identified
by
dp;
Grant
succeeded.
|
4、创建一个数据泵目录dp_dir,路径为oracle家目录
SQL> create or replace directory dp_dir as '/home/oracle'; Directory created. SQL> exit
5、授予dp用户在数据泵路径有读写权限
(如果是dba权限的这一步可以省略,为了试验的完整性这里保留)
1
2
|
SQL>
grant
read
,write
on
directory dp_dir
to
dp;
Grant
succeeded.
|
6、设置tnsnames.ora,增加pdborocl。SERVICE_NAME为pdb的实例名,这里为pdborcl
[oracle@xqzt admin]$ pwd /data/app/oracle/product/12.1.0/dbhome_1/network/admin [oracle@xqzt admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /data/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =pdborcl) ) )
7、测试tnsnames.ora的有效性,如果返回OK (0 msec)表示配置成功
[oracle@xqzt admin]$ tnsping pdborcl TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 10-DEC-2015 09:10:34 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: /data/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =pdborcl))) OK (0 msec)
8、数据泵导出
-
-
用户名密码为dp/dp,并且通过tnsnames指向pdborcl
-
数据泵目录为:dp_dir, OS路径是/home/oracle
-
导出文件为:/home/oracle/scott_pdborcl.dmp
-
导出日志为:/home/oracle/scott_pdborcl.log
-
导出模式为scheme,也可以理解为用户:scott
-
[oracle@xqzt ~]$ expdp dp/dp@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl.log schemas=scott Export: Release 12.1.0.2.0 - Production on Thu Dec 10 09:32:05 2015Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options Starting "DP"."SYS_EXPORT_SCHEMA_01": dp/********@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl.log schemas=scott Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 192 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 Processing object type SCHEMA_EXPORT/STATISTICS/MARKER . . exported "SCOTT"."DEPT" 6.023 KB 4 rows . . exported "SCOTT"."EMP" 8.773 KB 14 rows . . exported "SCOTT"."SALGRADE" 6.023 KB 10 rows . . exported "SCOTT"."BONUS" 0 KB 0 rows Master table "DP"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for DP.SYS_EXPORT_SCHEMA_01 is: /home/oracle/scott_pdborcl.dmp Job "DP"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Dec 10 09:32:29 2015 elapsed 0 00:00:21 [oracle@xqzt ~]$
10、查看导出文件
[oracle@xqzt ~]$ ls -l scott_pdborcl.dmp scott_pdborcl.log -rw-r----- 1 oracle oinstall 356352 12月 10 09:32 scott_pdborcl.dmp -rw-r--r-- 1 oracle oinstall 1960 12月 10 09:32 scott_pdborcl.log
11、为了测试导出文件是否能够正常导入,我们先删除pdborcl的scott用户
SQL> select count(*) from scott.DEPT; COUNT(*) ---------- SQL> drop user scott cascade ; User dropped. SQL>
此时访问该用户的表已经不存在了
SQL> select count(*) from scott.DEPT; select count(*) from scott.DEPT *ERROR at line 1: ORA-00942: table or view does not exist
12、 导入scott用户
[oracle@xqzt ~]$ impdp dp/dp@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl_imp.log schemas=scott Import: Release 12.1.0.2.0 - Production on Thu Dec 10 09:39:02 2015Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options Master table "DP"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded Starting "DP"."SYS_IMPORT_SCHEMA_01": dp/********@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl_imp.log schemas=scott 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/TABLE_DATA . . imported "SCOTT"."DEPT" 6.023 KB 4 rows . . imported "SCOTT"."EMP" 8.773 KB 14 rows . . imported "SCOTT"."SALGRADE" 6.023 KB 10 rows . . imported "SCOTT"."BONUS" 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 Processing object type SCHEMA_EXPORT/STATISTICS/MARKER Job "DP"."SYS_IMPORT_SCHEMA_01" successfully completed at Thu Dec 10 09:39:06 2015 elapsed 0 00:00:04 [oracle@xqzt ~]$
13、 测试导入结果
SQL> select count(*) from scott.DEPT; COUNT(*) ---------- 4
导入成功!
本文转自lq201151CTO博客,原文链接:http://blog.51cto.com/liuqun/2052654 ,如需转载请自行联系原作者