Practices for Lesson 13: Backup and Recovery: Configuration
2020.02.04 BoobooWei
实践13:概览
Practices for Lesson 13: Overview
Configure your database to reduce the chances of failure or data loss. To do so, perform the following tasks:
• Ensure redundancy of control files.
• Review the fast recovery area configuration.
• Ensure that there are at least two redo log members in each group.
• Place your database in ARCHIVELOG mode.
• Configure redundant archive log destinations.
配置数据库以减少失败或数据丢失的机会。为此,请执行以下任务:
- 确保控制文件的冗余。
- 检查快速恢复区域的配置。
- 确保每个组中至少有两个重做日志成员。
- 将数据库置于ARCHIVELOG模式。
- 配置冗余的存档日志目的地。
实践13-1:配置数据库进行恢复
Practice 13-1: Configuring Your Database for Recovery
Overview
In this practice, you verify that your database is configured properly to support recovery operations in the event of a failure.
Task
Verify that the control files are multiplexed.
Review the fast recovery area configuration and change the size to 8 GB.
Check how many members each redo log group has. Ensure that there are at least two redo log members in each group. One set of members should be stored in the fast recovery area.
You notice that for each redo log group, the “Archived” column has no value. This means that your database is not retaining copies of redo logs to use for database recovery, and in the event of a failure, you will lose all data since your last backup. Place your database in ARCHIVELOG mode, so that redo logs are archived.
You do not need to specify a naming convention or a destination for the archived redo log files because you are using a fast recovery area.
Note: If you add archive log destinations, you must create the directory if it does not already exist.
Use SQL*Plus to set the database in ARCHIVELOG mode.
Configure redundant archive log destinations.
Practice
验证控制文件是多路复用的。
SELECT NAME FROM V$CONTROLFILE;
a. 登陆 Enterprise Manager Database Express
b. 选择
存储引擎 > 控制文件
c. 可以看到当前有两个控制文件
SQL> SELECT NAME FROM V$CONTROLFILE;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/booboo/control01.ctl
/u01/app/oracle/oradata/booboo/control02.ctl
检查快速恢复区配置并将大小更改为8gb。
mkdir /u01/app/oracle/fast_recovery_area
sqlplus / as sysdba
show parameter db_recovery_file_
alter system set "db_recovery_file_dest_size"='8G' scope=both sid='*';
alter system set "db_recovery_file_dest"='/u01/app/oracle/fast_recovery_area' scope=both sid='*';
show parameter db_recovery_file_
a. Enterprise Manager Database Express 选择 配置 > 初始化参数
b. 选择 归档和恢复
,找到以db_recovery_file
开头的参数
c. 检查快速恢复区是否开启。未开启,因为值为null和0
d. 修改这两个参数,注意这两个参数都是动态参数,无需重启服务。
SQL> show parameter db_recovery_file_ |
检查每个重做日志组有多少成员。确保每个组中至少有两个重做日志成员。一组成员应该存储在快速恢复区域。
select group#,member from v$logfile;
ALTER DATABASE
ADD LOGFILE MEMBER
'/u01/app/oracle/oradata/booboo/redo01-1.log'
TO GROUP 1;
alter system switch logfile;a. 选择
存储 > 重做日志组
b. 观察每个组有多少个成员,
成员计数
列显示为1
c. 选择其中一个组点击
添加成员
您注意到,对于每个重做日志组,
已归档
列没有值。这意味着您的数据库没有保留用于数据库恢复的重做日志副本,并且在发生故障时,您将丢失自上次备份以来的所有数据。将数据库置于ARCHIVELOG模式,以便归档重做日志。您不需要为存档的重做日志文件指定命名约定或目标,因为您使用的是快速恢复区域。
注:如果您添加存档日志目的地,您必须创建目录,如果它还不存在。
使用
SQLPlus
将数据库设置为ARCHIVELOG模式。sqlplus / as sysdba
archive log list
shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list执行结果
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 30
Current log sequence 32
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 838860800 bytes
Fixed Size 8798312 bytes
Variable Size 490737560 bytes
Database Buffers 331350016 bytes
Redo Buffers 7974912 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 30
Next log sequence to archive 32
Current log sequence 32现在,您的数据库处于ARCHIVELOG模式,它将继续存档每个在线重做日志文件的副本,然后再将其用于其他重做数据。
注意:记住这将消耗磁盘上的空间,并且必须定期将旧的归档日志备份到其他存储。配置冗余归档日志目的地。
mkdir /u01/app/oracle/oradata/booboo/archive_dir2
sqlplus / as sysdba
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/app/oracle/fast_recovery_area/EMCDB/archivelog' SCOPE=both;
ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u01/app/oracle/oradata/booboo/archive_dir2' SCOPE=both;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT name FROM v$archived_log ORDER BY stamp;
a. 创建一个新目录/u01/app/oracle/oradata/orcl/archive_dir2
b. 设置 LOG_ARCHIVE_DEST_1
参数指向 FRA;设置LOG_ARCHIVE_DEST_2
指向新目录
c. 手动切换日志,查看视图V$ARCHIVED_LOG
执行结果
[oracle@ocm ~]$ mkdir /u01/app/oracle/oradata/booboo/archive_dir2 |
KnowledgePoint
管理控制文件
您可以创建,备份和删除控制文件。
- 什么是控制文件?
每个Oracle数据库都有一个控制文件,该文件是一个小的二进制文件,记录了数据库的物理结构。 - 控制文件
准则您可以遵循准则来管理数据库的控制文件。 - 创建控制文件
您可以创建,复制,重命名和重定位控制文件。 - 创建控制文件
后的故障排除在发出该CREATE CONTROLFILE
语句之后,您可能会遇到一些错误。 - 备份控制文件
使用该ALTER DATABASE BACKUP CONTROLFILE
语句备份控制文件。 - 使用当前副本
恢复控制文件您可以从当前备份或多路复用副本恢复控制文件。 - 删除控制文件
您可以删除控制文件,但数据库始终应至少具有两个控制文件。 - 控制文件数据字典视图
您可以查询一组数据字典视图以获取有关控制文件的信息。
管理重做日志
您可以通过完成以下任务来管理重做日志,这些任务包括创建重做日志组和成员,重定位和重命名重做日志成员,删除重做日志组和成员以及强制日志切换。
- 什么是重做日志?
恢复操作最关键的结构是重做日志,它由两个或多个预分配的文件组成,这些文件在发生更改时存储对数据库所做的所有更改。Oracle数据库的每个实例都有一个相关的重做日志,以在实例发生故障时保护数据库。 - 规划重做日志
在配置数据库实例重做日志时,您可以遵循准则。 - 创建重做日志组和成员
在数据库创建过程中计划数据库的重做日志,并创建所有必需的重做日志文件组和成员。但是,在某些情况下,您可能需要创建其他组或成员。例如,将组添加到重做日志可以纠正重做日志组可用性问题。 - 重定位和重命名重做日志成员
您可以使用操作系统命令重定位重做日志,然后使用该ALTER DATABASE
语句使数据库知道其新名称(位置)。 - 删除重做日志组和成员
在某些情况下,您可能希望删除整个重做日志成员组。 - 强制
日志切换当LGWR停止写入一个重做日志组并开始写入另一个重做日志组时,将发生日志切换。默认情况下,当当前重做日志文件组填满时,日志切换会自动发生。 - 验证重做日志文件中的块
您可以将数据库配置为使用校验和来验证重做日志文件中的块。 - 清除
重做日志文件当数据库打开时,重做日志文件可能会损坏,并最终停止数据库活动,因为归档无法继续。 - FORCE LOGGING设置的优先级
您可以在各种级别进行设置FORCE LOGGING
和设置NOLOGGING
,例如数据库,可插拔数据库(PDB),表空间或数据库对象。当FORCE LOGGING
被设置在一个或多个级别的优先级FORCE LOGGING
设置决定了在重做日志中记录。 - 重做日志数据字典视图
您可以查询一组数据字典视图以获取有关重做日志的信息。
管理存档的重做日志文件
您可以通过完成诸如在NOARCHIVELOG
或 ARCHIVELOG
模式之间进行选择以及指定存档目标之类的任务来管理存档的重做日志文件。
- 什么是存档的重做日志?
Oracle Database使您可以将已填充的重做日志文件组保存到一个或多个脱机目标,这些目标统称为归档重做日志。 - 在NOARCHIVELOG和ARCHIVELOG模式
之间进行选择您必须在NOARCHIVELOG
或ARCHIVELOG
模式下运行数据库。 - 控制归档
您可以为数据库设置归档模式,并调整归档器进程的数量。 - 指定存档目标
在可以存档重做日志之前,必须确定要存档的目标,并熟悉各种目标状态。 - 关于日志传输模式
将归档日志传输到目的地的两种模式是常规归档传输和备用传输模式。正常传输包括将文件传输到本地磁盘。备用传输涉及通过网络将文件传输到本地或远程备用数据库。 - 管理存档目标失败
有时,存档目标可能会失败,从而在自动存档模式下运行时引起问题。Oracle数据库提供了可帮助您最大程度减少与目标故障相关的问题的过程。 - 控制由Archivelog进程生成的跟踪输出
后台进程始终在适当的时候写入跟踪文件。对于archivelog流程,您可以控制生成到跟踪文件的输出。 - 查看有关存档的重做日志的
信息您可以使用动态性能视图或ARCHIVE
LOG
LIST
命令显示有关存档的重做日志的信息。