Linux rman备份时间,RMAN使用备份按时间点传输表空间

使用until time或者SCN来执行transport tablespace

如果在执行传输表空间操作时,对transport tablespace命令指定了目标时间,那么RMAN将在辅助实例中使用备份将表空间还原到目标时间之前并执行按时间点恢复将辅助数据库恢复到指定的目标时间点。(对于按时间点恢复所需要的备份和重做日志必须可以使用)

恢复的目标时间可以使用SCN(包括当前incarnation或ancestors incarnation),日志序列号,还原点或时间表达式。

使用SCN来执行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

如果没有行选择,表示该表空间只包含表数据,可以传输。

修改表tspitr与test中的记录,在修改之前记录当前的SCN,在执行传输表空间时指定这个SCN

SQL> conn tspitr/tspitr

Connected.

SQL> select current_scn from v$database;

CURRENT_SCN

-----------

1167731

SQL> select to_char(scn_to_timestamp(1167731),'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SCN_TO_TIME

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

2015-03-27 16:48:29

SQL> insert into tspitr select * from tspitr;

50641 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from tspitr

COUNT(*)

----------

101282

SQL> conn test/test

Connected.

SQL> select count(*) from test;

COUNT(*)

----------

50680

SQL> delete from test;

50680 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(*) from test;

COUNT(*)

----------

0

在SCN=1167731之后,表tspitr中的记录数为101282,表test的记录数为0,SCN=1167731之前,表tspitr中的记录数为50641,表test的记录数为50680

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 recid=77 stamp=875302397

input archive log thread=1 sequence=71 recid=78 stamp=875308491

input archive log thread=1 sequence=72 recid=79 stamp=875350203

input archive log thread=1 sequence=73 recid=80 stamp=875351397

input archive log thread=1 sequence=74 recid=81 stamp=875390545

input archive log thread=1 sequence=75 recid=82 stamp=875390643

input archive log thread=1 sequence=76 recid=83 stamp=875391627

input archive log thread=1 sequence=77 recid=84 stamp=875391661

input archive log thread=1 sequence=78 recid=85 stamp=875391764

input archive log thread=1 sequence=79 recid=86 stamp=875392340

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:22

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:32:29

piece handle=/u02/ora_test875392341_991 tag=TAG20150326T203220 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08

Finished backup at 2015-03-26 20:32:29

Starting backup at 2015-03-26 20:32:29

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/test/system01.dbf

input datafile fno=00003 name=/u01/app/oracle/oradata/test/sysaux01.dbf

input datafile fno=00005 name=/u01/app/oracle/oradata/test/example01.dbf

input datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbf

input datafile fno=00002 name=/u01/app/oracle/oradata/test/undotbs01.dbf

input datafile fno=00004 name=/u01/app/oracle/oradata/test/users01.dbf

input datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbf

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:30

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:45

piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

including current control file in backupset

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:46

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:47

piece handle=/u02/ora_test875392425_1011 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:47

Starting backup at 2015-03-26 20:33:47

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=80 recid=87 stamp=875392427

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:49

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:50

piece handle=/u02/ora_test875392428_1021 tag=TAG20150326T203348 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:50

Starting Control File and SPFILE Autobackup at 2015-03-26 20:33:50

piece handle=/u02/c-2168949517-20150326-07 comment=NONE

Finished Control File and SPFILE Autobackup at 2015-03-26 20:33:54

RMAN> list backup;

List of Backup Sets

===================

BS Key  Size      Device Type Elapsed Time Completion Time

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

6565    56.14M    DISK        00:00:07    2015-03-26 20:32:28

BP Key: 6566  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203220

Piece Name: /u02/ora_test875392341_991

List of Archived Logs in backup set 6565

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    68      1040304    2015-03-25 09:33:41 1064641    2015-03-25 15:02:45

1    69      1064641    2015-03-25 15:02:45 1067420    2015-03-25 16:39:58

1    70      1067420    2015-03-25 16:39:58 1090668    2015-03-25 19:33:17

1    71      1090668    2015-03-25 19:33:17 1093434    2015-03-25 21:14:51

1    72      1093434    2015-03-25 21:14:51 1125870    2015-03-26 08:50:00

1    73      1125870    2015-03-26 08:50:00 1126817    2015-03-26 09:09:56

1    74      1126817    2015-03-26 09:09:56 1144051    2015-03-26 20:02:21

1    75      1144051    2015-03-26 20:02:21 1144106    2015-03-26 20:04:02

1    76      1144106    2015-03-26 20:04:02 1144862    2015-03-26 20:20:27

1    77      1144862    2015-03-26 20:20:27 1144893    2015-03-26 20:21:00

1    78      1144893    2015-03-26 20:21:00 1144980    2015-03-26 20:22:44

1    79      1144980    2015-03-26 20:22:44 1145259    2015-03-26 20:32:19

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6607    Full    640.39M    DISK        00:01:08    2015-03-26 20:33:38

BP Key: 6621  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392350_1001

List of Datafiles in backup set 6607

File LV Type Ckp SCN    Ckp Time            Name

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

1      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/system01.dbf

2      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/undotbs01.dbf

3      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/sysaux01.dbf

4      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/users01.dbf

5      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/example01.dbf

6      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/tspitr01.dbf

7      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/test01.dbf

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6608    Full    7.02M      DISK        00:00:01    2015-03-26 20:33:46

BP Key: 6622  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392425_1011

Control File Included: Ckp SCN: 1145304      Ckp time: 2015-03-26 20:33:45

BS Key  Size      Device Type Elapsed Time Completion Time

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

6658    2.50K      DISK        00:00:01    2015-03-26 20:33:49

BP Key: 6660  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203348

Piece Name: /u02/ora_test875392428_1021

List of Archived Logs in backup set 6658

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    80      1145259    2015-03-26 20:32:19 1145307    2015-03-26 20:33:47

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6689    Full    7.05M      DISK        00:00:01    2015-03-26 20:33:52

BP Key: 6691  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203351

Piece Name: /u02/c-2168949517-20150326-07

Control File Included: Ckp SCN: 1145329      Ckp time: 2015-03-26 20:33:51

SPFILE Included: Modification time: 2015-03-26 19:31:13

4.在这里指定了auxiliary destination子句让RMAN使用缺省值来管理辅助实例。只指定必须的选项。Oracle建议transport tablespace命令使用辅助目录秋简化辅助实例文件的管理。下面来执transport tablespace命令来传输tspitr,test两个表空间:

[oracle@oracle11g ~]$ export NLS_DATE_FORMATE='yyyy-mm-dd hh24:mi:ss';

[oracle@oracle11g ~]$ rman target sys/zzh_2046@test catalog rman/rman@jy

Recovery Manager: Release 10.2.0.5.0 - Production on Fri Mar 27 17:09:07 2015

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

connected to target database: TEST (DBID=2168949517)

connected to recovery catalog database

RMAN> transport tablespace "TSPITR","TEST" tablespace destination '/u02/transport' auxiliary destination '/u02/transport' until scn 1167731;

Creating automatic instance, with SID='kayd'

initialization parameters used for automatic instance:

db_name=TEST

compatible=10.2.0.5.0

db_block_size=8192

db_files=200

db_unique_name=tspitr_TEST_kayd

sga_target=180M

processes=50

#No auxiliary parameter file used

db_create_file_dest=/u02/transport

control_files=/u02/transport/cntrl_tspitr_TEST_kayd.f

starting up automatic instance TEST

Oracle instance started

Total System Global Area    188743680 bytes

Fixed Size                    1272720 bytes

Variable Size                62915696 bytes

Database Buffers            121634816 bytes

Redo Buffers                  2920448 bytes

Automatic instance created

contents of Memory Script:

{

# set the until clause

set until  scn 1167731;

# restore the controlfile

restore clone controlfile;

# mount the controlfile

sql clone 'alter database mount clone database';

# archive current online log for tspitr to a resent until time

sql 'alter system archive log current';

# avoid unnecessary autobackups for structural changes during TSPITR

sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';

# resync catalog after controlfile restore

resync catalog;

}

executing Memory Script

executing command: SET until clause

Starting restore at 27-MAR-15

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: sid=47 devtype=DISK

channel ORA_AUX_DISK_1: starting datafile backupset restore

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /u02/c-2168949517-20150326-07

channel ORA_AUX_DISK_1: restored backup piece 1

piece handle=/u02/c-2168949517-20150326-07 tag=TAG20150326T203351

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

output filename=/u02/transport/cntrl_tspitr_TEST_kayd.f

Finished restore at 27-MAR-15

sql statement: alter database mount clone database

sql statement: alter system archive log current

sql statement: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;

starting full resync of recovery catalog

full resync complete

contents of Memory Script:

{

# generated tablespace point-in-time recovery script

# set the until clause

set until  scn 1167731;

# set an omf destination filename for restore

set newname for clone datafile  1 to new;

# set an omf destination filename for restore

set newname for clone datafile  2 to new;

# set an omf destination filename for restore

set newname for clone datafile  3 to new;

# set an omf destination tempfile

set newname for clone tempfile  1 to new;

# set a destination filename for restore

set newname for datafile  6 to

"/u02/transport/tspitr01.dbf";

# set a destination filename for restore

set newname for datafile  7 to

"/u02/transport/test01.dbf";

# rename all tempfiles

switch clone tempfile all;

# restore the tablespaces in the recovery set plus the auxilliary tablespaces

restore clone datafile  1, 2, 3, 6, 7;

switch clone datafile all;

#online the datafiles restored or flipped

sql clone "alter database datafile  1 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  2 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  3 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  6 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  7 online";

# make the controlfile point at the restored datafiles, then recover them

recover clone database tablespace  "TSPITR", "TEST", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;

alter clone database open resetlogs;

# PLUG HERE the creation of a temporary tablespace if export fails due to lack

# of temporary space.

# For example in Unix these two lines would do that:

#sql clone "create tablespace aux_tspitr_tmp

#          datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";

}

executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed temporary file 1 to /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_temp_%u_.tmp in control file

Starting restore at 27-MAR-15

using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backupset restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_system_%u_.dbf

restoring datafile 00002 to /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_undotbs1_%u_.dbf

restoring datafile 00003 to /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_sysaux_%u_.dbf

restoring datafile 00006 to /u02/transport/tspitr01.dbf

restoring datafile 00007 to /u02/transport/test01.dbf

channel ORA_AUX_DISK_1: reading from backup piece /u02/ora_test875392350_1001

channel ORA_AUX_DISK_1: restored backup piece 1

piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:05

Finished restore at 27-MAR-15

datafile 1 switched to datafile copy

input datafile copy recid=22 stamp=875466695 filename=/u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_system_bkb7lb6k_.dbf

datafile 2 switched to datafile copy

input datafile copy recid=23 stamp=875466695 filename=/u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_undotbs1_bkb7lbfr_.dbf

datafile 3 switched to datafile copy

input datafile copy recid=24 stamp=875466695 filename=/u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_sysaux_bkb7lb6y_.dbf

datafile 6 switched to datafile copy

input datafile copy recid=25 stamp=875466695 filename=/u02/transport/tspitr01.dbf

datafile 7 switched to datafile copy

input datafile copy recid=26 stamp=875466695 filename=/u02/transport/test01.dbf

sql statement: alter database datafile  1 online

sql statement: alter database datafile  2 online

sql statement: alter database datafile  3 online

sql statement: alter database datafile  6 online

sql statement: alter database datafile  7 online

Starting recover at 27-MAR-15

using channel ORA_AUX_DISK_1

starting media recovery

archive log thread 1 sequence 80 is already on disk as file /u02/1_80_870806981.dbf

archive log thread 1 sequence 81 is already on disk as file /u02/1_81_870806981.dbf

archive log thread 1 sequence 82 is already on disk as file /u02/1_82_870806981.dbf

archive log thread 1 sequence 83 is already on disk as file /u02/1_83_870806981.dbf

archive log filename=/u02/1_80_870806981.dbf thread=1 sequence=80

archive log filename=/u02/1_81_870806981.dbf thread=1 sequence=81

archive log filename=/u02/1_82_870806981.dbf thread=1 sequence=82

archive log filename=/u02/1_83_870806981.dbf thread=1 sequence=83

media recovery complete, elapsed time: 00:00:08

Finished recover at 27-MAR-15

database opened

contents of Memory Script:

{

#mark read only the tablespace that will be exported

sql clone "alter tablespace TSPITR read only";

#mark read only the tablespace that will be exported

sql clone "alter tablespace TEST read only";

# create directory for datapump export

sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''

/u02/transport''";

# export the tablespaces in the recovery set

host 'expdp userid=\"/@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=beq\)\(PROGRAM=/u01/app/oracle/10.2.0/db/bin/oracle\)\(ARGV0=oraclekayd\)\(ARGS=^'\(DESCRIPTION=\(LOCAL=YES\)\(ADDRESS=\(PROTOCOL=beq\)\)\)^'\)\(ENVS=^'ORACLE_SID=kayd^'\)\)\(CONNECT_DATA=\(SID=kayd\)\)\) as sysdba\" transport_tablespaces=

TSPITR,

TEST dumpfile=

dmpfile.dmp directory=

STREAMS_DIROBJ_DPDIR logfile=

explog.log';

}

executing Memory Script

sql statement: alter tablespace TSPITR read only

sql statement: alter tablespace TEST read only

sql statement: create or replace directory STREAMS_DIROBJ_DPDIR as ''/u02/transport''

Export: Release 10.2.0.5.0 - Production on Friday, 27 March, 2015 17:12:19

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  userid="/********@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/10.2.0/db/bin/oracle)(ARGV0=oraclekayd)(ARGS=\(DESCRIPTION=\(LOCAL=YES\)\(ADDRESS=\(PROTOCOL=beq\)\)\))(ENVS=ORACLE_SID=kayd))(CONNECT_DATA=(SID=kayd))) AS SYSDBA" transport_tablespaces= TSPITR, TEST dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDIR logfile=explog.log

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded

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

Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:

/u02/transport/dmpfile.dmp

Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 17:13:05

host command complete

/*

The following command may be used to import the tablespaces.

Substitute values for  and .

impdp  directory= dumpfile= 'dmpfile.dmp' transport_datafiles= /u02/transport/tspitr01.dbf, /u02/transport/test01.dbf

*/

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

-- Start of sample PL/SQL script for importing the tablespaces

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

-- creating directory objects

CREATE DIRECTORY STREAMS$DIROBJ$1 AS  '/u02/transport/';

CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS  '/u02/transport';

/* PL/SQL Script to import the exported tablespaces */

DECLARE

-- the datafiles

tbs_files    dbms_streams_tablespace_adm.file_set;

cvt_files    dbms_streams_tablespace_adm.file_set;

-- the dumpfile to import

dump_file    dbms_streams_tablespace_adm.file;

dp_job_name  VARCHAR2(30) := NULL;

-- names of tablespaces that were imported

ts_names      dbms_streams_tablespace_adm.tablespace_set;

BEGIN

-- dump file name and location

dump_file.file_name :=  'dmpfile.dmp';

dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';

-- forming list of datafiles for import

tbs_files( 1).file_name :=  'tspitr01.dbf';

tbs_files( 1).directory_object :=  'STREAMS$DIROBJ$1';

tbs_files( 2).file_name :=  'test01.dbf';

tbs_files( 2).directory_object :=  'STREAMS$DIROBJ$1';

-- import tablespaces

dbms_streams_tablespace_adm.attach_tablespaces(

datapump_job_name      => dp_job_name,

dump_file              => dump_file,

tablespace_files      => tbs_files,

converted_files        => cvt_files,

tablespace_names      => ts_names);

-- output names of imported tablespaces

IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN

FOR i IN ts_names.first .. ts_names.last LOOP

dbms_output.put_line('imported tablespace '|| ts_names(i));

END LOOP;

END IF;

END;

/

-- dropping directory objects

DROP DIRECTORY STREAMS$DIROBJ$1;

DROP DIRECTORY STREAMS$DIROBJ$DPDIR;

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

-- End of sample PL/SQL script

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

Removing automatic instance

shutting down automatic instance

Oracle instance shut down

Automatic instance removed

auxiliary instance file /u02/transport/cntrl_tspitr_TEST_kayd.f deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_system_bkb7lb6k_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_undotbs1_bkb7lbfr_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_sysaux_bkb7lb6y_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/datafile/o1_mf_temp_bkb7q2ql_.tmp deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/onlinelog/o1_mf_1_bkb7pnmt_.log deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/onlinelog/o1_mf_2_bkb7pqk4_.log deleted

auxiliary instance file /u02/transport/TSPITR_TEST_KAYD/onlinelog/o1_mf_3_bkb7ptbb_.log deleted

5.将步骤4生成的传输表空间的数据文件tspitr01.dbf,test01.dbf和Data Pump导出文件dmpfile拷贝到目标主机上的/u02目录中

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/tspitr01.dbf /u02

oracle@192.168.56.2's password:

tspitr01.dbf                                                                                                                        100%  100MB  7.1MB/s  00:14

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/test01.dbf /u02

oracle@192.168.56.2's password:

test01.dbf                                                                                                                          100%  10MB  10.0MB/s  00:00

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/dmpfile.dmp /u02

oracle@192.168.56.2's password:

dmpfile.dmp                                                                                                                          100%  96KB  96.0KB/s  00:00

[oracle@jingyong1 u02]$ ls -lrt

total 112876

-rw-r----- 1 oracle oinstall 104865792 Mar 27 17:54 tspitr01.dbf

-rw-r----- 1 oracle oinstall  10493952 Mar 27 18:22 test01.dbf

-rw-r----- 1 oracle oinstall    98304 Mar 27 18:22 dmpfile.dmp

6.在目录主机上创建相关用户及Data Pump目录并将表空间附加到目标数据库中

SQL> create user tspitr identified by "tspitr";

User created.

SQL> grant dba,connect,resource to tspitr;

Grant succeeded.

SQL> create user test identified by "test";

User created.

SQL> grant dba,connect,resource to test;

Grant succeeded.

SQL> create directory mytest as '/u02';

Directory created.

SQL> grant read,write on directory mytest to public;

Grant succeeded.

最后就可以执行导入过程了

[oracle@jingyong1 ~]$ export ORACLE_SID=jy

[oracle@jingyong1 ~]$ export NLS_DATE_FORMATE='yyyy-mm-dd hh24:mi:ss'

[oracle@jingyong1 ~]$ impdp test/test directory=mytest dumpfile=dmpfile.dmp logfile=testtransport.log transport_datafiles= /u02/tspitr01.dbf, /u02/test01.dbf

Import: Release 10.2.0.5.0 - Production on Friday, 27 March, 2015 18:25:25

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table "TEST"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded

Starting "TEST"."SYS_IMPORT_TRANSPORTABLE_01":  test/******** directory=mytest dumpfile=dmpfile.dmp logfile=testtransport.log transport_datafiles= /u02/tspitr01.dbf, /u02/test01.dbf

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job "TEST"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 18:25:49

进入数据库中检查一下

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

COUNT(*)

----------

50641

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

COUNT(*)

----------

50680

与SCN=1167731之前的状态一致。

下面来演示使用until time执行传输表空间

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

如果没有行选择,表示该表空间只包含表数据,可以传输。

修改表tspitr与test中的记录

在修改之前记录当前的系统时间,在执行传输表空间时指定这个系统时间。

SQL> conn tspitr/tspitr

Connected.

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SCN_TO_TIME

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

2015-03-27 16:48:29

SQL> insert into tspitr select * from tspitr;

50641 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from tspitr

COUNT(*)

----------

101282

SQL> conn test/test

Connected.

SQL> select count(*) from test;

COUNT(*)

----------

50680

SQL> delete from test;

50680 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(*) from test;

COUNT(*)

----------

0

在2015-03-27 16:48:29之后,表tspitr中的记录数为101282,表test的记录数为0,2015-03-27 16:48:29之前,表tspitr中的记录数为50641,表test的记录数为50680

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 recid=77 stamp=875302397

input archive log thread=1 sequence=71 recid=78 stamp=875308491

input archive log thread=1 sequence=72 recid=79 stamp=875350203

input archive log thread=1 sequence=73 recid=80 stamp=875351397

input archive log thread=1 sequence=74 recid=81 stamp=875390545

input archive log thread=1 sequence=75 recid=82 stamp=875390643

input archive log thread=1 sequence=76 recid=83 stamp=875391627

input archive log thread=1 sequence=77 recid=84 stamp=875391661

input archive log thread=1 sequence=78 recid=85 stamp=875391764

input archive log thread=1 sequence=79 recid=86 stamp=875392340

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:22

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:32:29

piece handle=/u02/ora_test875392341_991 tag=TAG20150326T203220 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08

Finished backup at 2015-03-26 20:32:29

Starting backup at 2015-03-26 20:32:29

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/test/system01.dbf

input datafile fno=00003 name=/u01/app/oracle/oradata/test/sysaux01.dbf

input datafile fno=00005 name=/u01/app/oracle/oradata/test/example01.dbf

input datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbf

input datafile fno=00002 name=/u01/app/oracle/oradata/test/undotbs01.dbf

input datafile fno=00004 name=/u01/app/oracle/oradata/test/users01.dbf

input datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbf

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:30

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:45

piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

including current control file in backupset

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:46

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:47

piece handle=/u02/ora_test875392425_1011 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:47

Starting backup at 2015-03-26 20:33:47

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=80 recid=87 stamp=875392427

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:49

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:50

piece handle=/u02/ora_test875392428_1021 tag=TAG20150326T203348 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:50

Starting Control File and SPFILE Autobackup at 2015-03-26 20:33:50

piece handle=/u02/c-2168949517-20150326-07 comment=NONE

Finished Control File and SPFILE Autobackup at 2015-03-26 20:33:54

RMAN> list backup;

List of Backup Sets

===================

BS Key  Size      Device Type Elapsed Time Completion Time

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

6565    56.14M    DISK        00:00:07    2015-03-26 20:32:28

BP Key: 6566  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203220

Piece Name: /u02/ora_test875392341_991

List of Archived Logs in backup set 6565

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    68      1040304    2015-03-25 09:33:41 1064641    2015-03-25 15:02:45

1    69      1064641    2015-03-25 15:02:45 1067420    2015-03-25 16:39:58

1    70      1067420    2015-03-25 16:39:58 1090668    2015-03-25 19:33:17

1    71      1090668    2015-03-25 19:33:17 1093434    2015-03-25 21:14:51

1    72      1093434    2015-03-25 21:14:51 1125870    2015-03-26 08:50:00

1    73      1125870    2015-03-26 08:50:00 1126817    2015-03-26 09:09:56

1    74      1126817    2015-03-26 09:09:56 1144051    2015-03-26 20:02:21

1    75      1144051    2015-03-26 20:02:21 1144106    2015-03-26 20:04:02

1    76      1144106    2015-03-26 20:04:02 1144862    2015-03-26 20:20:27

1    77      1144862    2015-03-26 20:20:27 1144893    2015-03-26 20:21:00

1    78      1144893    2015-03-26 20:21:00 1144980    2015-03-26 20:22:44

1    79      1144980    2015-03-26 20:22:44 1145259    2015-03-26 20:32:19

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6607    Full    640.39M    DISK        00:01:08    2015-03-26 20:33:38

BP Key: 6621  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392350_1001

List of Datafiles in backup set 6607

File LV Type Ckp SCN    Ckp Time            Name

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

1      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/system01.dbf

2      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/undotbs01.dbf

3      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/sysaux01.dbf

4      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/users01.dbf

5      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/example01.dbf

6      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/tspitr01.dbf

7      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/test01.dbf

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6608    Full    7.02M      DISK        00:00:01    2015-03-26 20:33:46

BP Key: 6622  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392425_1011

Control File Included: Ckp SCN: 1145304      Ckp time: 2015-03-26 20:33:45

BS Key  Size      Device Type Elapsed Time Completion Time

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

6658    2.50K      DISK        00:00:01    2015-03-26 20:33:49

BP Key: 6660  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203348

Piece Name: /u02/ora_test875392428_1021

List of Archived Logs in backup set 6658

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    80      1145259    2015-03-26 20:32:19 1145307    2015-03-26 20:33:47

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6689    Full    7.05M      DISK        00:00:01    2015-03-26 20:33:52

BP Key: 6691  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203351

Piece Name: /u02/c-2168949517-20150326-07

Control File Included: Ckp SCN: 1145329      Ckp time: 2015-03-26 20:33:51

SPFILE Included: Modification time: 2015-03-26 19:31:13

4.在这里指定了auxiliary destination子句让RMAN使用缺省值来管理辅助实例。只指定必须的选项。Oracle建议transport tablespace命令使用辅助目录秋简化辅助实例文件的管理。下面来执transport tablespace命令来传输tspitr,test两个表空间:

RMAN> transport tablespace "TSPITR","TEST" tablespace destination '/u02/transport' auxiliary destination '/u02/transport' until time "to_date('2015-03-27 16:48:29','yyyy-mm-dd hh24:mi:ss')";

Creating automatic instance, with SID='wkgj'

initialization parameters used for automatic instance:

db_name=TEST

compatible=10.2.0.5.0

db_block_size=8192

db_files=200

db_unique_name=tspitr_TEST_wkgj

sga_target=180M

processes=50

#No auxiliary parameter file used

db_create_file_dest=/u02/transport

control_files=/u02/transport/cntrl_tspitr_TEST_wkgj.f

starting up automatic instance TEST

Oracle instance started

Total System Global Area    188743680 bytes

Fixed Size                    1272720 bytes

Variable Size                62915696 bytes

Database Buffers            121634816 bytes

Redo Buffers                  2920448 bytes

Automatic instance created

contents of Memory Script:

{

# set the until clause

set until  time "to_date('2015-03-27 16:48:29','yyyy-mm-dd hh24:mi:ss')";

# restore the controlfile

restore clone controlfile;

# mount the controlfile

sql clone 'alter database mount clone database';

# archive current online log for tspitr to a resent until time

sql 'alter system archive log current';

# avoid unnecessary autobackups for structural changes during TSPITR

sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';

# resync catalog after controlfile restore

resync catalog;

}

executing Memory Script

executing command: SET until clause

Starting restore at 27-MAR-15

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: sid=47 devtype=DISK

channel ORA_AUX_DISK_1: starting datafile backupset restore

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /u02/c-2168949517-20150326-07

channel ORA_AUX_DISK_1: restored backup piece 1

piece handle=/u02/c-2168949517-20150326-07 tag=TAG20150326T203351

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03

output filename=/u02/transport/cntrl_tspitr_TEST_wkgj.f

Finished restore at 27-MAR-15

sql statement: alter database mount clone database

sql statement: alter system archive log current

sql statement: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;

starting full resync of recovery catalog

full resync complete

contents of Memory Script:

{

# generated tablespace point-in-time recovery script

# set the until clause

set until  time "to_date('2015-03-27 16:48:29','yyyy-mm-dd hh24:mi:ss')";

# set an omf destination filename for restore

set newname for clone datafile  1 to new;

# set an omf destination filename for restore

set newname for clone datafile  2 to new;

# set an omf destination filename for restore

set newname for clone datafile  3 to new;

# set an omf destination tempfile

set newname for clone tempfile  1 to new;

# set a destination filename for restore

set newname for datafile  6 to

"/u02/transport/tspitr01.dbf";

# set a destination filename for restore

set newname for datafile  7 to

"/u02/transport/test01.dbf";

# rename all tempfiles

switch clone tempfile all;

# restore the tablespaces in the recovery set plus the auxilliary tablespaces

restore clone datafile  1, 2, 3, 6, 7;

switch clone datafile all;

#online the datafiles restored or flipped

sql clone "alter database datafile  1 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  2 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  3 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  6 online";

#online the datafiles restored or flipped

sql clone "alter database datafile  7 online";

# make the controlfile point at the restored datafiles, then recover them

recover clone database tablespace  "TSPITR", "TEST", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;

alter clone database open resetlogs;

# PLUG HERE the creation of a temporary tablespace if export fails due to lack

# of temporary space.

# For example in Unix these two lines would do that:

#sql clone "create tablespace aux_tspitr_tmp

#          datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";

}

executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed temporary file 1 to /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_temp_%u_.tmp in control file

Starting restore at 27-MAR-15

using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backupset restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_system_%u_.dbf

restoring datafile 00002 to /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_undotbs1_%u_.dbf

restoring datafile 00003 to /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_sysaux_%u_.dbf

restoring datafile 00006 to /u02/transport/tspitr01.dbf

restoring datafile 00007 to /u02/transport/test01.dbf

channel ORA_AUX_DISK_1: reading from backup piece /u02/ora_test875392350_1001

channel ORA_AUX_DISK_1: restored backup piece 1

piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16

Finished restore at 27-MAR-15

datafile 1 switched to datafile copy

input datafile copy recid=22 stamp=875478089 filename=/u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_system_bkblqy42_.dbf

datafile 2 switched to datafile copy

input datafile copy recid=23 stamp=875478089 filename=/u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_undotbs1_bkblqy5h_.dbf

datafile 3 switched to datafile copy

input datafile copy recid=24 stamp=875478089 filename=/u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_sysaux_bkblqy4h_.dbf

datafile 6 switched to datafile copy

input datafile copy recid=25 stamp=875478089 filename=/u02/transport/tspitr01.dbf

datafile 7 switched to datafile copy

input datafile copy recid=26 stamp=875478089 filename=/u02/transport/test01.dbf

sql statement: alter database datafile  1 online

sql statement: alter database datafile  2 online

sql statement: alter database datafile  3 online

sql statement: alter database datafile  6 online

sql statement: alter database datafile  7 online

Starting recover at 27-MAR-15

using channel ORA_AUX_DISK_1

starting media recovery

archive log thread 1 sequence 80 is already on disk as file /u02/1_80_870806981.dbf

archive log thread 1 sequence 81 is already on disk as file /u02/1_81_870806981.dbf

archive log thread 1 sequence 82 is already on disk as file /u02/1_82_870806981.dbf

archive log thread 1 sequence 83 is already on disk as file /u02/1_83_870806981.dbf

archive log filename=/u02/1_80_870806981.dbf thread=1 sequence=80

archive log filename=/u02/1_81_870806981.dbf thread=1 sequence=81

archive log filename=/u02/1_82_870806981.dbf thread=1 sequence=82

archive log filename=/u02/1_83_870806981.dbf thread=1 sequence=83

media recovery complete, elapsed time: 00:00:07

Finished recover at 27-MAR-15

database opened

contents of Memory Script:

{

#mark read only the tablespace that will be exported

sql clone "alter tablespace TSPITR read only";

#mark read only the tablespace that will be exported

sql clone "alter tablespace TEST read only";

# create directory for datapump export

sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''

/u02/transport''";

# export the tablespaces in the recovery set

host 'expdp userid=\"/@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=beq\)\(PROGRAM=/u01/app/oracle/10.2.0/db/bin/oracle\)\(ARGV0=oraclewkgj\)\(ARGS=^'\(DESCRIPTION=\(LOCAL=YES\)\(ADDRESS=\(PROTOCOL=beq\)\)\)^'\)\(ENVS=^'ORACLE_SID=wkgj^'\)\)\(CONNECT_DATA=\(SID=wkgj\)\)\) as sysdba\" transport_tablespaces=

TSPITR,

TEST dumpfile=

dmpfile.dmp directory=

STREAMS_DIROBJ_DPDIR logfile=

explog.log';

}

executing Memory Script

sql statement: alter tablespace TSPITR read only

sql statement: alter tablespace TEST read only

sql statement: create or replace directory STREAMS_DIROBJ_DPDIR as ''/u02/transport''

Export: Release 10.2.0.5.0 - Production on Friday, 27 March, 2015 20:22:11

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  userid="/********@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/oracle/10.2.0/db/bin/oracle)(ARGV0=oraclewkgj)(ARGS=\(DESCRIPTION=\(LOCAL=YES\)\(ADDRESS=\(PROTOCOL=beq\)\)\))(ENVS=ORACLE_SID=wkgj))(CONNECT_DATA=(SID=wkgj))) AS SYSDBA" transport_tablespaces= TSPITR, TEST dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDIR logfile=explog.log

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded

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

Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:

/u02/transport/dmpfile.dmp

Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 20:23:07

host command complete

/*

The following command may be used to import the tablespaces.

Substitute values for  and .

impdp  directory= dumpfile= 'dmpfile.dmp' transport_datafiles= /u02/transport/tspitr01.dbf, /u02/transport/test01.dbf

*/

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

-- Start of sample PL/SQL script for importing the tablespaces

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

-- creating directory objects

CREATE DIRECTORY STREAMS$DIROBJ$1 AS  '/u02/transport/';

CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS  '/u02/transport';

/* PL/SQL Script to import the exported tablespaces */

DECLARE

-- the datafiles

tbs_files    dbms_streams_tablespace_adm.file_set;

cvt_files    dbms_streams_tablespace_adm.file_set;

-- the dumpfile to import

dump_file    dbms_streams_tablespace_adm.file;

dp_job_name  VARCHAR2(30) := NULL;

-- names of tablespaces that were imported

ts_names      dbms_streams_tablespace_adm.tablespace_set;

BEGIN

-- dump file name and location

dump_file.file_name :=  'dmpfile.dmp';

dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';

-- forming list of datafiles for import

tbs_files( 1).file_name :=  'tspitr01.dbf';

tbs_files( 1).directory_object :=  'STREAMS$DIROBJ$1';

tbs_files( 2).file_name :=  'test01.dbf';

tbs_files( 2).directory_object :=  'STREAMS$DIROBJ$1';

-- import tablespaces

dbms_streams_tablespace_adm.attach_tablespaces(

datapump_job_name      => dp_job_name,

dump_file              => dump_file,

tablespace_files      => tbs_files,

converted_files        => cvt_files,

tablespace_names      => ts_names);

-- output names of imported tablespaces

IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN

FOR i IN ts_names.first .. ts_names.last LOOP

dbms_output.put_line('imported tablespace '|| ts_names(i));

END LOOP;

END IF;

END;

/

-- dropping directory objects

DROP DIRECTORY STREAMS$DIROBJ$1;

DROP DIRECTORY STREAMS$DIROBJ$DPDIR;

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

-- End of sample PL/SQL script

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

Removing automatic instance

shutting down automatic instance

Oracle instance shut down

Automatic instance removed

auxiliary instance file /u02/transport/cntrl_tspitr_TEST_wkgj.f deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_system_bkblqy42_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_undotbs1_bkblqy5h_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_sysaux_bkblqy4h_.dbf deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/datafile/o1_mf_temp_bkblv2ot_.tmp deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/onlinelog/o1_mf_1_bkbltlnc_.log deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/onlinelog/o1_mf_2_bkbltp71_.log deleted

auxiliary instance file /u02/transport/TSPITR_TEST_WKGJ/onlinelog/o1_mf_3_bkbltt75_.log deleted

5.将步骤4生成的传输表空间的数据文件tspitr01.dbf,test01.dbf和Data Pump导出文件dmpfile拷贝到目标主机上的/u02目录中

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/tspitr01.dbf /u02

oracle@192.168.56.2's password:

tspitr01.dbf                                                                                                                        100%  100MB  7.1MB/s  00:14

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/test01.dbf /u02

oracle@192.168.56.2's password:

test01.dbf                                                                                                                          100%  10MB  10.0MB/s  00:00

[oracle@jingyong1 u02]$ scp -r oracle@192.168.56.2:/u02/transport/dmpfile.dmp /u02

oracle@192.168.56.2's password:

dmpfile.dmp                                                                                                                          100%  96KB  96.0KB/s  00:00

[oracle@jingyong1 u02]$ ls -lrt

total 112876

-rw-r----- 1 oracle oinstall 104865792 Mar 27 17:54 tspitr01.dbf

-rw-r----- 1 oracle oinstall  10493952 Mar 27 18:22 test01.dbf

-rw-r----- 1 oracle oinstall    98304 Mar 27 18:22 dmpfile.dmp

6.在目录主机上创建相关用户及Data Pump目录并将表空间附加到目标数据库中

SQL> create user tspitr identified by "tspitr";

User created.

SQL> grant dba,connect,resource to tspitr;

Grant succeeded.

SQL> create user test identified by "test";

User created.

SQL> grant dba,connect,resource to test;

Grant succeeded.

SQL> create directory mytest as '/u02';

Directory created.

SQL> grant read,write on directory mytest to public;

Grant succeeded.

最后就可以执行导入过程了

[oracle@jingyong1 ~]$ export ORACLE_SID=jy

[oracle@jingyong1 ~]$ export NLS_DATE_FORMATE='yyyy-mm-dd hh24:mi:ss'

[oracle@jingyong1 ~]$ impdp test/test directory=mytest dumpfile=dmpfile.dmp logfile=testtransport.log transport_datafiles= /u02/tspitr01.dbf, /u02/test01.dbf

Import: Release 10.2.0.5.0 - Production on Friday, 27 March, 2015 20:28:39

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table "TEST"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded

Starting "TEST"."SYS_IMPORT_TRANSPORTABLE_01":  test/******** directory=mytest dumpfile=dmpfile.dmp logfile=testtransport.log transport_datafiles= /u02/tspitr01.dbf, /u02/test01.dbf

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job "TEST"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 20:28:55

进入数据库中检查一下

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

COUNT(*)

----------

50641

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

COUNT(*)

----------

50680

与2015-03-27 16:48:29之前的状态一致。

下面演示使用还原点来执行传输表空间

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

如果没有行选择,表示该表空间只包含表数据,可以传输。

修改表tspitr与test中的记录,在修改之前创建一个还原点,在执行传输表空间时指定这个还原点

SQL> select count(*) from test;

COUNT(*)

----------

0

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

COUNT(*)

----------

101282

SQL> create restore point before_update;

Restore point created.

SQL> insert into test select * from dba_objects;

50683 rows created.

SQL> commit;

Commit complete.

SQL> delete from tspitr.tspitr;

101282 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(*) from test;

COUNT(*)

----------

50683

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

COUNT(*)

----------

0

在创建还原点before_update之后,表tspitr中的记录数为0,表test的记录数为50683,before_update之前,表tspitr中的记录数为101282,表test的记录数为0。

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 recid=77 stamp=875302397

input archive log thread=1 sequence=71 recid=78 stamp=875308491

input archive log thread=1 sequence=72 recid=79 stamp=875350203

input archive log thread=1 sequence=73 recid=80 stamp=875351397

input archive log thread=1 sequence=74 recid=81 stamp=875390545

input archive log thread=1 sequence=75 recid=82 stamp=875390643

input archive log thread=1 sequence=76 recid=83 stamp=875391627

input archive log thread=1 sequence=77 recid=84 stamp=875391661

input archive log thread=1 sequence=78 recid=85 stamp=875391764

input archive log thread=1 sequence=79 recid=86 stamp=875392340

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:22

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:32:29

piece handle=/u02/ora_test875392341_991 tag=TAG20150326T203220 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08

Finished backup at 2015-03-26 20:32:29

Starting backup at 2015-03-26 20:32:29

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/test/system01.dbf

input datafile fno=00003 name=/u01/app/oracle/oradata/test/sysaux01.dbf

input datafile fno=00005 name=/u01/app/oracle/oradata/test/example01.dbf

input datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbf

input datafile fno=00002 name=/u01/app/oracle/oradata/test/undotbs01.dbf

input datafile fno=00004 name=/u01/app/oracle/oradata/test/users01.dbf

input datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbf

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:30

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:45

piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

including current control file in backupset

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:46

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:47

piece handle=/u02/ora_test875392425_1011 tag=TAG20150326T203229 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:47

Starting backup at 2015-03-26 20:33:47

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=80 recid=87 stamp=875392427

channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:49

channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:50

piece handle=/u02/ora_test875392428_1021 tag=TAG20150326T203348 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2015-03-26 20:33:50

Starting Control File and SPFILE Autobackup at 2015-03-26 20:33:50

piece handle=/u02/c-2168949517-20150326-07 comment=NONE

Finished Control File and SPFILE Autobackup at 2015-03-26 20:33:54

RMAN> list backup;

List of Backup Sets

===================

BS Key  Size      Device Type Elapsed Time Completion Time

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

6565    56.14M    DISK        00:00:07    2015-03-26 20:32:28

BP Key: 6566  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203220

Piece Name: /u02/ora_test875392341_991

List of Archived Logs in backup set 6565

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    68      1040304    2015-03-25 09:33:41 1064641    2015-03-25 15:02:45

1    69      1064641    2015-03-25 15:02:45 1067420    2015-03-25 16:39:58

1    70      1067420    2015-03-25 16:39:58 1090668    2015-03-25 19:33:17

1    71      1090668    2015-03-25 19:33:17 1093434    2015-03-25 21:14:51

1    72      1093434    2015-03-25 21:14:51 1125870    2015-03-26 08:50:00

1    73      1125870    2015-03-26 08:50:00 1126817    2015-03-26 09:09:56

1    74      1126817    2015-03-26 09:09:56 1144051    2015-03-26 20:02:21

1    75      1144051    2015-03-26 20:02:21 1144106    2015-03-26 20:04:02

1    76      1144106    2015-03-26 20:04:02 1144862    2015-03-26 20:20:27

1    77      1144862    2015-03-26 20:20:27 1144893    2015-03-26 20:21:00

1    78      1144893    2015-03-26 20:21:00 1144980    2015-03-26 20:22:44

1    79      1144980    2015-03-26 20:22:44 1145259    2015-03-26 20:32:19

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6607    Full    640.39M    DISK        00:01:08    2015-03-26 20:33:38

BP Key: 6621  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392350_1001

List of Datafiles in backup set 6607

File LV Type Ckp SCN    Ckp Time            Name

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

1      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/system01.dbf

2      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/undotbs01.dbf

3      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/sysaux01.dbf

4      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/users01.dbf

5      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/example01.dbf

6      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/tspitr01.dbf

7      Full 1145279    2015-03-26 20:32:30 /u01/app/oracle/oradata/test/test01.dbf

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6608    Full    7.02M      DISK        00:00:01    2015-03-26 20:33:46

BP Key: 6622  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203229

Piece Name: /u02/ora_test875392425_1011

Control File Included: Ckp SCN: 1145304      Ckp time: 2015-03-26 20:33:45

BS Key  Size      Device Type Elapsed Time Completion Time

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

6658    2.50K      DISK        00:00:01    2015-03-26 20:33:49

BP Key: 6660  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203348

Piece Name: /u02/ora_test875392428_1021

List of Archived Logs in backup set 6658

Thrd Seq    Low SCN    Low Time            Next SCN  Next Time

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

1    80      1145259    2015-03-26 20:32:19 1145307    2015-03-26 20:33:47

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

6689    Full    7.05M      DISK        00:00:01    2015-03-26 20:33:52

BP Key: 6691  Status: AVAILABLE  Compressed: NO  Tag: TAG20150326T203351

Piece Name: /u02/c-2168949517-20150326-07

Control File Included: Ckp SCN: 1145329      Ckp time: 2015-03-26 20:33:51

SPFILE Included: Modification time: 2015-03-26 19:31:13

4.在这里指定了auxiliary destination子句让RMAN使用缺省值来管理辅助实例。只指定必须的选项。Oracle建议transport tablespace命令使用辅助目录秋简化辅助实例文件的管理。下面来执transport tablespace命令来传输tspitr,test两个表空间:

RMAN> transport tablespace "TSPITR","TEST" tablespace destination '/u02/transport' auxiliary destination '/u02/transport' UNTIL RESTORE POINT 'before_update';

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of tranport tablespace command at 03/27/2015 20:42:53

RMAN-00600: internal error, arguments [5085] [point] [] [] []

出现RMAN-00600 internal error, arguments [5085] [point],在MOS上有一篇关于这个错误的文章,是ORACLE的bug,请参考Bug 8571266 - RMAN TSPITR to restore point fails with RMAN-600 [5085] (Doc ID 8571266.8),说这个Bug在11.2.0.2中已经修复了。

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

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

0b1331709591d260c1c78e86d0c51c18.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值