数据库归档管理_第1页
数据库归档管理_第2页
数据库归档管理_第3页
数据库归档管理_第4页
数据库归档管理_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.数据库归档1、 查看、更改归档路径在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area。对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制select * from v$recovery_file_dest;show parameter db_recovery_file_dest(这个更友好直观一些)当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报无法继续归档的错误。如:RA-19809: limit exceeded for recovery

2、filesORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limitARC0: Error 19809 Creating archive log file to /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_0_.arc这时我们可以修改它的默认限制,比如说将它增加到5G或更多,也可以将归档路径重新置到别的路径,就不会有这个限制了。更改限制语句如下:alter system set db_recovery_

3、file_dest_size=5368709102;或者直接修改归档的路径即可alter system set log_archive_dest_1=location=/u01/archivelog scope =both;2、修改归档模式sql archive log list;sql shutdown immediate;sql startup mount;sql alter database archivelog; alter database noarchivelogsql alter database open;sql archive log list;3、确认归档是否生效alter

4、 system switch logfile;看对应的归档位置时候有archivelog产生。该参数已废弃,只要开启了archivelog就自动归档。4、设置归档文件格式当数据库处理ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志。归档日志的默认位置为%ORACLE_HOEM%RDBMS,在Oracle11g中,归档日志的默认文件名格式为ARC%S%_%R%T。为了改变归档日志的位置和名称格式,必须改变相应的初始化参数。初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名称格式,设置该初始化参数时,可以指定以下匹配符:l%s日志序列号。l%S日志序列号

5、,但带有前导0。l%t重做线程号。l%T重做线程号,但带有前导0。l%a活动ID号。l%d数据库ID号。l%rRESETLOGS的ID值。需要注意,在Oracle11g中,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,其他匹配符可有可无。配置了归档文件格式后,必须重新启动数据库。例如:SQLaltersystemsetlog_archive_format=%s_%t_%r.arc scope=spfile;系统已更改。SQLshutdownimmediate;SQLstartup修改初始化参数LOG_ARCHIVE_FORMAT并重启数据库后,实始化参数配置将会生效。进行日志切换时,

6、会生成该格式的归档日志文件。5、归档模式启停1. archivelogstop;2. archivelogstart;6、查看归档日志selectnamefromv$archived_log;7、归档相关参数log_archive_dest &LOG_ARCHIVE_DEST_n使用log_archive_dest参数最多可设置2个归档路径,通过log_archive_dest设置一个主归档路径,通过LOG_ARCHIVE_DUPLEX_DEST 参数设置一个从归档路径。所有的路径必须是本地的,该参数的设置格式如下:LOG_ARCHIVE_DEST = /disk1/archiveLOG_AR

7、CHIVE_DUPLEX_DEST = /disk2/archiveLOG_ARCHIVE_DEST_n 参数可以设置最多10个不同的归档路径,通过设置关键词location或service,该参数指向的路径可以是本地或远程的。LOG_ARCHIVE_DEST_1 = LOCATION = /disk1/archiveLOG_ARCHIVE_DEST_2 = LOCATION = /disk2/archiveLOG_ARCHIVE_DEST_3 = LOCATION = /disk3/archive如果要归档到远程的standby数据库,可以设置service:LOG_ARCHIVE_DEST

8、_4 = SERVICE = standby1可见,这两个参数都可以设置归档路径,不同的是后者可以设置远程归档到standby端,而前者只能归档到本地,且最多同时归档到2个路径下。log_archive_dest_n&DB_RECOVERY_FILE_DEST参数都可以用来存放归档日志,但二者的关系是:不设置log_archive_dest_n时,使用DB_RECOVERY_FILE_DEST来存文件;当设置了log_archive_dest_n时,则使用log_archive_dest_n来存放归档日志。8、查看归档日志所占空间select*fromV$FLASH_RECOVERY_AREA

9、_USAGE;9、删除归档日志文件今天一早,同事说Oracle数据库连接不上。用Sqlplus测试一下,报如下错:ORA-00257 archiver error. Connect internal only, until freed.原因比较明显,应该是归档日志文件太多造成磁盘或者设备空间不足。官方的解释就基本如此: Cause:The archiver process received an error while trying to archive a redo log. If the problem is not resolved soon, the database will sto

10、p executing transactions. The most likely cause of this message is the destination device is out of space to store the redo log file. Action:Check the archiver trace file for a detailed description of the problem. Also, verify that the device specified in the initialization parameter ARCHIVE_LOG_DES

11、T is set up properly for archiving. 通常,在正式的也就是生产环境下,Oracle是启用归档模式的(SQLalter database archivelog;)。因此,Oracle系统会不断的产生归档日志。可以先查看一下已有的归档日志: 1.telnet 到主机:telnet 10.10.2.41 AIX Version 5(C) Copyrights by IBM and by others 1982, 2005.login: rootroots Password:*Welcome to AIX Version 5.2!*Please see the REA

12、DME file in /usr/lpp/bos for information pertinent to*this release of the AIX Operating System.*Last unsuccessful login: Thu Jul 30 00:06:26 BEIST 2009 on /dev/pts/0 from smnpcbackupLast login: Sat Aug8 10:37:11 BEIST 2009 on /dev/pts/0 from 10.10.10.211 2.切换用户到oraclerootp630_1#:/ su - oracle 3.进入rm

13、anp630_1#oracle rmanRecovery Manager: Release 9.2.0.8.0 - 64bit ProductionCopyright (c) 1995, 2002, Oracle Corporation.All rights reserved.4.连接到目标数据库RMAN connect target /connected to target database: RAC9I (DBID=654968050)5.查看所有日志情况RMAN list archivelogall;using target database controlfile instead of

14、 recovery catalogList of Archived Log CopiesKeyThrd SeqS Low TimeName- - - - - -9601522A 01-AUG-09 /archlog1/Arch1_522.arc9621523A 02-AUG-09 /archlog1/Arch1_523.arc9641524A 04-AUG-09 /archlog1/Arch1_524.arc9721525A 05-AUG-09 /archlog1/Arch1_525.arc9671526A 06-AUG-09 /archlog1/Arch1_526.arc9731527A 0

15、6-AUG-09 /archlog1/Arch1_527.arc9741528A 07-AUG-09 /archlog1/Arch1_528.arc简单地,我们可以到OS下把这些物理文件delete掉。但是,我们都知道在controlfile中记录着每一个archivelog的相关信息,当我们在OS中删除这些文件后,我们的controlfile中仍然记录着这些archivelog的信息,因此在Oracle的OEM管理器中还会存在这些日志。因为当我们手工清除 archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了。如果我

16、们已经这样做了,那么可以通过如下步骤来更新Oracle的controlfile中关于日志的信息: 1.进入rmanp630_1#oracle rman 2.连接到目标数据库 RMAN connect target /; 3.检测归档日志 RMAN crosscheck archivelog all; -命令的作用是将磁盘或者磁带上不存在的日志标记为expired 4.删除过期的归档日志 RMAN delete expired archivelog all; 经过这样操作以后,就不会再在OEM中看到那些日志信息了。但是,正常的操作应该是: RMAN DELETE ARCHIVELOG ALL C

17、OMPLETED BEFORE SYSDATE-7;-即删除7天前的归档日志最好在删除日志的时候,做好相应的日志或者数据库备份。此外,可以使用report obsolete命令报告过期备份。 RMAN report obsolete;-报告过期备份 RMAN allocate channel for maintenance type disk;-分配维护通道 allocated channel: ORA_MAINT_DISK_1channel ORA_MAINT_DISK_1: sid=16 devtype=DISK RMAN delete obsolete;-删除过期备份 RMAN release channel;-释放通道 或者整体一起执行命令: ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;runreport obsolete;CROSSCHECK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论