Иногда возникает необходимость перенести датафайлы в другую дисковую группу на ASM. У нас имеется дисковая группа +DSK и новая группа +TSK.
Примечание: для переноса табличных пространств SYSTEM, SYSAUX этот метод не подходит!
Для переноса файлов, нам необходимо перевести их в offline режим. Для начала запросим список текущих файлов:
Переводим файл в офлайн:
Я заметил, что после перевода датафайла в offline режим, он переходит в статус RECOVER, для исправления этого выполняем команду:
Далее в RMAN нам необходимо скопировать файл в новую дисковую группу
Теперь нам необходимо узнать новое имя скопированного датафайла, для этого нам необходимо зайти в ASM
Итак, новое имя файла +TSK/FILES/TDATA.258.983662319
Нам необходимо переименовать файл в словарях Oracle, для этого воспользуемся командой в RMAN
Далее в sqlplus выполняем восстановление файла:
Завершающий шаг, перевод файла в режим online:
Проверяем новое расположение файла:
Примечание: для переноса табличных пространств 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
Вот и все, файл перенесен.
Комментариев нет:
Отправить комментарий