jy166102 发表于 2018-9-13 10:02:19

oracle Archived redo logfiles(归档重做日志)

  Archived redo logfiles(归档重做日志)
  因为在线重做日志的运行机制(循环使用的机制),会导致日志被覆盖,
  为了保证日志不被覆盖,更长时间的保留,那么,在线重做日志切换之后,
  将写满的在线重做日志,保存在另外一个存储位置,这种机制,称之为归档;
  ARCn这个进程负责归档操作;
  如果想要采用归档机制,那么必须将数据库置为归档模式;
  如何查询当前数据库的归档模式?
  SYS@orcl11g> archive log list;
  Database log mode            No Archive Mode -- 数据库日志模式(非归档)
  Automatic archival             Disabled-- 自动归档
  Archive destination            USE_DB_RECOVERY_FILE_DEST --归档存储位置
  Oldest online log sequence   0-- 最老的在线重做日志的序列号
  Current log sequence         29 -- 当前日志序列号
  SYS@orcl11g> select log_mode from v$database;
  LOG_MODE
  ------------
  NOARCHIVELOG
  如何设置数据库为归档模式?
  1.一致性关闭数据库
  shutdown immediate;
  2.将数据库启动到mount状态
  startup mount;
  3.修改数据库日志模式
  SYS@orcl11g> alter database archivelog;
  SYS@orcl11g> alter database noarchivelog; --归档模式,转换为非归档模式
  4.打开数据库
  alter database open;
  5.查看日志模式:
  SYS@orcl11g> archive log list;
  Database log mode            Archive Mode
  Automatic archival             Enabled
  Archive destination            USE_DB_RECOVERY_FILE_DEST
  Oldest online log sequence   0
  Next log sequence to archive   29-- 下一个要被归档的日志序列号
  Current log sequence         29
  归档模式的设置和管理;
  设置归档的相关参数:
  查看归档位置:
  SYS@orcl11g> archive log list;
  Database log mode            Archive Mode
  Automatic archival             Enabled
  Archive destination            USE_DB_RECOVERY_FILE_DEST -- 默认的归档位置:闪回恢复区
  Oldest online log sequence   0
  Next log sequence to archive   29
  Current log sequence         29
  SYS@orcl11g> show parameter db_recovery_file_dest;
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ----------------------------------
  db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_area
  db_recovery_file_dest_size         big integer 4122M
  可以手动修改归档位置:
  SYS@orcl11g> show parameter log_archive_dest_
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_dest_1                   string      (null)
  log_archive_dest_10                  string      (null)
  log_archive_dest_11                  string      (null)
  log_archive_dest_12                  string      (null)
  。。。。。
  ORACLE11G版本,一共可以设置31个归档位置;
  Oracle10g版本,一共可以设置10个归档位置
  这么多的归档位置,主要是用于oracle的灾备软件:DATAGUARD
  ******************************
  如何手动设置归档位置:
  SYS@orcl11g> alter system set log_archive_dest_1='location=/u01/app/oracle/arch';
  System altered.
  SYS@orcl11g> host ls /u01/app/oracle/arch
  SYS@orcl11g> alter system switch logfile;
  System altered.
  SYS@orcl11g> host ls /u01/app/oracle/arch
  1_30_816622368.dbf
  归档位置状态参数:
  SYS@orcl11g> show parameter log_archive_dest_state_1;
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_dest_state_1             string      enable
  Values:
  ■ enable
  Specifies that a valid log archive destination can be used for a subsequent
  archiving operation (automatic or manual). This is the default.
  ■ defer
  Specifies that valid destination information and attributes are preserved, but the
  destination is excluded from archiving operations until re-enabled.
  ■ alternate
  Specifies that a log archive destination is not enabled but will become enabled if
  communications to another destination fail.
  defer:
  SYS@orcl11g> alter system set log_archive_dest_state_2=defer;
  System altered.
  SYS@orcl11g> alter system switch logfile;
  System altered.
  SYS@orcl11g> host ls /u01/app/oracle/arch*
  /u01/app/oracle/arch:
  1_30_816622368.dbf1_31_816622368.dbf1_32_816622368.dbf
  /u01/app/oracle/arch2:
  1_31_816622368.dbf
  alternate:备胎
  SYS@orcl11g> alter system set log_archive_dest_state_2=alternate;
  System altered.
  SYS@orcl11g> show parameter log_archive_dest_2;
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_dest_2                   string      location=/u01/app/oracle/arch2
  SYS@orcl11g> alter system set
  log_archive_dest_1='location=/u01/app/oracle/arch mandatory noreopen alternate=log_archive_dest_2';
  System altered.
  # chown root.root /u01/app/oracle/arch
  # ll -d /u01/app/oracle/arch
  drwxr-xr-x 2 root root 4096 Jun 17 10:49 /u01/app/oracle/arch
  SYS@orcl11g> alter system switch logfile;
  System altered.
  SYS@orcl11g> host ls /u01/app/oracle/arch*
  /u01/app/oracle/arch:
  1_30_816622368.dbf1_32_816622368.dbf
  1_31_816622368.dbf1_33_816622368.dbf
  /u01/app/oracle/arch2:
  1_31_816622368.dbf1_34_816622368.dbf
  log_archive_dest_n:参数的配置
  LOCATION=path_name -- location=/u01/app/oracle/arch
  MANDATORY-- 强制的,表示这个归档位置,必须要归档成功
  REOPEN[=seconds] -- 如果某个归档路径出现问题,那么,几秒钟重试
  SYS@orcl11g> alter system set log_archive_dest_3='location=/u01/app/oracle/arch3 mandatory reopen=5';
  System altered.
  SYS@orcl11g> alter system switch logfile;
  System altered.
  SYS@orcl11g> host ls /u01/app/oracle/arch*
  /u01/app/oracle/arch:
  1_30_816622368.dbf1_32_816622368.dbf
  1_31_816622368.dbf1_33_816622368.dbf
  /u01/app/oracle/arch2:
  1_31_816622368.dbf1_35_816622368.dbf1_37_816622368.dbf
  1_34_816622368.dbf1_36_816622368.dbf
  /u01/app/oracle/arch3:
  1_37_816622368.dbf
  root#chown root.root /u01/app/oracle/arch3
  SQL> alter system switch logfile;
  SYS@orcl11g> host ls /u01/app/oracle/arch*
  /u01/app/oracle/arch:
  1_30_816622368.dbf1_32_816622368.dbf
  1_31_816622368.dbf1_33_816622368.dbf
  /u01/app/oracle/arch2:
  1_31_816622368.dbf1_35_816622368.dbf1_37_816622368.dbf
  1_34_816622368.dbf1_36_816622368.dbf1_38_816622368.dbf
  /u01/app/oracle/arch3:
  1_37_816622368.dbf
  SYS@orcl11g> select group#,sequence#,status,archived from v$log;
  GROUP#SEQUENCE# STATUS         ARC
  ---------- ---------- ---------------- ---
  1         39 CURRENT          NO
  2         38 ACTIVE         NO
  3         37 ACTIVE         YES
  多次切换之后,数据库hang住;
  如果将数据库置为归档模式,但是,在线重做日志却没有被归档,那么,数据库hang住;
  重新修改mandatory,reopen属性的归档位置,数据库继续正常运行;
  表示归档成功位置的最小个数:
  SYS@orcl11g> show parameter min_succeed
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_min_succeed_dest         integer   1
  归档进程设置参数:
  SYS@orcl11g> show parameter log_archive_max_processes
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_max_processes            integer   4
  $ ps -ef | grep ora_ | grep arc
  oracle   23330   10 10:29 ?      00:00:00 ora_arc0_orcl11g
  oracle   23362   10 10:29 ?      00:00:00 ora_arc1_orcl11g
  oracle   23365   10 10:29 ?      00:00:00 ora_arc2_orcl11g
  oracle   23368   10 10:29 ?      00:00:00 ora_arc3_orcl11g
  SYS@orcl11g> show parameter log_archive_format
  NAME                                 TYPE      VALUE
  ------------------------------------ ----------- ------------------------------
  log_archive_format                   string      %t_%s_%r.dbf
  归档相关的数据字典:
  v$archived_log;
  SYS@orcl11g> desc v$archived_log;
  Name                                    Null?    Type
  ----------------------------------------- -------- ----------------------------
  RECID                                              NUMBER
  STAMP                                              NUMBER
  NAME                                             VARCHAR2(513)
  DEST_ID                                          NUMBER
  THREAD#                                          NUMBER
  SEQUENCE#                                          NUMBER
  RESETLOGS_CHANGE#                                  NUMBER
  RESETLOGS_TIME                                     DATE
  RESETLOGS_ID                                       NUMBER
  FIRST_CHANGE#                                    NUMBER
  FIRST_TIME                                       DATE
  NEXT_CHANGE#                                       NUMBER
  NEXT_TIME                                          DATE
  BLOCKS                                             NUMBER
  BLOCK_SIZE                                       NUMBER
  CREATOR                                          VARCHAR2(7)
  REGISTRAR                                          VARCHAR2(7)
  STANDBY_DEST                                       VARCHAR2(3)
  ARCHIVED                                           VARCHAR2(3)
  APPLIED                                          VARCHAR2(9)
  DELETED                                          VARCHAR2(3)
  STATUS                                             VARCHAR2(1)
  COMPLETION_TIME                                    DATE
  DICTIONARY_BEGIN                                 VARCHAR2(3)
  DICTIONARY_END                                     VARCHAR2(3)
  END_OF_REDO                                        VARCHAR2(3)
  BACKUP_COUNT                                       NUMBER
  ARCHIVAL_THREAD#                                 NUMBER
  ACTIVATION#                                        NUMBER
  IS_RECOVERY_DEST_FILE                              VARCHAR2(3)
  COMPRESSED                                       VARCHAR2(3)
  FAL                                                VARCHAR2(3)
  END_OF_REDO_TYPE                                 VARCHAR2(10)
  BACKED_BY_VSS                                    VARCHAR2(3)
  SYS@orcl11g> select sequence#,name from v$archived_log order by 1;
  SEQUENCE#   NAME
  ------------------------------------------------------------------------------------------
  29/u01/app/oracle/fast_recovery_area/ORCL11G/archivelog/2013_06_17/o1_mf_1_29_8vwxglwq_.arc
  30/u01/app/oracle/arch/1_30_816622368.dbf

页: [1]
查看完整版本: oracle Archived redo logfiles(归档重做日志)