这篇文章主要讲解了“数据库中如何添加日志文件组与日志文件成员”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库中如何添加日志文件组与日志文件成员”吧!
添加日志文件组与日志文件成员
首先确定当前登录的账户的权限,是否包含创建日志文件组或者日志文件成员的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 会自动根据该组已经存在的日志文件成员的大小设置新添加的日志文件成员大小。
注:最最重要的是为什么要添加日志文件组,为什么要添加日志文件成员?
感谢各位的阅读,以上就是“数据库中如何添加日志文件组与日志文件成员”的内容了,经过本文的学习后,相信大家对数据库中如何添加日志文件组与日志文件成员这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。