Миграция из 11G в контейнер 12С
Задача: перенести базу 11G в контейнер 12C
В один прекрасный момент приходит осознание, что куча инстансов по разным серверам – жутко не удобно. И тогда очень кстати оказываются оракловые pluggable базы данных.
Итак, приступим
Для миграции будут использованы transportable tablespaces. Мигрировать будет рабочие tablespaces. Перед тем как их мигрировать, их нужно перевести в режим READ ONLY:
SQL> alter tablespace IDXS READ ONLY; SQL> alter tablespace USERS READ ONLY;
После этого производим собственно миграцию.
expdp userid=\»/ as sysdba\» DIRECTORY=DTPUMP dumpfile=fulldb.dmp logfile=fulldb.log full=y transportable=always version=12.0
И копируем файлы данных, для того что бы перенести их на конечную базу. После этого в контейнерной базе создаём новую подключаемую базу:
create pluggable database pdb_new admin userpdb_newadmin identified bypdb_newadmin
Если мы создаём базу без использования ASM, нужно использовать:
create pluggable database pdb_new admin userpdb_newadmin identified bypdb_newadmin file_name_convert=(‘orcl_old’,’pdb_new’);
И можем увидеть её с помощью команды:
show pdbs
Открываем новосозданную базу и смотрим каталог размещения файлов%
alter pluggable database pdb_new open; alter session set container=pdb_new; select * from v$datafile;
Т.к. я использую ASM, то через asmcmd захожу в нужный каталог для файлов данных и копирую файлы в асм:
cp ‘/mnt/backup/o1_mf_users_by14xy3s_.dbf’ ./ cp ‘/mnt/backup/o1_mf_idxs_by14y2hd_.dbf’ ./
Теперь файлы на месте и можно начинать импорт
Формируем файл импорта imp.par:
full=y transport_datafiles=’+asmdata/devora/3E1D4A5F781F667CE055862B2B0CF8FE/DATAFILE/o1_mf_users_by14xy3s_.dbf’, ‘+asmdata/devora/3E1D4A5F781F667CE055862B2B0CF8FE/DATAFILE/o1_mf_idxs_by14y2hd_.dbf’, ‘+asmdata/devora/3E1D4A5F781F667CE055862B2B0CF8FE/DATAFILE/o1_mf_smallblo_by19kmt4_.dbf’
Пускаем импорт:
impdp userid=\»sys\/syspwd6@pdb_new as sysdba\» DIRECTORY=BACKUP dumpfile=fulldb.dmp logfile=impbios.log parfile=imp.par
База перенесена!
Компилируем битые объекты и можно работать.
Есть вопрос? Напишите в комментариях!