添加日志文件组与日志文件成员

添加日志文件组与日志文件成员
首先确定当前登录的账户的权限,是否包含创建日志文件组或者日志文件成员的alter database
系统权限。
SQL> select privilege from user_sys_privs
  2  where privilege='ALTER DATABASE';
PRIVILEGE
----------------------------------------
ALTER DATABASE
在添加日志文件组或者日志文件成员的时候先查看下数据库兼容参数。
SQL> show parameter compatible
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------
compatible                           string      11.2.0.0.0
compatible >=10.2.0 添加日志文件组或者日志文件成员,就不需要考虑是否会超过maxlogfiles、
maxlogmembers 的上限值限制了。
确定系统现有的日志文件组数与组中的日志文件成员数。
SQL> select group#,member from V$logfile;
    GROUP# MEMBER
---------- ----------------------------------------
         1 /opt/oracle11g/oradata/oracl/redo01.log
         2 /opt/oracle11g/oradata/oracl/redo02.log
         3 /opt/oracle11g/oradata/oracl/redo03.log
系统中共有3个日志文件组,每个组中各有一个日志文件成员。
往系统中添加一个日志文件组,组中日志文件成员数量是2.
SQL> alter database add logfile group 4 
  2  ('/opt/oracle11g/oradata/oracl/redo401.log','/opt/oracle11g/oradata/oracl/redo402.log')
  3  size 20M;
Database altered.
注:在实际的系统中上面的语句是明显不合理的,因为把两个日志文件成员放置在相同磁盘中。为了日志文件组中日志文件的可用性,应该把不同的日志文件成员放置在不同的磁盘上面,以免出现日志切换到该组的时候因介质故障导致日志文件不能访问,从而数据库宕机。查看添加以后的日志信息。另外应该保持系统中所有的日志文件的大小相同,这里的20M和系统以后存在的日志文件的大小50M不相同。
SQL> select group#,member from V$logfile;
    GROUP# MEMBER
---------- ----------------------------------------
         1 /opt/oracle11g/oradata/oracl/redo01.log
         2 /opt/oracle11g/oradata/oracl/redo02.log
         3 /opt/oracle11g/oradata/oracl/redo03.log
         4 /opt/oracle11g/oradata/oracl/redo401.log
         4 /opt/oracle11g/oradata/oracl/redo402.log
SQL> select group#,blocksize,archived,members,status
  2  from V$log;
    GROUP#  BLOCKSIZE ARC    MEMBERS STATUS
---------- ---------- --- ---------- ----------------
         1        512 NO           1 INACTIVE
         2        512 NO           1 INACTIVE
         3        512 NO           1 CURRENT
         4        512 YES          2 UNUSED
新添加的日志文件组一般是unused状态的,表示该日志文件组还没有别写入过。不过也可能是其他状态,比如添加完该日志文件组不久就发生了日志却换,则状态应该是current。另外我们在创建日志文件的时候是没有指定blocksize,所有会使用默认的磁盘扇区的大小,这里是512 bytes。磁盘扇区的大小
不是4KB,指定4KB,1kB为block的大小也是没用的。
SQL> alter database add logfile group 5 
  2  ('/opt/oracle11g/oradata/oracl/redo501.log','/opt/oracle11g/oradata/oracl/redo502.log')
  3  size 20M blocksize 4096;    
alter database add logfile group 5
*
ERROR at line 1:
ORA-01378: The logical block size (4096) of file /opt/oracle11g/oradata/oracl/redo501.log 
is not compatible with the disk sector size (media sector size is 512 and host sector size is 512)
错误信息已经说明了一切。如果磁盘的扇区是4KB,则可以选择4KB,1KB,512bytes 中的一个值为日志文件的block大小(database version 11.2.0 以后)。
添加日志组日志文件成员:
添加日志组日志文件成员适用于日志组已经存在,但是其中的一个或者多个日志文件成员因为某些原因被删除了。下面往group 2中添加一个日志文件成员。
SQL> alter database add logfile member
  2  '/opt/oracle11g/oradata/oracl/redo.log'
  3  to group 2;
Database altered.
添加日志文件不需要指定大小。oracle 会自动根据该组已经存在的日志文件成员的大小设置新添加的日志文件成员大小。
注:最最重要的是为什么要添加日志文件组,为什么要添加日志文件成员?

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-718098/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-718098/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值