Home >Database >Mysql Tutorial >RMAN Recipes 中对Flash Recovery Area的总结

RMAN Recipes 中对Flash Recovery Area的总结

WBOY
WBOYOriginal
2016-06-07 17:30:16839browse

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

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn