数据库配置归档

一:自动归档
在线日志与归档日志区别
按目的不同,可以区分为:
⊙ 在线日志 ——用于崩溃/实例恢复/介质恢复
⊙ 归档日志 ——用于介质恢复

重做日志历史记录
所有事务处理都记录在联机重做日志文件中。这样在数据库发生故障时就可以自动恢复事务处理了。
如果数据库配置为NOARCHIVELOG 模式,则没有重做历史记录保存到归档日志文件中,如果介质恢复操作将受到限制,并且可能会导致事务处理工作丢失。实例和崩溃恢复将不受影响,因为添满日志时日志切换将触发检查点
崩溃恢复不需要的日志文件是INACTIVE日志文件,不能保证介质恢复,inactive未归档,不能被覆盖
ALERT@.LOG会提示
那如果一个事务的REDO既在在线日志,也在归档日志,那崩溃/实例恢复会受影响吗 ?我发送ROLLBACK,会不会有问题?
⊙ 回滚操作
不会产生影响,因为UNDO的REDO已经被写到UNDOFILE里了,可以用UNDOFILE来回滚。
⊙ 实例或崩溃恢复
不会产生影响,实例或崩溃恢复是读取在线日志来恢复的。
所以一个事务,如果他的REDO总量超过所有日志文件大小总和是不会挂起的,但是条件日志文件不能是ACTIVE,CURRENT,未归档状态

noarchivelog模式
在NOARCHIVELOG 模式下操作数据库时有以下特性:
⊙ 重做日志文件以循环的方式使用。
⊙ 重做日志文件可以在检查点发生之后立即重新使用。
NOARCHIVELOG意味着不能介质恢复,所以也不需要做归档了,重做日志只要保证崩溃恢复就行了,所以日志文件做了检查点,就保证了数据安全,可以被覆盖了
◎ 检查点没有完成的在线重做日志文件是不允许修改的,因为覆盖了,就不能完成崩溃实例恢复了。如状态为ACTIVE和CURRENT
⊙ 重做日志被覆盖后,介质恢复将只能恢复到上一次完全备份。
这时候数据库状态必须是一致性的(早期备份时状态),但是在线日志不属于早期备份时状态,所以恢复时候需要CANCEL命令切除在线日志
如果不想用当前在线日志,那么就需要执行RECOVER DATABASE UNTIL CANCEL;     CANCEL掉应用后面的日志

noarchivelog模式含义
⊙ 如果某个表空间由于故障而不可用,你将无法继续对数据库进行操作,除非删除了该表空间或从备份还原了整个数据库。
⊙ 你只能在数据库关闭时对数据库执行操作系统备份
⊙ 你必须在每次备份时完整备份所有的数据文件和控制文件
⊙ 如果联机重做日志文件已被覆盖,则将丢失上次完全备份后的所有数据。

noarchivelog模式下的介质恢复选项
你必须从数据库的完全备份中还原数据文件和控制文件。
如果使用导出实用程序来备份数据库,则可使用导入实用程序还原丢失的数据。但是,通过这种方法恢复的数据并不完整,在导出后执行的事务处理工作将丢失。

ARCHIVELOG 模式
将数据库设置为ARCHIVELOG 模式的含义:
⊙ 出现介质故障时,可以防止数据库丢失数据。
⊙ 可以在数据库联机时对其进行备份。
⊙ 由于介质故障导致表空间(非SYSTEM)脱机时,数据库的其余部分仍可用,因为表空间(非SYSTEM)可以在数据库打开时恢复。

介质恢复选项
⊙ 无论数据库处于联机或脱机状态,你都可以还原损坏文件的备份,并使用归档日志文件将数据文件恢复为当前的版本。
⊙ 可以将数据库恢复至特定的时间点。
⊙ 可以将数据库恢复至指定归档日志文件的末尾(UNTIL CANCEL)。
但注意,数据文件在打开前或者ONLINE前,文件头的fuzzy状态为NO,所以如果文件恢复起点已经包含了UNTIL CANCEL后的数据,将无法应用REDO使得FUZZY变成NO。
一个文件是不是一致性的,要看文件头的FUZZY的状态,如果是YES,表示是不一致的,需要介质恢复
⊙ 可以将数据库恢复至特定的系统更改号(SCN)。

注:将数据库模式从NOARCHIVELOG 模式更改为ARCHIVELOG 模式后,你必须备份所有数据库文件和控制文件。因为数据库级别的变化,会修改控制文件。而介质恢复先要有个数据文件的起点,所以最好也把数据文件备份了

归档原则
⊙ 在决定归档模式(自动或手动)之前,必须将数据库设置为ARCHIVELOG 模式。
⊙ 如果未切换到ARCHIVELOG 模式,将导致ARCn 无法复制重做日志文件。
⊙ 启用归档进程之前,应彻底关闭数据库(使用正常、立即或事务处理选项)。

如果DBWR和ARCH太慢,造成LGWR无法覆盖日志,那我们就需要提高ARCH和DBWR的速度,我们可以设置多达10个归档进程
使用LOG_ARCHIVE_MAX_PROCESSES 参数最多可指定十个ARCn 进程
在事务处理负载较重或活动较多的时期,可临时启动更多归档进程以避免归档瓶颈。事务处理活动恢复到正常水平后,可停止部分ARCn 进程
启动多个归档进程ALTER SYSTEM SET log_archive_max_processes=10 SCOPE=BOTH;

用ARCHIVE LOG LIST来查看归档的状态

二:手动归档
ALTER SYSTEM ARCHIVE LOG <选项>


如果数据库HANG住了,我们建议执行CURRENT;或者数据库SHUTDOWN,然后MOUNT,再执行ALL选项

归档目录设置

参数设置两种设置路径的方式,两者是不兼容的
o LOG_ARCHIVE_DEST_n 参数(最多10个)
o LOG_ARCHIVE_DEST 和LOG_ARCHIVE_DUPLEX_DEST(基本不用,以为只支持2个归档路径)
归档目录会默认存放在快速恢复区,log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST mandatory ',可以设置USE_DB_RECOVERY_FILE_DEST来使用快速恢复区,
将归档文件存放到快速恢复区
这样,我们在使用FLASHBACK,使用RMAN等技术时,自动能找到归档文件
要使用快速恢复区,我们需要设置两个参数:一个是快速恢复区的大小;一个是快速恢复区的地址
LOG_ARCHIVE_DEST_n 是动态参数,可以在系统级或会话级对其进行修改。

所以归档目标有两类:
⊙ 本地文件系统位置,由关键字LOCATION 定义。
⊙ 远程目标:远程目标只有一种可能,那就是要归档到另一个实例的归档目录。所以,远程目标通常是用在STANDBY,或DG。ORACLE会强制至少有一个LOCATION的归档目录

⊙ MANDATORY 表示必须成功完成归档到该目标的操作才可以覆盖联机重做日志文件。
⊙ OPTIONAL 表示即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用。这是缺省设置。
⊙ REOPEN 属性定义发生故障时是否必须重新尝试归档到目标。REOPEN,缺省值为300 秒。归档到目标的尝试次数没有限制。归档中的所有错误将在主站点的警报文件中报告。
LOG_ARCHIVE_MIN_SUCCEED_DEST指定成功归档位置的最小数量。LOG_ARCHIVE_MIN_SUCCEED_DEST=2,至少有2个归档目录是成功的,只针对本地

可以使用联机重做日志文件之前需要成功归档的目标数量是根据以下设置决定的:
⊙ 定义为MANDATORY 的目标的数量
⊙ LOG_ARCHIVE_MIN_SUCCEED_DEST 参数的值。
示例:假定LOG_ARCHIVE_MIN_SUCCEED_DEST 设置为2 。如果强制本地目标的数量为3,则必须归档这3 个位置,才可以重新使用联机重做日志文件。

所有目录的状态

⊙ 归档目标的状态可以动态地进行更改。缺省情况下,归档目标是ENABLE 状态,表明Oracle 服务器可以使用该目标。
⊙ 归档目标的状态可以通过设置相应的LOG_ARCHIVE_DEST_STATE_n 参数来进行修改。
例如,要在发生错误时暂时停止归档到MANDATORY归档目录,可以将该目标的状态设置为DEFER。在参数文件中可能定义了一个归档目录,但它状态设置为DEFER。当另一归档目录出现错误或需要维护时,可以启用该目录。
注:如果一个目录的状态设置为DEFER,则不会执行归档到该目录的操作。如果该目录的状态更改为ENABLE,则必须手动将所有缺失的日志归档到该目录。


归档日志的文件格式
通过指定LOG_ARCHIVE_FORMAT参数来实现;LOG_ARCHIVE_FORMAT = extension

跟归档相关的视图
⊙ V$ARCHIVED_LOG:显示控制文件中的归档日志信息。是从控制文件中读取的
⊙ V$ARCHIVE_DEST:对于当前实例,说明所有归档日志目标、当前值、模式和状态。可以列出所有10个归档目录的当前状态
SELECT destination, binding, target, status FROM v$archive_dest;

所有目录的状态  ---印象笔记已经记录
检查每个目录的错误和发生错误的日志序列号,可使用以下查询:SELECT destination,fail_sequence,error FROM v$archive_dest WHERE status='ERROR';

⊙ V$LOG_HISTORY:包含控制文件中的日志文件信息。
⊙ V$DATABASE:归档的当前状态。
⊙ V$ARCHIVE_PROCESSES:提供有关实例的各种ARCH 进程的状态的信息。SELECT * FROM v$archive_processes;
⊙ 查看文件恢复所需要的日志号: select hxfi filenumber,fhsta status,fhscn SCN,fhrba_Seq sequence from x$kcvfh;
从实际数据文件查看到该文件恢复是从哪个序列号开始前滚
⊙ 如果数据库打开的情况下恢复,可以查看V$RECOVER_LOG来查看恢复所需要应用的日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值