zoukankan      html  css  js  c++  java
  • oracle之二归档日志

    归档日志 archivelog

    5.1 归档和非归档的区别
         1)归档会在日志切换时,备份历史日志,用于OLTP,可以进行冷备份和热备份,可以实现数据库完全恢复、不完全恢复(基于时间点)
         2)归档会启用arcn的后台进程、占用磁盘空间
         3)非归档用于OLAP/DSS,只能冷备份,只能恢复到最后一次备份状态
     
    5.2 查看归档模式:
         
    02:34:50 SQL>archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /u01/disk1/timran/
    Oldest online log sequence     1
    Next log sequence to archive   2
    Current log sequence           2               //当前的redo log序号为2

    5.3 设置归档模式:1.开启归档模式  2.设置归档路径
    02:35:50 SQL> shutdown immediate    //这里shutdown 一定要immediate方式
    Database closed.
    Database dismounted.
    ORACLE instance shut down.

    02:36:40 SQL> startup mount        //到mount下设置

    02:37:50 SQL>alter database noarchivelog;

    Database altered.

    02:37:55 SQL> archive log list;
    Database log mode              No Archive Mode        
    Automatic archival             Disabled
    Archive destination            /u01/disk1/timran/
    Oldest online log sequence     1
    Current log sequence           2

    02:38:15 SQL> alter database archivelog;        //换回来,我们不要No Archive Mode

    02:38:30 SQL> alter database open;

    5.4、归档日志的路径及命名方法

    指定归档日志存放处及命名,

    如果log_archive_dest_n为空,归档日志文件目录为log_archive_dest,如果log_archive_dest值也是空,则默认的是db_recover_file_dest参数指定的位置。缺省安装后db_recover_file_des指向了你的flash_recovery_area

    注意:另外指定并不意味着你要取消闪回恢复区的参数,因为这个闪回恢复区不仅存放归档日志,还有RMAN的备份及闪回日志等等。

    02:39:20 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      location=/u01/disk1/timran/ mandatory
    log_archive_dest_10                  string
    log_archive_dest_2                   string
    log_archive_dest_3
    ...
    log_archive_duplex_dest           string
    log_archive_format                   string      arch_%t_%r_%s.log
    ...

    SQL> show parameter db_recovery

    NAME                                 TYPE            VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      /u01/flash_recovery_area
    db_recovery_file_dest_size                      big integer 2G
    SQL>

    首先来看这两个参数:
    log_archive_dest_n
    log_archive_format

    log_archive_dest_n (n:1-10) 表示可以有10个目标路径存放归档日志(镜像关系),即可以多路复用10个归档日志的备份。如上显示我只使用了log_archive_dest_1,也就是说只有一套归档日志,没有做镜像,若是生产系统最好能再加一个指定。

    SQL> alter system set log_archive_dest_2='location=/u01/arch';

    //把历史日志归档到本机目录下 (location 代表本机)

    SQL> alter system set log_archive_dest_2='service=standby';

    //远程备份,把历史日志备份到服务名为test的另外的数据库上。(service 代表远程), 配置双机时有用。

    SQL> alter system set log_archive_dest_1='location=/u01/disk1/timran mandatory';                                                
    //mandatory 强制归档:只有在归档成功之后,重做日志才能被覆盖,在设置时至少应该有一个本地(location)
    强制(mandatory)归档目录(考点)
    //默认optional, 即使归档没有成功也可以覆盖联机日志文件。
              
    log_archive_format 是定义命名格式的,我使用了下面三个内置符号(模板),其含义是:

    %t ,thread# , 日志线程号 thread
    %s ,sequence ,日志序列号
    %r ,resetlog ,代表数据库的周期

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

    再来看看这两个参数:(淘汰)
    log_archive_dest
    log_archive_duplex_dest
    如果都定义了可以完成两路复用(镜像)但只能指定本机location,无法指定远程。

    一旦使用log_archive_dest_n,log_archive_dest参数就失效了,log_archive_dest与log_archive_dest_n互斥。

    5.5 在liunx下查看归档进程

    [oracle@timran timran]$ ps -ef |grep ora_arc
    oracle    1215  2435  0 13:26 pts/2    00:00:00 grep ora_arc
    oracle   31796     1  0 13:00 ?        00:00:00 ora_arc0_timran11g
    oracle   31798     1  0 13:00 ?        00:00:00 ora_arc1_timran11g

    ARCn就是归档进程,这里启动了两个arc0和arc1,最多可达30个,由log_archive_max_processes参数指定。

    5.6 日志归档:
        1)自动归档,日志切换时
         2)手工 alter system switch logfile;
            3)在归档时,会把归档信息写入到控制文件
        
    02:44:00 SQL> alter system switch logfile;        //手工切换redo log file,归档模式或非归档模式均可。
    02:46:30 SQL> alter system archive log current;        //手工归档方法,此方式仅限于Archive mode。

    查看已经归档日志:
    02:48:08 SQL> select name from v$archived_log;

    NAME
    --------------------------------------------------------------------------------------------------------
    /u01/disk1/timran/arch_1_782662700_141.log
    /u01/disk1/timran/arch_1_782662700_142.log
    /u01/disk1/timran/arch_1_782662700_143.log
    /u01/disk1/timran/arch_1_782662700_144.log
    /u01/disk1/timran/arch_1_782662700_145.log
    /u01/disk1/timran/arch_1_788918717_1.log
    /u01/disk1/timran/arch_1_788918717_2.log
    /u01/disk1/timran/arch_1_788918717_3.log
    05:47:10 SQL>

  • 相关阅读:
    【php数组函数序列】之array_values()
    Mysql数据库编码问题3(修改数据库,表,字段编码为utf8)
    framework fckedit / KingEditor
    Linux + JDK/TOMCAT/Dia(Planner)/eclipse
    proxyServer squid / varnish / apache traffic server / ATS
    framework SiteMesh
    Linux + BusyBox
    对链表的插入操作
    链表原理
    链表的删除操作
  • 原文地址:https://www.cnblogs.com/jinxf/p/9166735.html
Copyright © 2011-2022 走看看