暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

归档日志

爱学习de小馋猫 2019-09-10
365

1. 归档和非归档的区别

1)归档会在日志切换时,备份历史日志,用于OLTP,可以进行冷备份和热备份,可以实现数据库完全恢复、不完全恢复(基于时间点)

2)归档会启用arcn的后台进程、占用磁盘空间

3)非归档用于OLAP/DSS,只能冷备份,只能恢复到最后一次备份状态


说明:

归档和非归档是数据库的状态

切换归档只能在mount模式下


2. 查看归档模式:

    SQL>archive log list;
    Database log mode Archive Mode
    Automatic archival Enabled
    Archive destination            /u01/oradata/arch/   // 存档终点
    Oldest online log sequence     7   //见 v$log 中的sequence
    Next log sequence to archive 10
    Current log sequence 10

    Archive destination 不指定时,有两种情况:

    1. 没有闪回区  $ORACLE_HOME/dbs

    2. 有闪回区  闪回区/VBOX8DB/achievelog/date/归档日志文件名

    Archive destination 指定位置,可指定 R2 1-31 ;R1 1-11 

      SQL> Show parameter LOG_ACHIEVE_DEST
      SQLALTER SYSTEM SET LOG_ACHIEVE_DEST_2 = '地址'

      省不设置value值

      多个归档目的地的情况:可能会出现一个成功另一个不成功(被覆盖)

      可以指定mandatory = yes ,指定某个目的地成功才覆盖


      3. 设置归档模式

        //关闭数据库,这里shutdown 一定要immediate方式
        SQL> shutdown immediate
        Database closed.
        Database dismounted.
        ORACLE instance shut down.
        //到mount下设置
        SQL> startup mount
        SQL>alter database noarchivelog;
        Database altered.
        // 查看当前归档模式
        SQL> archive log list;
        Database log mode No Archive Mode
        Automatic archival             Disabled  // 禁用归档
        Archive destination u01/oradata/arch
        Oldest online log sequence 1
        Current log sequence 2
        //切换回 archivelog,我们不要No Archive Mode
        SQL> alter database archivelog;
        SQL> alter database open;


        4. 归档日志的路径及命名方法

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

        如果log_archive_dest_n为空,归档日志文件目录为log_archive_dest;

        如果log_archive_dest值也是空,则默认的是db_recover_file_dest参数指定的位置。

        缺省安装后db_recover_file_des指向了你的flash_recovery_area。


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


        查看 archive 参数

          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/oradata/arch/
          ...
          log_archive_dest_9 string
          log_archive_dest_state_1 string enable
          log_archive_dest_state_10 string enable
          ...
          log_archive_format string arc_%t_%r_%s.arc
          log_archive_local_first boolean TRUE
          log_archive_max_processes integer 4
          log_archive_min_succeed_dest integer 1
          log_archive_start boolean FALSE
          log_archive_trace integer 0
          standby_archive_dest string ?/dbs/arch

          查看db_recovery 参数

            SQL> show parameter db_recovery
            NAME TYPE VALUE
            ------------------------------------ ----------- ------------------------------
            db_recovery_file_dest string
            db_recovery_file_dest_size big integer 0


            注意:先设置大小db_recovery_file_dest_size,再设置位置db_recovery_file_dest


            首先来看这两个参数:

            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_1='location=/u01/oradata/arch';

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

                SQL> alter system set log_archive_dest_2='service=standby'## 当前数据库的备份库

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

                  SQL> alter system set log_archive_dest_1='location=/u01/oradata/arch mandatory';


                  mandatory 强制归档:只有在归档成功之后,重做日志才能被覆盖,在设置时至少应该有一个本地(location)强制(mandatory)归档目录

                  可以使用log_archieve_min_succsess_dast 参数 设置最小成功地址数,替代mandatory

                  默认optional, 即使归档没有成功也可以覆盖联机日志文件。

                  log_archive_format 是定义命名格式的,我使用了下面三个内置符号(模板),其含义是:

                  闪回区的文件命名不符合这个命名规范,使用omf(数据库管理)o1_mf_thread_sequence_resetlog.arc

                  %t ,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. 在liunx下查看归档进程

                      [oracle@vbox88 ~]$ ps -ef |grep ora_arc
                      oracle 1770 1 0 16:57 ? 00:00:00 ora_arc0_vbox88in
                      oracle 1772 1 0 16:57 ? 00:00:00 ora_arc1_vbox88in
                      oracle 1774 1 0 16:57 ? 00:00:00 ora_arc2_vbox88in
                      oracle 1776 1 0 16:57 ? 00:00:00 ora_arc3_vbox88in
                      oracle 2076 1590 0 17:55 pts/2 00:00:00 grep ora_arc

                      ARCn就是归档进程,这里启动了四个0-3,最多可达30个,由log_archive_max_processes参数指定。

                        SQL>show parameter log_archive_max_processes
                        NAME TYPE VALUE
                        ------------------------------------ ----------- -------------
                        log_archive_max_processes integer 4


                        6. 日志归档:

                        1)自动归档,日志切换时

                        2)手工

                        3)在归档时,会把归档信息写入到控制文件

                          SQL> alter system switch logfile;    // 手工归档方法一。
                          SQL> alter system archive log current; // 手工归档方法二,此方式仅限于Archive mode。
                          SQL> alter system archive log current noswitch; // 同上,但是日志不做切换

                          查看已经归档日志:

                            SQL> select name from v$archived_log;
                            NAME
                            ------------------------------------------------------------
                            /u01/oradata/arch/arc_1_989420613_43.arc
                            /u01/oradata/arch/arc_1_989420613_44.arc
                            ...


                            抽奖点一点哦~~


                            文章转载自爱学习de小馋猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                            评论