逍遥一派 发表于 2015-1-16 22:43:30

MYSQL编程:浅谈ORACLE 10G 闪回恢复区

你碰到的问题可能已经在社区中被别的人已经问过,即使没有MySQL学习教程,你也可以提出问题或通过Google来搜索答案。社区的相关负责人士:“MySQL社区是活跃、友好和内容渊博的。”oracle|恢复


作甚闪回恢复区

Oracle10g有一项新功效称为:主动的基于磁盘的备份与恢复(AutomaticDisk-BasedBackupandRecovery)。完成该功效的基本为本文要报告的闪回恢复区(FlashRecoveryArea)。闪回恢复区是Oracle10g中的新事物。复杂的说,闪回恢复区是一块用以存储恢复相干的文件的存储空间。同意用户会合存储一切恢复相干的文件。



闪回恢复区能够放在以下几种存储情势上:

l目次

l一个文件体系

l主动存储办理(ASM)磁盘组



在RAC情况中,这个该地位必需为集群文件体系(clusterfilesystem)或是ASM磁盘组亦或是经由过程NFS把持的文件共享目次,还要注重的是,一切实例的地位和操纵体系的磁盘限额(diskquota)必需分歧。



以下几种文件能够放到闪回恢复区中:

l把持文件

l回档的日记文件(注:Oracle手册上所说的在设定flashrecoveryarea以后,LOG_ARCHIVE_DEST_10的值将主动设定为flashrecoveryarea的地位,这个变更在笔者测试过程当中察看不到)

l闪回日记

l把持文件和SPFILE主动备份

lRMAN备份集

l数据文件拷贝



为什么要用闪回恢复区?

如前所述,闪回恢复区供应了一个会合化的存储地区,很年夜水平上减小了办理开支。这是其最次要的长处。与RMAN分离利用能够举行疾速恢复。

最近几年来跟着存储手艺的开展,单个磁盘的存储才能已增强。这使主动的基于磁盘的备份与恢复的手艺完成成为大概。而闪回恢复区正是基于磁盘的备份与恢复的基本。把闪回恢复区和OMF与ASM分离使用看起来是对照完善的计划。固然,不成否定的是,主动备份恢复手艺还远远不敷成熟。



设定闪回恢复区

假如您利用DBCA创立的数据库,在安装时能够设定闪回恢复区的地位和巨细(点击这里检察安装截图)--这也是Oracle10gOUI的新功效之一。假如在入手下手的时分没有启用闪回恢复区,能够经由过程以下体例设定。调剂以下两个静态初始化参数(无需从头启动实例):

SQL>ALTERSYSTEMSETdb_recovery_file_dest_size=2gSCOPE=BOTH;



Systemaltered.



SQL>



SQL>ALTERSYSTEMSETdb_recovery_file_dest=/u01/app/oracle/flash_recovery_area

2SCOPE=BOTH;



Systemaltered.



SQL>



以后检察所作的修正是不是失效:

SQL>SHOWparameterdb_recovery_file_dest



NAMETYPEVALUE

---------------------------------------------------------------------------

db_recovery_file_deststring/u01/app/oracle/flash_recovery_area

db_recovery_file_dest_sizebiginteger2G



SQL>

如上所示,我们设定了闪回恢复区,地位在/u01/app/oracle/flash_recovery_area,下限为2G。假如要打消闪回恢复区,把初始化参数DB_RECOVERY_FILE_DEST的值清空便可。

注重:DB_RECOVERY_FILE_DEST_SIZE只要在DB_RECOVERY_FILE_DEST清空以后才能够清空。

初始化参数db_recovery_file_dest_size的设定有一点点必要注重的中央:

l文件的第0块和操纵体系数据块头的空间巨细不包括在内

l该参数其实不代表实践占用的空间巨细。假如空间被紧缩、镜像、RAID的话,该参数的值意义是纷歧样的



办理并监控闪回恢复区

我们先看看闪回恢复区内的文架布局条理



SQL>hosttree/u01/app/oracle/flash_recovery_area

/u01/app/oracle/flash_recovery_area

|--DEMO

||--archivelog

|||--2004_12_07

||||--o1_mf_1_10_0vbwz2fm_.arc

||||--o1_mf_1_11_0vc1yj14_.arc

||||--o1_mf_1_12_0vc6vvws_.arc

||||--o1_mf_1_13_0vcbv6cg_.arc

||||--o1_mf_1_14_0vchlxb3_.arc

||||--o1_mf_1_15_0vcnh2bz_.arc

||||--o1_mf_1_5_0vbk8goo_.arc

||||--o1_mf_1_6_0vbkq6dk_.arc

||||--o1_mf_1_7_0vbktl5f_.arc

||||--o1_mf_1_8_0vbo97xp_.arc

|||`--o1_mf_1_9_0vbrrlo6_.arc

||`--2004_12_08

|||--o1_mf_1_16_0vcnyqvf_.arc

|||--o1_mf_1_17_0vcp58bj_.arc

|||--o1_mf_1_18_0vcv4qxb_.arc

|||--o1_mf_1_19_0vczcsl0_.arc

|||--o1_mf_1_20_0vd34svw_.arc

|||--o1_mf_1_21_0vd7tg4h_.arc

|||--o1_mf_1_22_0vddq7lc_.arc

|||--o1_mf_1_23_0vdk0nbh_.arc

|||--o1_mf_1_24_0vdojjky_.arc

|||--o1_mf_1_25_0vdtg1rq_.arc

|||--o1_mf_1_26_0vdz23h2_.arc

|||--o1_mf_1_27_0vf3nlnw_.arc

|||--o1_mf_1_28_0vf6hon5_.arc

|||--o1_mf_1_29_0vf867lt_.arc

|||--o1_mf_1_30_0vf86pkg_.arc

||`--o1_mf_1_31_0vfjphqm_.arc

|`--backupset

||--2004_12_07

|||--o1_mf_ncsn1_TAG20041207T150715_0vboq7kv_.bkp

||`--o1_mf_nnnd1_TAG20041207T150715_0vboo3t2_.bkp

|`--2004_12_08

||--o1_mf_ncsnf_TAG20041208T161219_0vffxv2n_.bkp

||--o1_mf_ncsnf_TAG20041208T165456_0vfjcvgl_.bkp

|`--o1_mf_nnndf_TAG20041208T161219_0vffv40q_.bkp

`--tracking.dbf



7directories,33files



闪回恢复区中增加或删除文件等变更都将纪录在数据库的alert日记中,Oracle10g也针对该新特征供应了一个新的视图,DBA_OUTSTANDING_ALERTS,经由过程该视图能够失掉相干的信息。

DBA_OUTSTANDING_ALERTS视图的存在表现了Oracle越发人道化的一面。我们先来看一下该视图的基础布局,前面会用到。



SQL>DESCdba_outstanding_alerts

NameNull?Type

--------------------------------------------------------------------------

SEQUENCE_IDNUMBER

REASON_IDNOTNULLNUMBER

OWNERVARCHAR2(30)

OBJECT_NAMEVARCHAR2(513)

SUBOBJECT_NAMEVARCHAR2(30)

OBJECT_TYPEVARCHAR2(64)

REASONVARCHAR2(4000)

TIME_SUGGESTEDTIMESTAMP(6)WITHTIMEZONE

CREATION_TIMETIMESTAMP(6)WITHTIMEZONE

SUGGESTED_ACTIONVARCHAR2(4000)

ADVISOR_NAMEVARCHAR2(30)

METRIC_VALUENUMBER

MESSAGE_TYPEVARCHAR2(12)

MESSAGE_GROUPVARCHAR2(64)

MESSAGE_LEVELNUMBER

HOSTING_CLIENT_IDVARCHAR2(64)

MODULE_IDVARCHAR2(64)

PROCESS_IDVARCHAR2(128)

HOST_IDVARCHAR2(256)

HOST_NW_ADDRVARCHAR2(256)

INSTANCE_NAMEVARCHAR2(16)

INSTANCE_NUMBERNUMBER

USER_IDVARCHAR2(30)

EXECUTION_CONTEXT_IDVARCHAR2(60)

ERROR_INSTANCE_IDVARCHAR2(142)



SQL>

10g的新视图V$RECOVERY_FILE_DEST包括闪回恢复区的相干信息:

SQL>descV$RECOVERY_FILE_DEST

NameNull?Type

-----------------------------------------------------------------------------

NAMEVARCHAR2(513)

SPACE_LIMITNUMBER

SPACE_USEDNUMBER

SPACE_RECLAIMABLENUMBER

NUMBER_OF_FILESNUMBER



SQL>SELECTNAME,space_limit,space_used,space_reclaimablespace_rec,

2number_of_filesfile_num

3FROMv$recovery_file_dest;



NAMESPACE_LIMITSPACE_USEDSPACE_RECFILE_NUM

----------------------------------------------------------------------------

/u01/app/oracle/flash_recovery_area2147483648110684928060241049630



SQL>



在一些10g的静态视图里(V$CONTROLFILE,V$LOGFILE,V$ARCHIVED_LOG,V$DATAFILE_COPY等)的新的列IS_RECOVERY_DEST_FILE,指明相干的文件是不是在恢复区内。

SQL>SELECTrecid,blocks,is_recovery_dest_file

2FROMv$archived_log

3WHERErecid<5;



RECIDBLOCKSIS_RECOVERY_DEST_FILE

------------------------------------------------------------

120072YES

219566YES

319566YES

419566YES



SQL>



闪回恢复区中文件的坚持战略

l耐久文件从不会被删除。

l经由过程RMAN设置战略过时的文件会被删除。

l已拷贝到磁带上的一时性文件会被删除。

l在DataGuard情况中,当已回档的重作日记文件能够从闪回恢复区中删除的时分,能够使用回档的重作日记删除战略举行主动删除(在恢复办理器中CONFIGUREARCHIVELOGDELETIONPOLICYTO......)

在闪回恢复区中的空间利用凌驾85%的时分,数据库将会向alert文件中写进告警信息。而当凌驾97%的时分将会写进严峻告警信息。当闪回恢复区空间不敷的时分,Oracle将呈报以下相似的毛病:

ORA-19809:limitexceededforrecoveryfiles

ORA-19804:cannotreclaim52428800bytesdiskspacefrom1258291200limit

这个时分查询dba_outstanding_alerts:

SQL>selectreason,object_type,suggested_actionfromdba_outstanding_alerts;



REASONOBJECT_TYPESUGGESTED_ACTION

-------------------------------------------------------------------------------------

db_recovery_file_dest_sizeofRECOVERYAREAAdddiskspaceandincreasedb_recovery_

1258291200bytesis88.20%useile_dest_size,backupfilestotertiary

dandhas148509184remainingdevice,deletefilesfromrecoveryarea

bytesavailable.usingRMAN,considerchangingRMANreten-

tionpolicyorconsiderchangingRMANa

rchivelogdeletionpolicy.



1rowsselected.



SQL>

会给出相干的缘故原由和倡议的操纵。



注重事项

主动化的器材老是给人不断定性。假如您在测试情况中启用了闪回恢复区,那末必定要注重监控空间的利用。在临盆数据库上利用(假如有如许的人的话),必需要把闪回恢复区放到独自的磁盘上。



停止语

本文先容了闪回恢复区--Oracle10g的又一个脆而不坚的新功效--的基础功效。在后续的文档中我会分离RMAN的新特征展现闪回恢复区的其他方面。



参考信息

OracleDatabaseBackupandRecoveryBasics10gRelease1(10.1)PartNumberB10735-01
在http://tahiti.oracle.com能够失掉最新的Oracle参考文档。
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。

因胸联盟 发表于 2015-1-18 09:51:23

但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。

小女巫 发表于 2015-1-21 16:41:15

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

金色的骷髅 发表于 2015-1-30 21:15:18

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

山那边是海 发表于 2015-2-6 16:01:04

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

仓酷云 发表于 2015-2-16 23:59:23

SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)

只想知道 发表于 2015-3-5 13:40:03

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

活着的死人 发表于 2015-3-12 07:37:35

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

灵魂腐蚀 发表于 2015-3-19 18:51:47

无法深入到数据库系统层面去了解和探究
页: [1]
查看完整版本: MYSQL编程:浅谈ORACLE 10G 闪回恢复区