0

0

Oracle 归档日志

php中文网

php中文网

发布时间:2016-06-07 15:44:43

|

1426人浏览过

|

来源于php中文网

原创

--==================== -- Oracle 归档日志 --==================== Oracle 可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档。相应的日志被称为归档日志。 一、归档日志 是联机重做日志组文件的一个副本 包含 redo 记录



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

-- Oracle 归档日志

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

 

携云CMS(XerCMS)20151029
携云CMS(XerCMS)20151029

该软件为一个php进行开发的企业类网站功能特点:1.代码简洁,二次开发好2.模板标签化3.自定义模型4.会员、论坛相结合更新日志:2015-10-29增加会员中心退出链接后台美化2015-10-28修正发布档案JS错误修正论坛发布刷新后JS错误增加图片设置界面增加网站信息设置界面

下载

    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  --没有需要归档的日志

 

    4.归档进程的调整

        通过设置LOG_ARCHIVE_MAX_PROCESSES 参数,可以指定数据库规定所需初始化的进程数,缺省的归档进程数为2

        一般情况下不需要修改该参数,Oracle会根据归档情况自动启动额外的归档进程

        也可以动态的增加或减少归档进程数,比如有些业务在月底需要进行大量归档,平时则归档较少,对此可以动态修改

        修改方法

            ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;

   

    5.配置归档(两种归档位置配置方法)

        a.归档到本机且少于等于两个归档位置

            设置LOG_ARCHIVE_DESTLOG_ARCHIVE_DUPLEX_DEST参数

            alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;

            alter system set log_archive_duplex_dest = '/u01/app/oracle/archivelog2' scope = spfile;

           

        b.归档到本机或远程主机

            设置LOG_ARCHIVE_DEST_n 参数,n最大值为10

            alter system set log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3';

            alter system set log_archive_dest_2 = 'SERVICE=standby1';

            对于远程归档位置,SERVICE选项需要指定远程数据库的网络服务名(tnsnames.ora文件中配置)

            LOG_ARCHIVE_DEST_n的两个常用选项

                MANADATORY | OPTIONAL:

                    MANADATORY表示归档必须成功复制到目的路径之后,联机重做日志才能被复用,OPTIONAL正好相反

                REOPEN

                    指定归档失败后指定间隔多少时间重试归案,缺省的为300

                示例:

                log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3 manadatory reopen = 600'

                log_archive_dest_2 = 'SERVICE=standby1 manadatory reopen'

               

        c.两种归档方法异同(前者log_archive_destlog_archive_duplex_dest ,后者log_archive_dest_n)

            两者都可以归档到本机,后者可以归档到远程主机,前者不支持该功能

            前者最多配置两个归档位置,后者可以配置10个归档位置

            两者互不兼容,要么使用前者,要么使用后者

            使用后者归档到本地时需要增加LOCATION选项,备份到远程主机需要使用SERVICE选项

            但上述两种方式未指定路径时,归档日志位于db_recovery_file_dest 缺省为$ORACLE_BASE/flash_recovey_area

           

        d.归档日志命名格式

            设置LOG_ARCHIVE_FORMAT参数,Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf

                %s: 日志序列号:

                %S: 日志序列号(带有前导)

                %t: 重做线程编号.

                %T: 重做线程编号(带有前导)

                %a: 活动ID

                %d: 数据库ID

                %r RESETLOGSID.

            alter system set log_archive_format = 'arch_%t_%s_%r.arc';

           

        e.归档位置状态

            Valid/Invalid      --磁盘位置及服务名等是否有效

            Enabled/Disabled   --磁盘位置的可用状态及数据库能否使用该归档位置

            Active/Inactive    --访问归档目的地是否有异常

           

        f.归档成功的最小个数(使用参数log_archive_min_succeed_dest = n)

            alter system set log_archive_min_succeed_dest = 2;   --缺省为1

            联机重做日志组能够被覆盖的前提

                所有强制路径归档位置成功实现归档

                归档目的地的成功归档的个数大于或等于上述参数设定的值

                当强制个数大于该参数设定的个数,则以强制个数为准

                当强制个数小于该参数设定的个数,则可选的成功归档路径加上强制的归档路径个数至少等于该参数设定值

       

        g.控制归档的可用性(使用参数log_archive_dest_state_n)

            alter system set log_archive_dest_state_1 = enable | defer

            enable  -->缺省状态,可以在该归档位置进行归档

            defer   -->禁用该归档位置

           

        h.演示归档路径配置及查看归档进程,归档位置状态

            SQL> ARCHIVE LOG LIST;         --查看日志是否处于归档状态

            Database log mode              Archive Mode

            Automatic archival             Enabled

            Archive destination            USE_DB_RECOVERY_FILE_DEST

            Oldest online log sequence     24

            Next log sequence to archive   26

            Current log sequence           26

 

            SQL> ho ps -ef | grep ora_arc    --查看归档进程是否已启动

            oracle    4062     1  0 11:43 ?        00:00:00 ora_arc0_orcl

            oracle    4064     1  0 11:43 ?        00:00:00 ora_arc1_orcl

 

            SQL> SHOW PARAMETER ARCHIVE  --查看归档路径是否已设置,为空值表示未设置

 

            NAME                                 TYPE        VALUE

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

            archive_lag_target                   integer     0

            log_archive_config                   string

            log_archive_dest                     string

            log_archive_dest_1                   string

            log_archive_dest_10                  string

            log_archive_dest_2                   string

            log_archive_dest_3                   string

            log_archive_dest_4                   string

            log_archive_dest_5                   string

            log_archive_dest_6                   string

            log_archive_dest_7                   string

 

            NAME                                 TYPE        VALUE

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

            log_archive_dest_8                   string

            log_archive_dest_9                   string

            log_archive_dest_state_1             string      enable

            log_archive_dest_state_10            string      enable

            log_archive_dest_state_2             string      enable

            log_archive_dest_state_3             string      enable

            log_archive_dest_state_4             string      enable

            log_archive_dest_state_5             string      enable

            log_archive_dest_state_6             string      enable

            log_archive_dest_state_7             string      enable

            log_archive_dest_state_8             string      enable

 

            NAME                                 TYPE        VALUE

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

            log_archive_dest_state_9             string      enable

            log_archive_duplex_dest              string

            log_archive_format                   string      %t_%s_%r.dbf

            log_archive_local_first              boolean     TRUE

            log_archive_max_processes            integer     2

            log_archive_min_succeed_dest         integer     1

            log_archive_start                    boolean     FALSE --该参数在9i中使用

            log_archive_trace                    integer     0

            remote_archive_enable                string      true

            standby_archive_dest                 string      ?/dbs/arch

 

 

            SQL> alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;

 

            System altered.

 

            SQL> alter system set log_archive_duplex_dest= '/u01/app/oracle/archivelog2' scope=spfile;

 

            System altered.

 

            SQL> alter system set log_archive_format = 'arch_%t_%s_%r.arc' scope = spfile;

 

            --设定完毕后需要重新启动实例,在此省略关闭启动信息

 

            SQL> ho ls /u01/app/oracle/archivelog1  --查看归档路径下是否存在文件或文件夹

 

            SQL> ho ls /u01/app/oracle/archivelog2  --查看归档路径下是否存在文件或文件夹

 

            SQL> alter system archive log current;  --手动进行归档

 

            System altered.

 

            SQL> ho ls -l /u01/app/oracle/archivelog1   --在指定的文件夹archivelog1已产生归档日志

            total 18224

            -rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arc

 

            SQL> ho ls -l /u01/app/oracle/archivelog2   --在指定的文件夹archivelog2已产生归档日志

            total 18224

            -rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arc

 

            SQL> ho mkdir /u01/app/oracle/archivelog3   --创建新的归档路径

 

            SQL> ho mkdir /u01/app/oracle/archivelog4   --创建新的归档路径

 

            SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'

              2 scope = spfile;

 

            System altered.

 

            SQL>  alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'

              2   scope = spfile;

 

            System altered.

 

            SQL> shutdown immediate;       --关闭实例

            Database closed.

            Database dismounted.

            ORACLE instance shut down.

            SQL> startup                   --启动实例后,收到错误提示表明两种归档方式不兼容

            ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

 

            --关于上述设置导致的错误处理请参照:又一例SPFILE设置错误导致数据库无法启动

                                                SPFILE错误导致数据库无法启动

 

            --下面是正确的处理办法,应当先将一种归档方式路径置空,此处是将log_archive_dest置空

            SQL> alter system set log_archive_dest = '' scope = spfile;

 

            System altered.

           

            --此处是将log_archive_duplex_dest置空

            SQL> alter system set log_archive_duplex_dest = '' scope = spfile;

 

            System altered.

           

            --接下来再设定log_archive_dest_1log_archive_dest_2

            SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'

              2 scope = spfile;

 

            System altered.

 

            SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'

              2  scope = spfile;

 

            System altered.

           

            --由于没有配置standby服务器,所以省略配置到远程主机

            --设定完毕后需要重新启动实例,此时系统能正常启动,在此省略关闭启动信息

           

            SQL> alter system archive log current;  --进行手动归档

 

            System altered.

 

            SQL> ho ls -l /u01/app/oracle/archivelog3/   --查看归档日志

            total 27752

            -rw------- 1 oracle oinstall 28382208 Aug  2 13:46 arc_1_38_724852763.arc

 

            SQL> ho ls -l /u01/app/oracle/archivelog4/   --查看归档日志

            total 27752

            -rw------- 1 oracle oinstall 28382208 Aug  2 13:45 arc_1_38_724852763.arc  

 

    SQL> col dest_name format a20; 

    SQL> col destination format a30;

    SQL> select dest_name,status,archiver,destination,

      2  log_sequence,reopen_secs,transmit_mode,process

      3  from v$archive_dest;    --查看归档目的地的相关状态信息

 

    DEST_NAME            STATUS    ARCHIVER   DESTINATION                    LOG_SEQUENCE REOPEN_SECS TRANSMIT_MOD PROCESS

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

    LOG_ARCHIVE_DEST_1   VALID     ARCH       /u01/app/oracle/archivelog3/             38         300 SYNCHRONOUS  ARCH

    LOG_ARCHIVE_DEST_2   VALID     ARCH       /u01/app/oracle/archivelog4/             38         300 SYNCHRONOUS  ARCH

    LOG_ARCHIVE_DEST_3   INACTIVE  ARCH                                                 0           0 SYNCHRONOUS  ARCH

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

             

        SQL> alter system set log_archive_dest_state_2 = defer;   --停用log_archive_dest_state_2

 

        System altered.

 

        SQL> show parameter log_archive_dest_state

 

        NAME                                 TYPE        VALUE

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

        log_archive_dest_state_1             string      enable

        log_archive_dest_state_10            string      enable

        log_archive_dest_state_2             string      DEFER     --该路径显示为defer

        log_archive_dest_state_3             string      enable

        log_archive_dest_state_4             string      enable

        log_archive_dest_state_5             string      enable

        log_archive_dest_state_6           

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

127

2026.02.25

Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法
Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法

本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。

18

2026.02.25

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

15

2026.02.25

Python数据处理流水线与ETL工程实战
Python数据处理流水线与ETL工程实战

本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。

1

2026.02.25

Java领域驱动设计(DDD)与复杂业务建模实战
Java领域驱动设计(DDD)与复杂业务建模实战

本专题围绕 Java 在复杂业务系统中的建模与架构设计展开,深入讲解领域驱动设计(DDD)的核心思想与落地实践。内容涵盖领域划分、聚合根设计、限界上下文、领域事件、贫血模型与充血模型对比,并结合实际业务案例,讲解如何在 Spring 体系中实现可演进的领域模型架构,帮助开发者应对复杂业务带来的系统演化挑战。

1

2026.02.25

Golang 生态工具与框架:扩展开发能力
Golang 生态工具与框架:扩展开发能力

《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。

18

2026.02.24

Golang 性能优化专题:提升应用效率
Golang 性能优化专题:提升应用效率

《Golang 性能优化专题》聚焦 Go 应用在高并发与大规模服务中的性能问题,从 profiling、内存分配、Goroutine 调度、GC 机制到 I/O 与锁竞争逐层分析。结合真实案例讲解定位瓶颈的方法与优化策略,帮助开发者建立系统化性能调优思维,在保证代码可维护性的同时显著提升服务吞吐与稳定性。

9

2026.02.24

Golang 面试题精选:高频问题与解答
Golang 面试题精选:高频问题与解答

Golang 面试题精选》系统整理企业常见 Go 技术面试问题,覆盖语言基础、并发模型、内存与调度机制、网络编程、工程实践与性能优化等核心知识点。每道题不仅给出答案,还拆解背后的设计原理与考察思路,帮助读者建立完整知识结构,在面试与实际开发中都能更从容应对复杂问题。

6

2026.02.24

Golang 运行与部署实战:从本地到云端
Golang 运行与部署实战:从本地到云端

《Golang 运行与部署实战》围绕 Go 应用从开发完成到稳定上线的完整流程展开,系统讲解编译构建、环境配置、日志与配置管理、容器化部署以及常见运维问题处理。结合真实项目场景,拆解自动化构建与持续部署思路,帮助开发者建立可靠的发布流程,提升服务稳定性与可维护性。

5

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 4.1万人学习

Java 教程
Java 教程

共578课时 | 72.6万人学习

oracle知识库
oracle知识库

共0课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号