1、empcard数据库备份恢复流程演练empcard数据库备份恢复流程演练1. 复制数据库备份,控制文件备份,日志备份,Redo.log,到备份目录E:OracleBackupempcard196BackupFile2. 利用DataBase Configuration Assistant新建实例,实例名称和SYS用户的密码保持和以前的一致。注意设置rman的备份集的所在路径更新rman的设置属性3. 关闭实例,连接到RMAN,执行SET DBID=原来的DBID,启动不要加载从原来的rman备份的控制文件中取得数据库DBID查看之前RMAN数据库备份控制文件命名中的DBIDE:OracleBa
2、ckupMYTESTRmanBackupFileRMAN_BACKUP_CONTROLFILE_MYTEST_C-2483970197-20120607-00DBID 为文件名中的2483970197rman target sys/abc123show all;shutdown immediate;set dbid= 2484837015startup nomount;4. 从备份文件中还原参数文件SPFILE备份集中找不到SPfile,可能需要从依次里当前最接近的前一个控制文件的备份中恢复.控制文件:RMAN_BACKUP_CONTROLFILE_MYTEST_C-2483970197-20
3、120607-00;RMAN restore spfile to pfile E:OracleBackupEMPCARD196BackupFileEMPCARD_SPFILE.ORA from E:OracleBackupempcard196BackupFileBACKUP_CONTROLFILE_EMPCARD_C-1714198115-20120610-00;控制文件备份恢复参数文件成功检查E:OracleBackupMYTESTRmanBackupFile_SPFILE目录下已经有SPFILE存在5. 还原控制文件从控制文件备份恢复控制文件RMAN runallocate channel
4、 c1 device type disk;restore controlfile from E:OracleBackupMYTESTRmanBackupFileRMAN_BACKUP_CONTROLFILE_MYTEST_C-2484823945-20120611-00;查看SPfile内容,修改数据库路径,日志路径恢复后的控制文件中的数据文件的路径不对,在后面需要修改。RMANshutdown immediate;6. 下面利用sqlplus来创建pfile文件:你最好打开该参数文件,看一下路径是否都确实存在,或者是否正确。)用Sqlplus加载参数文件。sqlplus /nologconn
5、 sys/abc123 as sysdba;startup nomount;SQL create pfile=E:OracleBackupEMPCARD196BackupFileInitial_EMPCARD.ORA from spfile;文件已创建。编辑Initial_ EMPCARD.ORA 初始化参数文件:下面可以启动数据库实例了:SQL shutdown immediate;SQL startup mount pfile=E:OracleBackupEMPCARD196BackupFileInitial_EMPCARD.ORA;已连接到目标数据库 (未启动)Oracle 例程已启动R
6、MAN-00571: =RMAN-00569: = ERROR MESSAGE STACK FOLLOWS =RMAN-00571: =RMAN-03002: failure of startup command at 06/07/2012 12:48:12ORA-01991: 无效的口令文件E:OraHome_1DATABASEPWDmytest.ORA修改密码,不需要重启SQL conn sys/adminhunter as sysdbaConnected.SQL show user; USER is SYSSQL alter user sys identified by admin_12
7、3;User altered.重设口令文件,需要重启先删除E:OraHome_1DATABASEPWDmytest.ORA再重设Del E:OraHome_1DATABASEPWD*.ORAorapwd file=E:OraHome_1DATABASEPWDEMPCARD.ORA password=abc123 entries=30修改了SYS的口令,需要重启Oracle服务重新启动oracle, windows服务控制台重启sqlplus /nologconn sys/abc123 as sysdba;shutdown immediate;SQL startup mount pfile=E:
8、OracleBackupEMPCARD196BackupFileInitial_EMPCARD.ORA;ORACLE instance started.7. 还原数据文件 rman target sys/abc123恢复管理器: 版本9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.连接到目标数据库: MYTEST (DBID=2483970197)注意此DBID,就是原来的备份前的数据库DBIDRMANlist backup;RMANcrosscheck backup
9、;delete noprompt expired backup ;RMANreport obsolete;delete noprompt obsolete ;RMANlist backup;RMANcrosscheck backup;RMANRESTORE DATABASE VALIDATE;RMANrestore database;需要修改数据文件的路径sqlplus /nologconn sys/abc123 as sysdba;修改数据文件的路径:E:OracleBackupempcardscriptchange_datafile_path.sql;恢复失败,找不到从备份集恢复数据文件用
10、DBMS包恢复,首先查看每个备份集包含的数据文件list backup;sqlplus /nologconn sys/abc123 as sysdba;从备份片中恢复数据文件:注意恢复出来的文件名要与备份集内的数据文件名一致。E:OracleBackupempcardscriptrestore_datafile_from_baupPiece.sql;查看目录下恢复出来的数据文件8. 还原归档日志 rman target sys/abc123 list backup;crosscheck backup;Restore archivelogall;找不到日志,则从备份集用DBMS恢复sqlplus
11、 /nologconn sys/abc123 as sysdba;从备份片中恢复数据文件:E:OracleBackupempcardscriptrestore_archivelog_from_baupPiece.sql;查看已恢复的归档日志。9. 修改控制文件中文件路径查看控制文件路径. 查看控制文件位置SQL show parameter control_files;select * from v$controlfile;控制文件路径正确,不需要修改查看数据文件路径:select file#,ts#,status,name from v$datafile;修改数据文件路径sqlplus /n
12、ologconn sys/abc123 as sysdba;修改数据文件的路径:E:OracleBackupempcardscriptchange_datafile_path.sql;查看归档路径:select dest_name,destination,status,error from v$archive_dest;修改归档路径:alter system set LOG_ARCHIVE_DEST_1=location=E:OraHome_1ORADATAEMPCARDarchive scope=spfile;查看以前所有的归档日志路径select * from v$archived_log
13、;查看归档日志格式:show parameter log_archive_format;查看连接重做日志路径select * from v$logfile;SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED FROM V$LOG;状态列(status)所显示常用状态的含义: inactive:表示实例恢复已不再需要这组联机重做日志组了。 active:表示该组是活动的但不是当前组,实例恢复时需要这组日志。 current:表示该组日志是当前组,该联机重做日志组是活动的。 unused:表示该日志组从未写过,是重做日志刚刚添加到状态。将原来
14、的重做日志文件拷贝过去目录E:OracleBackupempcard196BackupFile下的redo.log复制到数据库文件位置E:OraHome_1oradatamytest目录,覆盖日志文件修改重做日志路径:修改数据文件的路径:E:OracleBackupempcardscriptchange_redo_log_path.sql;查看连接重做日志路径select * from v$logfile;SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED FROM V$LOG;查看数据库的参数文件的默认位置E:OraHome_1data
15、base下的SPFILE中的路径是否正确 SPFILEEMPCARD.ORA查看修改后控制文件的内容是否正确alter database backup controlfile to trace;然后在E:OraHome_1adminEMPCARDudump目录中查看新生成的trace文件如有路径不对的再进行修改。再通过这个查看alter database backup controlfile to trace;注意这个trace记录都在同一个文件,可以查看生成的时间来判断那个是刚生成的。shutdown immediate;startup mount;再查看一下控制文件,数据文件,归档日志,重
16、做文件的信息select * from v$controlfile;select * from v$datafile; select * from v$archived_log;select dest_name,destination,status,error from v$archive_dest;select * from v$logfile;SELECT GROUP#,SEQUENCE#,MEMBERS,BYTES,STATUS,ARCHIVED FROM V$LOG;10. 恢复数据库 rman target sys/abc123 RMANrecover database;alter
17、database open RESETLOGS;11. 查询原来的表,发现数据已经恢复。 sqlplus /nologconn sys/abc123 as sysdba; SQL select count(*) from LOG_USER.INTERFACE_LOG; 12. 执行完全备份Resetlog 打开之后必须马上备份,因此以前的备份在resetlog之后全部失效rman target sys/abc123list backup;crosscheck backup;report obsolete;13. Rman备份过程测试向数据库每间隔5秒钟插入一条记录到数据库,然后一直循环此过程,
18、在此过程中,同时进行rman数据库备份。备份结束后,停止插入记录1 每隔5秒向test表插入一条记录,在此过程中rman备份0 2012-6-14 0:00:00.000 Thu Jun 14 13:18:19 CST 2012 test insert备份结束后,数据库已由50条记录50 2012-6-14 0:00:00.000 Thu Jun 14 13:22:36 CST 2012 test insert即数据库共有51条记录14. 数据库恢复测试直接kill oracle进程,然后用服务器控制台重启Oracle数据库,因此Kill前数据库是打开状态,所以启动后oracle会自动将redo记录恢复到数据库sqlplus /nologconn sys/abc123 as sysdba; 此时记录不变。然后再插入记录然后关闭数据库,再重启加载,恢复,再打开再循环一直插入,然后直接kill oracle进程。 数据库挂掉,插入记录进程异常用服务控制台重启oracle重启后再查询,发现数据还在,oracle自动完成在线恢复
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1