Oracle归档与非归档模式

一、什么是Oracle归档模式

  Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。

  如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。

  数据库使用归档方式运行时才可以进行灾难性恢复。归档日志模式和非归档日志模式的区别如下:

非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.

归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.

二、查看oracle数据库是否为归档模式

1 select name,log_mode from v$database;
2 archive log list;

三、配置数据库的归档模式 

1.非归档到归档模式

1 SHUTDOWN IMMEDIATE;            先关闭数据
2 STARTUP MOUNT;                 启动数据库实例到mount状态,但不要打开
3 ALTER DATABASE ARCHIVELOG;     设置数据库为归档日志模式
4 ALTER DATABASE OPEN;           打开数据库
5 archive log list;              确认数据库现在处于归档日志模式
6 archive log all;               将这个时间点的在线重做日志归档
7 alter tablespace users begin bacup;做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!          

2.启用自动归档

1 LOG_ARCHIVE_START=TRUE归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,直到归档完成为止,这时只能读而不能写,故需要打开自动归档.

3.手动归档

1 LOG_ARCHIVE_START=FALSE
2 ALTER SYSTEM ARCHIVE LOG CURRENT;        归档当前日志文件
3 ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;       归档序号为052的日志文件
4 ALTER SYSTEM ARCHIVE LOG ALL;           归档所有日志文件
5 ALTER SYSTEM ARCHIVE LOG CURRENT TO ‘&PATH‘;   改变归档日志目标

4.运行过程中关闭和启动归档日志进程

1 ARCHIVE LOG STOP
2 ARCHIVE LOG START

5.配置多个归档进程

Q:什么时候需要使用多个归档进程?

A:如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTER SYSTEM动态修改.

1 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;

Oracle9i中最多可以指定10个归档进程,与归档进程有关的动态性能视图有v$bgprocess,v$archive_processes

6.配置归档目标,多归档目标,远程归档目标,归档日志格式

归档目标:LOG_ARCHIVE_DEST_n

1 LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";                        本地归档目标
2 LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";                              远程归档目标
3 ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";    强制的归档目标,如果出错,600秒后重试
4 ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";                可选的归档目标,如果出错,放弃归档

归档目标状态:关闭归档目标和打开归档目标

1 ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER   关闭归档目标1
2 ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE    打开归档目标2

归档日志格式:LOG_ARCHIVE_FORMAT

6.获取归档日志信息

1 V$ARCHVIED_LOG
2 V$ARCHVIE_DEST
3 V$LOG_HISTORY
4 V$DATABASE
5 V$ARCHIVE_PROCESSES
6 ARCHIVE LOG LIST;

Oracle归档与非归档模式

时间: 2024-10-03 14:38:17

Oracle归档与非归档模式的相关文章

测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的数据文件无法online! 数据库在启动的时候不检查offline的数据文件! 下面进行测试 数据库版本 SQL> select * from v$version; BANNER ------------------------------------------------------------

oracle 归档与非归档模式介绍

Oracle归档模式与非归档模式设置 Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结,虽然简单,但这是管理oracle数据库必备之工,故有如下陈述. 例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考. Oracle非归档模式设置为归档模式方法步骤: 1,  运行cmd命令,开启sql*plus C:\Docum

Oracle RAC 归档 与 非归档 切换

Oracle 的生产库都是启动在归档模式下,RAC下归档非归档的切换和单实例也是一样的,都是在MOUNT模式下执行ALTER DATABASE ARCHIVELOG/NOARCHIVELOG;命令. 不同的是:RAC环境下所有实例都必须处于非OPEN状态,然后在任意一个处于MOUNT状态的实例执行ALTER DATABASE命令,操作成功后,再正常启动其它实例即可. 注意:RAC数据库由于拥有多个实例,要注意每个实例相关初始化参数:LOG_ARCHIVE_DEST_n的设置,务必需要确保该参数设

Oracle 11g由非归档模式改成归档模式

u 说明 在Oracle 11g,开启archive log模式时,默认归档目录为db_recovery_file_dest指定.此参数在pfile/spfile中可以指定: db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' 需要在mount状态下,更改归档模式 u 修改步骤 ü  启动到mount状态 SQL> startup mount; ü  查看归档模式 SQL> archive log list; Database

如何解决Oracle数据库的非归档模式迁移到归档模式中存在的问题

今天在做oracle归档测试的时候发现了几个问题,在这里记录下来希望能得到大家的纰漏和帮助 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 19 17:34:42 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Ente

oracle archivelog模式与非archivelog模式转换

最近集成环境出现归档日志写满后,数据库无法登录情况,询问DBA后查明情况,私下根据DBA的查找方案,拿开发环境做了一下数据库模式的切换,以便做同步监控分析问题,这里给出了数据路 首先使用dba登录,链接到数据库之后使用 sqlplus / as sysdba; archive log list 查看当前数据库归档模式,确实为归档或非归档模式之后.使用 shutdwon immediate 将数据库关闭,然后使用 startup mount 命令将数据开启处于mount状态使用 1 alter d

把Oracle由归档模式改为非归档模式

把Oracle由归档模式改为非归档模式 开始–>运行命令cmd进入命令行模式 1. 使用命令sqlplus以无日志形式打开如下: sqlplus /nolog; 2. 连接数据库dev.world其中dev是oracle的SID如下: SQL> conn system/manager @dev.world as sysdba 3. 关闭数据库如下: SQL> shutdown immediate 4. 启动了实例,并加载了数据库 SQL> startup mount 5. 归档-&

归档模式和非归档模式 Oracle 10g学习系列(4)

一.归档模式: Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里.一般数据库至少要有2个联机重做日志组.当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行. 如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档.比如,当前在使用联

将Oracle数据库设置为归档模式及非归档模式

一.将Oracle数据库设置为归档模式 1)sql>shutdown normal/immediate;2)sql>startup mount;3)sql>alter database archivelog;4)sql>alter database open;5)archive log list; 注意:show parameter log_archive_dest查看归档日志的存放位置. 二.将Oracle数据库设置为非归档模式1).关闭数据库 shutdown immediat