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/
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中设置联机重做日志)
,