Chinaunix首页 | 论坛 | 博客
  • 博客访问: 897229
  • 博文数量: 101
  • 博客积分: 2256
  • 博客等级: 大尉
  • 技术积分: 1481
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 17:52
文章存档

2017年(1)

2013年(2)

2012年(25)

2011年(73)

分类: Oracle

2011-04-19 18:38:45

一.归档模式的定义
在归档模式下,当LGWR后台进程的写操作从一个重做日志组切换到另一个重做日志组后,归档写后台进程(ARCH/ARCHn)就会将原来的重做日志文件中的信息复制到归档文件中。

1.1可以进行如下不完全恢复
*恢复到某一特定的时间点;
*恢复到某一特定的SCN号;
*恢复到某一特定的归档文件的结尾;


1.2归档模式下的全恢复过程
*可以在联机或者脱机的情况下执行恢复
*将损坏的数据文件物理备份复制回原来的位置
*使用归档日志文件将数据库从上一次备份逮到数据文件崩溃的那个时间点


二.如何将数据库设置为归档模式

2.1设置步骤
*以SYSDBA身份登录Oracle数据库;
*使用archive log list 命令查看数据库与归档相关的信息;
*正常关闭数据库,使用shutdown immediate;
*以加载的方式启动数据库(startup mount);
*用ALTER DATAVASE的命令将数据库设置为归档模式(alter database archivelog);
*打开数据库(alter database open);
*再用archive log list 查看数据库的归档模式;
*做数据库的全备份,因为之前在非归档模式下的数据库备份以不能使用了。
这个新的备份就是在归档模式下的备份的起点。

2.2手动完成重做日志文件的归档

alter system archive log current;


2.3一般可能默认的不是自动归档的模式
所以要受到设置一下参数;

alter system archive log start;

如果是oracle9I,就需要将log_archive_start的值修改为true;
命令如下:

show parameter log_archive_start ;--查看参数值
alter system set log_archive_start= true scope=spfile(both);
shutdown immediate;--关闭数据库
startup--启动数据库;
show parameter log_archive_start;--确认参数值。

三.归档进程和归档文件目录的设置

3.1当重做日志切换比较频繁,而ARCH今次跟不上LGWR,所以要
启动多个ARCH的进程。
3.1.1动态参数 log_archive_max_provesses(1-10)

查看这个参数:show parameter log_archive_max_processes;

修改这个参数:alter system set log_archive_max_processes=3;

3.1.2参数 log_archive_dest_n(1-10)
例如:show parameter log_archive_dest_
alter system set log_archive_dest_1="location=d:/logguidang/ mandatory reopen=600";
mandatory:强制归档
optional:可选归档
REOPEN:关键字说明如果归档不成功时系统要重新尝试归档,缺省每300秒尝试一次直到成功
,上面设置为600秒。

3.1.3设置最小归档成功数
例:
log_archive_min_succeed_dest=2
此参数说明至少有2个归档路径归档成功后才能覆写联机日志文件,此参数和归档路径参数联用。
如归档路径参数设置为:
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 OPTIONAL"
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"
则log_archive_dest_1必须归档成功(MANDATORY),log_archive_dest_2、 log_archive_dest_3中必须有一个归档成功(log_archive_min_succeed_dest=2)后才能覆写联机日

志文件。同样,如果log_archive_dest_n中的MANDATORY关键字个数大于log_archive_min_succeed_dest,则 log_archive_min_succeed_dest的设置不起作用。

四.改变成归档模式的应用实例

C:/Documents and Settings/jacky>set oracle_sid=jacky

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 29 22:12:14 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn sys/you12323 as sysdba;
已连接。
SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 35
当前日志序列 39
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 222301060 bytes
Database Buffers 381681664 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database archivelog;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 35
下一个存档日志序列 39
当前日志序列 39
SQL> show parameter log_archive_start;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL> --因为是10g,数据库会自动启动这个服务;
SQL> show parameter log_archive_max_processes;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 2
SQL> alter system set log_archive_max_processes=10;

系统已更改。

SQL> show parameter log_archive_max_processes;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 10
SQL> show parameter log_archive_dest_

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string
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

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
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

SQL> alter system set log_archive_dest_1=
2 "location=c:/guilog01 mandatory reopen=500";

系统已更改。

SQL> show parameter log_archive_dest_1;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=c:/guilog01 mandatory
reopen=500
log_archive_dest_10 string
SQL> show parameter log_archive_min_succeed_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_min_succeed_dest integer 1
SQL> alter system set log_archive_min_succeed_dest=3;
alter system set log_archive_min_succeed_dest=3
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16020: 可用的目的地少于由 LOG_ARCHIVE_MIN_SUCCEED_DEST 指定的数量


SQL> alter system set log_archive_dest_2=
2 "location=c:/guilog02 mandatory reopen=500";

系统已更改。

SQL> alter system set log_archive_min_succeed_dest=2;

系统已更改。

SQL> --完成。

阅读(2633) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~