Проверялось на версии Orcale 12, 19.

Ввиду того, что опыта подобной миграции не имею, не исключены ошибки.

Пожалуйста по возможности проконсультируйтесь со специалистом по БД Oracle.

И при необходимости внесите изменения в сценарий выполнения и прилагаемые скрипты.


Ниже приведены примеры команд и скриптов, конечный синтаксис будет отличаться.

Перед выполнением нужно внести соответствующие изменения описывающие параметры подключения и другие атрибуты базы данных и ее состава данных.


Импорт данных.

Исходная БД должна иметь кодировку CL8MSWIN1251

Получаем дамп БД (только данные). 

Опции указанные в команде, четко указывают на то, что снимается не полный дамп, а только данные схемы supermag


expdp system/qqq@sbis58 directory=dir schemas=supermag content=DATA_ONLY dumpfile=supermag.dmp logfile=supermag.log


Получаем дамп БД (только метаданные). 

Опции указанные в команде, четко указывают на то, что снимается не полный дамп, а только экспортировали дамп с метаданными пользователей, ролей и привилегий.


chcp 65001
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
sqlplus system/qqq@sbis58

SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF LINESIZE 1000
SELECT 'INCLUDE=USER:"IN (''' || LISTAGG(username, ''', ''') WITHIN GROUP (ORDER BY username) || ''')"'
FROM dba_users
WHERE username NOT IN ('SYS','SYSTEM','ORACLE_OCM','DBSNMP','OUTLN','XDB','APPQOSSYS')
  AND username LIKE '%' -- сюда можно добавить условие, например, для имён с кириллицей
/

Скрипт вернет список пользователей:

INCLUDE=USER:"IN ('ANONYMOUS', 'AUDSYS', 'DBSFWUSER', 'DIP', 'GGSYS', 'GSMADMIN_INTERNAL', 'GSMCATUSER', 'GSMUSER', 'REMOTE_SCHEDULER_AGENT', 'SUPERMAG', 'SUPERMAG_SYS', 'SYS$UMF', 'SYSBACKUP', 'SYSDG', 'SYSKM', 'SYSRAC', 'WMSYS', 'XS$NULL', 'ИВАНОВ', 'ПЕТРОВ', 'СИДОРОВ')"

Создать файл: export.par

FULL=Y
CONTENT=METADATA_ONLY
INCLUDE=USER:"IN ('ANONYMOUS', 'AUDSYS', 'DBSFWUSER', 'DIP', 'GGSYS', 'GSMADMIN_INTERNAL', 'GSMCATUSER', 'GSMUSER', 'REMOTE_SCHEDULER_AGENT', 'SUPERMAG', 'SUPERMAG_SYS', 'SYS$UMF', 'SYSBACKUP', 'SYSDG', 'SYSKM', 'SYSRAC', 'WMSYS', 'XS$NULL', 'ИВАНОВ', 'ПЕТРОВ', 'СИДОРОВ')"
INCLUDE=ROLE
INCLUDE=ROLE_GRANT
INCLUDE=SYSTEM_GRANT
INCLUDE=OBJECT_GRANT
INCLUDE=DEFAULT_ROLE
INCLUDE=TABLESPACE_QUOTA
INCLUDE=PROFILE
DIRECTORY=dir
DUMPFILE=supermag_metadata.dmp
LOGFILE=supermag_metadata.log
VERSION=19.0

где, строка INCLUDE=USER:... повторяет результат выше выполненного скрипта.


expdp system/qqq@sbis58 PARFILE=C:\export.par