误删除所有redo日志的一组成员的处理过程

系统中共有3个日志文件组,每个组中各有一个日志文件成员。
往系统中添加一个日志文件组,组中日志文件成员数量是2.
SQL> alter database add logfile group 4
('/opt/oracle11g/oradata/oracl/redo401.log','/opt/oracle11g/oradata/oracl/redo402.log')
size 20M;
Database altered.

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

添加日志组日志文件成员适用于日志组已经存在,但是其中的一个或者多个日志文件成员因为某些原因被删除了。下面往group 2中添加一个日志文件成员。
SQL> alter database add logfile member
 '/opt/oracle11g/oradata/oracl/redo.log'
 to group 2;
Database altered.
添加日志文件不需要指定大小。oracle 会自动根据该组已经存在的日志文件成员的大小设置新添加的日志文件成员大小。


問題:誤刪除所有redo日誌的一組成員,redo日誌有多路複用,其他路徑下的redo日誌成員完好
一、向數據庫添加日誌組

alter database add logfile group 5('/db1/redo/redo05a.log','/db2/redo/redo05b.log') size 100M;
alter database add logfile group 6('/db1/redo/redo06a.log','/db2/redo/redo06b.log') size 100M;
......
數量和大小和原有日誌組相同

二、切換日誌組,alter system switch logfile;

三、查看日誌組狀態:select group#,status,archived from v$log;
當需要刪除的日誌組處於INCATIVE 狀態時,
CKPT:alter system checkpoint;(該命令會把所有的日誌組變為INACTIVE狀態)

最後刪除舊日誌組:alter database drop logfile group 1;

注意事項:進行日誌切換的時候不應太頻繁,否則導致所有的日誌組全部處於ACTIVE 以及CURRENT 狀態,有可能導致數據庫hang住,一般間隔15-25分鐘,有專家建議30分鐘一次

在線調整日誌組大小時也可以用以上方式:固定流程為:新建-手動切換-CKPT-刪除舊日誌組

原文地址:https://www.cnblogs.com/sg1005/p/9741668.html