RMAN 备份集在异机异路径下恢复过程详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下恢复数据文件
Startup nomount
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
sys.dbms_backup_restore.restoreSetDatafile;
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF');
在RMAN中设置DBID
set DBID=79382924
6.恢复控制文件
在sqlplus中启动到NOMOUNT状态
Sql>Startup nomount
Sql>exit
进入RMAN
C:\>rman target sys/bsoft
执行命令
run{
set controlfile autobackup format for device type disk to 'E:\ora_bak\ %d_%s_%p.bak';
end;
结果: 成功!
然后拷贝二个一样的文件(control01,control02)到同一目录下
7.修改数据文件路径在RMAN中到新机器安装路径,然后RESTORE DATABASE
Rman sys/bsoft
Startup mount
Run{
Set newname for datafile 1 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF';
Set newname for datafile 4 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF';
Set newname for datafile 5 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF';
/
结果: 恢复成功!
以下恢复归档日志
SQL> DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'t1');
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF';
"E:\ora_bak\pfilehrp270.ora"
结果: 成功!
注意
用此方法建的ORACLE服务只是个壳,windows服务启动不代表ORACLE的实例启动,需要在安装完ORACLE后在注册表中设置
加在HKEY_LOCAL_MACHINE\ORACLE\HOME下加上
ORA_SID_AUTOSTART=TURE
sys.dbms_backup_restore.restoreSetArchivedLog(destination=>' D:\oracle\product.2.0\flash_recovery_area\HRP270\ARCHIVELOG');
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,sequence=>6);
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:\ora_bak\HRP270_18_1.BAK', params=>null);
sys.dbms_backup_restore.deviceDeSet newname for datafile 6 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01';
Set newname for datafile 7 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01';
dbms_backup_restore.restoresetdatafile;
dbms_backup_restore.restorecontrolfileto('D:\oracle\product.2.0\oradata\hrp270\control01.ctl');
dbms_backup_restore.restorebackuppiece('E:\ora_bak\C-79382924-20070330-00',DONE=>done);
RMAN 备份集在异机异路径下恢复过程详解!
这两天对备份与恢复做了点研究,整理成文档如下:
RMAN 备份集在异机异路径下恢复过程
原数据库环境
机器名:yfzx
数据库名:HRP270
归档模式打开
路径: I:\ORACLE\PRODUCT.2.0\db_1
新数据库环境:
机器名:zhengsh
只安装了数据库ORACLE 10.2G软件,在D盘,没有建数据库,该机器没有I盘
1.通过网络拷贝RMAN备份文件到zhengsh机器下E:\ora_bak,包括数据备份、控制文件备份、SPFILE文件备份
2.建立数据库服务
C:\Documents and Settings\zhengsh>oradim -NEW -SID HRP270 -INTPWD bsoft -pfile
/
结果: 无法打开归档日志,恢复失败!,估计sequence值需要正确设置,但怎么找还不知道。
下面就用无归档日志来恢复数据库
9.修改数据文件在控制文件中路径
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF';
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:\ora_bak\HRP270_17_1.BAK',params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
ORA_SID_SHUTDOWN=TURE
ORA_SID_SHUTDOWNTYPE=i
3.配置监听与网络连接
结果:
监听配置成功
网络连接配置失败
4.在CMD中设置环境变量
Set oracle_sid=hrp270
手工建立相应子目录
5.通过登录RMAN获取原数库DBID=79382924
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>08,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF');
Set newname for datafile 8 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF';
}
Rman>restore databased;
结果: 还是提示找不到恢复文件位置,恢复失败
8采用DBMS_BACKUP_RESTORE包进行恢复数据库
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01';
restore controlfile from autobackup;
}
结果: 失败!
改用以下方式来替代
declare
devtype varchar2(256);
done boolean;
begin
devtype:=dbms_backup_restore.deviceallocate(NULL);
Set newname for datafile 2 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF';
Set newname for datafile 3 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF';
Startup nomount
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
sys.dbms_backup_restore.restoreSetDatafile;
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF');
在RMAN中设置DBID
set DBID=79382924
6.恢复控制文件
在sqlplus中启动到NOMOUNT状态
Sql>Startup nomount
Sql>exit
进入RMAN
C:\>rman target sys/bsoft
执行命令
run{
set controlfile autobackup format for device type disk to 'E:\ora_bak\ %d_%s_%p.bak';
end;
结果: 成功!
然后拷贝二个一样的文件(control01,control02)到同一目录下
7.修改数据文件路径在RMAN中到新机器安装路径,然后RESTORE DATABASE
Rman sys/bsoft
Startup mount
Run{
Set newname for datafile 1 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF';
Set newname for datafile 4 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF';
Set newname for datafile 5 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF';
/
结果: 恢复成功!
以下恢复归档日志
SQL> DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'t1');
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF';
"E:\ora_bak\pfilehrp270.ora"
结果: 成功!
注意
用此方法建的ORACLE服务只是个壳,windows服务启动不代表ORACLE的实例启动,需要在安装完ORACLE后在注册表中设置
加在HKEY_LOCAL_MACHINE\ORACLE\HOME下加上
ORA_SID_AUTOSTART=TURE
sys.dbms_backup_restore.restoreSetArchivedLog(destination=>' D:\oracle\product.2.0\flash_recovery_area\HRP270\ARCHIVELOG');
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,sequence=>6);
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:\ora_bak\HRP270_18_1.BAK', params=>null);
sys.dbms_backup_restore.deviceDeSet newname for datafile 6 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01';
Set newname for datafile 7 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01';
dbms_backup_restore.restoresetdatafile;
dbms_backup_restore.restorecontrolfileto('D:\oracle\product.2.0\oradata\hrp270\control01.ctl');
dbms_backup_restore.restorebackuppiece('E:\ora_bak\C-79382924-20070330-00',DONE=>done);
RMAN 备份集在异机异路径下恢复过程详解!
这两天对备份与恢复做了点研究,整理成文档如下:
RMAN 备份集在异机异路径下恢复过程
原数据库环境
机器名:yfzx
数据库名:HRP270
归档模式打开
路径: I:\ORACLE\PRODUCT.2.0\db_1
新数据库环境:
机器名:zhengsh
只安装了数据库ORACLE 10.2G软件,在D盘,没有建数据库,该机器没有I盘
1.通过网络拷贝RMAN备份文件到zhengsh机器下E:\ora_bak,包括数据备份、控制文件备份、SPFILE文件备份
2.建立数据库服务
C:\Documents and Settings\zhengsh>oradim -NEW -SID HRP270 -INTPWD bsoft -pfile
/
结果: 无法打开归档日志,恢复失败!,估计sequence值需要正确设置,但怎么找还不知道。
下面就用无归档日志来恢复数据库
9.修改数据文件在控制文件中路径
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSTEM01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\USERS01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\EXAMPLE01.DBF';
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:\ora_bak\HRP270_17_1.BAK',params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
ORA_SID_SHUTDOWN=TURE
ORA_SID_SHUTDOWNTYPE=i
3.配置监听与网络连接
结果:
监听配置成功
网络连接配置失败
4.在CMD中设置环境变量
Set oracle_sid=hrp270
手工建立相应子目录
5.通过登录RMAN获取原数库DBID=79382924
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>08,toname=>'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF');
Set newname for datafile 8 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\STREAMS_TBS.DBF';
}
Rman>restore databased;
结果: 还是提示找不到恢复文件位置,恢复失败
8采用DBMS_BACKUP_RESTORE包进行恢复数据库
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\HIS01';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\TEST01';
restore controlfile from autobackup;
}
结果: 失败!
改用以下方式来替代
declare
devtype varchar2(256);
done boolean;
begin
devtype:=dbms_backup_restore.deviceallocate(NULL);
Set newname for datafile 2 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF';
Set newname for datafile 3 to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\UNDOTBS01.DBF';
Alter database rename file 'I:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF' to 'D:\ORACLE\PRODUCT.2.0\ORADATA\HRP270\SYSAUX01.DBF';