YandexDirect

13 августа 2018

Перенос датафайлов в другую дисковую группу ASM

Иногда возникает необходимость перенести датафайлы в другую дисковую группу на ASM. У нас имеется дисковая группа +DSK и новая группа +TSK.

Примечание: для переноса табличных пространств SYSTEM, SYSAUX этот метод не подходит!

Для переноса файлов, нам необходимо перевести их в offline режим. Для начала запросим список текущих файлов:






SQL> select

  2     file_id,

  3     file_name

  4  from

  5     dba_data_files;



   FILE_ID FILE_NAME

---------- --------------------------------------------------------------------------------

         1 +DSK/files/system.262.983700781

         2 +DSK/files/sysaux.260.983700509

         4 +DSK/files/users.259.983700017

         5 +DSK/files/tdata.256.983641867

         6 +DSK/files/ldata.257.983645175

         7 +DSK/files/idata.258.983662319

         8 +DSK/files/undotbs2.dbf

7 rows selected

Переводим файл в офлайн:


SQL>alter database datafile '+DSK/files/tdata.256.983641867' offline;

Я заметил, что после перевода датафайла в offline режим, он переходит в статус RECOVER, для исправления этого выполняем команду:


SQL>recover datafile <file_id>;

Далее в RMAN нам необходимо скопировать файл в новую дисковую группу


$ rman target /



Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 10 18:16:43 2018



Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.



connected to target database: TEST (DBID=601311304)



RMAN> COPY DATAFILE '+DSK/files/tdata.256.983641867' TO '+TSK';

Теперь нам необходимо узнать новое имя скопированного датафайла, для этого нам необходимо зайти в ASM


$ asmcmd                                                                                                                                                                                              

ASMCMD>

ASMCMD> ls

ARCHLOG/

DSK/

TSK/

REDO1/

REDO2/

VOTING/

ASMCMD> cd TSK

ASMCMD> ls

FILES

ASMCMD>ls

TDATA.258.983662319

ASMCMD> pwd

+TSK/FILES


Итак, новое имя файла +TSK/FILES/TDATA.258.983662319

Нам необходимо переименовать файл в словарях Oracle, для этого воспользуемся командой в RMAN


RMAN> run {

set newname for datafile '+DSK/files/tdata.256.983641867' to '+TSK/FILES/TDATA.258.983662319';

switch datafile all;

}

Далее в sqlplus выполняем восстановление файла:


SQL>RECOVER DATAFILE '+TSK/FILES/TDATA.258.983662319';


Завершающий шаг, перевод файла в режим online:


SQL>ALTER DATABASE DATAFILE '+TSK/FILES/TDATA.258.983662319' ONLINE;

Проверяем новое расположение файла:


SQL> select

  2     file_id,

  3     file_name

  4  from

  5     dba_data_files;



   FILE_ID FILE_NAME

---------- --------------------------------------------------------------------------------

         1 +DSK/files/system.262.983700781

         2 +DSK/files/sysaux.260.983700509

         4 +DSK/files/users.259.983700017

         5 +TSK/FILES/TDATA.258.983662319

         6 +DSK/files/ldata.257.983645175

         7 +DSK/files/idata.258.983662319

         8 +DSK/files/undotbs2.dbf

7 rows selected

Вот и все, файл перенесен.

Комментариев нет:

Отправить комментарий

Общее·количество·просмотров·страницы