oracle import full,oracle 12c 新特性 Full Transportable Export/Import

本帖最后由 郑全 于 2019-11-8 12:10 编辑

在12c以前,如果要把一个库快速的迁移到另一个平台,一般是使用 exp full=y,但exp full=y 太慢,也可以使用 exp 传输表空间,但exp 传输表空间需要手工去处理用户原数据,比较麻烦

从12c开始,提供了一个新功能,Full Transportable Export/Import  ,结合了 exp full=y和 传输表空间的功能,可以跨平台,也可以跨字节位,只是,要求源端版本至少为 11.2.0.3以上版本,

同时,目标端版本至少为12c以上版本。

下面通过一个实验来验证该功能:

1.环境

源端:windows 10 +12.1.0.2   nocdb orcl

目的端:centos 7.6 +12.1.0.2  cdb pd1

2.准备一点数据

2.1 新建一个表空间

create tablespace tsp_hr datafile 'D:\ORACLE\ORADATA\ORCL\TSP_HR01.DBF' size 10m;

2.2 新建用户

create user hr1 identified by hr1

default tablespace tsp_hr

quota unlimited on tsp_hr;

grant connect,resource to hr1;

grant create tablespace to hr1;

2.3 准备验证数据

SQL> conn hr1/hr1

已连接。

SQL> select * from tabs;

未选定行

SQL> create table bigtab tablespace tsp_hr as select * from all_tables;

表已创建。

SQL> create sequence seq_bigtab ;

序列已创建。

3.创建导出目录

create directory tts as 'd:\oracle';

4.设置除系统外的表空间只读

SQL> alter tablespace example read only;

SQL> alter tablespace users read only;

SQL> alter tablespace tsp_hr read only;

SQL> select tablespace_name ,status from dba_tablespaces;

TABLESPACE_NAME                                              STATUS

------------------------------------------------------------ ------------------

SYSTEM                                                        ONLINE

SYSAUX                                                        ONLINE

UNDOTBS1                                                   ONLINE

TEMP                                                           ONLINE

USERS                                                         READ ONLY

EXAMPLE                                                     READ ONLY

TSP_HR                                                       READ ONLY

5.字节位变换

windows和linux字节位相同,不需要转换

6.启动full transportable tablespace导出,如果源数据库是11gR2,还需要指定 VERSION=12参数

C:\Users\laozheng>expdp system/oracle_4U directory=tts dumpfile=full-tsp.dmp transportable=always full=y logfile=exp.log

Export: Release 12.1.0.2.0 - Production on 星期五 11月 8 11:01:47 2019

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

连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

启动 "SYSTEM"."SYS_EXPORT_FULL_01":  system/******** directory=tts dumpfile=full-tsp.dmp transportable=always full=y logfile=exp.log

正在使用 BLOCKS 方法进行估计...

处理对象类型 DATABASE_EXPORT/PLUGTS_FULL/FULL/PLUGTS_TABLESPACE

处理对象类型 DATABASE_EXPORT/PLUGTS_FULL/PLUGTS_BLK

处理对象类型 DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA

处理对象类型 DATABASE_EXPORT/NORMAL_OPTIONS/TABLE_DATA

处理对象类型 DATABASE_EXPORT/NORMAL_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 8.328 MB

处理对象类型 DATABASE_EXPORT/PRE_SYSTEM_IMPCALLOUT/MARKER

处理对象类型 DATABASE_EXPORT/PRE_INSTANCE_IMPCALLOUT/MARKER

处理对象类型 DATABASE_EXPORT/TABLESPACE

。。。

. . 导出了 "SYS"."NACL$_HOST_EXP"                      6.914 KB       1 行

. . 导出了 "SYS"."NACL$_WALLET_EXP"                        0 KB       0 行

. . 导出了 "WMSYS"."WM$EXP_MAP"                        7.718 KB       3 行

. . 导出了 "SYSTEM"."EXPFULL"                          2.059 MB    3048 行

已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_FULL_01"

******************************************************************************

SYSTEM.SYS_EXPORT_FULL_01 的转储文件集为:

D:\ORACLE\FULL-TSP.DMP

******************************************************************************

可传输表空间 EXAMPLE 所需的数据文件:

D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF

可传输表空间 TSP_HR 所需的数据文件:

D:\ORACLE\ORADATA\ORCL\TSP_HR01.DBF

可传输表空间 USERS 所需的数据文件:

D:\ORACLE\ORADATA\ORCL\USERS01.DBF

作业 "SYSTEM"."SYS_EXPORT_FULL_01" 已经完成, 但是有 2 个错误 (于 星期五 11月 8 11:05:00 2019 elapsed 0 00:03:04 完成)

7.拷贝 数据文件 及 dmp文件 到目标机器

通过ftp 传输

D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF ,

D:\ORACLE\ORADATA\ORCL\TSP_HR01.DBF,

D:\ORACLE\ORADATA\ORCL\USERS01.DBF,

D:\ORACLE\FULL-TSP.DMP

到 目的库 linux 机器上

/home/oracle/oradata/

8.目标库机器创建目录

create directory full_tsp_dir as '/home/oracle/oradata/';

9.导入

[oracle@dbserver oradata]$ impdp system/oracle_4U@192.168.133.120:1521/pdb1 directory=full_tsp_dir dumpfile=FULL-TSP.DMP transport_datafiles='/home/oracle/oradata/USERS01.DBF','/home/oracle/oradata/TSP_HR01.DBF','/home/oracle/oradata/EXAMPLE01.DBF'

10.验证

[oracle@dbserver oradata]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on Fri Nov 8 11:30:02 2019

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

SQL> conn system/oracle_4U@192.168.133.120:1521/pdb1

Connected.

SQL> select * from v$tablespace;

TS# NAME                           INC BIG FLA ENC     CON_ID

---------- ------------------------------ --- --- --- --- ----------

2 UNDOTBS1                       YES NO  YES              0

0 SYSTEM                         YES NO  YES              3

1 SYSAUX                         YES NO  YES              3

2 TEMP                           NO  NO  YES              3

3 EXAMPLE                        YES NO  YES              3

4 TSP_HR                         YES NO  YES              3

5 USERS                          YES NO  YES              3

7 rows selected.

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS

------------------------------ ---------

SYSTEM                         ONLINE

SYSAUX                         ONLINE

TEMP                           ONLINE

EXAMPLE                        ONLINE

TSP_HR                         ONLINE

USERS                          ONLINE

6 rows selected.

SQL> r

1* select table_name ,tablespace_name from user_tables

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

BIGTAB                         TSP_HR

SQL> select sequence_name from user_sequences;

SEQUENCE_NAME

--------------------------------------------------------------------------------

SEQ_BIGTAB

SQL> select * from session_privs;

PRIVILEGE

----------------------------------------

CREATE SESSION

CREATE TABLESPACE

CREATE TABLE

CREATE CLUSTER

CREATE SEQUENCE

CREATE PROCEDURE

CREATE TRIGGER

CREATE TYPE

CREATE OPERATOR

CREATE INDEXTYPE

SET CONTAINER

11 rows selected.

SQL>

12.修改源端表空间为读写

SQL> alter tablespace example read write;

SQL> alter tablespace users read write;

SQL> alter tablespace tsp_hr read write;

至此,Full transportable export/import  测试完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值