oracle 10g简单的归档、备份及恢复

开启归档
--alter system set log_archive_start=true scope=spfile;--启用主动归档  
--alter system reset log_archive_start scope=spfile sid='*';--重置 10g这个参数废弃,设置以后报错32004
--alter system set log_archive_dest='E:\oracle\product\10.2.0\oradata\arch' scope=spfile;--设置归档路径
10g如果只设置一个归档目录,可以用上面的方式,注意没有location
如果多个归档目录,不能设置这个dest。

alter system set log_archive_dest_1='location=E:\oracle\product\10.2.0\oradata\arch\arch1' scope=spfile;--设置归档目录
--alter system set log_archive_dest_2='location=E:\oracle\product\10.2.0\oradata\arch2' scope=spfile; --如果归档到两个位置,则可以通过上边方法实现

alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile;

如果设置不正确,启动报错,原来的spfile可能要删掉,然后:

create spfile from pfile='E:\oracle\product\10.2.0\db_1\admin\orcl\pfile\init.ora.6142013112438';

这样在database下生成一个spfile,然后正常启动,重新设置归档参数

设置成功后,关闭数据库,用mount启动,alter database archivelog;归档成功。

archive log list;查看归档状态。

alter system switch logfile;立即将重做日志归档

然后在E:\oracle\product\10.2.0\oradata\arch这个目录下面会生成一个归档文件。文件名类似ARCH1ARCH_5061743D_1_820783296_14.LOG

====================================================================================

RMAN

cmd输入命令rman,前提是ORACLE BIN环境变量已设置。

RMAN> connect target   连接到本地

已连接到目标数据库: ORCL (DBID=1348564029, 未打开)

RMAN> backup database format 'E:\oracle\backup\_%U';  备份数据库到指定目录

然后在目录下会生成一些无后缀文件。如_03OEVO5S_1_1


备份归档日志:
备份归档日志报错找不到文件,原因是有些日志文件被删除过 参考:http://blog.csdn.net/changyanmanman/article/details/7598856
执行change archivelog all crosscheck;
再重新执行backup database archivelog all delete input format 'e:\oracle\backup\_%U';自动删除原归档日志


模拟数据文件丢失。
杀ORACLE进程,删除ht.dbf数据库文件开启服务,实例启动正常,监听服务无法启动,监听启动后停留在处理中的状态。

连接rman

rman>restore database; 恢复数据库

然后监听可以启动。但是打开数据库报错。

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'


利用重做日志恢复。

指定日志目录。必须是current日志。

SQL> recover database using backup controlfile;
ORA-00279: 更改 692188 (在 07/17/2013 15:33:49 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\ARCH1ARCH_5061743D_1_820783296_16.LOG
ORA-00280: 更改 692188 (用于线程 1) 在序列 #16 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

控制台输入
E:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG
ORA-00310: 归档日志包含序列 14; 要求序列 16
ORA-00334: 归档日志: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

SQL> recover database using backup controlfile;
ORA-00279: 更改 692188 (在 07/17/2013 15:33:49 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\ARCH1ARCH_5061743D_1_820783296_16.LOG
ORA-00280: 更改 692188 (用于线程 1) 在序列 #16 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

控制台输入
E:\oracle\product\10.2.0\oradata\orcl\REDO03.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

SQL>
正常了。

这里重做日志文件可以查v$log当前日志,用这个当前日志去做恢复

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章