oracle归档日志

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

一、归档日志

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

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

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

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

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

          归档日志用途:<1>恢复数据库<2>更新standby数据库<3>使用LogMiner 提取历史日志的相关信息

 

 

二、日志的两种模式

   1.非归档模式

          不适用与生产数据库

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

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

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

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

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

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

 

 

2.归档模式

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

          在日志切换时,下一个即将被定稿日志组必须归档完成后,日志组才使用

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

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

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

           备份与恢复

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

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

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

   1.非归档到归档模式

        1>一致性关闭数据库(shutdown [immediate | transactional | normal]

        2>启动到mount阶段(startup mount)

       3>切换到归档模式(alter database archivelog   [manual])

        4>切换到open阶段(alter database open)

        5>对数据做一个完整备份(full backup)

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

sql>archive log list;    --查看数据库是否处于归档模式

Data log mode                         no archive mode

automatice archive                  disabled

archive destination                  USE_DB_RECOVERY_FILE_DEST

oldest onlive log sequence      14

current log sequence               16

 

sql>select   log_mode from v$databse;--查看数据库是否牌归档模式

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           289406976bytes

fixed size                                  1248600     bytes

variable size                             9646972    bytes

database buffers                      188743680 bytes

redo byffers                              2945024     bytes

database mounted.

sql>alter database archivelog;--切换到自动归档模式

database altered.

 

sql>archive log list;--查看数据库的归档状态

database log mode                  archive    mode      --已置为归档模式

automoatic  archive                 enabled                  --对日志进行自动归档

archive    destination               USE_DB_RECOVERY_FILE_DEST

oldest online log sequence      14

next log sequence to arcive     16

currenct lg sequence                16

---备份数据库步骤省略

 

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

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

    2>启动到mount阶段(startup mount)

    3>切换到归档模式(alter database noarchivelog)

    4>切换到open阶段(alter database open)

    5>对数据做一个完整备份(full backup)

 

 

3.手动归档

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

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

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

      注意:<1>手动归档模式下不支持stanby数据库

                <2>在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 ar no logs tht need archiving --没有需要 归档的日志

 

 

 

4.归档里程的调整

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

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

          也可以动态的增加或减少归档进程数据,比如有些业务在月底需要进行大量归档,平时则归档较少,对些可能动态修改方法 :  alter system set   log_archive_max_processes=3;

 

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

  <1>归档到本机且少于等于两个归档位置

设置LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数

alter system set log_archive_dest = '/u01app/oracle/archivelogl' scope = spfile;

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

 

<2>归档到本机或远程主机

设置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'>

<3>两种归档方法异同(前者log_archive_dest、log_archive_duplex_dest,后者log_archive_dest_n)

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

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

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

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

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

 

<4>归档日志命名格式

设置LOG_ARCHIVE_FORMAT参数,unix下的缺省设置为LOG_ARCHIVE_FROMAT=%T_%S_%R.DBF

%s:日志序列号

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

%t:重做线程编号

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

%a:活动ID号

%d:数据库ID号

%r:RESELOGS的ID值

 

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

 

<5>归档位置状态

valid/invalid ---磁盘位置及服务名等是否有效

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

active/inactive  --访问归档目的地是否有异常

 

 

<6>归档成功的最小数(使用参数log_archive_min_shcceed_dest = n)

alter systemset log_archive_min_succeed_dest = 2;--缺省为1

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

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

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

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

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

 

<7>.控制归档可用性(使用参数log_archive_dest_state_n)

alter syste set log_archive_dest_state_1 = enable | defer

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

defer --->禁用该归档位置

 

<8>演示归档路径配置及查看归档进程,归档位置状态

sql>archive log list;----查看日志是否牌归档状态

database log mode                           archive mode

automatic  archival                            enable

archive destination                            use_db_recovery_file_dest

oldest online  log   sequence            24

next log squence to archive              26

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 sstem set log_archive_dest = '/u01/app/oracle/archivelog1' 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 /u01app/oracle/archivelog1  -在指定夹archivlog1己产生归档日志

 

  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             string      enable

        log_archive_dest_state_7             string      enable

        log_archive_dest_state_8             string      enable

        log_archive_dest_state_9             string      enable        

 

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

 

        System altered.

 

        SQL> ho ls -l /u01/app/oracle/archivelog3; --可以看出archivelog3比archivelog4多出几个归档文件

        total 124772                               --建议将多出文件件的使用系统命令复制到archivelog4

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

        -rw------- 1 oracle oinstall  1788416 Aug  2 20:41 arc_1_39_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:21 arc_1_40_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:22 arc_1_41_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:22 arc_1_42_724852763.arc

        -rw------- 1 oracle oinstall  6647296 Aug  2 22:23 arc_1_43_724852763.arc

 

        SQL> ho ls -l /u01/app/oracle/archivelog4;

        total 29504

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

        -rw------- 1 oracle oinstall  1788416 Aug  2 20:41 arc_1_39_724852763.arc

 

        SQL> alter system set log_archive_dest_state_2 = enable; --启用log_archive_dest_state_2

 

        System altered.

 

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

 

        System altered.

 

        SQL> ho ls -l /u01/app/oracle/archivelog3; --启用后出现了相同的arc_1_44_724852763.arc文件

        total 124856

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

        -rw------- 1 oracle oinstall  1788416 Aug  2 20:41 arc_1_39_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:21 arc_1_40_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:22 arc_1_41_724852763.arc

        -rw------- 1 oracle oinstall 30257664 Aug  2 22:22 arc_1_42_724852763.arc

        -rw------- 1 oracle oinstall  6647296 Aug  2 22:23 arc_1_43_724852763.arc

        -rw------- 1 oracle oinstall    81408 Aug  2 22:25 arc_1_44_724852763.arc

 

        SQL> ho ls -l /u01/app/oracle/archivelog4;

        total 29588

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

        -rw------- 1 oracle oinstall  1788416 Aug  2 20:41 arc_1_39_724852763.arc

        -rw------- 1 oracle oinstall    81408 Aug  2 22:25 arc_1_44_724852763.arc

       

四、归档日志相关视图

    v$archived_log         -->从控制文件中获得归档的相关信息

    v$archive_dest         -->归档路径及状态

    v$log_history          -->控制文件中日志的历史信息

    v$database             -->查看数据库是否处于归档状态

    v$archive_processes    -->归档相关的后台进程信息

    命令:archive log list

   

        SQL> select  name,sequence#,registrar,standby_dest,archived,status

          2  from v$archived_log;  

          NAME                                                     SEQUENCE# REGISTR STA ARC S

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

        /u01/app/oracle/archivelog4/arc_1_38_724852763.arc              38 FGRD    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_39_724852763.arc              39 ARCH    NO  YES A

        /u01/app/oracle/archivelog4/arc_1_39_724852763.arc              39 ARCH    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_40_724852763.arc              40 ARCH    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_41_724852763.arc              41 ARCH    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_42_724852763.arc              42 ARCH    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_43_724852763.arc              43 ARCH    NO  YES A

        /u01/app/oracle/archivelog3/arc_1_44_724852763.arc              44 FGRD    NO  YES A

        /u01/app/oracle/archivelog4/arc_1_44_724852763.arc              44 FGRD    NO  YES A

 

 

 

 

 

 

 

 

 

 

 

 

 

     

 

 

 

 

 

 

 

                 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值