怎么样将oracle告警日志备份然后清理

怎么样将oracle告警日志备份然后清理,第1张

oracle的alertSIDlog这个文件是在oracle数据库对应的bdump目录下面的,如果此文件不存在,oracle数据库会自动创建一个新的文件,然后将数据库的重大改变信息写入此文件。

这样的话,备份就很简单。可以手工备份,cp到一个特定的文件夹下面,或者mv为alertSIDlog时间;还可以用cron job做服务器自动定时备份,这样可以避免alert日志文件过大打开会很慢。

oracle 归档日志
归档日志(Archive Log)是非活动的重做日志备份通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库
日志 *** 作模式:ARCHIVELOG NOARCHIVELOG
1,改变日志 *** 作模式:
检查当前日志 *** 作模式
SELECT log_mode from v$database;
关闭数据库,然后装载数据库
SHUTDOWN IMMEDIATE
STARTUP MOUNT
改变日志 *** 作模式,然后打开数据库
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
2,执行手工归档
从oracle database 10g开始,当将日志 *** 作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程如果要使用手工归档那么在改变日志 *** 作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL
需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令如果没有执行手工归档命令,日志组的原有内容将不能被覆盖ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:
ALTER SYSTEM ARCHIVELOG ALL;
3,配置归档进程
初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数:
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;配置归档位置和文件格式
当数据库处于ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志,归档日志的默认位置为%oracle_home%rdbms,在oracle database 10g中,归档日志的默认文件格式为ARC%S_%R%T为了改变归档日志的位置和名称格式,必须改变相应的初始化参数,1,初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:
%s: 日志序列号:
%S: 日志序列号(带有前导0)
%t: 重做线程编号
%T: 重做线程编号(带有前导0)
%a: 活动ID号
%d: 数据库ID号
%r RESETLOGS的ID值
从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库
2,使用LOG_ARCHIVE_DEST配置归档位置
如果不使用备用数据库,只需要将归档日志存放到本地目录配置本地归档位置可以使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置
ALTER SYSTEM SET log_archive_dest='d:demoarchive1';ALTER SYSTEM SET log_archive_duplex_dest='d:demoarchive2';3,使用LOG_ARCHIVE_DEST_n配置多个归档位置
初始化参数LOG_ARCHIVE_DEST_n用于指定多个归档位置,该参数最多可以指定10个归档位置通过使用初始化参数LOG_ARCHIVE_DEST_n,不仅可以配置本地归档位置,还可以配置远程归档位置
如果既要在主节点上生成归档日志,又要将归档日志传递到备用节点,那么必须使用参数LOG_ARCHIVE_DEST_n该参数与LOG_ARCHIVE_DEST具有如下区别;初始化参数LOG_ARCHIVE_DEST_n可以配置本地归档位置和远程归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地归档位置
初始化参数LOG_ARCHIVE_DEST_n可以配置多达10个归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置两个归档位置
初始化参数LOG_ARCHIVE_DEST_n 不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用
因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST当使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定LOCALTION选项当配置远程归档位置时,需要指定SERVICE选项
示例如下:
ALTER SYSTEM SET log_archive_duplex_dest='';ALTER SYSTEM SET log_archive_dest='';
ALTER SYSTEM SET log_archive_dest_1='location=d:demoarchive1';ALTER SYSTEM SET log_archive_dest_2='location=d:demoarchive2';ALTER SYSTEM SET log_archive_dest_3='location=d:demoarchive3';ALTER SYSTEM SET log_archive_dest_4='service=standby';配置远程归档位置时,SERVICE选项需要指定远程数据库的网络服务名(在tnsnamesora文件中配置)4,使用LOG_ARCHIVE_DEST_n选项
使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定OPTIONAL或MANDATORY选项指定MANDATORY选项时,可以设置REOPEN属性
OPTIONAL:该选项是默认选项使用该选项时,无论归档是否成功,都可以覆盖重做日志
MANDATORY:强制归档使用该选项时,只有在归档成功之后,重做日志才能被覆盖
REOPEN:该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后
例:
Alter system set log_archive_dest_1=’location=d:demoarchive1 mandatory’;Alter system set log_archive_dest_2=’location=d:demoarchive2 mandatory reopen=500’;Alter system set log_archive_dest_3=’location=d:demoarchive3 optional’;5,控制本地归档成功的最小个数
使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数Alter system set log_archive_min_succeed_dest=2;6,使用初始化参数LOG_ARCHIVE_DEST_STATE_n控制归档位置的可用性设置该参数为ENABLE(默认值),表示会激活相应的归档位置;设置该参数为DEFER,表示禁用相应归档位置当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置
Alter system set log_archive_dest_state_3=defer;(禁用)Alter system set log_archive_dest_state_3=enable;(启用)显示归档日志信息
1,使用ARCHIVE LOG LIST命令可以显示日志 *** 作模式,归档位置,自动归档机器要归档的日志序列号等信息
2显示日志 *** 作模式
SELECT name,log_mode FROM v$database;
3,显示归档日志信息
Col name format a46
Select name, swquence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值
4、执行介质恢复时,需要使用归档日志文件,此四必须准确定位归档日志的存放位置通过查询动态性能视图v$archive_dest可以取得归档日志所在目录
SELECT destination FROM v$archive dest;
5,显示日志历史信息
SELECT FROM v$loghist;
THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间SWICTH_CHANGE#用于标识日志切换的SCN值
6显示归档进程信息
进行日志切换时,ARCH进程会自动将重做日志内容复制到归档日志中,为了加快归档速度,应该启用多个ARCH进程通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!
SELECT FROM v$archive_processes;
Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态==========================================用Oracle归档日志进行恢复的方法
用Oracle归档日志进行恢复的方法
联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复。
一、完全恢复:
1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database;”
4.按下ENTER,接受默认值。
5.然后输入命令“alter database open;”完成数据库恢复。
二、不完全恢复
警告:
应用不完成恢复前,必须将数据库做一次完全冷备份,因为应用不完全恢复后,联机重演日志将重置,以前的所有日志不可用。
如果恢复不成功,数据库就不能使用了。再次强调,做完全冷备份后再应用不完全恢复。
1)基于变化的恢复(change-based recovery)要执行基于变化的恢复,需要知道丢失日志之前的系统写入归档重演日志的最大的变化号(SCN),然后可以启动恢复语句恢复数据库直到改变scn_number,其中比scn_number是写到已归档重演日志文件顺序号386的SCN(即,小于丢失日志顺序号387的SCN)。可以从V$log_history视图中得到SCN信息。
select first_change# from v$log_history where sequence#=387;其中387为最后一个有效的日志文件号加1,该例是查找386
知道了SCN后,使用下述步骤完成恢复
1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until change 9999;”
4.在回答Oracle第一个归档重演日志建议信息时,输入“auto”,Oracle在找到第387号重演日志之前停止恢复。
5.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)2)基于停止的恢复(cancel-based recovery)
1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until cancel;”,Oracle提示需要的第一个归档重演日志文件名.按下ENTER键接受缺省文件名,并且—路ENTER直到询问顺序号387的日志。输入“cancel”,停止恢复 *** 作。
4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)3)基于时间的恢复(time-based recovery)
为使用基于时间的恢复,必须知道记录在V$log_history归档重演日志序号387(丢失重演日志)的时间,通过执行查询语句“select time from v$log_history where sequence#=387;”得到。本例得到的时间是:2002-06-23 14:42:04现在开始实施恢复。
1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一个归档重演日志文件名,输入“auto”,Oracle恢复归档重演日志直到序号为387的日志,停止恢复 *** 作。
4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认已数据库已备份,如打开失败,日志将不可用)提示: 使用基于时间的恢复,时间的格式是YYYY/MM/DD HH24:MI:SS,并且用单引号括起。
附:如何启用Oracle的归档方式
1参照以下内容编辑initora文件:
log_archive_start = true
log_archive_dest_1 = " LOCATION=D:\Oracle\oradata\ORCL\archive "og_archive_format = %%ORACLE_SID%%T%TS%SARC2关闭数据库
svrmgrl> connect internal
svrmgrl> shutdown normal
3然后启动实例并安装该数据库,但不打开数据库。
svrmgrl> startup mount
4接着,发布下列更改数据库的命令。
Svrmgrl> alter database archivelog;
5现在,数据库已经更改为归档方式,您可以打开数据库。
svrmgrl> alter database open;
提示:也可以使用DBA studio工具启用数据库的归档方式, *** 作很简单=============================================================ORACLE归档模式的设置
在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
二、 如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。
运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/817/dbs/archOldest online log sequence 194
Current log sequence 196
三 数据库日志模式的设置
在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。
将数据库的日志模式设置切换(Archive Mode 和No Archive Mode 之间的切换)的步骤和 *** 作如下:
1 关闭运行的数据库实例
SQL> shutdown
在进行日志模式切换之前,必须将运行的数据库正常关闭。
2 备份数据库
该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
3 启动数据库实例到mount 状态,但不要打开。
SQL> startup mount
4 切换数据库日志模式。
SQL> alter database archivelog;(设置数据库为归档日志模式)或SQL> alter database noarchivelog;(设置数据库为非归档日志模式)5 打开数据库
SQL> alter database open;
6 确认数据库现在处于归档日志模式。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7 将这个时间点的redo logs 归档
SQL> archive log all;
8 确认新产生的日志文件已在相应的归档目录下面。
四 自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
在该模式下,数据库启动一个arch 进程,专门负责将redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/initora 文件中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:

Oracle Archive log 导致磁盘没空间了一般是要删除部分归档日志以留出更多的空间。
一、采用以下这种方法删除归档日志:
1 进入rman
2 connect target /
3 crosscheck archivelog all;
4 delete expired archivelog all;
这时候再去OEM中看就一定看不到,如果从来没有做过这个动作的话,可以比较从这个动作前的controlfile后动作后的controlfile的大小。
一个ORACLE归档日志经常满,表现为/oraarchive
这个文件空间占用100%的时候,很多人选择直接删除,ORACLE很智能,可以正确的删除归档和FLASHBACK。注意:ORACLE归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志。
二、删除归档日志的过程
以ORACLE用户身份登录到数据库服务器主机或通过网络连接
进入ORACLE数据备份工具
rman target/
或rman target/@orcl
在命令窗口里面执行
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
说明:
SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13448921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存