苍雪明南

做人如果没有梦想,跟咸鱼有什么分别。不要让时代的悲哀,成为你自己的悲哀。

  • 博客访问: 416201
  • 博文数量: 480
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-08 17:42
  • 认证徽章:
ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(480)

文章存档

2018年(11)

2017年(209)

2016年(242)

2015年(17)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

分类: Linux

原文地址:添加日志文件组与日志文件成员 作者:pingley

添加日志文件组与日志文件成员
首先确定当前登录的账户的权限,是否包含创建日志文件组或者日志文件成员的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 会自动根据该组已经存在的日志文件成员的大小设置新添加的日志文件成员大小。
注:最最重要的是为什么要添加日志文件组,为什么要添加日志文件成员?
阅读(51) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册