基于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方式打开数据库就可以了!!!!!
相关文章推荐
- oracle 11g RMAN 异机恢复(linux to windows)
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
- 使用VMware Workstation搭建基于Linux的Oracle 10g RAC
- Oracle 11g RMAN 异机duplicate数据库
- 使用linux文件句柄恢复误删除的Oracle数据文件
- 使用VMware Workstation搭建基于Linux的Oracle 10g RAC
- 基于用户控制的oracle热备文件的异机恢复
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
- ORACLE 11G 中采用rman备份异机恢复数据库详细过程
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
- linux下安装完oracle 11g后使用sqlplus出现如下乱码现象
- Oracle技术之使用rman进行表空间基于时间点的恢复
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database 推荐
- Oracle RMAN异机恢复归档RMAN-07518(供日志挖掘使用)及修改dbid步骤
- Hyper-V安装Oracle Linux6_4 Oracle db 12c并使用rman做异机恢复
- 基于docker搭建的mysql5.6从库,使用innobackup进行异机恢复数据
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
- X86_64平台下Oracle 11g R2 X64 for Linux的软件安装、数据库安装、服务配置、数据库启动和停止、SQLPLus使用
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
- Linux中安装使用Oracle 11g客户端步骤