8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Oracle归档模式和非归档模式

来源:本站原创 浏览:101次 时间:2022-01-21
Oracle归档模式和非归档模式

解释归档和非归档模式之间的不同和它们各自的优缺点?

答:归档模式是指可以备份所有的数据库transactions并恢复到任意一个时间点。

        非归档模式则相反,不能恢复到任意一个时间点。

        但是非归档模式可以带来数据库性能上的少许提高。

记忆方式:归档模式>热备份>恢复任意时间点>性能少许下降

                      非归档模式>冷备份>恢复完全备份>性能少许提高


一。查看oracle数据库是否为归档模式:  


  1. 1.select name,log_mode from v$database;  
  2. NAME               LOG_MODE  
  3. ------------------ ------------------------  
  4. QUERY             NOARCHIVELOG  
  5. 2.使用ARCHIVE LOG LIST 命令  
  6. Database log mode                 No Archive Mode  
  7. Automatic archival                   Disabled  
  8. Archive destination                  /data/oracle/product/10.2.0/db_1//dbs/arch  
  9. Oldest online log sequence     739  
  10. Current log sequence              741  

   
二。什么是Oracle归档模式?  
  Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。  
  如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。  
  数据库使用归档方式运行时才可以进行灾难性恢复。  
1.归档日志模式和非归档日志模式的区别  
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.  
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.  
用ARCHIVE LOG LIST 可以查看期模式状态时归档模式还是非归档模式  
===============================================================  
三。配置数据库的归档模式

 

改变非归档模式到归档模式:  

Sql代码

  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;   先down下数据   
  2. 2)SQL>START MOUNT;                                启动数据库实例到mount状态,但不要打开   
  3. 3)SQL>ALTER DATABASE ARCHIVELOG;      设置数据库为归档日志模式   
  4. 4)SQL>ALTER DATABASE OPEN;                  打开数据库   
  5. 5)SQL>archive log list;                                确认数据库现在处于归档日志模式   
  6. 6)SQL>archive log all;                                 将这个时间点的redo logs归档  

[sql]       view plain   copy      

  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;   先down下数据  
  2. 2)SQL>START MOUNT;                                启动数据库实例到mount状态,但不要打开  
  3. 3)SQL>ALTER DATABASE ARCHIVELOG;      设置数据库为归档日志模式  
  4. 4)SQL>ALTER DATABASE OPEN;                  打开数据库  
  5. 5)SQL>archive log list;                              ��Ц��Ȫ,��Ц���  确认数据库现在处于归档日志模式  
  6. 6)SQL>archive log all;                                 将这个时间点的redo logs归档  

 

 

5)SQL>做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!  

Sql代码

  1. SQL>alter tablespace users begin bacup;  

[sql]       view plain   copy      

  1. SQL>alter tablespace users begin bacup;  

   
====================  
如果停止归档模式就用  
alter database noarchivelog   
========================

 


改变归档模式到非归档模式:  

Sql代码           

  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;         
  2. 2)SQL>START MOUNT;       
  3. 3)SQL>ALTER DATABASE NOARCHIVELOG;    
  4. 4)SQL>ALTER DATABASE OPEN;    

[sql]       view plain   copy      

  1. 1)SQL>SHUTDOWN NORMAL/IMMEDIATE;        
  2. 2)SQL>START MOUNT;      
  3. 3)SQL>ALTER DATABASE NOARCHIVELOG;   
  4. 4)SQL>ALTER DATABASE OPEN;    

  

 


3.启用自动归档: LOG_ARCHIVE_START=TRUE  
归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,知道归档完成为止.  
这时只能读而不能写.  
运行过程中关闭和重启归档日志进程  
SQL>ARCHIVE LOG STOP  
SQL>ARCHIVE LOG START

 

4.手动归档: LOG_ARCHIVE_START=FALSE  
归档当前日志文件  
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;  
归档序号为052的日志文件  
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;  
归档所有日志文件  
SQL>ALTER SYSTEM ARCHIVE LOG ALL;  
改变归档日志目标  
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';

 

5.归档模式和非归档模式的转换

 

第4步的逆过程.

 

6.配置多个归档进程  
Q:什么时候需要使用多个归档进程?  
A:如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTER SYSTEM动态修改.  
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;  
Oracle9i中最多可以指定10个归档进程  
与归档进程有关的动态性能视图  
v$bgprocess,v$archive_processes

 


7.配置归档目标,多归档目标,远程归档目标,归档日志格式  
归档目标 LOG_ARCHIVE_DEST_n  
本地归档目标:  
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";  
远程归档目标:  
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";  
强制的归档目标,如果出错,600秒后重试:  
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";  
可选的归档目标,如果出错,放弃归档:  
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";

 

归档目标状态:关闭归档目标和打开归档目标  
关闭归档目标1  
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER   
打开归档目标2  
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE

 

归档日志格式  
LOG_ARCHIVE_FORMAT

 

8.获取归档日志信息  
V$ARCHVIED_LOG  
V$ARCHVIE_DEST  
V$LOG_HISTORY  
V$DATABASE  
V$ARCHIVE_PROCESSES

 

ARCHIVE LOG LIST;




oracle11g RAC 启动归档模式     

根据客户要求,需要将归档日志存放在ASM上。因此需要在ASM建归档路径

ASMCMD> mkdir arch

ASMCMD> cd arch

ASMCMD> pwd 
+data1/kdcs/arch

修改归档路径参数

SQL> alter system set log_archive_dest_1='location=+data1/kdcs/arch' scope=spfile sid='*';

System altered.

关闭数据库,全部节点都要关闭

[grid@zhcs-db1 ~]$ srvctl stop database -d kdcs

检查数据库关闭后状态

[grid@zhcs-db1 ~]$ crsctl stat res -t 
-------------------------------------------------------------------------------- 
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
-------------------------------------------------------------------------------- 
Local Resources 
-------------------------------------------------------------------------------- 
ora.DATA1.dg 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.LISTENER.lsnr 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.OCR_DISK.dg 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.asm 
               ONLINE  ONLINE       zhcs-db1                 Started             
               ONLINE  ONLINE       zhcs-db2                 Started             
ora.gsd 
               OFFLINE OFFLINE      zhcs-db1                                     
               OFFLINE OFFLINE      zhcs-db2                                     
ora.net1.network 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.ons 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.registry.acfs 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
-------------------------------------------------------------------------------- 
Cluster Resources 
-------------------------------------------------------------------------------- 
ora.LISTENER_SCAN1.lsnr 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.cvu 
      1        OFFLINE OFFLINE                                                   
ora.kdcs.db 
      1        OFFLINE OFFLINE                               Instance Shutdown   
      2        OFFLINE OFFLINE                               Instance Shutdown   
ora.kdcs.ser_scanip.svc 
      1        OFFLINE OFFLINE                                                   
      2        OFFLINE OFFLINE                                                   
ora.oc4j 
      1        ONLINE  ONLINE       zhcs-db2                                     
ora.scan1.vip 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.zhcs-db1.vip 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.zhcs-db2.vip 
      1        ONLINE  ONLINE       zhcs-db2         

将一个节点数据库启动到mount状态

[grid@zhcs-db1 ~]$ srvctl start instance -d kdcs -i kdcs1 -o mount

修改数据库的归档模式并启动数据库

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            +DATA1/kdcs/arch 
Oldest online log sequence     86 
Next log sequence to archive   87 
Current log sequence           87 
SQL>

启动2节点数据库

[grid@zhcs-db1 ~]$ srvctl start instance -d kdcs -i kdcs2

检查集群状态

[grid@zhcs-db1 ~]$ crsctl stat res -t 
-------------------------------------------------------------------------------- 
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
-------------------------------------------------------------------------------- 
Local Resources 
-------------------------------------------------------------------------------- 
ora.DATA1.dg 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.LISTENER.lsnr 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.OCR_DISK.dg 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.asm 
               ONLINE  ONLINE       zhcs-db1                 Started             
               ONLINE  ONLINE       zhcs-db2                 Started             
ora.gsd 
               OFFLINE OFFLINE      zhcs-db1                                     
               OFFLINE OFFLINE      zhcs-db2                                     
ora.net1.network 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.ons 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
ora.registry.acfs 
               ONLINE  ONLINE       zhcs-db1                                     
               ONLINE  ONLINE       zhcs-db2                                     
-------------------------------------------------------------------------------- 
Cluster Resources 
-------------------------------------------------------------------------------- 
ora.LISTENER_SCAN1.lsnr 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.cvu 
      1        OFFLINE OFFLINE                                                   
ora.kdcs.db 
      1        ONLINE  ONLINE       zhcs-db1                 Open                
      2        ONLINE  ONLINE       zhcs-db2                 Open                
ora.kdcs.ser_scanip.svc 
      1        ONLINE  ONLINE       zhcs-db1                                     
      2        ONLINE  ONLINE       zhcs-db2                                     
ora.oc4j 
      1        ONLINE  ONLINE       zhcs-db2                                     
ora.scan1.vip 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.zhcs-db1.vip 
      1        ONLINE  ONLINE       zhcs-db1                                     
ora.zhcs-db2.vip 
      1        ONLINE  ONLINE       zhcs-db2                                     
[grid@zhcs-db1 ~]$




RMAN备份及恢复归档日志的语法      

一.备份所有归档日志文件
   RMAN> backup archivelog all delete input;
二: restore archivelog 的各种选项
   1.恢复全部归档日志文件
     RMAN> restore archivelog all;
   2.只恢复5到8这四个归档日志文件
     RMAN> restore archivelog from logseq 5 until logseq 8;
   3.恢复从第5个归档日志起
     RMAN> restore archivelog from logseq 5;
   4.恢复7天内的归档日志
     RMAN> restore archivelog from time 'sysdate-7';
   5. sequence between 写法
     RMAN> restore archivelog sequence between 1 and 3;
   6.恢复到哪个日志文件为止
     RMAN> restore archivelog until logseq 3;
   7.从第五个日志开始恢复
     RMAN> restore archivelog low logseq 5;
   8.到第5个日志为止
     RMAN> restore archivelog high logseq 5;
三:如果想改变恢复到另外路径下 则可用下面语句
   set archivelog destination to 'd:\backup';

   RMAN> run
   2> {allocate channel ci type disk;
   3> set archivelog destination to 'd:\backup';
   4> restore archivelog all;
   5> release channel ci;
   6> }

 




【MOS】配置RMAN清除已应用到备库的归档日志 (文档 ID 1577382.1)      

文档内容


目标
解决方案
参考


适用于:

Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 10.2.0.5 [发行版 10.2]  
本文档所含信息适用于所有平台  

目标

我们需要利用RMAN自动从FRA清除已经应用到备库的归档日志。

 

 

1) Bug 6216036:

在10g中,使用CONFIGURE命令配置的归档日志删除策略
仅适用于自动删除闪回恢复区的归档日志。
其他的删除机制,如DELETE ARCHIVELOG或DELETE INPUT不遵守这个配置。


2)APPLIED ON STANDBY - 启用闪回恢复区删除已应用在属性为mandatory的备库的归档日志。

更多信息请查看 Oracle Data Guard Concepts and Administration

http://docs.oracle.com/cd/B19306_01/backup.102/b14194/rcmsynta015.htm#sthref289


在11g此限制已解除。

 

 

解决方案

DataGuard的配置中,当数据库满足下列条件时,FRA下的归档日志将被自动清除,。如果您需要在主库清除,将其设置在主库。

1) 11g之前,如果不使用mandatory ARCHIVELOG目标,数据库(主库和备库)必须更改下面的参数并重新启动:      

SQL> alter system set "_log_deletion_policy"='ALL' scope=spfile;

2) 在RMAN中配置下列参数(主库和备库):

    RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;

 

 

警告:对于10g,如果设置了APPLIED ON STANDBY, 即使FRA 中的文件没有备份也会被清除。

 11g: 从11g 开始,我们对归档日志删除策略的配置进行了增强,包含了 APPLIED ON [ALL] STANDBY [BACKED UP n TIMES TO DEVICE TYPE ] 选项。该选项确认归档日志已经被应用,并且在主库进行过备份后才可以被清除。

 

3) 归档日志必须已应用到备库。运行下面的查询列出所有已应用到备库的归档日志:

select a.thread#, a.sequence#, a.applied
from v$archived_log a, v$database d
where a.activation# = d.activation#
and a.applied='YES'
/

4) FRA有空间压力

当归档日志从FRA自动删除,你会看到数据库的alert.log报出以下信息:

Sat Jun 18 01:00:32 2011
Deleted Oracle managed file /opt/app/oracle/FRA/ORA102/archivelog/2011_05_30/o1_mf_1_151_6y71q675_.arc
Deleted Oracle managed file /opt/app/oracle/FRA/ORA102/archivelog/2011_05_31/o1_mf_1_151_6y87pzg4_.arc


 

参考

NOTE:331924.1    - RMAN backups in Max Performance/Max Availability Data Guard Environment  
BUG:6216036    - RMAN+DG ARCHIVELOG DELETION POLICY APPLIED ON STANDBY NOT RESPECTED  
NOTE:740322.1    - RMAN Archived Redo Logs Are Deleted Before Being Applied at Standby Database  










ORA-00257  删除归档日志





 

遇到ORA-00257的错误,需要做的就是删除归档日志,释放空间。需要强调的是:如果数据库拥有物理备份机制,请先备份归档日志,再做删除操作。以下是无备份机制的步骤处理:


1、 在操作系统bash下,声明操作数据库实例:

orcl1:/home/oracle@db1>export ORACLE_SID=orcl1

2、 运行RMAN命令:

orcl1:/home/oracle@db1>rman target /

3、 检查归档日志状态

RMAN>crosscheck archivelog all;

4、 删除无效归档日志

RMAN>delete noprompt expired archivelog all;

5、 执行rman命令删除归档日志(7天前):

RMAN>delete archivelog all completed before 'sysdate-7';

      

以下是有备份机制的处理步骤:

1、 在操作系统bash下,声明操作数据库实例:

orcl1:/home/oracle@db1>export ORACLE_SID=orcl1

2、 运行RMAN命令:

orcl1:/home/oracle@db1>rman target /

3、 检查归档日志状态

RMAN>crosscheck archivelog all;

4、 删除无效归档日志

RMAN>delete noprompt expired archivelog all;

5、 执行备份归档日志并删除操作:

RMAN>backup archivelog all format '$ORA_BACKUP_LOCATION/ARCHBAK_%d_%T_%s' tag arch_bak delete all input;

     

  注意:$ORA_BACKUP_LOCATION变量为归档日志备份路径,ARCHBAK_%d_%T_%s为归档日志备份文件名格式。请根据实际情况进行具体设置。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net