康哥教你如何有效管理重作日志文件

有的人可能还不知道什么是重作日志文件,其实就是你的oradata目录下面的那几个redo.log文件。数据库

做用:当你的数据库崩溃的时候,管理员能够经过重作日志文件和数据库备份文件,把数据库恢复到最近一次记录日志时的状态。oracle


在建立oracle数据库的时候,默认建立了3个重作日志组(对于数据库来讲,至少须要2个重作日志组),每个日志组包含一个或者多个重作日志文件。ide

每个重作日志组都有本身的内部序号,oracle按照序号从小到大的顺序向日志组中写入日志信息。当一个重作日志组写满后,后台进程LGWR开始写入下一个重作日志组,依次类推,假如说全部的重作日志组都写满了,则从第一个日志组开始覆盖重写,如此循环写入。spa

其中,重作日志文件有三种状态:3d

current(当前状态):正在被lgwr进程写入日志

active(活动状态)正在被实例用于数据库恢复blog

inactive(未活动状态):顾名思义,就是没被使用的状态进程

日志组状态能够经过视图v$log进行查看:get

wKioL1mD3h3CA97iAAA0-wMJ3So875.png

好,接下来咱们开始搞一下以下几个技术点:产品


⒈增长日志组及其成员

实际工做中,为了防止后台进程LGWR等待写入日志组致使效率过低,做为管理员,咱们要增长重作日志组。注意:重作日志文件的大小通常在10M - 50M之间,默认是50M。

接下来我就在数据库中添加一个日志组(日志组是由日志文件组成的,咱们只能查到日志组序号,看到的只是日志文件):

wKiom1mD4WLyoQ8aAACFBHI9X6s829.png


如上图所示,红框中是直接建立了日志组4,默认序号是日后面自动排的。也能够在增长日志组的时候直接指定组序号,如蓝框中的语句。


⒉建立日志组中的日志文件

举例:为第5个重作日志组添加一个新的日志文件

wKioL1mD4mviSCi9AABxJBKV8As572.png


注意:

A:若是咱们在工做中发现存放某个日志文件的磁盘损坏了,这时候就须要删除该损坏磁盘的日志文件,防止oracle将重作日志继续写入到损坏的日志文件中。

① 若是整个日志文件组都再也不须要(删除日志组,其中的成员日志文件也会删除)

wKioL1mD4_uBrSTBAABPjO-6jk4548.png

其中:

Ⅰ.一个数据库至少须要两个重作日志组,删除时不能超过这个限制;

Ⅱ.只能删除处于inactive状态的日志组,若是要删除处于current状态的日志组,则必须手动切换日志,将它切换到inactive状态。

切换日志组方法以下:

wKioL1mD5SzRGVDvAAB_UlVYK30699.png

Ⅲ.若是数据库处于归档状态,在删除重作日志组以前必须肯定目标日志组已经归档。


② 仅仅只是删除日志组成员

举例:删除第4个日志组中的成员redo4_2.log,以下图所示:

wKioL1mD5mGhBZnOAABJLSfUPZE954.png


须要注意的是,不管是删除日志组仍是删除日志成员,删除的都只是数据字典和控制文件中的日志组和日志成员信息,对应的物理文件并无删除。打开个人Linux里面,给你们看一下就会发现,个人物理文件仍是存在的。若要删除,则须要手工干掉。(window更简单,这里不讲)

wKioL1mD5wSDa71LAABoyiGu8fg322.png


③ 清空日志文件

举例:清空第4个日志组中的全部日志文件内容

wKiom1mD56Him6UZAAAMapZkMhI799.png


B:若是你的某一个日志文件存放在/home目录下,结果磁盘空间不足,是否是应该把日志文件移动到别的盘呢?怎么移动呢?步骤以下:

① 关闭数据库

wKioL1mD7oviOuEgAAAQ6Hjj83M587.png


② 手动复制源文件到目标位置

wKioL1mD71WwKlgxAAAIF3uWz9I461.png


③ 启动实例,加载数据库,但不打开数据库

wKiom1mD7--yPIN3AAA2daC-XsE933.png


④ 从新设置重作日志文件的路径

wKioL1mD8MXgHBOFAAAaegPP-zc859.png


注意:to上面的是源文件路径,下面的是目标文件路径。


⑤ 打开数据库

wKioL1mD8RvRMl1EAAAM9KaLHbk726.png


OK,到此为止已经成功更改了重作日志文件路径,如今系统使用的redo4*.log的路径是/home/oracle/backup下面的redo4_1bak.log,来,咱们经过查看数据字典视图v$logfile证明一把:

wKiom1mD8aniL-2AAAA1z9-CCH4020.png


特别地,查看重作日志信息经常使用视图:

v$log 查看重作日志组信息

v$logfile 查看日志组中日志文件信息

v$log_history 查看日志历史信息



。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!


  看到了吧?


      就是这么好玩

        

           就是这么6

 

                  有木有?

相关文章
相关标签/搜索