ORACLE 传输表空间介绍与实验操作
2014-08-27 22:32
525 查看
传输表空间(tansporttablespace)用于将表空间从一个数据库传输到另一个数据库,速度快,相当于直接复制数据文件.传输表空间有以下特性:
1)可以传输一个表空间集合
2)将表空间设置成read-only模式传输或者用RMAN做可传输的表空间
3)字典管理和本地管理的表空间均可传输
4)从9I开始,要传输的表空间的块大小可与目标数据库的标准块大小不同
5)传输表空间比impexp快的多,不需要抽取和加载数据,数据包含在表空间中,用数据泵转换元数据(从11GR1开始,必须要用数据泵转换元数据)
6)从10G开始,可以跨平台传输,视图
限制:
1)源平台与目标平台字符集相同;或者源平台字符集是目标平台字符集的严格子集,并且源数据库兼容性是10.1.0.3
2)要传输的表空间不能与目标数据库表空间重名
3)表空间上有加密的表时不能传输,必须用数据泵导入这些对象,再导入到目标数据库
4)不能传输SYSTEM表空间或sys的对象
5)如果要传输的表空间上的表有TIMESTAMPWITHTIMEZONE的列,则源数据库和目标数据库时区必须相同.
两种方式实现传输表空间:EM或手工.
以下为手工传输步骤:
1.查询V$TRANSPORTABLE_PLATFORM视图确定可转换的平台和大小端
2.检查表空间是否是自包含的
3.在源数据库将表空间置于read-only模式,导出表空间元数据.
4.将数据文件和导出文件复制到目标主机上,如果源平台与目标平台大小端不同,转换表空间
5.可选步骤,将源数据库表空间设置为read/write模式
6.导入表空间到目标数据库
实验,从linux平台迁移到window上:
1.检查源数据库和目标数据库
创建表空间tansport_ts,数据文件tans01.dbf
创建一个表,插入数据
在源数据库和目标数据库上执行以下查询
目标数据库:
源数据库:
发现linux和windows大小端相同,不需要转换.
2.检查表空间是否是自包含的
自包含指表空间上的对象不依赖对其他表空间的对象.
执行以下过程检查表空间tansport_ts是否是自包含的:
EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK('tansport_ts',TRUE);
执行完后执行以下查询:
为空说明表空间不依赖于其它表空间.
3.将表空间tansport_ts设置为read-only,导出表空间元数据
导出表空间元数据:
expdpsystemdumpfile=expdat.dmpdirectory=data_pump_dirtransport_tablespaces=tansport_ts
4.将表空间拷到目标主机上
表空间对应的数据文件为/oracle/oradata/orcl/tans01.dbf.
把表空间拷到目标主机的DATA_PUMP_DIR
可以看到表空间数据文件和相应的元数据已经复制到目标主机上.
如果源和目标主机大小端不同,需要用RMAN转换
例如:
5.导入表空间
用数据泵将表dump文件和数据文件导入到目标数据库中
注意:如果用高版本的数据泵导入低版本的DUMP,要加上version参数,否则导入出错.version可以查询源数据库的v$version视图得到.
验证导入的表:
自从导入成功.
1)可以传输一个表空间集合
2)将表空间设置成read-only模式传输或者用RMAN做可传输的表空间
3)字典管理和本地管理的表空间均可传输
4)从9I开始,要传输的表空间的块大小可与目标数据库的标准块大小不同
5)传输表空间比impexp快的多,不需要抽取和加载数据,数据包含在表空间中,用数据泵转换元数据(从11GR1开始,必须要用数据泵转换元数据)
6)从10G开始,可以跨平台传输,视图
V$TRANSPORTABLE_PLATFORM显示哪些平台可以互相转换及大小端.如果平台的大小端不同,必须要转换
限制:
1)源平台与目标平台字符集相同;或者源平台字符集是目标平台字符集的严格子集,并且源数据库兼容性是10.1.0.3
2)要传输的表空间不能与目标数据库表空间重名
3)表空间上有加密的表时不能传输,必须用数据泵导入这些对象,再导入到目标数据库
4)不能传输SYSTEM表空间或sys的对象
5)如果要传输的表空间上的表有TIMESTAMPWITHTIMEZONE的列,则源数据库和目标数据库时区必须相同.
两种方式实现传输表空间:EM或手工.
以下为手工传输步骤:
1.查询V$TRANSPORTABLE_PLATFORM视图确定可转换的平台和大小端
2.检查表空间是否是自包含的
3.在源数据库将表空间置于read-only模式,导出表空间元数据.
4.将数据文件和导出文件复制到目标主机上,如果源平台与目标平台大小端不同,转换表空间
5.可选步骤,将源数据库表空间设置为read/write模式
6.导入表空间到目标数据库
实验,从linux平台迁移到window上:
1.检查源数据库和目标数据库
创建表空间tansport_ts,数据文件tans01.dbf
SQL>CREATETABLESPACEtansport_tsDATAFILE'/oracle/oradata/orcl/tans01.dbf'SIZE5M;
Tablespacecreated
创建一个表,插入数据
CREATETABLEkdzr.transport(IDINT)TABLESPACEtansport_ts;
SQL>insertintokdzr.transportvalues(1);
1rowinserted
SQL>insertintokdzr.transportvalues(2);
1rowinserted
SQL>insertintokdzr.transportvalues(3);
1rowinserted
SQL>insertintokdzr.transportvalues(4);
1rowinserted
SQL>commit;
在源数据库和目标数据库上执行以下查询
目标数据库:
16:02:15SQL>SELECTA.*
2FROMV$TRANSPORTABLE_PLATFORMA,V$DATABASEB
3WHEREA.PLATFORM_ID=B.PLATFORM_ID;
PLATFORM_IDPLATFORM_NAMEENDIAN_FORMAT
-----------------------------------------------------------------------
12MicrosoftWindowsx8664-bitLittle
源数据库:
SQL>SELECTa.*FROMv$transportable_platforma,V$databaseb
2WHEREa.PLATFORM_ID=b.PLATFORM_ID;
PLATFORM_IDPLATFORM_NAMEENDIAN_FORMAT
----------------------------------------------------------------------------
13Linux64-bitforAMDLittle
发现linux和windows大小端相同,不需要转换.
2.检查表空间是否是自包含的
自包含指表空间上的对象不依赖对其他表空间的对象.
执行以下过程检查表空间tansport_ts是否是自包含的:
EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK('tansport_ts',TRUE);
执行完后执行以下查询:
SQL>SELECT*FROMTRANSPORT_SET_VIOLATIONS;
VIOLATIONS
----------------------------------------------
为空说明表空间不依赖于其它表空间.
3.将表空间tansport_ts设置为read-only,导出表空间元数据
SQL>altertablespacetansport_tsreadonly;
Tablespacealtered
导出表空间元数据:
expdpsystemdumpfile=expdat.dmpdirectory=data_pump_dirtransport_tablespaces=tansport_ts
4.将表空间拷到目标主机上
SQL>SELECTA.file_nameFROMdba_data_filesaWHEREa.tablespace_name=UPPER('tansport_ts');
Warning:connectionwaslostandre-established
FILE_NAME
--------------------------------------------------------------------------------
/oracle/oradata/orcl/tans01.dbf
表空间对应的数据文件为/oracle/oradata/orcl/tans01.dbf.
把表空间拷到目标主机的DATA_PUMP_DIR
SQL>SELECTa.directory_pathFROMdba_directoriesaWHEREa.directory_name='DATA_PUMP_DIR';
DIRECTORY_PATH
--------------------------------------------------------------------------------
D:\app\wj/admin/orcl/dpdump/
D:\app\wj\admin\orcl\dpdump的目录
2014-08-2721:54<DIR>.
2014-08-2721:54<DIR>..
2014-08-2511:41120dp.log
2014-08-2721:4569,632expdat.dmp
2014-08-2721:445,251,072tans01.dbf
可以看到表空间数据文件和相应的元数据已经复制到目标主机上.
如果源和目标主机大小端不同,需要用RMAN转换
例如:
RMAN>CONVERTDATAFILE
2>'C:\Temp\sales_101.dbf',
3>'C:\Temp\sales_201.dbf'
4>TOPLATFORM="MicrosoftWindowsIA(32-bit)"
5>FROMPLATFORM="Solaris[tm]OE(32-bit)"
6>DB_FILE_NAME_CONVERT=
7>'C:\Temp\','C:\app\orauser\oradata\orawin\'
8>PARALLELISM=4;
5.导入表空间
用数据泵将表dump文件和数据文件导入到目标数据库中
C:\Users\wj>impdpSYSTEM/systemdumpfile=expdat.dmpDIRECTORY=data_pump_dirtransport_datafiles=D:\app\wj\admin\orcl\dpdump\tans01.dbfremap
_schema=kdzr:scottLOGFILE=transport.logVERSION=10.2.0.1.0
Import:Release11.2.0.1.0-Productionon星期三8月2722:17:402014
Copyright(c)1982,2009,Oracleand/oritsaffiliates.Allrightsreserved.
连接到:OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
已成功加载/卸载了主表"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"
启动"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":SYSTEM/********dumpfile=expdat.dmpDIRECTORY=data_pump_dirtransport_datafiles=D:\app\wj\admi
n\orcl\dpdump\tans01.dbfremap_schema=kdzr:scottLOGFILE=transport.logVERSION=10.2.0.1.0
处理对象类型TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型TRANSPORTABLE_EXPORT/TABLE
处理对象类型TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"已于22:17:44成功完成
注意:如果用高版本的数据泵导入低版本的DUMP,要加上version参数,否则导入出错.version可以查询源数据库的v$version视图得到.
验证导入的表:
SQL>SELECT*FROMscott.TRANSPORT;
ID
---------------------------------------
1
2
3
4
自从导入成功.
相关文章推荐
- java操作oracle空间信息介绍
- [置顶] [实验-视频过程]oracle热备份-单个表空间-备份和恢复操作演示
- java操作oracle空间信息介绍
- ORACLE空间管理实验6:块管理之ASSM下插入操作--高水位的影响及大并发插入的性能问题
- java操作oracle空间信息介绍(SDE)
- oracle操作之传输表空间
- 使用Oracle可传输表空间的特性复制数据(2)操作步骤
- java操作oracle空间信息介绍(SDE)
- [oracle实验]跨平台传输表空间 win -> linux
- java操作oracle空间信息介绍
- 使用Oracle可传输表空间的特性复制数据(4)转换字节顺序
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- Oracle 表空间基本操作
- Oracle 表空间基本操作
- oracle创建删除用户命令和部分表空间操作
- Oracle中使用可传输表空间备份数据
- oracle基本操作语法(建表空间,建用户,授权,数据导入导出)
- ORACLE 表空间操作总结
- oracle 表空间操作
- Oracle 表空间、数据文件相关操作。