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 ...
随机推荐
- react native window下的环境搭建和调试方案
这几天使用react native开发app,遇到一些坑,先记录下来,以后再继续补充 环境搭建 打开react native中文网,发现环境搭建特么也太复杂了,安装各种插件/软件,对于我们 编辑器+浏 ...
- .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
.net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以. ...
- php简单混淆类加密文件如何解密?
最近在整理单位购买的源码时,发现源码里好多文件都混淆加密了.虽然不解密也不影响使用,但是心里总觉得有些别扭,便试着将加密的文件解密. 首先,百度了一下,看网上是否有现成的混淆类解密工具,搜到了一个ht ...
- python--标准库 时间与日期 (time, datetime包)
Python具有良好的时间和日期管理功能.实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔.时间起点的选择与计算机相关,但一台计算机的 ...
- HDU 1695 GCD(容斥定理)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- AHK GUI开发示例
GUI.AHK Gui, Add, Text, gAllSearchA W120, 搜索引擎类: Gui, Add, Checkbox, gMySubroutine Checked HwndMyEdi ...
- substr.js 字符串切割
substr.js 字符串切割 GitHub 以一个中文字的宽度为一个单位进行字符串切割 substr('南拳的妈妈1992', 4) // => 南拳的妈... substr('imliane ...
- 用注册表更改DNS的代码分享
用注册表更改DNS,1秒切换完毕,快速又方便,不用麻烦的去等待了,支持远程路劲运行 最进我这里DNS老是间歇性掉,很不稳定,广州地区,如果你的DNS经常需要更换,试试这个批处理, 论坛很多人发过了更改 ...
- /^(0|[1-9]\d*)([.]5)?$/ 在PHP正则中是什么意思 ?
^以什么开头 ()分组 |或的意思 \d 匹配任何数字字符串 [-] |[-]\d* 或1-9之间的数+任意数字零次或多次 开头 ()分组 []原子表 [.]5匹配. ? 零次或1次 总结: 必须以0 ...
- 基于jQuery仿Flash横向切换焦点图
给各网友分享一款基于jQuery仿Flash横向切换焦点图.利用Flash可以制作很多漂亮的图片相册应用,今天我们要用jQuery来实现这样的效果.它是一款仿Flash的横向图片切换焦点图插件,可以自 ...