這篇文章主要講解了“數據庫中如何添加日志文件組與日志文件成員”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“數據庫中如何添加日志文件組與日志文件成員”吧!
成都創(chuàng)新互聯是專業(yè)的海鹽網站建設公司,海鹽接單;提供成都網站建設、網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行海鹽網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
添加日志文件組與日志文件成員
首先確定當前登錄的賬戶的權限,是否包含創(chuàng)建日志文件組或者日志文件成員的alter database
系統(tǒng)權限。
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 的上限值限制了。
確定系統(tǒng)現有的日志文件組數與組中的日志文件成員數。
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
系統(tǒng)中共有3個日志文件組,每個組中各有一個日志文件成員。
往系統(tǒng)中添加一個日志文件組,組中日志文件成員數量是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.
注:在實際的系統(tǒng)中上面的語句是明顯不合理的,因為把兩個日志文件成員放置在相同磁盤中。為了日志文件組中日志文件的可用性,應該把不同的日志文件成員放置在不同的磁盤上面,以免出現日志切換到該組的時候因介質故障導致日志文件不能訪問,從而數據庫宕機。查看添加以后的日志信息。另外應該保持系統(tǒng)中所有的日志文件的大小相同,這里的20M和系統(tǒng)以后存在的日志文件的大小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狀態(tài)的,表示該日志文件組還沒有別寫入過。不過也可能是其他狀態(tài),比如添加完該日志文件組不久就發(fā)生了日志卻換,則狀態(tài)應該是current。另外我們在創(chuàng)建日志文件的時候是沒有指定blocksize,所有會使用默認的磁盤扇區(qū)的大小,這里是512 bytes。磁盤扇區(qū)的大小
不是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)
錯誤信息已經說明了一切。如果磁盤的扇區(qū)是4KB,則可以選擇4KB,1KB,512bytes 中的一個值為日志文件的block大?。╠atabase 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 會自動根據該組已經存在的日志文件成員的大小設置新添加的日志文件成員大小。
注:最最重要的是為什么要添加日志文件組,為什么要添加日志文件成員?
感謝各位的閱讀,以上就是“數據庫中如何添加日志文件組與日志文件成員”的內容了,經過本文的學習后,相信大家對數據庫中如何添加日志文件組與日志文件成員這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!