Поскольку RAC состоит из нескольких нод, операции с redo несут в себе некоторые нюансы.
Ну, для начала необходимо посмотреть, где REDO лежит
Код:
col member format a35
select * from v$logfile;
Код:
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ----------------------------------- ---
1 ONLINE +DATA/dbname/redo01.log NO
2 STALE ONLINE +DATA/dbname/redo02.log NO
7 ONLINE +DATA/dbname/redo07.log NO
8 STALE ONLINE +DATA/dbname/redo08.log NO
5 STALE ONLINE +DATA/dbname/redo05.log NO
6 ONLINE +DATA/dbname/redo06.log NO
3 ONLINE +DATA/dbname/redo03.log NO
4 ONLINE +DATA/dbname/redo04.log NO
Далее, посмотрите их характеристики
Код:
SQL> set lines 132
SQL> set trims on
SQL> select * from v$log;
Код:
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 53 52428800 1 NO CURRENT 2274385 08-OCT-08
2 1 52 52428800 1 NO INACTIVE 2114717 07-OCT-08
3 2 27 52428800 1 NO CURRENT 2206475 08-OCT-08
4 2 26 52428800 1 NO INACTIVE 2030730 07-OCT-08
5 1 17 52428800 1 NO INACTIVE 1780062 06-OCT-08
6 1 18 52428800 1 NO CURRENT 2051445 07-OCT-08
7 2 21 52428800 1 NO CURRENT 2072021 07-OCT-08
8 2 20 52428800 1 NO INACTIVE 1932027 07-OCT-08
Азы тут не интересуют, но, обратите внимание, что в колонке thread# два числа. Это две ноды RAC. Таким образом, каждая нода пользуется только выделенным для нее пулом redo. Соответственно, если вы будете создавать группы без указания потока, то создаваемые группы будут принадлежать только той ноде, с которой их создали. Дропать их можно с любой ноды и без указания потока. Но о создании:
Код:
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 10 ('+DATA/DBNAME/redo01.db','+DATA/DBNAME/redo01-2.db') SIZE 1024m;
Соответственно, если мембера удалили, то убедитесь, что он не остался на диске
Код:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/asm
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM1
asmcmd
ASMCMD> cd DATA
ASMCMD> find . *
+DATA/DBNAME/
+DATA/DBNAME/CONTROLFILE/
+DATA/DBNAME/CONTROLFILE/Current.256.666981619
+DATA/DBNAME/ONLINELOG/
+DATA/DBNAME/ONLINELOG/group_10.271.667595443
+DATA/DBNAME/ONLINELOG/group_20.272.667595443
+DATA/DBNAME/ONLINELOG/group_30.265.667595411
+DATA/DBNAME/ONLINELOG/group_40.266.667595411
+DATA/DBNAME/ONLINELOG/group_50.267.667595411
+DATA/DBNAME/ONLINELOG/group_60.268.667595411
+DATA/DBNAME/ONLINELOG/group_70.269.667595413
+DATA/DBNAME/ONLINELOG/group_80.270.667595413
+DATA/DBNAME/control01.ctl
+DATA/DBNAME/redo01-tmp.log
+DATA/DBNAME/redo02-tmp.log
+DATA/DBNAME/redo03-tmp.log
+DATA/DBNAME/redo04-tmp.log
+DATA/DBNAME/redo05-tmp.log
+DATA/DBNAME/redo06-tmp.log
+DATA/DBNAME/redo07-tmp.log
+DATA/DBNAME/redo08-tmp.log
ASMCMD> exit
А если мусор какой-то остался, то можно и почистить его
Код:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/asm
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=+ASM1
sqlplus /nolog
connect / as sysdba
ALTER DISKGROUP DATA DROP FILE '+DATA/dbname/redo01.log';