Oracle的归档日志
归档模式的特点和要求
在归档模式下,当LGWR后台进程的写操作从一个重做日志组切换到另一个重做日志组后,归档写后台进程(ARCH/ARCRn)就会将原来的重做日志的信息复制到归档日志文件中。
可以把归档日志文件看做是重做日志文件的克隆。
对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用。
归档日志文件的用途:
1.当数据库崩溃后,数据库所有提交的数据都能得到恢复。
2. 在归档模式下,数据库可以进行联机备份
3. 当某一个非系统表空间脱机时,数据库其它部分可以正常工作。
4. 可以进行如下不完全恢复:
--恢复到一个特定的时间点
--恢复到一个特定的SCN号
--恢复到某一个特定的归档文件结尾
开启归档
步骤如下:
a.一致性关闭数据库(shutdown [immediate | transactional |normal])
b.启动到mount阶段(startup mount)
c.切换到归档模式(alter database noarchivelog )
d.切换到open阶段(alter database open)
e.对数据做一个完整备份(full backup)
演示:
1.查看当前模式
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 87
Current log sequence 89
2.关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
3.启动数据库到mount状态
SQL> startup mount;
ORACLE instance started. Total System Global Area 3624390656 bytes
Fixed Size 2218632 bytes
Variable Size 2583692664 bytes
Database Buffers 1023410176 bytes
Redo Buffers 15069184 bytes
Database mounted.
4.启动归档
SQL> alter database archivelog; Database altered.
5.开启数据库
SQL> alter database open; Database altered.
6.再次查看归档模式
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 87
Next log sequence to archive 89
Current log sequence 89
这是需要对数据库做一个全备份,因为之前的非归档模式下的备份在归档模式下已经不能个使用了。
关闭归档
a.一致性关闭数据库(shutdown [immediate | transactional |normal])
b.启动到mount阶段(startup mount)
c.切换到归档模式(alter database noarchivelog )
d.切换到open阶段(alter database open)
e.对数据做一个完整备份(full backup)
归档模式下的几个重要参数
归档进程的调整 :
LOG_ARCHIVE_MAX_PROCESSES
这个主要是因为如果数据库的DML操作频繁,ARCn的读写跟不上LGWR,一般情况是是不需要修改这个参数的,Oracle会根据归档情况自动启动额外的归档进程。
也可以动态的修改该参数
SQL> show parameter log_archive_max_process NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 4 SQL> ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3; 系统已更改。
归档到本机或者远程主机
LOG_ARCHIVE_DEST_n
oracle11g可以同时将31个相同归档日志文件写到不同的位置
--查看归档文件位置
SQL> show parameter LOG_ARCHIVE_DEST_ NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string ........................................................ log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
也可以用 select *from v$archive_dest;查看
--设置归档文件位置
SQL> alter system set log_archive_dest_1="LOCATION=/u01/ARCHLOG/ mandatory"; 系统已更改。 SQL> alter system set log_archive_dest_2="LOCATION=/u02/ARCHLOG/"; 系统已更改。 SQL> alter system set log_archive_dest_3="LOCATION=/u03/ARCHLOG/ optional"; 系统已更改。
对于远程归档位置,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)
alter system set log_archive_dest_2 = 'SERVICE=standby1';
--再次查看归档的位置
SQL> show parameter LOG_ARCHIVE_DEST_ NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=/u01/ARCHLOG/ mandatory
.......
log_archive_dest_2 string LOCATION=/u02/ARCHLOG/
log_archive_dest_20 string
........
log_archive_dest_29 string
log_archive_dest_3 string LOCATION=/u03/ARCHLOG/ optiona
LOCATION
LOG_ARCHIVE_DEST_n的两个常用选项,缺省为OPTIONAL
MANADATORY | OPTIONAL:
MANADATORY(强制性的)表示归档必须成功复制到目的路径之后,联机重做日志才能被复用,OPTIONAL正好相反
REOPEN:
指定归档失败后指定间隔多少时间重试归案,缺省的为300秒
示例:
log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3 manadatory reopen = 600'
log_archive_dest_2 = 'SERVICE=standby1 manadatory reopen'
--查看是否在制定路径下产生了归档
切换重做日志:
SQL> alter system switch logfile;
[oracle@oracledb u03]$ ls ARCHLOG/
1_768_917304775.dbf
[oracle@oracledb u03]$ ls ../u02/ARCHLOG/
1_768_917304775.dbf
归档成功的最小个数
log_archive_min_succeed_dest
alter system set log_archive_min_succeed_dest = 2; --缺省为1
联机重做日志组能够被覆盖的前提
所有强制路径归档位置成功实现归档
归档目的地的成功归档的个数大于或等于上述参数设定的值
当强制个数大于该参数设定的个数,则以强制个数为准
当强制个数小于该参数设定的个数,则可选的成功归档路径加上强制的归档路径个数至少等于该参数设定值
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 = 2;
控制归档的可用性
log_archive_dest_state_n
这个参数引入的目的主要是为系统的维护提供方便,DEFER(推迟)状态是一个临时的维护状态,一旦维护结束就要及时转回ENABLE状态(如硬盘已经修好),所丢失的归档文件必须手工恢复。
alter system set log_archive_dest_state_1 = enable | defer
enable -->缺省状态,可以在该归档位置进行归档
defer -->禁用该归档位置
归档日志命名格式
设置LOG_ARCHIVE_FORMAT参数,Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf
%s: 日志序列号:
%S: 日志序列号(带有前导)
%t: 重做线程编号.
%T: 重做线程编号(带有前导)
%a: 活动ID号
%d: 数据库ID号
%r RESETLOGS的ID值.
alter system set log_archive_format = 'arch_%t_%s_%r.arc';
归档位置状态
Valid/Invalid --磁盘位置及服务名等是否有效
Enabled/Disabled --磁盘位置的可用状态及数据库能否使用该归档位置
Active/Inactive --访问归档目的地是否有异常
归档日志相关视图
v$archived_log -->从控制文件中获得归档的相关信息
v$archive_dest -->归档路径及状态
v$log_history -->控制文件中日志的历史信息
v$database -->查看数据库是否处于归档状态
v$archive_processes -->归档相关的后台进程信息
SQL> col DEST_NAME for a40
SQL> col DESTINATION for a50
SQL> select dest_name,destination from v$archive_dest where status='VALID'; DEST_NAME DESTINATION
---------------------------------------- --------------------------------------------------
LOG_ARCHIVE_DEST_1 /u01/ARCHLOG/
LOG_ARCHIVE_DEST_2 /u02/ARCHLOG/
LOG_ARCHIVE_DEST_3 /u03/ARCHLOG/ SQL> select * from v$archive_processes where status='ACTIVE'; PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 ACTIVE 0 IDLE
1 ACTIVE 0 IDLE
2 ACTIVE 0 IDLE
Oracle的归档日志的更多相关文章
- Linux Oracle删除归档日志
今天遇到Oracle报这样的错:ORA-00257 查看了下,原来是Oracle的归档日志满了,解决方案两个 一:增加归档日志大小 二:删除无用的归档日志(我们选择这个方案) 什么也不说了Linux下 ...
- Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法
自动删除Oracle过期归档日志的思路如下: 1.编写自动执行的bat脚本文件: 2.Windows设置定期执行计划 OracleArchLogClear.bat D:/Oracle/product/ ...
- Oracle 10g 归档日志满了的解决办法
如果Oracle的归档日志满了,应用连接数据库就会出错,这时需要手工删除过期的归档日志,方法如下: 1.指定数据库实例 $ export ORACLE_SID=db1 2.进入rman $ rman ...
- oracle 启用归档日志
Oracle可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog) 归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和 ...
- oracle修改归档日志路径与格式
一.查询数据库是否开启归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled ...
- oracle启用归档日志
一.开启归档 1.查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabl ...
- 如何检查oracle的归档日志及空间占用率,清除归档日志
如何解决“归档日志已满问题” 问题描述: 所用数据库为 Oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现or ...
- oracle删除归档日志
查看归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive ...
- oracle 开启归档日志模式
摘自:https://www.jianshu.com/p/f8c0e9309ce2 在默认情况下,oracle数据库是在非归日志档模式中创建的,在非归档日志模式中,进行日志切换时会直接重写redo l ...
随机推荐
- IOS性能调优系列:使用Allocation动态分析内存使用情况
硬广:<IOS性能调优系列>第三篇,持续更新,欢迎关注. <IOS性能调优系列:Analyze静态分析>介绍了使用静态分析方法查找IOS内存泄漏的方法,<IOS性能调优系 ...
- unity, instantiate一个实例后,先指定parent,再指定position
instantiate一个实例后,先指定parent,再指定position,才能保证position正确,如果先指定position再指定parent,则position会错误.
- MySQL5.0存储过程教程
Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了“存储过程.触发器.视图.信息架构视图”,在此感谢译者陈朋奕的努力 ...
- Openresty支持HTTP2
1. 下载openresty-1.13.6.1.tar.gz和openssl-1.0.2l.tar.gz,并解压 下载对应的软件版本,创建openresty_http2安装路径 2. 安装openre ...
- atitit.自动生成数据库结构脚本,或者更换数据库,基于hibernate4
atitit.自动生成数据库结构脚本,或者更换数据库,基于hibernate4 目前近况:: 更换数据库,但是是使用spring集成的. <!-- hibernate配置文件路径 --> ...
- atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js
atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js 1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的. 1 1.2. 不要 ...
- docker容器跑tomcat遇到的坑
使用docker容器跑tomcat,由于同一个宿主机上跑了多个容器,再加上宿主机本身跑了很多进程,导致系统总的进程数达到了8000+,而容器中tomcat的启动脚本中会调用自带的setenv.sh,在 ...
- centos7下忘记mysql5.7密码
才装完的mysql,转眼密码就忘记了,找了一圈的修改密码方法,做下记录! 编辑mysql配置文件. [root@localhost ~]# vi /etc/my.cnf 在[mysqld]配置节下新增 ...
- Flume线上日志采集【模板】
Flume线上日志采集[模板] 预装软件 Java HDFS Lzo/Lzop 系统版本 Flume 1.5.0-cdh5.4.0 系统流程图 flume-env.sh配置文件 export JAVA ...
- 利用eclipse的search功能搜索当前项目的源文件
当你项目的源文件太多,文件组织结构太复杂的的时候,有时候希望google来帮你一把?给个关键字就把相关的搜索结果给出来? eclipse的search功能基本上就可以完成这个任务,文件搜索,甚至JAV ...