你好,游客 登录 注册 搜索
背景:
阅读新闻

Oracle 归档日志

[日期:2011-03-07] 来源:Linux社区  作者:robinson_0612 [字体: ]

--====================

-- Oracle 归档日志

--====================

 

    Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档。相应的日志被称为归档日志。

 

一、归档日志

    是联机重做日志组文件的一个副本

    包含redo记录以及一个唯一的log sequence number

    对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档

    对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用

    自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档

    归档日志用途

        恢复数据库

        更新standby数据库

        使用LogMiner 提取历史日志的相关信息

       

二、日志的两种模式

    1.非归档模式

        不适用与生产数据库

        创建数据库时,缺省的日志管理模式为非归档模式

        当日志切换,检查点产生后,联机重做日志文件即可被重新使用

        联机日志被覆盖后,介质恢复仅仅支持到最近的完整备份

        不支持联机备份表空间,一个表空间损坏将导致整个数据库不可用,需要删除掉损坏的表空间或从备份恢复

        对于操作系统级别的数据库备份需要将数据库一致性关闭

        应当备份所有的数据文件、控制文件(单个)、参数文件、密码文件、联机日志文件(可选)

 

    2.归档模式

        能够对联机日志文件进行归档,生产数据库强烈建议归档

        在日志切换时,下一个即将被写入日志组必须归档完成之后,日志组才可以使用

        归档日志的Log sequence number信息会记录到控制文件之中

        必须有足够的磁盘空间用于存放归档日志

        Oracle 9i 需要设置参数log_archive_start=true 才能够进行自动归档

        备份与恢复

            支持热备份,且当某个非系统表空间损坏,数据库仍然处于可用状态,且支持在线恢复

            使用归档日志能够实现联机或脱机时点恢复(即可以恢复到指定的时间点、指定的归档日志或指定的SCN)

 

三、两种模式的切换设置及手动归档

    1.非归档到归档模式

        a.一致性关闭数据库(shutdown [immediate | transactional |normal])

        b.启动到mount阶段(startup mount)

        c.切换到归档模式(alter database archivelog  [manual])

        d.切换到open阶段(alter database open)

        e.对数据做一个完整备份(full backup)

        --演示非归档到归档模式

            SQL> ARCHIVE LOG LIST    --查看数据库是否处于归档模式

            Database log mode              No Archive Mode

            Automatic archival             Disabled

            Archive destination            USE_DB_RECOVERY_FILE_DEST

            Oldest online log sequence     14

            Current log sequence           16

            SQL> SELECT log_mode FROM v$database;  --查看数据库是否处于归档模式

 

            LOG_MODE

            ------------

            NOARCHIVELOG       

 

            SQL> SHUTDOWN IMMEDIATE;     --一致性关闭数据库

            Database closed.

            Database dismounted.

            ORACLE instance shut down.

            SQL> STARTUP MOUNT;         --启动到mount状态

            ORACLE instance started.

 

            Total System Global Area  251658240 bytes

            Fixed Size                  1218796 bytes

            Variable Size              75499284 bytes

            Database Buffers          171966464 bytes

            Redo Buffers                2973696 bytes

            Database mounted.

            SQL> ALTER DATABASE ARCHIVELOG;  --切换到自动归档模式

            Database altered.

            SQL> ALTER DATABASE OPEN;        --切换到open状态

            Database altered.

            SQL> ARCHIVE LOG LIST;           --查看数据库的归档状态

            Database log mode              Archive Mode    --已置为归档模式

            Automatic archival             Enabled         --对日志进行自动归档

            Archive destination            USE_DB_RECOVERY_FILE_DEST

            Oldest online log sequence     14

            Next log sequence to archive   16

            Current log sequence           16

            --备份数据库步骤省略

 

    2.归档模式切换到非归档模式(步骤同非归档到归档模式仅仅是c步骤使用alter database noarchivelog,演示省略)

        a.一致性关闭数据库(shutdown [immediate | transactional |normal])

        b.启动到mount阶段(startup mount)

        c.切换到归档模式(alter database noarchivelog  )

        d.切换到open阶段(alter database open)

        e.对数据做一个完整备份(full backup)

       

    3.手动归档

        手动归档时需要将日志模式切换为alter database archivelog manual

        再使用alter system archive log current | all 实现归档

        更多手动归档命令:ALTER SYSTEM archive_log_clause

        注意:

            手动归档模式下不支持stanby数据库

            alter database archivelog模式下也可以实现对日志的归档

           

            SQL> ALTER DATABASE ARCHIVELOG MANUAL;     --将日志模式切换为手工归档模式

 

            Database altered.

 

            SQL> ALTER DATABASE OPEN;                  --打开数据库

 

            Database altered.

 

            SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;     --对当前的日志进行归档(建议在mount阶段完成)

 

            System altered.

 

            SQL> ALTER SYSTEM ARCHIVE LOG ALL;         --对所有的日志进行归档

            alter system archive log all

            *

            ERROR at line 1:

            ORA-00271: there are no logs that need archiving  --没有需要归档的日志

 

linux
相关资讯       Oracle教程 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款