利用rman(tablespace 不要 read only)
将XH DB 的TEXTXH TABLESPACE 传送到 orcl db
前期检查还是要进行的,版本 平台,是否自包含(dbms_tts.transport_set_check)
如果平台不一样 RMAN TRANSPORT TABLESPACE XXX 中加 to
platform 'LinuxIA(32-bit)'(平台名) (手动EXPEDP/IMPDP 的话用RMAN CONVERT DATAFILE(database,tablesapce) TO PLATFORM. ,另外可以使用 FORMAT ,db_file_name_convert
设置转换后名字路径)
alter tablespace xhtr read only;***************
RMAN> convert tablespace xhtr to platform='Linux IA (32-bit)';
启动 backup 于 24-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件 fno=00008 name=D:\XHDATAFILE\XHTR.DBF
已转换的数据文件 = D:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\DATA_D-XH_I-3093395309_TS
-XHTR_FNO-8_0FKQ20E8
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
完成 backup 于 24-9月 -09
另外在实验中遇到一个错误 实验的表空间名字为 test2 如果是test 需要大写 加 '','TEST',而test2 这种方法不行 最后没解决
SQL> desc v$reserved_words;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
KEYWORD VARCHAR2(30)
LENGTH NUMBER
RESERVED VARCHAR2(1)
RES_TYPE VARCHAR2(1)
RES_ATTR VARCHAR2(1)
RES_SEMI VARCHAR2(1)
DUPLICATE VARCHAR2(1)
This view gives a list of all SQL keywords. To determine whether a particular keyword is reserved in any way, check the RESERVED, RES_TYPE, RES_ATTR, and
RES_SEMI columns
KEYWORD VARCHAR2(30) Name of the keyword
LENGTH NUMBER Length of the keyword
RESERVED VARCHAR2(1) A value of Y means that the keyword cannot be used as an identifier. A value of N means that it is not reserved.
RES_TYPE VARCHAR2(1) A value of Y means that the keyword cannot be used as a type name. A value of N means that it is not reserved.
RES_ATTR VARCHAR2(1) A value of Y means that the keyword cannot be used as an attribute name. A value of N means that it is not reserved.
RES_SEMI VARCHAR2(1) A value of Y means that the keyword is not allowed as an identifier in certain situations, such as in DML. A value of N means that it is
not reserved.
DUPLICATE VARCHAR2(1) A value of Y means that the keyword is a duplicate of another keyword. A value of N means that it is not a duplicate.
SQL> select *from v$reserved_words where keyword='TEST';
KEYWORD LENGTH R R R R D
------------------------------ ---------- - - - - -
TEST 4 N N N N N
SQL> select name from v$database;
NAME
---------
XH
SQL> create tablespace xhtest datafile 'd:\xhdatafile\xhtest.dbf' size 10m;
表空间已创建。
SQL>
SQL> conn xh/a123
已连接。
SQL> create table t1 (a int) tablespace xhtest;
表已创建。
SQL> insert into t1 values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t1;
A
----------
1
C:\>rman target xh/a123@xh
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 9月 23 16:26:15 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: XH (DBID=3093395309)
RMAN> transport tablespace XHTEST tablespace destination 'd:\a' auxiliary destinati
on 'd:\b'
2> ;
为了看的更清楚 看清RMAN 过程 所有的RMAN 输出都有
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='zCxv' 创建自动实例
供自动实例使用的初始化参数:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_zCxv
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_zCxv.f
启动自动实例 XH
Oracle 实例已启动
系统全局区域总计 205520896 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 7139328 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until scn 1085288;
# 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;';
}
正在执行内存脚本
正在执行命令: SET until clause
启动 restore 于 23-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在复原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH
\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF
_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP 标记 = TAG20090923T174229
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:01
输出文件名=D:\B\CNTRL_TSPITR_XH_ZCXV.F
完成 restore 于 23-9月 -09
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
释放的通道: ORA_AUX_DISK_1
内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 1085288;
# 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 7 to
"d:\a\XHTEST.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, 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 7 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "XHTEST", "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";
}
正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_%U_.TMP
启动 restore 于 23-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM_%U_.DBF
正将数据文件00002恢复到D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
正将数据文件00003恢复到D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX_%U_.DBF
正将数据文件00007恢复到D:\A\XHTEST.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH
\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF
_NNNDF_TAG20090923T174229_5CMVD62X_.BKP 标记 = TAG20090923T174229
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 23-9月 -09
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=698349154 文件名=D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM
_5CMVXBVT_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=698349155 文件名=D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTB
S1_5CMVXBX9_.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=7 stamp=698349155 文件名=D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX
_5CMVXBWS_.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=8 stamp=698349155 文件名=D:\A\XHTEST.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 3 online
sql 语句: alter database datafile 7 online
启动 recover 于 23-9月 -09
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 42 已作为文件 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\A
RCHIVELOG\2009_09_23\O1_MF_1_42_5CMVG07B_.ARC 存在于磁盘上
存档日志线程 1 序列 43 已作为文件 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\A
RCHIVELOG\2009_09_23\O1_MF_1_43_5CMVJCD6_.ARC 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\ARCHIVELOG\2009_09_
23\O1_MF_1_42_5CMVG07B_.ARC 线程 =1 序列 =42
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\ARCHIVELOG\2009_09_
23\O1_MF_1_43_5CMVJCD6_.ARC 线程 =1 序列 =43
介质恢复完成, 用时: 00:00:02
完成 recover 于 23-9月 -09
数据库已打开
内存脚本的内容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace XHTEST read only";
# create directory for datapump export
sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''
d:\a''";
# export the tablespaces in the recovery set
host 'expdp userid=\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=o
raclezCxv)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACL
E_SID=zCxv^'))(CONNECT_DATA=(SID=zCxv))) as sysdba\" transport_tablespaces=
XHTEST dumpfile=
dmpfile.dmp directory=
STREAMS_DIROBJ_DPDIR logfile=
explog.log';
}
正在执行内存脚本
sql 语句: alter tablespace XHTEST read only
sql 语句: create or replace directory STREAMS_DIROBJ_DPDIR as ''d:\a''
Export: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 17:52:58
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYS"."SYS_EXPORT_TRANSPORTABLE_01": userid="/********@(DESCRIPTION=(ADDRESS=
(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oraclezCxv)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADD
RESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=zCxv'))(CONNECT_DATA=(SID=zCxv))) AS SYSDB
A" transport_tablespaces= XHTEST dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDI
R logfile=explog.log
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
D:\A\DMPFILE.DMP
作业 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已于 17:53:50 成功完成
主机命令完成
/*
The following command may be used to import the tablespaces.
Substitute values for and .
impdp directory= dumpfile= 'dmpfile.dmp' transport_datafiles=
d:\a\XHTEST.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script. for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS 'd:\a\';
CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS 'd:\a';
/* 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 := 'XHTEST.DBF';
tbs_files( 1).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
--------------------------------------------------------------
删除自动实例
关闭自动实例
Oracle 实例已关闭
自动实例已删除
已删除辅助实例文件 D:\B\CNTRL_TSPITR_XH_ZCXV.F
已删除辅助实例文件 D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM_5CMVXBVT_.DBF
已删除辅助实例文件 D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTBS1_5CMVXBX9_.DBF
已删除辅助实例文件 D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX_5CMVXBWS_.DBF
已删除辅助实例文件 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_5CMVZKB8_.TMP
已删除辅助实例文件 D:\B\TSPITR_X\ONLINELOG\O1_MF_1_5CMVZCOH_.LOG
已删除辅助实例文件 D:\B\TSPITR_X\ONLINELOG\O1_MF_2_5CMVZF6C_.LOG
已删除辅助实例文件 D:\B\TSPITR_X\ONLINELOG\O1_MF_3_5CMVZGBQ_.LOG
RMAN>
C:\>set oracle_sid=orcl
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 23 17:56:18 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @D:\a\impscript.sql
SP2-0310: 无法打开文件 "D:\a\impscript.sql"
SQL> @ D:\a\impscript.sql
SP2-0310: 无法打开文件 "D:\a\impscript.sql"
SQL> @D:\a\impscript.sql
SP2-0310: 无法打开文件 "D:\a\impscript.sql"
SQL> @D:\a\impscrpt.sql
目录已创建。
目录已创建。
PL/SQL 过程已成功完成
目录已删除。
目录已删除。
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
TEST
RMAN_TS
TESTXH
XHTEST
已选择10行。
从上面可以分析到 为什么 rman不需要read only 很简单 rman 建立一个auxiliary database 把要transport 的 tablespace及其必要的文件controlfile,undo,system 从备份中
restore过去,然后进行 recover (利用archivelog 恢复到最新)然后将auyxiliary db中 transport tablesapce read only, exp导出,然后制作一个impdp脚本 ,在要target
端执行这个导入脚本就行了
~~~~~~~~~~~~~~
rman 没有备份的时候
C:\>rman target xh/a123@xh
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 9月 24 09:48:16 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: XH (DBID=3093395309)
RMAN> delete noprompt backup;
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=134 devtype=DISK
备份段列表
BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称
------- ------- --- --- ----------- ----------- ----------
9 9 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T173725_5CMV2PC7_.BKP
10 10 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T173725_5CMV4H4W_.BKP
11 11 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_ANNNN_TAG20090923T174226_5CMVD42X_.BKP
12 12 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP
13 13 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP
14 14 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_ANNNN_TAG20090923T174328_5CMVG21G_.BKP
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NNNDF_TAG20090923T173725_5CMV2PC7_.BKP recid=9 stamp=698348246
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NCSNF_TAG20090923T173725_5CMV4H4W_.BKP recid=10 stamp=698348303
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_ANNNN_TAG20090923T174226_5CMVD42X_.BKP recid=11 stamp=698348548
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP recid=12 stamp=698348550
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP recid=13 stamp=698348606
已删除备份段
备份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_ANNNN_TAG20090923T174328_5CMVG21G_.BKP recid=14 stamp=698348610
6 对象已删除
RMAN> list backup;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~没有备份了
SQL> create tablespace xhtr datafile 'd:\xhdatafile\xhtr.dbf' size 10m;
表空间已创建。
SQL> create table t2 (a int) tablespace xhtr;
表已创建。
SQL> insert into t2 values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t2;
A
----------
1
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 INACTIVE
3 CURRENT
SQL> alter database begin backup ;
数据库已更改。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\SYSTEM01.DBF d:\catalog\SYSTEM0
1.DBF
已复制 1 个文件。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\undotbs01.DBF d:\catalog\undotb
s01.DBF
已复制 1 个文件。
SQL> host copy d:\xhdatafile\xhtr.dbf d:\catalog\xhtr.DBF
已复制 1 个文件。
SQL> alter database end backup;
数据库已更改。
SQL> alter database backup controlfile to 'd:\catalog\tctl.ctl';
数据库已更改。
SQL> show user;
USER 为 "XH"
AUXILIARY DB 要正常使用需要UNDO ,SYSTEM, CONTROLFILE
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
SQL> alter database backup controlfile to 'd:\catalog\tctl.ctl';
数据库已更改。~要用这样的backup controlfile才能 注册进来否则 注册时候
(ORA-19620: D:\CATALOG\TEST.CTL 的类型不是 backup control file)有这个错误
RMAN> catalog start with 'd:\catalog';
搜索与样式 d:\catalog 匹配的所有文件
数据库未知文件的列表
=====================================
文件名: D:\catalog\coNTROL01.CTL
文件名: D:\catalog\SYSTEM01.DBF
文件名: D:\catalog\TCTL.CTL
文件名: D:\catalog\test.CTL
文件名: D:\catalog\undotbs01.DBF
文件名: D:\catalog\xhtr.DBF
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: D:\catalog\SYSTEM01.DBF
文件名: D:\catalog\TCTL.CTL
文件名: D:\catalog\undotbs01.DBF
文件名: D:\catalog\xhtr.DBF
未列入目录的文件的列表
=======================================
文件名: D:\catalog\coNTROL01.CTL
RMAN-07519: 原因: 编制目录时出错。请参阅 alert.log。~~~~~~~~~~~~~~~~~
文件名: D:\catalog\test.CTL
RMAN-07519: 原因: 编制目录时出错。请参阅 alert.log。~~~~~~~~~~~~~~~~~~这2个controlfile是 host copy产生所以不行
RMAN> list copy of controlfile;
控制文件副本列表
关键字 S 完成时间 Ckp SCN Ckp 时间 名称
------- - ---------- ---------- ---------- ----
8 A 24-9月 -09 1115458 24-9月 -09 D:\CATALOG\TCTL.CTL
6 A 24-9月 -09 1115458 24-9月 -09 D:\CATALOG\TCTL.CTL
RMAN> list copy of database;
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ---------- ---------- ---------- ----
1 1 A 24-9月 -09 1109552 24-9月 -09 D:\CATALOG\SYSTEM01.DBF
9 2 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\UNDOTBS01.DBF
10 8 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\XHTR.DBF
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='cwbw' 创建自动实例
供自动实例使用的初始化参数:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_cwbw
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_cwbw.f
启动自动实例 XH
Oracle 实例已启动
系统全局区域总计 205520896 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 7139328 字节
自动实例已创建
删除自动实例
关闭自动实例
Oracle 实例已关闭
自动实例已删除
RMAN-03002: tranport tablespace 命令 (在 09/24/2009 11:07:49 上) 失败
RMAN-20202: 在恢复目录中未找到表空间
RMAN-06019: 无法转换表空间名称"XHTR"
RMAN> list copy of tablespace xhtr;
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ---------- ---------- ---------- ----
10 8 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\XHTR.DBF
这个错误 说在catalog中没有xhtr这个TABLESPACE 原因是 备份的控制文件太新了 create tablespace xhtr 产生的 redo 还在current redo里没有针对这个tablespace的
archivelog
SQL> alter system switch logfile; 解决
系统已更改。
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='zBFh' 创建自动实例
供自动实例使用的初始化参数:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_zBFh
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_zBFh.f
启动自动实例 XH
Oracle 实例已启动
系统全局区域总计 205520896 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 7139328 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until scn 1115701;
# 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;';
}
正在执行内存脚本
正在执行命令: SET until clause
启动 restore 于 24-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在复原控制文件
通道 ORA_AUX_DISK_1: 已复制控制文件副本
输出文件名=D:\CATALOG\TCTL.CTL
输出文件名=D:\B\CNTRL_TSPITR_XH_ZBFH.F
完成 restore 于 24-9月 -09
sql 语句: alter database mount clone database
sql 语句: alter system archive log current
sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
释放的通道: ORA_DISK_1
释放的通道: ORA_AUX_DISK_1
内存脚本的内容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 1115701;
# 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 8 to
"d:\a\XHTR.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, 8;
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 8 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "XHTR", "SYSTEM", "UNDOTBS1", "SYSAUX" delete ar
chivelog;
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";
}
正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_%U_.TMP
启动 restore 于 24-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
删除自动实例
关闭自动实例
Oracle 实例已关闭
自动实例已删除
RMAN-03002: tranport tablespace 命令 (在 09/24/2009 11:09:34 上) 失败
RMAN-03015: 在存储的脚本Memory Script中出现错误
RMAN-06026: 有些目标没有找到 - 终止恢复
RMAN-06023: 没有找到数据文件3的副本来恢复
RMAN> list copy of datafile 3;
RMAN> 又失败了 原因很简单需要sysaux tablespace(recover clone database tablespace "XHTR", "SYSTEM", "UNDOTBS1", "SYSAUX"
delete ar)
原因在与
SQL> select OCCUPANT_NAME, OCCUPANT_DESC from v$sysaux_occupants;
OCCUPANT_NAME
----------------------------------------------------------------
OCCUPANT_DESC
----------------------------------------------------------------
LOGMNR
LogMiner
LOGSTDBY
Logical Standby
STREAMS
Oracle Streams~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~streamS 信息 存sysaux中 当生成 IMPDP脚本时实际使用 streams
(dbms_streams_tablespace_adm.file_set,dbms_streams_tablespace_adm.attach_tablespaces)
SQL> alter database begin backup ;
数据库已更改。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\SYSAUX01.DBF d:\catalog\SYSAUX0
1.DBF
已复制 1 个文件。
SQL> alter database end backup;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
RMAN> catalog datafilecopy 'd:\catalog\sysaux01.dbf';
已将数据文件副本列入目录
数据文件副本 filename=D:\CATALOG\SYSAUX01.DBF recid=11 stamp=698412296
RMAN> list copy of datafile 3;
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ---------- ---------- ---------- ----
11 3 A 24-9月 -09 1116790 24-9月 -09 D:\CATALOG\SYSAUX01.DBF
RMAN> list copy of tablespace sysaux;
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ---------- ---------- ---------- ----
11 3 A 24-9月 -09 1116790 24-9月 -09 D:\CATALOG\SYSAUX01.DBF
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
最后完成
可以 向前面那样 登陆 ORCL DB 然后执行脚本也可以 手动
.DMP ,和 导入脚本 ,EXPLOG (可以手动调整前面这些存储位置和名字), 还有 transport tablespace 的datafile DELAUTE 存在tablespace destination
C:\>set oracle_sid=orcl
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 9月 24 11:34:45 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> col file_name format a30
SQL> col tablespace format a10
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- ------------------------------
SYSTEM E:\SYSDATAFILE2.DBF
TEST D:\TEST.DBF
EXAMPLE E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\EXAMPLE01.DBF
USERS E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\USERS01.DBF
SYSAUX E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSAUX01.DBF
TABLESPACE FILE_NAME
---------- ------------------------------
UNDOTBS1 E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\UNDOTBS01.DBF
SYSTEM E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSTEM01.DBF
RMAN_TS D:\RMAN_TS.DBF
TESTXH E:\ORCLDATAFILE\TESTXH.DBF
XHTEST D:\A\XHTEST.DBF
已选择10行。
SQL>
SQL> host mkdir d:\impdp
SQL> host copy d:\a\DMPFILE.DMP d:\impdp\dumpfile.dmp
已复制 1 个文件。
SQL> create directory implist as 'd:\impdp';
SQL> host impdp system/a831115 directory=implist dumpfile=dumpfile.dmp transport_
datafiles=d:\a\XHTR.DBF remap_schema=xh:system
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- ------------------------------
SYSTEM E:\SYSDATAFILE2.DBF
TEST D:\TEST.DBF
EXAMPLE E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\EXAMPLE01.DBF
USERS E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\USERS01.DBF
SYSAUX E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSAUX01.DBF
TABLESPACE FILE_NAME
---------- ------------------------------
UNDOTBS1 E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\UNDOTBS01.DBF
SYSTEM E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSTEM01.DBF
RMAN_TS D:\RMAN_TS.DBF
TESTXH E:\ORCLDATAFILE\TESTXH.DBF
XHTEST D:\A\XHTEST.DBF
XHTR D:\A\XHTR.DBF
已选择11行。
SQL> conn system/a831115
已连接。
SQL> select * from t2;
A
----------
1
其他:
在执行transport tablespace 命令时候 会产生DUMPFILE.DMP,impscrpt.SQL,EXPLOG.LOG 默认都是用这些名字 生成在 tablespace destination 位置,AUXILIXARY DB所用的辅
助文件'system,undo,sysaux ,COTROLFILE在 ' auxiliary destination位置
如果不想要 DUMPFILE.DMP,impscrpt.SQL,EXPLOG.LOG 在 tablespace destination位置可以改
DATAPUMP DIRECTORY XXXX
DUMP FILE 'XXX.dmp'
IMPORT SCRIPT. 'XXXX.sql'
EXPORT LOG 'XXXX.log';
另外 这个类似TSPITR 恢复 我们可以将要传输的表空间在auxiliary db中进行恢复,恢复到特定时间点是需加上until scn,until time ,until restore point 'XXX'(还原点)
create restore point V$RESTORE_POINT
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12020513/viewspace-615460/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12020513/viewspace-615460/