您的位置:首页 > 数据库 > Oracle

基于LINUX ORACLE 11g 异机恢复(未使用duplicate)

2019-04-25 16:32 531 查看
版权声明:本文为博主原创文章,未经博主允许,不得转载文章 https://blog.csdn.net/weixin_41840720/article/details/89515609

基于LINUX ORACLE 11g 异机恢复(手工restore)

总体思路
1、源库备份数据、控制、归档日志、密码文件并传输到备库
2、编辑spfile文件(DBID必须相同,如需更改可以恢复后使用nid工具进行修改),然后将数据库启到nomount状态
3、恢复控制文件并启动到mount状态(spfile里的控制文件、数据文件、闪回区、归档日志文件路径必须创建)
4、恢复数据文件(如果两边路径不一致,需要set newname进行更改,duplicate则不需要,他会根据pfile的conver参数进行更改)
5、recover database
6、更改onlinelog及tempfile的路径(如果两边路径不一致)
7、以resetlogs方式打开数据库
8、验证新库可用性
拓展-----如果recover until等执行一直不成功,则可以使用 _allow_resetlogs_corruption 隐含参数以resetlogs方式打开数据库

  • 查看源库数据文件,控制文件,归档模式,归档日志,onlinelog文件(不做赘述)
  • 源库备份数据文件、归档日志文件
RMAN> run{
2> allocate channel c1 device type disk;
3> backup as compressed backupset database format '/tmp/qianyi/whole_%d_%I_%s_%p';
4> backup as compressed backupset archivelog all format '/tmp/qianyi/arc_%d_%I_%s_%p';
5> release channel c1;
6> }

  • 备份参数文件及控制文件
create pfile='/tmp/qianyi/ocmt.pfile' from spfile;--创建pfile文件
alter database backup controlfile to '/tmp/qianyi/ocmt.ctl';---创建控制文件
  • 将备份传输到目标库的指定文件夹内
scp * 192.168.x.195:/tmp/qianyi/
  • 修改pfile文件(对应db_name不用修改,注意要将pfile里的路径全部创建)
*.audit_file_dest='/u02/app/oracle/admin/ocmt/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u02/app/oracle/oradata/ocmt/control01.ctl','/u02/app/oracle/fast_recovery_area/ocmt/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest=''
*.db_domain=''
*.db_name='ocmt'
*.db_recovery_file_dest='/u02/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.db_unique_name='ocmt'
*.diagnostic_dest='/u02/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ocmtXDB)'
*.log_archive_dest_1='LOCATION=/u02/arch'
*.log_archive_format='%t_%s_%r.arc'
*.memory_max_target=1384120320
*.memory_target=1384120320
*.open_cursors=300
*.pga_aggregate_target=0
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=0
*.standby_file_management='AUTO'
*.undo_retention=900
*.undo_tablespace='UNDOTBS1'
  • 用修改的pfile文件将数据库启动到nomount状态
startup nomount pfile='/tmp/qianyi/ocmt.pfile';

  • 进入到rman恢复控制文件(并将数据库启动到mount状态)
- restore controlfile from '/tmp/qianyi/ocmt.ctl';
- alter database mount;

  • 恢复数据文件,如果两边路径不一致,需要用set newname {database|datafile xx to xx}
run{
set newname for datafile '/u01/app/oracle/oradata/ocmt/users01.dbf' to '/u02/app/oracle/oradata/ocmt/users01.dbf';
set newname for datafile '/u01/app/oracle/oradata/ocmt/undotbs01.dbf' to '/u02/app/oracle/oradata/ocmt/undotbs01.dbf';
set newname for datafile '/u01/app/oracle/oradata/ocmt/sysaux01.dbf' to '/u02/app/oracle/oradata/ocmt/sysaux01.dbf';
set newname for datafile '/u01/app/oracle/oradata/ocmt/system01.dbf' to '/u02/app/oracle/oradata/ocmt/system01.dbf';
set newname for datafile '/u01/app/oracle/oradata/ocmt/example01.dbf' to '/u02/app/oracle/oradata/ocmt/example01.dbf';
set newname for datafile '/u01/app/oracle/oradata/ocmt/wyl.dbf' to '/u02/app/oracle/oradata/ocmt/wyl.dbf';
restore database;
switch datafile all;
}

  • 修改tempfile及redo onlinelog
alter database rename file '/u01/app/oracle/oradata/ocmt/redo01.log' to '/u02/app/oracle/oradata/ocmt/redo01.log';
alter database rename file '/u01/app/oracle/oradata/ocmt/redo02.log' to '/u02/app/oracle/oradata/ocmt/redo02.log';
alter database rename file '/u01/app/oracle/oradata/ocmt/redo03.log' to '/u02/app/oracle/oradata/ocmt/redo03.log';
alter database rename file '/u01/app/oracle/fast_recovery_area/redo01.log' to '/u02/app/oracle/fast_recovery_area/redo01.log';
alter database rename file '/u01/app/oracle/fast_recovery_area/redo02.log' to '/u02/app/oracle/fast_recovery_area/redo02.log';
alter database rename file '/u01/app/oracle/fast_recovery_area/redo03.log' to '/u02/app/oracle/fast_recovery_area/redo03.log';
alter database rename file '/u01/app/oracle/oradata/ocmt/temp01.dbf' to '/u02/app/oracle/oradata/ocmt/temp01.dbf';
  • recover 数据库

报错比较很正常,因为控制文件与数据文件头部的SCN不一致,所以不能

-

recover database using backup controlfile until cancel;
因为我们没有归档日志,所以选择cancel就可以了

最后再以resetlogs方式打开数据库就可以了!!!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: