`
guoyanxi
  • 浏览: 276987 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

about RESETLOGS

阅读更多
终于要面对RESETLOGS了,源于OCA的一道题目,主要就是问数据库在RESETLOGS之后,之前的备份是否还能使用。


10g之前是不可以的,在10g之前,每次完成incomplete恢复,都要马上做一个新的备份,因为之前的都变成无效的。


如果是使用RMAN的话,还要运行
RMAN> reset database;

以确保catalog能够认识新的数据库incarnation

10g之后,使用OPEN RESETLOGS就能够避免再次备份数据库,OPEN RESETLOG有以下的好处:
1.在完成incomplete恢复后不需要进行全库备份
2.进行完failover后不需要重建standby
3.不需要更改任何的备份脚本
4.能够使用之前的incarnation继续增量备份(貌似和第一点重复)
5.Block media recovery can restore backups from parent incarnation backups and recover the corrupted blocks through a RESETLOGS operation(这个理解不彻底,就原文上来吧)

可以看看参数log_archive_format
SQL> show parameters log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      %t_%s_%r.dbf


其中%r就是resetlogs的标记。

显然,如果没有了这个标记,oracle就难以唯一的确认每个归档日志文件。

那OPEN RESETLOGS具体做了以下动作:
1.把目前能够访问的redo log归档,并把online redo log清空
2.把log sequence重置为1(For example, if the current online redo logs are sequence 1000 and 1001 when you open RESETLOGS, then the database archives logs 1000 and 1001 and then resets the online logs to sequence 1 and 2.)
3.把不存在的redo log文件自动重建
4.重新初始化control file当中的redo log file和redo thread部分
5.使用新的RESETLOGS SCN和时间戳更新当前的datafile、online redo log file、和后来归档的redo log

PS:其实RESETLOGS就是保证datafile里面的数据的正确的,而不因为media fail等其他fail与recovry的部分搞混

PS2:可以看到,oracle使用多种、多重的保护方式以确保数据库内的数据安全。但是还没有了解到DB2相关的技术,期待中

PS3:其实对于像我这样的菜鸟,做完任何的恢复(除了flash back)都可以考虑马上来个全备。同时,合理、定时的备份永远可以减少风险和自己的工作量
分享到:
评论

相关推荐

    Open resetlogs操作对Oracle数据库恢复的影响.pdf

    在这些情况下,Oracle数据库管理员常使用resetlogs选项打开数据库。resetlogs操作对于Oracle数据库的恢复会产生重大的影响,具体体现在数据库备份、恢复过程以及数据库形态(incarnation)的变化上。 首先,...

    在redolog都丢失的情况下,使用隐藏参数,尝试以open resetlogs的方式打开数据库.txt

    在redolog都丢失的情况下,使用隐藏参数,尝试以open resetlogs的方式打开数据库.txt

    Bug 18411339 Low performance or ORA-1220

    and lh.resetlogs_change# = di.resetlogs_change# and di.status = 'CURRENT' and lh.thread# is not null and lh.resetlogs_change# is not null and lh.resetlogs_time is not null group by lh....

    Oracle11g 崩溃后-dbf数据库文件恢复

    6. **打开数据库**:最后,使用`ALTER DATABASE OPEN RESETLOGS`命令打开数据库,这将创建新的重做日志组并更新控制文件。 7. **验证数据**:打开数据库后,进行全面的数据验证,确保所有表和索引都处于一致状态。 ...

    ORACLE备份恢复

    对于正常`shutdown`或`shutdown abort`,以及当前或非当前数据文件受损,可能需要结合强制打开数据库的方法,如使用`backup controlfile to trace`或`resetlogs`的trace,并且没有数据文件备份。 总的来说,Oracle...

    ORACLE DG日常运维手册

    where val.resetlogs_change# = vdb.resetlogs_change# ; ``` 其中,`val.applied='YES'` 表示已应用;`val.applied='NO'` 表示待应用。 - **验证最大日志序列号**: - 主库: ```sql SQL> select thread#, ...

    oracle中FLASHBACK

    FLASHBACK DATABASE flashback data1base闪回到过去的某一时刻 闪回点之后的所有工作都将丢失 必须使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再闪回至resetlogs之前的时间点) .......

    PS_ResetLogs:在重新生成日志文件之前,重置日志文件(可选),并通过电子邮件发送(可选)

    重置日志 什么是重置日志 Reset-Logs是一个小的实用程序,它接收一个日志文件(不能锁定),并且 [可选]以其他名称将其移至已存档状态 [可选]通过电子邮件将其发送到特定地址 使用[Optional]标头重新创建 ...

    备份与恢复测试

    - 当不需要使用`resetlogs`时,可以选择禁用该选项,从而避免不必要的麻烦。 - 对于某些特定场景,如需要清除文件组或者重置日志时,可以通过特定的RMAN命令来进行操作。 **1.3 RMAN参数配置与catalog管理** - ...

    案例解决:一次oracle掉电的处理过程

    数据库在重启后尝试打开时,出现了ORA-01589错误,提示必须使用RESETLOGS或NORESETLOGS选项进行数据库打开。这通常意味着数据库在异常关闭后需要进行介质恢复(Media Recovery),并且日志文件的状态可能已经不一致...

    REDO文件block损坏的解决方法

    首先,需在Oracle参数文件中设置`_allow_resetlogs_corruption=true`,这一设置允许数据库在redo日志块损坏的情况下进行resetlogs操作。注意,此参数仅在特殊情况下使用,应谨慎操作。 #### 步骤2:数据库实例重启 ...

    Oracle Recovery Tools-最新版(202501)

    主要功能: 1. Oracle 单个/批量坏块修复 2. Oracle 单个block标记为坏块 ...5. 修改文件头resetlogs scn 6. 修改文件头fuzzy标记 7. 不同文件之间数据块拷贝 8. 修改oracle进程内存中内容,常见使用于修改oracle scn等

    oracle非归档模式丢失全部联机日志后的处理方法

    * 在使用隐含参数进行处理时,需要添加 _allow_resetlogs_corruption=TRUE 参数。 * 在打开数据库时,可能出现 ORA-00603 错误,可以通过多次重起数据库解决。 * 在处理过程中,需要多次重起数据库以解决错误。 ...

    Oracle Recovery Tools-202207版

    主要功能: 1. Oracle 单个/批量坏块修复 2. Oracle 单个block标记为坏块 ...5. 修改文件头resetlogs scn 6. 修改文件头fuzzy标记 7. 不同文件之间数据块拷贝 8. 修改oracle进程内存中内容,常见使用于修改oracle scn等

    Oracle恢复流程

    最后,如果需要,可以执行`alter database open resetlogs`以更改日志序列,特别是在使用resetlogs选项恢复数据库后。 总的来说,Oracle恢复流程涉及多个步骤,包括检查和恢复控制文件、数据文件、日志文件,以及...

    解决ORACLE联机日志文件无故全部消失问题

    因此,我们需要设置隐含参数 `_allow_resetlogs_corruption=TRUE` 来恢复当前联机日志: ``` SQL> alter system set "_allow_resetlogs_corruption"=TRUE; ``` 然后,我们可以执行以下 SQL 命令来恢复当前联机日志...

    睿备份-oracle备份工具.zip

    可以支持oracle mysql sqlserver自动备份,mysql sqlserver恢复; oracle恢复: cmd rman target \ shutdown immediate; startup mount; restore database until time "to_date('...alter database open resetlogs;

Global site tag (gtag.js) - Google Analytics