专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

ORALCE 体系 - 5(orcal系统)

ins518 2024-11-17 12:03:14 技术文章 9 ℃ 0 评论

【五】归档日志

5.1 归档和非归档的区别

1)归档会在日志切换时,备份历史日志,对于OLTP系统都应考虑归档模式,以便数据库能支持热备,并提供数据库完全恢复和不完全恢复(基于时间点)。

2)归档会启用ARCn的后台进程、也会占用磁盘空间。

3)非归档适用某种静态库、测试库、或者可由远程提供数据恢复的数据库,非归档只能冷备,且仅能还原最后一次全备。

5.2 设置归档模式

1)SQL> shutdown immediate 一定要干净的关闭数据库
2)SQL> startup mount 启动到mount下
3)SQL> alter database archivelog; 设置归档方式
4)SQL> archive log list; 查看归档状态
5)SQL> alter database open; 打开数据库

5.3 路径及命名方法

1)Oracle判断归档目的地时按如下顺序优先择取

①log_archive_dest_n 值 或 log_archive_dest 值
②db_recover_file_dest 参数指定的位置
③$ORACLE_HOME/dbs 位置

2)路径可以通过archive log list命令显示

Archive destination(存档终点)有两种情形

①缺省是USE_DB_RECOVERY_FILE_DEST,其含义是采用参数db_recovery_file_dest参数的定义,即闪回恢复区;

②采用参数log_archive_dest_n或log_archive_dest指定的路径:

SQL> show parameter archive
NAME 																	TYPE 															VALUE
------------------------------------ ----------- --------------------------------------
archive_lag_target 							integer 															0
log_archive_config 							string
log_archive_dest 									string
log_archive_dest_1 							string 																location=/u01/arch
log_archive_dest_10 					 string
log_archive_dest_2 							string
log_archive_dest_3
...
log_archive_duplex_dest 		string
log_archive_format 							string 															arch_%t_%r_%s.log
SQL> show parameter db_recovery;

3)首先来看这两个参数:

log_archive_dest_n
log_archive_format

log_archive_dest_n(n:1-10) 表示可以有10个目标路径存放归档日志(镜像关系),即可以多路复用10个归档日志的备份。

如上显示我只使用了log_archive_dest_1,也就是说只有一套归档日志,没有做镜像。

参数设定的格式如下:

SQL> alter system set log_archive_dest_1='location=/u01/arch';

把历史日志归档到本机目录下 (location 代表本机)

SQL> alter system set log_archive_dest_2='service=standby';

远程备份,把历史日志备份到网络连接符为standby的数据库上。(service 代表远程),配置DG时有用。

log_archive_format 是定义命名格式的,一般考虑使用下面三个内置符号(模板)

%t thread# 日志线程号
%s sequence 日志序列号
%r resetlog 代表数据库的周期

参数设定的格式如下:

SQL> alter system set log_archive_format ='arch_%t_%r_%s.log' scope=spfile;

4)再来看看这两个参数:

log_archive_dest
log_archive_duplex_dest

这两个参数已经弃用了,它们能完成两路复用(镜像)但只能指定本机location,无法指定远程。

一旦使用log_archive_dest_n,log_archive_dest参数就失效了。

5.4 归档进程和手动切换

1)归档进程

$ ps -ef |grep ora_arc
oracle 1215 2435 0 13:26 pts/2 00:00:00 grep ora_arc
oracle 31796 1 0 13:00 ? 00:00:00 ora_arc0_
oracle 31798 1 0 13:00 ? 00:00:00 ora_arc1_

ARCn就是归档进程,n最多可达30个,由log_archive_max_processes参数指定。

2)手动切换日志:

第一种:SQL> alter system switch logfile; 仅切换当前实例,适用归档和非归档。
第二种:SQL> alter system archive log current; 在RAC下切换所有实例,仅适用于归档模式。



the end !!!

@jackman 共筑美好!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表