ITPub博客

首页 > 数据库 > Oracle > 归档日志

归档日志

原创 Oracle 作者:pwz1688 时间:2014-04-09 21:57:18 0 删除 编辑
一、归档与非归档的区别
1、归档会在日志切换时,备份历史日志,用于OLTP,可以进行冷备份和热备份,可以实现数据库完全恢复、不完全恢复(基于时间点)
2、归档会启用arch的后台进程、占用磁盘空间
3、非归档用于OLAP/DSS,只能冷备份,只能恢复到最后次备份状态。
简单来说,非归档只能恢复到上一次备份,而归档可以恢复到最后一次提交,虽然归档会降低一些性能(10%),但是安全更重要。一般来讲,
OLTP必须归档,而OLAP以查询和批处理为主,可能几个月才切换一次日志,所以一般不归档。
不指定归档位置,就默认存放到上面的位置进行归档。
二、查看归档模式
方式一:
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence 1
Current log sequence 3
方式二:
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
三、设置归档模式
分以下五步
1、正常关库
2、创建目录,用来存放归档日志
3、修改初始化参数文件
4、启库到mount状态
5、切归档,并开库
例:设置归档演练
--查看归档的相关参数信息
SQL> show parameter log;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_syslog_level string
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
log_archive_config string
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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
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
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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
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
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
log_archive_trace integer 0
log_buffer integer 2927616
log_checkpoint_interval integer 0
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
log_file_name_convert string
logmnr_max_persistent_sessions integer 1
remote_login_passwordfile string EXCLUSIVE
注意:以上log_archive_dest_state_参数可知,10g归档一般是10个位置,而11g会有30个位置,若要归几份,就设置相应的log_archive_dest_state_参数即可,下面只演示归档一份,即只设置log_archive_dest_state_1。log_archive_format是归档日志格式,%t_%s_%r.dbf与v$archived_log表中信息有关,后面会提到,在此不详述。
步骤一:正常关库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
步骤二:创建目录
[oracle@gc1 ~]$ cd /home/oracle
[oracle@gc1 ~]$ ls
10201_database_linux32.zip B19306_01 control.bak database
[oracle@gc1 ~]$ mkdir PROD
[oracle@gc1 ~]$ cd PROD
[oracle@gc1 PROD]$ pwd
/home/oracle/PROD
步骤三:修改初始化参数文件,新增红圈部分内容
[oracle@gc1 PROD]$ cd $ORACLE_HOME/dbs
[oracle@gc1 dbs]$ ls
??7?.txt hc_BOB.dat hc_yj.dat initBOB.ora init.ora lkBOB lkYJ orapwyj spfilePROD.ora.bak
ha hc_PROD.dat hc_ZHEN.dat initdw.ora initPROD.ora lkPROD orapwPROD shutdown spfileyj.ora
[oracle@gc1 dbs]$ vi initPROD.ora

步骤四:启库至mount状态
SQL> startup mount;
ORACLE instance started.
Total System Global Area 419430400 bytes
Fixed Size 1219760 bytes
Variable Size 121635664 bytes
Database Buffers 293601280 bytes
Redo Buffers 2973696 bytes
Database mounted.
步骤五:设置归档模式,并打开数据库
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
--查看数据库当前归档模式
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /home/oracle/PROD
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
注意:开归档前与归档后,归档位置的变化(即由默认的/u01/app/oracle/product/10.2.0/db_1/dbs/arch改为设置的/home/oracle/PROD
四、查看归档进程
--查看归档参数
SQL> show parameter log;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_syslog_level string
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
log_archive_config string
log_archive_dest string
log_archive_dest_1 string location=/home/oracle/PROD man
                                                 datory
log_archive_dest_10 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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
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
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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
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
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_min_succeed_dest integer 1
log_archive_start boolean FALSE
log_archive_trace integer 0
log_buffer integer 2927616
log_checkpoint_interval integer 0
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
log_file_name_convert string
logmnr_max_persistent_sessions integer 1
remote_login_passwordfile string EXCLUSIVE
注意log_archive_format参数,其值%t_%s_%r.dbf与表v$archived_log表中信息有关。log_archive_max_processes为2是表示最大进程号数(0、1、2),不是指最大进程数。
SQL> 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(3)
 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)
其中%t_%s_%r.dbf分别对应v$archived_log表中的 THREAD#, SEQUENCE#, RESETLOGS_ID三个字段。
--查看v$archived_log表中信息,与归档目录下的信息
SQL> select THREAD#,SEQUENCE#,RESETLOGS_ID from v$archived_log;
no rows selected
[oracle@gc1 dbs]$ cd /home/oracle/PROD
[oracle@gc1 PROD]$ ls
因日志未做切换,所以无归档信息,下面做日志切换,产生归档日志,再做以下查询操作
--执行日志切换,查看v$archived_log表及归档目录下归档信息
SQL> alter system switch logfile;
System altered.
SQL> select THREAD#,SEQUENCE#,RESETLOGS_ID from v$archived_log;
   THREAD# SEQUENCE# RESETLOGS_ID
---------- ---------- ------------
         1 3 844468491
SQL> alter system switch logfile;
System altered.
SQL> select THREAD#,SEQUENCE#,RESETLOGS_ID from v$archived_log;
   THREAD# SEQUENCE# RESETLOGS_ID
---------- ---------- ------------
         1 3 844468491
         1 4 844468491
SQL> alter system switch logfile;
System altered.
SQL> select THREAD#,SEQUENCE#,RESETLOGS_ID from v$archived_log;
   THREAD# SEQUENCE# RESETLOGS_ID
---------- ---------- ------------
         1 3 844468491
         1 4 844468491
         1 5 844468491
[oracle@gc1 PROD]$ ls -l
total 836
-rw-r----- 1 oracle oinstall 842752 Apr 10 00:24 1_3_844468491.dbf
-rw-r----- 1 oracle oinstall 1024 Apr 10 00:24 1_4_844468491.dbf
-rw-r----- 1 oracle oinstall 4096 Apr 10 00:25 1_5_844468491.dbf
由此可见,归档日志信息文件命名,是由 v$archived_log表中的THREAD#, SEQUENCE#, RESETLOGS_ID三个字段生成的。
--查看归档进程
以上红圈部分表示为归档进程。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1139032/,如需转载,请注明出处,否则将追究法律责任。

上一篇: redo log恢复
下一篇: oracle启动与关闭
请登录后发表评论 登录
全部评论

注册时间:2009-03-30

  • 博文量
    106
  • 访问量
    667882