oracle管理归档日志文件

归档日志文件: 处于非活动(INACTIVE)的状态的重做日志文件的备份。
 
数据库的归档与非归档模式:
1. NOACRCHIVELOG模式下:
1) 日志切换时,直接覆盖非活动的(INACTIVE)的重做日志文件。
2) 不能进行联机的热备份。只能关闭数据库,通过操作系统做冷备份。
3) 只能保护数据库免于例程失败,而不能免于介质失败。
4) 不需要考虑日志存储空间的问题。

2. ACRCHIVELOG模式下,
1) 自动完成归档(没有完成归档就不能重写日志)。
2) 可以联机热备份。
3) 能从介质失败中恢复。
4) 除了SYSTEM表空间以外的数据文件损坏时,可以在数据库处于OPEN时恢复。
5) 可以指定恢复到某个特定的时间点。

如何确保不丢失数据:
1) 归档模式下
2) 没有丢失当前未归档的在线日志
3) 有足够备份

/*******************************/

归档视图:
V$DATABASE(LOG_MODE): 归档模式
V$INSTANCE(ARCHIVER): 是否正在归档
V$ARCHIVED_LOG: 所有历史归档日志文件信息(从控制文件中获取)
V$ARCHIVE_DEST: 归档目标位置的信息
V$ARCHIVE_PROCESSES: 归档进程的信息
V$BACKUP_REDOLOG: 所有已备份的归档日志文件的信息
V$LOG: 所有重做日志文件的信息,其中包含那些需要归档的重做日志文件
V$LOG_HISTORY: 重做日志文件的历史信息
v$LOGHIST:重做日志文件的历史信息(概要)

/*******************************/

常用操作:

查询归档路径:
1) archive log list
2) select name from v$archived_log;
3) show parameter log_archive_dest
4) V$ARCHIVE_DEST
5) 静态初始化参数文件

配置归档日志路径 log_archive_dest_n  (n=[1:10])
1) alter system set log_archive_dest_1 = 'location =c:\demo\archive [optional]';
2) alter system set log_archive_dest_2 = 'service =standby [mandatory] [reopen]';
其中:
location 是本地
service  是远程
optional 无论归档是否成功,都会覆盖重做日志
mandatory只有成功归档才会覆盖重做日志
reopen 重新归档时间间隔 默认是300s
建议修改默认归档路径,默认在闪回恢复区,这样闪回恢复区很容易爆满

RMAN删除过期的归档日志:
>rman target/
RMAN> list archivelog all; --归档日志列表
RMAN> delete expired archivelog all; --删除物理文件不存在的归档日志
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; --删除7天前的归档日志

/*******************************/

非归档模式切换归档模式:
1)创建2个目录:
c:\>md c:\oracle\archive1
c:\>md c:\oracle\archive2
2)sysdba连接数据库
3)设置参数,设置两个目录为归档目的地和设置归档文件名(唯一性,避免重写,两个目的地是为了复用)
sql>alter system set log_archive_dest_1='location=/oracle/archive1/' scope=spfile;
sql>alter system set log_archive_dest_2='location=/oracle/archive2/' scope=spfile;
sql>alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile;
(两个目的地文件是一样的)
4)关闭数据库:shutdown immediate
5)加载模式中启动数据库:startup mount;
6)将数据库转至archivelog mode: alter database archivelog
7)打开数据库: alter database open
8)查询,确定数据库位于归档模式中,且ARCn正在运行
select log_mode from v$database;
select archiver from v$instance;
9)执行一次日志切换, 将归档写入两个目的地
sql>alter system switch logfile;
10)查询确认操作
select name from v$archived_log;
11)做完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了

用于归档日志文件名中嵌入唯一值的变量:
%d: 唯一数据库标识符
%t: 线程号,在rac数据库中使用
%r: 场景号,不完全恢复中有用
%s: 日志切换序列号,保证数据库中归档日志不会被重写

--------------------

注意:参数LOG_ARCHIVE_START在10g前用来设置自动归档,在10g后已经被废除,不要再设置,否则报错

/*******************************/

ARCn后台进程的最大参数
show parameter LOG_ARCHIVE_MAX_PROCESSES
SELECT * FROM V$ARCHIVE_PROCESSES where status='ACTIVE';

查看那些重做日志需要归档
SELECT GROUP#,MEMBERS,SEQUENCE#,ARCHIVED,STATUS,FIRST_CHANGE#,
TO_CHAR(FIRST_TIME, 'YYYY-MM-DD HH24:MI:SS')  FIRST_CHANGE_TIME
FROM V$LOG;

查看归档目标位置的信息
SELECT DESTINATION,BINDING,TARGET,STATUS FROM

查询已归档的日志文件信息(即是系统中存在的物理文件)
SELECT NAME,SEQUENCE#,ARCHIVED,STATUS,FIRST_CHANGE#,
TO_CHAR(FIRST_TIME, 'YYYY-MM-DD HH24:MI:SS')  FIRST_CHANGE_TIME
FROM V$ARCHIVED_LOG;

/*******************************/

执行手动归档:
1) ALTER SYSTEM ARCHIVE LOG ALL; --对所有没有归档的重做日志进行归档
2) ALTER SYSTEM ARCHIVE LOG CURRENT; --当前的重做日志文件进行归档
3) ALTER SYSTEM ARCHIVE LOG SEQUCNE 56; --指定日志序列号的重做日志文件进行归档
4) ALTER SYSTEM ARCHIVE LOG GROUP 2; --指定日志组编号的重做日志文件进行归档
5) ALTER SYSTEM ARCHIVE LOG LOGFILE 'D:\oracle\oradata\work\REDO01.LOG '; --指定联机的重做日志文件进行归档
6) ALTER SYSTEM ARCHIVE LOG NEXT; --将下一个没有归档的重做日志文件组进行归档

/*******************************/

提高归档的效率:

等待事件:log switch/archive
1) 等待日志归档操作完成.
2) 在Archive模式下出现.
3) 说明Archive操作太慢.

调优: 提高Archive的效率
1) 调整Redo Log文件的个数和大小
Redo Log文件越大,归档操作的频率就越小,归档操作的。
如果ARCH进程无法跟上LGWR进程的处理速度时,增加Log文件数量就于事无补了。

2)调整checkpoint的间隔和效率
增大checkpoint的间隔也可以使归档进程有更多时间来处理归档。增大参数log_checkpoint_interval可以增大checkpoint的间隔。
增加DBWR进程数量、配置AIO都可以提高checkpoint的处理效率。

3)配置多ARCH进程
参数log_archive_max_processes可以配置最大ARCH进程数量。
定期执行'alter system archive log'可以强制归档所有未归档的日志文件。这可以帮助均衡ARCH进程的归档处理负担。

4)调整Archive进程buffer大小和数量
增加Archive进程的buffer大小可以提高Archive效率,由参数log_archive_buffer_size控制的。初始设置为4K,最大128K。可能会使系统的整体性能下降;

增加Archive进程的buffer数量来提高Archive效率。Buffer数量由参数log_archive_buffer控制,最大为8.


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值