当前位置:文档之家› Oracle 增加重做日志

Oracle 增加重做日志

Oracle 增加重做日志
如果发现LGWR经常处于等待状态,则就需要考虑添加日志组及其成员,一个数据库最多可以拥有MAXLOGFILES个日志组。

增加重做日志是使用ALTER DA TABASE语句完成的,执行该语句时要求用户必须具有ALTER DATABASE系统权限。

1.增加重做日志组
当管理重做日志时,为防止后台进程LGWR等待写入日志组,DBA必须选择合适的日志组个数。

要增加重做日志组,可以使用带ADD LOGFILE子句的ALTER DATABASE语句。

例如,下面的语句向数据库中添加了一个新的重做日志组:
SQL> alter database add logfile
2 ('d:\app\Administrator\oradata\orcl\redo04.log',
3 'e:\oradata\orcl\redo04b.log')
4 size 10m;
数据库已更改。

新增的重做日志组具有两个成员,每个成员文件的大小均为10MB。

一般情况下,日志文件的大小在10MB到50MB之间,Oracle默认的日志文件大小为50MB。

如果在ALTER DA TABASE ADD LOGFILE语句指定GROUP子句,Oracle将自动为新建的重做日志组设置编号,例如:下面的语句可以在创建日志组时指定为第4组:SQL> alter database add logfile group 4
2 ('d:\app\Administrator\oradata\orcl\redo04.log',
3 'e:\oradata\orcl\redo04b.log')
4 size 10m;
数据库已更改。

使用组号可以更加方便地管理重做日志组,但是,对日志组的编号必须为连续的,不要跳跃式地指定日志组编号。

也就是说,不要将组号编为10,20,30等这样不连续的数。

否将会耗费数据库控制文件中的空间。

如果要创建一个非复合的重做日志文件,则可以使用如下的语句:
alter database add logfile
'd:\app\Administrator\oradata\orcl\redo01.log' reuse;
如果要创建的日志文件已经存在,则必须在ALTER DTABASE语句中使用REUSE子句,覆盖已有的操作系统文件。

在使用了REUSE的情况下,不能再使SIZE子句设置重做日志文件的大小,重做日志文件的大小将由已存在日志文件的大小决定。

2.创建日志成员文件
建立日志组时,至少要为日志组指定一个日志成员。

为了防止日志成员损坏而导致日志组无法使用,Oracle建议每个日志组至少包含两个或两个以上的日志成员。

如果日志组只有一个日志成员,并且该日志成员出现损坏,那么当后台进程LGWR切换到该日志组时,Oracle 会停止工作,并对该数据库执行不完全恢复。

为重做日志组添加新的成员时,只需要使用带ADD LOG MEMBER子句的ALTER DA TABASE语句即可。

例如,下面示例为第1组重做日志添加了一个新的成员日志文件:SQL> alter database add logfile member
2 'e:\oradata\orcl\redo01b.log' to group 1;
数据库已更改。

此外,也可以通过指定重做日志组中的其他成员的名称,以确定要添加的成员所属的重做日志组。

例如,下面的语句为第2组添加一个新成员:
SQL> alter database add logfile member
2
'e:\oradata\orcl\redo02b.log' to
3 ('d:\app\Administrator\oradata\orcl\redo02.log'); 数据库已更改。

注意为日志组添加新的成员时,必须指定文件名,但是不可以指定大小,新成员的大小是由组中其他成员的大小决定。

相关主题