您的位置:首页 > 数据库 > Oracle

Oracle OCP笔记(25)数据库的可恢复性配置

2015-06-23 22:51 639 查看

Oracle OCP笔记(25)数据库的可恢复性配置

数据库管理员最重要的职责就是确保数据库不丢失数据,因此需要对数据库备份,当然备份的目的是为了恢复数据库。

Oracle提供多个备份方案和选项,从10g开始,可以使用恢复管理器(Recovery Manager,RMAN)执行几乎所有备份和恢复操作,在无法用RMAN进行恢复的环境中(例如数据库不处于Archivelog模式或以前版本的数据库),需要使用用户管理的备份和恢复方法。

1.备份的类型

备份的级别

·逻辑备份: 可以导出完整数据库、特定用户、表空间或特定表及授权、索引、约束等数据字典信息。

备份/恢复(Export/Import,exp/imp)(Data Pump Export/Data Pump Import,dpexp/dpimp)

·物理备份: 执行物理备份时,需要复制构成数据库的文件,也称为文件系统备份。

包含脱机备份和联机备份(冷备份和热备份)

备份管理方式:

·用户管理的备份: 使用操作系统实用程序执行备份(UNIX:cp、tar或cpio, Windows:copy或winzip32.exe).

·服务器管理的备份: 使用RMAN(Recovery Backups)执行备份.

备份选项:

·脱机备份: 关闭状态备份、冷备份、一致备份 (用户管理/服务器管理) (archivelog/noarchivelog)

·联机备份: 打开状态备份、热备份、不一致备份 (用户管理/服务器管理) (archivelog)

·完整备份: (whole backup) (用户管理/服务器管理) (archivelog/noarchivelog)

·局部备份: (partial backup) (用户管理/服务器管理) (archivelog)

·全部备份: (full backup) (用户管理/服务器管理) (archivelog/noarchivelog)

·增量备份: (incremental backup) (服务器管理 ) (archivelog/noarchivelog|rman)

并非一定要关闭数据库才能进行备份,数据库在archivelog模式下运行可以无限期地处于打开状态,进行联机备份,在noarchivelog模式下无法执行联机备份.

2.Oracle数据库文件

·初始化参数文件(Instance Parameter File)

·控制文件(control files)

·数据文件(data file)

·临时文件(temp file)

·联机重做日志文件(online redo log files)

·归档重做日志文件(archive redo log files)

·警告日志文件和跟踪文件(Alert Log and Trance Files)

·口令文件(Password File)

3.归档日志

查看归档(Archivelog)模式

·归档模式列表 -- archive log list;

·查看数据库归档模式 -- select log_mode from v$database;

·查看事例自动归档 -- select archiver from v$instance;

·查看归档位置 -- select dest_id,destination,status,binding,target,reopen_secs from v$archive_dest order by dest_id;

·归档日志文件 -- select name from v$archived_log;

·查看日志历史信息 -- select * from v$loghist;

归档日志文件格式变量

·%a 活动ID号

·%d 唯一的数据库标识符,如果将多个数据库归档到同一目录,这是必需的.

·%r 场景(incarnation)号,RESETLOGS的ID值,如果进行了不完全恢复(将重置日志切换序列号),这个变量就十分重要

·%s 日志切换序列号,这个变量能够保证任何一个数据库中的归档日志都不会彼此重写.

·%S 日志切换序列号(带有前导0)

·%t 线程号,显示为v$instance视图的thread#列,除了在RAC数据库中使用外,这个变量没有任何意义.

·%T 线程号(带有前导0)

归档设置默认值

·归档日志的默认位置为%oracle_home%rdbms

·归档日志的默认文件格式为ARC%S_%R.%T(10g),自定义%%ORACLE_SID%%_%S_%T_%R.arc, %%ORACLE_SID%%T%TS%SR%R.ARC,

·从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.

-- alter system set log_archive_format='sales_%s_%t_%r.arc' scope=spfile;

4.设置归档日志模式

(1).归档日志模式的相关参数

log_archive_start -- 自动归档/不自动归档(TRUE/FALSE),10g以后不需设置,11g设置会导致启动错误.

log_archive_dest -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第一个归档位置)

log_archive_duplex_dest -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第二个归档位置)

log_archive_dest_n -- 用于指定多个归档位置(最多10个,12c有20个),可以本地归档位置或远程归档位置

log_archive_dest_state_n -- 当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置(enable/defer)

log_archive_format -- 归档日志的命名格式:推荐SID_%s_%t_%r.arc

log_archive_max_processes -- 最大归档进程数

log_archive_min_succeed_dest -- 控制本地归档的最小成功个数

10g以后当数据库为归档模式时,oracle会自动启动归档进程,不再需要设置log_archive_start参数.

11g设置log_archive_start参数会造成启动错误: ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance.

(2).设置归档位置

alter system set log_archive_dest='/u01/app/oracle/oradata/sales/archive1'; -- 只能是本地归档位置

alter system set log_archive_duplex_dest='/u01/app/oracle/oradata/sales/archive1'; -- 只能是本地归档位置

-- 以下参数可以指定本地或远程归档位置

alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/sales/archive1 mandatory'; -- 本地位置

alter system set log_archive_dest_2='location=/u01/app/oracle/oradata/sales/archive2 mandatory reopen=500'; -- 本地位置

alter system set log_archive_dest_3='service=SERVICE_NAME'; -- 远程位置(在tnsnames.ora文件中配置服务名)

选项:

OPTIONAL: 该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.

MANDATORY: 强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.

REOPEN: 该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.

如果设置了参数log_archive_dest_n,则不能使用参数log_archive_dest,log_archive_duplex_dest,是互斥的。

新版本推荐使用log_archive_dest_n参数,参数log_archive_dest,log_archive_duplex_dest只是为了保持兼容性。

(3).设置归档相关配置

alter system set log_archive_format='sales_%s_%t_%r.arc' scope=spfile; -- 设置归档日志格式

alter system set log_archive_max_processes=3; -- 控制本地归档的最小成功个数

alter system set log_archive_dest_state_3=enable/defer; -- 启用或禁用归档位置

alter system set log_archive_start=true scope=spfile; -- 归档进程自动启动自动归档,9i及以前设置此参数

9i之前可以通过设置log_archive_start参数来自动启动归档进程自动归档,10g以后不需设置,11g设置会导致启动错误.

alter system reset log_archive_start scope=spfile; -- 11g不能设置log_archive_start参数,需要重置

(4).打开归档日志模式

archive log list; -- 查看归档日志模式相关信息

alter system set log_archive_start=true scope=spfile; -- 归档模式设为自动归档,10g以后不需设置,11g设置会导致启动错误.

shutdown immediate; -- 干净关闭数据库

startup mount; -- 以加载模式启动

alter database archivelog; -- 开启归档模式,关闭归档模式为alter database noarchivelog;

alter database open; -- 打开数据库

alter system archive log all; -- 手动归档所有日志,10g以前执行alter database archivelog manual;

alter system switch logfile; -- 或者切换日志,会自动归档,或 -- alter system archive log current;

5.设置快速恢复区

(1).快速恢复区(Flashback Recovery Area)

从Oracle10g开始引入的快速恢复区是数据库中所有与恢复相关的文件的统一存储位置。

与磁带备份相比,完全基于磁盘的解决方案会使磁盘空间下降,但是提高了易用性,可用性,减少了恢复时间,因此是更理想的做法。

闪回恢复区可以驻留在单个文件系统目录中,也可以在ASM磁盘组中。

备份后使用恢复管理器(Recovery Manager,RMAN)可以进行快速恢复。

快速恢复区中的OMF三层文件目录结构:

<DB_NAME>/ -- 数据库名DB_UNIQUE_NAME

<DB_NAME>/archivelog/YYYY_MM_DD -- 归档日志

<DB_NAME>/autobackup/YYYY_MM_DD -- 控制文件自动备份

<DB_NAME>/controlfile -- 当前控制文件

<DB_NAME>/datafile -- 数据文件镜像

<DB_NAME>/backupset/YYYY_MM_DD -- 备份集

<DB_NAME>/onlinelog -- 联机日志

<DB_NAME>/flashback -- 闪回日志

(2).设置快速恢复区参数

db_recovery_file_dest -- 快速恢复区路径

db_recovery_file_dest_size -- 快速恢复区空间大小

alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

alter system set db_recovery_file_dest_size=40G;

alter system set log_archive_dest_3='location=USE_DB_RECOVERY_FILE_DEST';

select * from v$recovery_file_dest; -- 快速恢复区信息

select * from v$flash_recovery_area_usage; -- 快速恢复区空间文件使用情况

select flashback_on from v$database; -- 是否开启了闪回功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: