日志文件的管理

在oracle中,事务对数据库所做的修改将以重做记录的形式保存在重做日志缓存中,当事务提交时,由LGWR进程将缓存中与该事务相关的重做记录全部写入重做日志文件,这样事务被认为成功提交。

一般Oracle在数据库实例创建完成后会自动创建三组日志文件,默认每个日志文件组只有一个成员;日志文件组在Oracle中是循环使用的,当所有日志文件组的空间被填满后,系统将转换到第一个日志文件组,至于第一组日志信息是否被覆盖,则取决于数据库的运行模式,日志文件的工作流程如图所示:
日志文件的工作流程

  • 创建日志文件组及成员

一个数据库实例一般需要两个以上的日志文件组,如果日志文件组太少,可能会导致系统事务切换太过频繁,会影响到系统性能。在创建日志文件组过程中,需要为日志文件组添加成员,也可以为已存在的日志文件组添加新成员。如下操作:

  • 新建日志文件组

添加日志文件组
如图所示,在该实例下创建了一个包含三个日志成员的日志文件组,并且该组全部成员大小都是10M;日志文件组要尽量避免出现跳号的情况,这样会造成日志文件的空间浪费。

  • 向日志文件组添加成员

下面将在新建的日志文件组group 11 添加一个新的日志成员,代码操作如下 :
添加成员

  • 重新定义日志文件成员
    该标题的意思是指为日志文件组重新制定一个日志文件成员,具体操作如下:
    首先将数据库startup mount,然后再进行如下操作
    冲定义
    要注意的是:to 后面的文件是要真实存在的,你可以将前面redo1104改一下名字,或者移动到其他位置来实现这个重定义的这个操作
  • 删除日志文件组及成员
    有很多情况需要删除日志文件组的操作。例如当日志文件成员出现损坏或者丢失时,后台LGWR不能将事务变化写入到日志文件成员时;还有一种情况是日志文件组大小不合适的时候,这时候也需要创建新的日志文件组。当然,这种操作的用户需要有alter database 的权限。
    但是要注意的是,在删除日志文件需要注意多种情况:要删除的日志文件不能处于使用状态;当前日志文件的日志文件组还有一个其他日志成员;如果在归档模式下,在删除日志的时候要确认日志是否已经完成归档,否则会有数据丢失的风险。
    下面分别演示删除日志文件与日志文件组的操作:
    删除日志文件
    删除日志文件组也需要注意一些问题:一个数据库至少有两个日志文件组;日志文件组不能处于使用状态;确定日志文件组已经被归档,如果是归档模式下。下面删除日志文件组:
    删除日志组
  • 切换日志文件组
    我们都了解日志文件是循环使用的,当一组日志文件组写满的时候,将会自动切换到下个日志文件组。在特殊需要的时候,我们也可以自己手动进行切换日志文件组。其代码如下:
alter system switch logfile;

日志文件切换的信息将记录在数据库的日志文件中,我们可以通过查看该日志从而及时了解系统出现的问题。

  • 清空日志文件组
    如果日志文件组中的日志文件受损,将导致数据库无法进行归档,最终会导致数据库挂掉,此时在不关闭数据库的情况下可以选择清苦日志文件组中的内容。
    清空日志文件组也有些注意事项:被清空的日志文件组不能处在使用状态(current);当数据库只有两个日志文件组的时候,不能将其清空。操作如下:
    先检查日志文件组的状态,archived这个参数表示的是该日志是否已经归档:
    状态检查
    然后清空文件组11
    clear
    如果日志文件组尚未归档,则需要下面的代码进行操作
alter database clear unarchived logfile group_number;
  • 查看日志文件的信息
    查看日志文件信息可以通过V$log来了解日志文件的信息。
    这里写图片描述
    这其中包括日志文件的编号、成员数目,归档情况,状态以及日志上次写入的系统时间。
    也可以通过v%logfile来了解,代码如下
select group#,status,type,member from v$logfile;

这里多了一type指的是类型,member包括了路径以及名称的信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值