RMAN使用备份传输表空间的各种自定义操作(一)

2015-04-07 14:09:47 · 作者: · 浏览: 135

执行传输表空间时指定Data Pump文件目录
?可以修改传输表空间集的Data Pump导出的dump文件名,示例脚本名和日志文件名。缺省情况下这些文件
?存储在表空间目录中且缺省名称如下:
?.Data Pump导出的dump文件名为dmpfile.dmp
?.导出日志文件explog.log
?.示例脚本impscrpt.sql


可以通过指定datapump directory子句来指定dump文件和导出日志文件的存储目录,datapumpdirectory子句使用的是数据库目录对象名,不是文件系统目录的目录路径。


下面的例子将使用指定datapump directory,dump file,export log和import script文件名的transport tablespace命令来执行表空间传输。


--------------------------------------推荐阅读 --------------------------------------


--------------------------------------分割线 --------------------------------------


1.确认源数据库与目标数据库所在平台是不是传输表空间所支持的操作系统平台。
?确认源数据库操作系统平台:
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d
? 2? where tp.platform_name=d.platform_name ;


PLATFORM_NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ENDIAN_FORMAT
----------------------------------------------------------------------------------------------------- --------------
Linux IA (32-bit)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Little


?


确认目数据库操作系统平台:
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d
? 2? where tp.platform_name=d.platform_name ;


PLATFORM_NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ENDIAN_FORMAT
----------------------------------------------------------------------------------------------------- --------------
Linux IA (32-bit)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Little



这里操作系统平台都是Linux


2.确认要被传输的表空间是否是自包含表空间(TSPITR,TEST):
SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);


PL/SQL procedure successfully completed.



SQL> exec sys.dbms_tts.transport_set_check('TEST',true);


PL/SQL procedure successfully completed.


SQL> select * from sys.transport_set_violations;


no rows selected


?


如果没有行选择,表示该表空间只包含表数据,可以传输。
SQL> select count(*) from tspitr.tspitr;


? COUNT(*)
----------
? ? ? ? 0


SQL> select count(*) from test.test;


? COUNT(*)
----------
? ? 50683


?


3.对源数据库执行备份,在执行备份时一定要加上include current controlfile否则执行transport tablespace命令时会出现以下错误信息:
Automatic instance removed
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of tranport tablespace command at 03/26/2015 20:24:22
RMAN-03015: error occurred in stored script Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the control file found to restore


[oracle@oracle11g admin]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
[oracle@oracle11g admin]$ rman target sys/zzh_2046@test? catalog rman/rman@jy


Recovery Manager: Release 10.2.0.5.0 - Production on Thu Mar 26 20:01:33 2015


Copyright (c) 1982, 2007, Oracle.? All rights reserved.


connected to target database: TEST (DBID=2168949517)
connected to recovery catalog database


RMAN> backup as backupset database include current controlfile plus archivelog;



Starting backup at 2015-03-26 20:32:19
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=68 recid=75 stamp=875286167
input archive log thread=1 sequence=69 recid=76 stamp=875291999
input archive log thread=1 sequence=70