配置数据库归档模式
Redo Log History
NOARCHIVELOG Mode(非归档模式)
默认情况下,以NOARCHIVELOG模式创建数据库。以NOARCHIVELOG模式操作数据库的特点如下:
- 重做日志文件以循环方式使用。
- 重做日志文件可以在检查点发生后立即被重用。
- 重做日志被覆盖后,介质恢复只能恢复到上次的完全备份。
NOARCHIVELOG模式下的媒体恢复选项
必须从完整数据库备份中恢复数据文件和控制文件。如果使用“导出”实用程序备份数据库,则可以使用“导入”实用程序恢复丢失的数据。但是,这将导致不完全恢复,并且在导出后执行的事务的工作将丢失。
NOARCHIVELOG模式的含义
- 如果某个表空间由于故障而变得不可用,则在删除该表空间或从备份中恢复整个数据库之前,无法继续操作该数据库。
- 只有在关闭数据库的情况下,才能对数据库进行操作系统备份。数据库必须已通过NORMAL、IMMEDIATE或TRANSACTIONAL选项关闭。
- 每次备份时必须备份整个数据文件集和控制文件集。虽然可以备份在线重做日志文件,但这不是必须的。这种备份方式下的文件都是一致的,不需要恢复,所以不需要在线日志。
- 如果在线重做日志文件已被覆盖,则将丢失自上次完整备份以来的所有数据。
ARCHIVELOG Mode(归档模式)
填充的重做日志文件不能被重用,直到检查点发生并且重做日志文件已被ARCn后台进程备份。控制文件中的一个条目记录了归档日志文件的日志序列号。
最近对数据库的更改在任何时候都可以用于实例恢复,归档的重做日志文件可以用于介质恢复。
归档要求
数据库必须处于ARCHIVELOG模式。发出命令将数据库置于ARCHIVELOG模式将更新控制文件。可以启用ARCn后台进程来实现自动归档。
应该有足够的资源来保存生成的归档重做日志文件。
以ARCHIVELOG模式设置数据库的含义
- 当介质发生故障时,数据库可以防止数据丢失。
- 您可以在数据库在线时对其进行备份。
- 当SYSTEM以外的表空间由于介质故障而脱机时,数据库的其余部分仍然可用,因为在数据库打开时可以恢复表空间(SYSTEM以外的表空间)。
介质恢复选项
- 您可以恢复损坏文件的备份副本,并使用归档日志文件使数据文件在数据库联机或脱机时保持最新。
- 您可以将数据库恢复到特定的时间点。
- 可以将数据库恢复到指定的归档日志文件的末尾。
- 可以将数据库恢复到指定的系统变更号(system change number, SCN)。
修改归档模式
自动和手动归档(10g之前分)
归档过程
将数据库设置为ARCHIVELOG模式后,必须决定在线重做日志文件是自动归档还是手动归档。这是创建用于恢复的归档重做日志文件的第二步。
自动归档与手动归档
- 在自动归档中,ARCn后台进程是启用的,当重做日志文件被填满时,它们会复制重做日志文件。
- 在手动归档中,你必须使用SQL*Plus或Oracle Enterprise Manager来复制文件。
- 建议开启日志文件自动归档功能。
指导方针
- 在决定归档模式(自动或手动)之前,必须将数据库设置为ARCHIVELOG模式。
- 切换到ARCHIVELOG模式失败将阻止ARCn复制重做日志文件。
- 在启用归档进程之前,应该干净地关闭数据库(通过使用normal、immediate或transactional选项)。
注意:如果归档进程(ARCn)由于任何原因失败,在事务活动填满所有重做日志后,Oracle服务器会停止。将数据库设置为ARCHIVELOG模式告诉Oracle服务器不要覆盖在线重做日志,除非它被归档。因此,归档在线重做日志必须与系统上的事务活动(重做日志的生成)保持同步。
指定“Multi-ARCn进程”
停止/启动归档进程
在实例启动时启用
指定目的地
多个目的地
指定一个迷你本地任务
控制归档
- 可以使用动态初始化参数禁用存档目的地LOG_ARCHIVE_DEST_STATE_n
LOG_ARCHIVE_DEST_STATE_2 = DEFER
ALTER SYSTEM SET log_archive_dest_state_3 = DEFER;
- 可以再次启用向目标存档
LOG_ARCHIVE_DEST_STATE_2 = ENABLE
ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE;
LOG_ARCHIVE_DEST_STATE_n Paramrter
- 存档目标的状态可以动态更改。默认情况下,存档目的地处于ENABLE状态,表示Oracle服务器可以使用该目的地。
- 可以通过设置相应的LOG_ARCHIVE_DEST_STATE_n参数来修改归档目的地的状态。例如,要在发生错误时暂时停止向强制位置存档,可以将该目的地的状态设置为DEFER。可以定义目标,但在参数文件中设置为DEFER。然后,当另一个目的地出现错误或需要维护时,可以启用该目的地。
注意:当状态设置为DEFER时,不会对目标执行归档。如果将此目标的状态更改为ENABLE,则任何遗漏的日志都必须手动归档到此目标。
指定文件名格式
相关的动态视图
Oracle恢复管理器概述和配置
用户备份 vs RMAN
还原(restoration)和恢复(recovery)数据库
恢复(recovery)是指将数据库从一个在发生故障之前的可靠状态恢复到故障发生后的一致状态。数据库故障可能导致数据的丢失或不一致,恢复过程将通过应用日志文件、重做操作和回滚操作来确保数据库的完整性和一致性。恢复操作的目标是将数据库恢复到故障发生之前的状态,以防止数据丢失。
还原(restoration)是指将数据库从备份文件还原到一个可用状态。备份文件通常包含数据库的完整或增量备份。还原操作的目标是根据备份文件恢复数据库的内容和结构。还原操作之后,可能需要进行数据恢复操作以确保数据库的完整性和一致性,这就涉及到恢复过程。
简而言之,恢复(recovery)是处理数据库故障和恢复数据一致性的操作,而还原(restoration)是将数据库从备份文件中恢复到可用状态的操作。它们是实现和保护数据库完整性的两个重要步骤。
恢复管理器特性
RMAN提供了一种灵活的方式:
- 备份数据库、表空间、数据文件、控制文件和归档日志
- 保存经常执行的备份和恢复操作
- 执行增量式块级备份
- 跳过未使用的块
- 为备份指定限制
RMAN体系结构
Repository1:Control File
- RMAN repository(存储库)是关于目标数据库和备份恢复操作的元数据。
- RMAN存储库始终存储在目标数据库的控制文件中。
- CONTROL_FILE_RECORD_KEEP_TIME决定一条记录在被覆盖之前的最小年龄(以天为单位)。
- 控制文件的大小可以增长。
信道分配
自动信道分配
手动信道分配
介质管理
连接的类型
没有恢复目录
附加行参数
恢复管理器模式
- 交互模式
- 在做分析时使用它
- 尽量减少日常使用
- 避免使用with log选项
- 批处理模式
- 用于自动化工作
- 最小化操作误差
- 设置日志文件获取信息
RMAN命令
RMAN命令有以下几种类型:
- 独立的
- 仅在RMAN提示符下执行
- 单独执行
- 不能在RUN中显示为子命令
- 工作
- 必须在RUN的括号内
- 组执行
- 单机或作业
RMAN配置设置
RMAN使用默认配置设置进行预置
使用CONFIGURE命令:
- 配置自动通道
- 配置备份保留策略
- 指定需要创建的备份副本数量
- 限制备份集的大小
- 免除表空间的备份
- 启用和禁用备份优化
配置自动通道
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/db01/BACKUP/%U;
通过指定恢复窗口实现保留策略:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY
2> WINDOW OF 7 days;
通过指定冗余来实现保留策略:
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
配置双工备份集:
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR
2> DEVICE TYPE disk TO 2;
配置备份优化:
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
使用CLEAR选项返回默认值:
RMAN> CONFIGURE RETENTION POLICY CLEAR;
RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt CLEAR;
SHOW命令
显示持久配置设置
使用sHow命令显示:
- 自动通道配置设置
- 备份保留策略设置
- 需要创建的备份副本数量
- 备份集大小限制
- 备份中排除的表空间
- 备份优化状态
使用SHOW ALL显示所有设置:
RMAN> SHOW ALL;
LIST命令
列出数据库中所有文件的备份:
RMAN> LIST BACKUP OF DATABASE;
列出包含users01.dbf的所有备份集数据文件:
RMAN> LIST BACKUP OF DATAFILE
2> "/db01/ORADATA/u03/users01.dbf";
列出系统中所有数据文件的副本:
RMAN> LIST COPY OF TABLESPACE "SYSTEM";