ORACLE归档日志设置.docx

上传人:11****ws 文档编号:3259902 上传时间:2019-05-27 格式:DOCX 页数:7 大小:21.65KB
下载 相关 举报
ORACLE归档日志设置.docx_第1页
第1页 / 共7页
ORACLE归档日志设置.docx_第2页
第2页 / 共7页
ORACLE归档日志设置.docx_第3页
第3页 / 共7页
ORACLE归档日志设置.docx_第4页
第4页 / 共7页
ORACLE归档日志设置.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、 ORACLE归档模式的设置在 ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大 量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过 定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。一、 要使 OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1是数据库日志模式的设置(可为 Archive Mode

2、和 No Archive Mode);2就是自动归档模式设置(Automatic archival,可为 Enabled 和 Disabled)。二、 如何查看数据库的现行日志和自动归档模式的设置可用 archive log list 命令来查看。运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):SQL archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /backup/archivelogOldest online log sequence 2

3、131Next log sequence to archive 2133Current log sequence 2133没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):SQL archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194Current log sequence 196三. 数据库日志模

4、式的设置在 创建数据库时,可以在 CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是 Archive Mode 的话,会增加约 20%的创建时间,而在以后启动 INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。将数据库的日志模式设置切换(Archive Mode 和 No Archive Mode 之间的切换)的步骤和操作如下:1. 关闭运行的数据库实例SQL shutdown在进行日志模式切换之前,必须将运行的数据库正常关闭。2. 备份

5、数据库该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。3. 启动数据库实例到 mount 状态,但不要打开。SQL startup mount4. 切换数据库日志模式。SQL alter database archivelog;(设置数据库为归档日志模式)或SQL alter database noarchivelog;(设置数据库为非归档日志模式)5. 打开数据库SQL alter database open;6. 确认数据库现在处于归档日志模式。SQL archive log list;Database

6、log mode Archive ModeAutomatic archival EnabledArchive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275Next log sequence 277Current log sequence 2787. 将这个时间点的 redo logs 归档SQL archive log all;8. 确认新产生的日志文件已在相应的归档目录下面。四. 自动归档模式设置(Automatic archival,可为 Enabled 和 Disabled)。在

7、该模式下,数据库启动一个 arch 进程,专门负责将 redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):LOG_ARCHIVE_START=LOG_ARCHIVE_DEST=LOG_ARCHIVE_FORMAT=LOG_ARCHIVE_START:如要求自动归档的话,则设为 TRUE,如要求为非自动归档的话,则设为 FALSELOG_ARCHIVE_DEST:该参数设定了 archive logs 归档存放的路径。LOG_ARCHIVE_FORMAT:该参数设定了 archive logs 的

8、命名格式。例如,如将格式设为: arch%s.arclog 文件将为: arch1.arc, arch2.arc, arch3.arc这几个参数设置只有在数据库实例启动前设置才能生效,如果在数据库运行中进行设置,要使其生效,必须重起数据库。如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做如下操作:SQL ALTER SYSTEM ARCHIVE LOG START;如要设置其为非自动归档模式(取消自动归档),则:SQL ALTER SYSTEM ARCHIVE LOG STOP;但如果数据库重起后,给语句修改的结果就失效了,自动归档的设置还是按照系统参数文件中的LOG_ARCH

9、IVE_START 的值来设置。五. 几种设置情况:1. Database log mode Archive Mode,Automatic archival Enabled这是在大部分生产环境中的 ORACLE 数据库日志及归档模式设置,这种情况下,做好数据库的定期备份(有热备和冷备)和归档日志备份,可有效的将数据库恢复到有归档日志的全部时间点。2. Database log mode Archive Mode,Automatic archival Disabled这种情况下,数据库不能自动归档,需要进行手工归档。如果所有在线日志都写满了,又没有的及时进行手工归档的话,由于 LGWR 没有可用

10、的在线日志可写,数据库将会挂在这儿,只有进行手工归档后,有可用的在线日志后才能继续。在生产环境中应该避免这种情况。手工归档操作如下:SQL ALTER SYSTEM ARCHIVE LOG ALL;数据库将会把在线日志进行归档处理3. Database log mode NO Archive Mode,Automatic archival Enabled有 些情况下,数据库管理员只在数据库参数文件中设置了 LOG_ARCHIVE_START=TRUE,然后在数据库起来后查看到 ARCH 归档进程已经起来了,可是尽管 ORACLE 已经作了几次日志切换,但还是没有归档日志,这时的设置就是这种情况

11、,如果数据库不是处在 ARVHIVELOG 模式,redolog 还是不会被归档。4. Database log mode NO Archive Mode,Automatic archival Disabled这种设置是刚安装的 oracle 数据库的缺省设置,开发环境也大部分如此。即没有进行归档。如何手工删除归档日志文件?(如果采用 RMNA 备份后则不用手工删除)一、先手工删除归档日志文件 二、用 RMAN 删除数据库记录的归档列表信息 1) 进入本数据库的 rman,在命令行模式输入“rman target /“,进入 rman,查看提示,确认连接的是否是本库? 2) 查看归档日志文件的

12、状态: RMAN list archivelog all; 3) 删除操作系统中的日志文件(到操作系统级进行手工删除,也可以是第一步; 4) 将归档日志信息进行更新; RMAN crosscheck archivelog all; RMAN delete expired archivelog all; (确认时键入“yes“) RMAN exit如何正确删除 ORACLE 归档日志文件我们都都知道在 controlfile 中记录着每一个 archivelog 的相关信息,当然们在 OS 下把这些物理文件 delete 掉后,在我们的 controlfile 中仍然记录着这些 archivel

13、og 的信息,在 oracle 的 OEM 管理器中有可视化的日志展现出,当我们手工清除 archive 目录下的文件后,这些记录并没有被我们从 controlfile中清除掉,也就是 oracle 并不知道这些文件已经不存在了!这时候我们要做手工的清除的话,下面我经过实验,可以尝试这种方法:1. 进入 rman 2. connect target / 3. crosscheck archivelog all; 4. delete expired archivelog all; 这时候我们再去 OEM 中看就一定看不到,如果你的从来没有做过这个动作的话,我们可以比较从这个动作前的 contro

14、lfile 后动作后的 controlfile 的大小!ORACLE 正确删除归档并回收空间的方法ORACLE 正确删除归档并回收空间的方法 一个 ORACLE 归档日志经常满,表现为/oraarchive 这个文件空间占用 100大家一定抱怨ORACLE 为何没有归档维护工具,很多人直接删除了事,错了,ORACLE 有,而且很智能,可以正确的删除归档和 FLASHBACK,不过切记,ORACLE 归档日志对于 ORACLE 的数据恢复和备份非常重要,不到万不得已不要删除归档日志。 删除归档日志的过程 以 ORACLE 用户身份登录到数据库服务器主机或通过网络连接 进入 ORACLE 数据备份

15、工具 rman target/ 或 rman target/orcl 在命令窗口里面执行 DELETE ARCHIVELOG ALL COMPLETED BEFORE SYSDATE-7; 说明 SYSDATA-7,表明当前的系统时间 7 天前,before 关键字表示在 7 天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从 7 天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 DELETE ARCHIVELOG FROM TIME SYSDATE-7; 删除从 7 天前到现在的全部日志,慎用UNIX/LINUX 下也可以通过

16、 FIND 找到 7 天前的归档数据,使用 EXEC 子操作删除find /oraarchive -xdev -mtime +7 -name “*.dbf“ -exec rm -f ; 这样做仍然会在 RMAN 里留下未管理的归档文件 仍需要在 RMAN 里执行下面 2 条命令 crosscheck archivelog all; delete expired archivelog all; 所以还不如上面的方法好用,不过用 FIND 的好处就是,可以在条件上,和 EXEC 子项上做很多操作,实现更复杂的功能3.简要介绍一下 report obsolete 命令使用 report obsole

17、te 命令报告过期备份RMAN report obsolete;RMAN retention policy will be applied to the commandRMAN retention policy is set to redundancy 1Report of obsolete backups and copiesType Key Completion Time Filename/Handle- - - -Backup Set 125 01-NOV-04Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804

18、Backup Set 131 04-NOV-04Backup Piece 131 04-NOV-04 /data1/oracle/orabak/full_AVATAR2_20041104_131.Backup Set 173 06-DEC-04Backup Piece 173 06-DEC-04 /data1/oracle/orabak/full_AVATAR2_20041206_173Backup Set 179 11-DEC-04Backup Piece 179 11-DEC-04 /data1/oracle/orabak/arch544588206.arc.Backup Piece 18

19、9 17-DEC-04 /data1/oracle/orabak/arch545106606.arcBackup Set 190 17-DEC-04Backup Piece 190 17-DEC-04 /data1/oracle/orabak/arch545106665.arcBackup Set 191 20-DEC-04Backup Piece 191 20-DEC-04 /data1/oracle/orabak/arch_AVATAR2_20041220_194Archive Log 2973 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1

20、_2985.dbfArchive Log 2971 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2984.dbf.Archive Log 2705 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2717.dbfArchive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbfArchive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.d

21、bfArchive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf4.使用 delete obsolete 命令删除过期备份:RMAN delete obsolete;RMAN retention policy will be applied to the commandRMAN retention policy is set to redundancy 1using channel ORA_DISK_1Deleting the following obsolete backups and copies:Typ

22、e Key Completion Time Filename/Handle- - - -Backup Set 125 01-NOV-04Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804.Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbfArchive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbfArchive Log 2702 17-D

23、EC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbfDo you really want to delete the above objects (enter YES or NO)? yesdeleted backup piecebackup piece handle=/data1/oracle/orabak/full_AVATAR2_20041206_173 recid=173 stamp=544156241.deleted archive logarchive log filename=/opt/oracle/oradata/avatar

24、2/archive/1_2715.dbf recid=2703 stamp=545108268deleted archive logarchive log filename=/opt/oracle/oradata/avatar2/archive/1_2714.dbf recid=2702 stamp=545107659Deleted 286 objectsRMAN crosscheck archivelog all;released channel: ORA_DISK_1allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=19 devtyp

25、e=DISKspecification does not match any archive log in the recovery catalog5 在 rman 中用 crosscheck 检查归档日志,2 个归档日志都是失败的 : RMAN crosscheck archivelog all;释放的通道: ORA_DISK_1 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=14 devtype=DISK 对归档日志的验证失败 存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_47.DBF 记录 ID=1 时间戳 =572866 683

26、对归档日志的验证失败 存档日志文件名 =D:ORACLEORADATATESTARCHIVE11_48.DBF 记录 ID=2 时间戳 =57286 6931 已交叉检验的 2 对象6 试着同步一下,看行不行,结果不行,crosscheck 还是失败: RMAN resync catalog;正在启动全部恢复目录的 resync 完成全部 resyncRMAN crosscheck archivelog all;释放的通道: ORA_DISK_1 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=14 devtype=DISK 对归档日志的验证失败 存档日志文件名 =D

27、:ORACLEORADATATESTARCHIVE1_47.DBF 记录 ID=1 时间戳 =572866 683 对归档日志的验证失败 存档日志文件名 =D:ORACLEORADATATESTARCHIVE11_48.DBF 记录 ID=2 时间戳 =57286 6931 已交叉检验的 2 对象7 用 list expired 看看是否有失效的 archive log,证明没有失效的 archive log: RMAN list expired archivelog all;说明与恢复目录中的任何存档日志均不匹配8 更改语言环境试试,结果再次 crosscheck,2 个 archive l

28、og 都成功了: RMAN exit恢复管理器完成。C:set nls_lang=american_america.zhs16gbkC:rman catalogrman/rmansafetarget /Recovery Manager: Release 9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.connected to target database: TEST (DBID=1870953724) connected to recovery catalog da

29、tabaseRMAN crosscheck archivelog all;allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=9 devtype=DISK validation succeeded for archived log archive log filename=D:ORACLEORADATATESTARCHIVE1_47.DBF recid=1 stamp=57286 6683 validation succeeded for archived log archive log filename=D:ORACLEORADATATESTARCHIVE11_48.DBF recid=2 stamp=5728 66931 Crosschecked 2 objects

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。