实验目的:
将源库TTS表空间数据,快速迁移到目标数据库;
实验环境说明:
源 库:11.2.0.4.0 PLATFORM_NAME:Linux x86 64-bit compatible: 11.2.0.4.0
目标库:11.2.0.4.0 PLATFORM_NAME:Microsoft Windows x86 64-bit compatible: 11.2.0.4.0
源 库
创建测试数据;
create tablespace tts datafile '/u01/app/oracle/oradata/orcl/tts01.dbf' size 1M;
create user tts identified by tts default tablespace tts;
grant connect,resource,dba to tts;
conn tts/tts
create table t1 as select level as id from dual connect by level<=10;
1:源库和目标库,查看操作系统平台
Task 1: Determine if Platforms are Supported and Determine Endianness
SELECT d.PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
The following is the query result from the source platform:
PLATFORM_NAME ENDIAN_FORMAT
------------------------------------ --------------
Linux x86 64-bit Little
The following is the result from the destination platform:
PLATFORM_NAME ENDIAN_FORMAT
------------------------------------ --------------
Microsoft Windows x86 64-bit Little
2:源库,查看准备传输表空间是否自包含
Task 2: Pick a Self-Contained Set of Tablespaces
SQL>
EXECUTE SYS.DBMS_TTS.TRANSPORT_SET_CHECK('tts,', TRUE);
PL/SQL procedure successfully completed.
SQL>
SELECT * FROM SYS.TRANSPORT_SET_VIOLATIONS;
no rows selected
3:源库,准备元数据和数据文件
Task 3: Generate a Transportable Tablespace Set
SQL> ALTER TABLESPACE tts READ
ONLY
;
SQL> create directory data1_pump_dir as '/home/oracle/test';
SQL> grant read,write on directory data1_pump_dir to tts;
---select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
---alter tablespace tts read write;
[oracle@chen test]$
expdp system/oracle dumpfile=tts.dmp directory=data1_pump_dir transport_tablespaces=tts transport_full_check=y logfile=tts.log
Export: Release 11.2.0.4.0 - Production on Mon Jul 10 15:13:00 2017
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_TRANSPORTABLE_01": system/******** dumpfile=tts.dmp directory=data1_pump_dir transport_tablespaces=tts transport_full_check=y logfile=tts.log
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
/home/oracle/test/tts.dmp
******************************************************************************
Datafiles required for transportable tablespace TTS:
/u01/app/oracle/oradata/orcl/tts01.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Mon Jul 10 15:13:59 2017 elapsed 0 00:00:53
---TRANSPORT_FULL_CHECK
---该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
4:将元数据和数据文件上传到目标数据库上;
D:\>cd BACKUP\test
D:\BACKUP\test 的目录
2017/07/10 15:13 90,112 tts.dmp
2017/07/10 15:13 1,205 tts.log
2017/07/10 15:12 1,056,768 tts01.dbf
5:目标库,查看支持的操作系统平台信息
SQL> set long 1000
SQL> col platform_name for a36
SQL>
SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_NAME;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ------------------------------------ --------------
6 AIX-Based Systems (64-bit) Big
16 Apple Mac OS Big
21 Apple Mac OS (x86-64) Little
19 HP IA Open VMS Little
15 HP Open VMS Little
5 HP Tru64 UNIX Little
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit) Big
18 IBM Power Based Linux Big
9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
13 Linux x86 64-bit Little
7 Microsoft Windows IA (32-bit) Little
8 Microsoft Windows IA (64-bit) Little
12 Microsoft Windows x86 64-bit Little
17 Solaris Operating System (x86) Little
20 Solaris Operating System (x86-64) Little
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
20 rows selected.
6:目标库,创建目录和用户
创建用户及directory:
SQL> create directory trans as 'D:\BACKUP\test';
SQL> grant read,write on directory trans to public;
SQL> create user trans_user identified by trans;
SQL> grant connect,resource to trans_user;
7:目标库rman 转换数据文件适应当前操作系统平台:
D:\>rman target sys/oracle
恢复管理器: Release 11.2.0.4.0 - Production on 星期一 7月 10 15:29:45 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: CHENJCH (DBID=579646690)
RMAN>
convert datafile 'D:\BACKUP\test\tts01.dbf' to platform='Microsoft Windows
x86 64-bit' from platform='Linux x86 64-bit' db_file_name_convert='D:\BACKUP\te
st\tts01.dbf','D:\app\Administrator\oradata\chenjch\tts01.dbf';
启动 conversion at target 于 10-7月 -17
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=69 设备类型=DISK
通道 ORA_DISK_1: 启动数据文件转换
输入文件名=D:\BACKUP\TEST\TTS01.DBF
已转换的数据文件 = D:\APP\ADMINISTRATOR\ORADATA\CHENJCH\TTS01.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
完成 conversion at target 于 10-7月 -17
D:\>cd D:\app\Administrator\oradata\chenjch
D:\app\Administrator\oradata\chenjch>dir
D:\app\Administrator\oradata\chenjch 的目录
......
2017/07/10 15:31 1,056,768 TTS01.DBF
......
8:目标库:导入数据
d:\>
impdp dumpfile=tts.dmp logfile=tts.log directory=trans transport_datafiles=D:\app\Administrator\oradata\chenjch\tts01.dbf remap_schema=tts:trans_user
Import: Release 11.2.0.4.0 - Production on 星期一 7月 10 15:35:33 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
用户名: sys/oracle as sysdba
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Produc
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYS"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "SYS"."SYS_IMPORT_TRANSPORTABLE_01": sys/******** AS SYSDBA dumpfile=tts.d
mp logfile=tts.log directory=trans transport_datafiles=D:\app\Administrator\orad
ata\chenjch\tts01.dbf remap_schema=tts:trans_user
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "SYS"."SYS_IMPORT_TRANSPORTABLE_01" 已于 星期一 7月 10 15:35:58 2017 elapsed 0 00:00:12 成功完成
9:目标库:将导入的表空间置为read write
SQL>
select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
STATUS TABLESPACE_NAME
--------- ------------------------------
READ ONLY TTS
SQL>
alter tablespace tts read write;
表空间已更改。
SQL>
select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
STATUS TABLESPACE_NAME
--------- ------------------------------
ONLINE TTS
10:验证数据
SQL> conn trans_user/trans
已连接。
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
T1 TABLE
SQL> select * from t1;
ID
----------
1
2
3
4
5
6
7
8
9
10
已选择10行。
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!