После того, как был добавлен новый LUN, был настроен автостарт базы осталось решить последнюю проблему - необходимо перенести базу из текущих asm_diskgroups, поднятых на RAID0 в новую asm_diskgroup, созданную на базе нового добавленного LUN'а RAID1.
При подготовке к данному переносу почитал доку, ноты металинка и провел ряд тестов на своей тестовой базе в VMVare-машине. В результате составил след.инструкцию, которую и использовал при работе с продакшн базой.
====
Задача: Перенести базу в новую asm_diskgroup
Данные: Имя новой asm_diskgroup - EVA01R1
1) Сделать бэкап control- файла
SQL> select name from v$controlfile;
SQL> alter database backup controlfile to '+EVA01R1';
2) Задать новое месторасположение control-файла в spfile
SQL> alter system set control_files='+EVA01R1\ITC\CONTROLFILE\CONTROL01.CTL' SCOPE=SPFILE;
Прим. если spfile не используется экземпляром, то прописать в его init.ora
3) Восстановить новый из старого control-файла
$ rman target /
RMAN > shutdown immediate;
RMAN > startup nomount;
RMAN> restore controlfile from '+EVA02/itc/controlfile/current.266.610247845';
4) Запустить копирование базы
RMAN> alter database mount;
RMAN> backup as copy database format ' +EVA01R1 ';
5) Переключить базу на копию
RMAN> switch database to copy;
RMAN> RUN
{
SWITCH TEMPFILE 1 TO '+EVA01R1';
}
6) Добавить в init.ora
параметр Db_create_file_dest=+eva01r1
7) Открыть базу
RMAN> alter database open;
8) Добавить в новую asm_diskgroup зеркальные копии онлайн-логов во всего журнальные группы экземпляра
alter database add logfile member ' +EVA01R1 ' to group 1 ;
alter database add logfile member ' +EVA01R1 ' to group 2;
alter database add logfile member ' +EVA01R1 ' to group 3 ;
alter database add logfile member ' +EVA01R1 ' to group 4 ;
alter database add logfile member ' +EVA01R1 ' to group 5 ;
9) Переключить журнал
alter system archive log current
10) Удалить старые копии журналов из старой asm_diskgroup
Можно использовать скрипт (здесь старая группа +EVA02)
declare
strSQL varchar2( 200 );
begin
for pList in (select member from v$logfile where member like '+EVA02/%' ) loop
strSQL:= 'alter database drop logfile member "' || pList.member || '"' ;
begin
EXECUTE IMMEDIATE strSQL;
end;
end loop;
end;
или вручную через
alter database drop logfile member '+EVA02/itc/onlinelog/group_1.256.609887989’
(имя файла изменять на свое)
Проверить остались ли старые файлы
select member from v$logfile where member like '+EVA02/%'
11) Переместить файл block_change_tracking
SQL> select status,filename
from v$block_change_tracking;
SQL> alter database disable block change tracking
SQL> alter database enable block change tracking
using file '+EVA01R1' reuse;
12) Проверить месторасположение всех фалов
select name from v$controlfile
union
select name from v$datafile
union
select name from v$tempfile
union
select member from v$logfile
union
select filename from v$block_change_tracking
13) Удалить все старые дисковые группы как ненужные
SQL> drop diskgroup eva01 including contents;
SQL> drop diskgroup eva02 including contents;
Showing posts with label Oracle ASM. Show all posts
Showing posts with label Oracle ASM. Show all posts
Saturday, August 11, 2007
Friday, December 22, 2006
По ASM
Размер ASM
SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup; --размер ASM
SQL>select name,path,mode_status,state,disk_number from v$asm_disk; --дисковые группы
SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup; --размер ASM
SQL>select name,path,mode_status,state,disk_number from v$asm_disk; --дисковые группы
Subscribe to:
Posts (Atom)