您好,登錄后才能下訂單哦!
這篇文章主要講解了“數據庫中如何添加日志文件組與日志文件成員”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“數據庫中如何添加日志文件組與日志文件成員”吧!
添加日志文件組與日志文件成員
首先確定當前登錄的賬戶的權限,是否包含創建日志文件組或者日志文件成員的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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。