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制定的商业许可协议。 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 无法深入到数据库系统层面去了解和探究
页:
[1]