RMAN Recipes 中对Flash Recovery Area的总结


最近在看《RMAN Recipes for Oracle Database 11g》,【RMAN Recipes for Oracle Database 11g pdf下载见 】老外讲得啰里吧嗦,我把其中有一些比较重要的操作记下,以便以后查阅,如果顺利,以后看完每章都做一次总结,希望对初学Oracle备份与恢复的朋友有所帮助。笔记中若有不正确的地方欢迎大家留言拍砖。  其中,第一章《Backup and Recovery》针对备份和恢复的基本概念作了详细阐述,包括数据库故障的类型、Oracle中备份与恢复的几个概念、备份类型、恢复类型、RMAN体系结构、备份与恢复的几个最佳实践。第二章《Jump-Starting RMAN》是针对初识RMAN的朋友准备的,作者用最简单的例子让初学者几下子就能作一个备份和恢复,这一章包括连接数据库、打开和关闭数据库、使用归档模式、连接RMAN、备份数据库、Restoring and Recovering 数据库。这两章主要是从概念上讲备份与恢复,也举了几个例子,大家一看就懂,我也不一一罗列了,下面进入正题。 第三章《Using the Flash Recovery Area》是对闪回恢复区作了些论述,我用例子来说明一些概念。

3-1.Creating the Flash Recovery Area(创建闪回恢复区)

这个闪回恢复区我们可以自定义创建,在创建前我们思考两个问题,第一:这个闪回恢复区我创建在哪儿?第二:我要创建多大的闪回恢复区?

如果大家已经确定了答案,我们就可以创建了。

3.1.1确保log_archive_dest和log_archive_duplex_dest为空

大家可以show parameter log_archive_dest看一下这两个初始化参数是否为空,若不为空,则:

Alter system set log_archive_duplex_dest = ‘ ’;

Alter system set log_archive_dest = ‘ ‘;

如果大家想要把归档文件放入自定义的路径,则可以使用log_archive_dest_1,

Alter system set log_archive_dest_1=’location=/dbarch’;

并保证log_archive_dest为空,具体参数说明见Oracle联机文档《Reference》。

3.1.2以sysdba角色登录数据库

Sqlplus / as sysdba 或者

Sqlplus sys/<PasswordOfUserSys> as sysdba

3.1.3创建闪回恢复区并指定相应大小

Alter system set db_recovery_file_dest_size=4G;(原作有误,少了file_dest)

Alter system set db_recovery_file_dest=’/home/oracle/flasharea’; 好了,这样就指定了一个闪回恢复区,记住,这个/home/oracle/flasharea必须存在,若操作系统层面没有这个目录,必须创建一个目录。

这个闪回恢复区将来是用来存放备份文件的,所以大家最好不要把闪回恢复区和数据库文件放在同一块磁盘上,万一磁盘块了,那闪回恢复区也一起悲剧。

3-2Writing Regular RMAN Backups to the FRA(在闪回恢复区有规律地备份)

3.2.1启动RMAN

$rman

Recovery Manager:......

RMAN>

3.2.2连接到目标数据库

RMAN>connect target /

Connected to target database:PRODB2(DBID=524826567)

3.2.3开始不指定路径地备份数据库

RMAN>backup database;

......

从屏幕产生的信息我们发现,数据库分配了一个channel,把数据文件备份到闪回恢复区,同时控制文件和spfile也一起备份。

3-3Free FRA Space in an Emergency(紧急情况下释放闪回恢复区)

我们有时在备份时会出现FRA空间不够,那怎么办呢?有三种办法。

3.3.1增大闪回恢复区空间

Alter system set db_recovery_file_size_size=10G;

3.3.2删除没用的Restore Points

Select name,storage_size from v$restore_point;

找到没用的Restore Points,然后

Drop restore point rp0;

3.3.3禁用闪回恢复区

我索性不用闪回恢复区,将它Disable。

Shutdown immediate

Startup mount

Alter database flashback off;

现在我可以用rman安心删除东西了,把archivelog删除:

Rman>delete noprompt archivelog all;

然后打开数据库,

Alter database open;

注意,这次的数据库是没有闪回恢复区的。

3-4.Checking Space Usage in the FRA(检查FRA使用空间)

有几个动态性能视图对这一问题有很好的帮助,下面看下怎么查询。

SQL>select * from v$flash_recovery_area_useage;

通过列名我们可以清晰地得到各种文件占用了多少空间,注意是百分比。那我们怎么看具体用了多少空间?大家可以查看v$recovery_file_dest这个动态性能视图,我们还能通过FILE_TYPE将这两个视图连接查询自己想要的信息。

3-5.Expanding or Shrinking the FRA(扩大或收缩FRA)

其实这块前面在创建时就提过了,

SQL>alter system set db_recovery_file_dest_size=2G;

这个值看实际情况调整。

3-6.Configureing Archived Redo Logs to Go to FRA(给FRA配置归档日志)

我们原来可以把归档日志放其它的路径下,这节阐述了怎么向FRA里配置。书上有几步前面我们已经做过,下面我会把那些操作略去。

3.6.1用FRA做为归档路径

Alter system set log_archive_dest_1=’LOCATION=USE_DB_RECOVERY_FILE_DEST’;

3.6.2确保上面的路径可用

SQL>show parameter log_archive_dest_state_1

那个值必须是ENABLE,不然没法用这个路径,如果不是ENABLE,则

Alter system set log_archive_dest_state_1=enable;

3.6.3检查你的设置

SQL>archive log list

3.6.4切换日志看是不是真的归档到新目录

Alter system switch logfile;

以上就是基本操作,设置完了后大家可以查询v$archive_log看下归档路径。

3-7.Using the Same FRA for Two Database with the Same Name(略,以后用到再写)

3-8.Placing a Control File in the FRA(将控制文件放入FRA)

控制文件一般是怎么产生的?首先,在创建数据库时,会产生;还可以用SQL脚本在恢复时产生;也可以从备份文件中找到。在pfile里我们一般会看到一个参数是指定控制文件的路径的。讲到这想必大家知道怎么设置了吧,改一下pfile里的路径就行了。

3-9.Placing Online Redo Log Files in FRA(在FRA中设置联机重做日志)

相关内容