Миграция из 11G в контейнер 12С | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Flutter Mobile Developer Подготовка к сертификации Oracle Java Programmer (OCAJP)
-8%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
Алгоритмы и структуры данных
-12%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
Team Lead
-15%
iOS-разработчик. Базовый курс
-23%
Разработчик на Spring Framework Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Android Developer. Basic
-10%
C++ Developer. Professional Разработчик C# AWS для разработчиков Software Architect Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов Backend-разработка на Kotlin React.js Developer Разработчик Node.js Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
PostgreSQL
-10%
IoT-разработчик
-12%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Сетевой инженер AWS для разработчиков Software Architect Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Миграция из 11G в контейнер 12С

SUBD_Deep_24-5020-f85d45.08_site.png

Задача: перенести базу 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

База перенесена!

Компилируем битые объекты и можно работать.

Есть вопрос? Напишите в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться