Oracle归档模式和非归档模式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Oracle归档模式和非归档模式 解释归档和非归档模式之间的不同和它们各自的优缺点? 答:归档模式是指可以备份所有的数据库transactions并恢复到任意一个时间点。

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  删除归档日志






 

>

 

>

 

>

 

>

 

>

      

 

>

 

>

 

>

 

>

 

>

     

  






    

img_e3029f287d989cd04bd75432ecc1c172.png
DBA笔试面试讲解
欢迎与我联系

目录
相关文章
|
2月前
|
Oracle 安全 关系型数据库
【Oracle】玩转Oracle数据库(六):模式对象管理与安全管理
【Oracle】玩转Oracle数据库(六):模式对象管理与安全管理
51 10
|
10月前
|
Oracle 关系型数据库 流计算
flink cdc 同步oracle idea启动可以全量同步,服务器环境不同步。standalone模式
flink cdc 同步oracle idea启动可以全量同步,服务器环境不同步。standalone模式
|
2月前
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
206 1
|
2月前
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
43 1
|
6天前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
26 5
|
10天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在online模式下增量抓取Oracle数据时,在archive_log切换时,出现数据丢失的情况,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
1月前
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
21 3
|
2月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在读取Oracle归档日志时出现日志数量大幅增加的情况如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之采集Oracle数据库时,归档日志大小暴增的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多