Oracle DB: Transportable tablespace
Версия от 17:20, 7 июня 2023; Admin (обсуждение | вклад)
Механизм Transportable tablespase (TTS) предназначен для переноса табличного пространства с одной базы на другую.
Общая логика переноса табличных пространств
- Определение списка переносимых ТП (переносимые ТП не должны присутствовать в целевой базе, либо должны быть предварительно удалены)
- Проверка зависимостей, объекты в переносимых ТП не должны иметь зависимостей с объектами в ТП не подлежащих переносу
- Копирование файлов переносимых ТП и экспорт/импорт метаданных всех объектов в перемещаемых ТП
-- проверка связей выходящих за рамки заданного набора TS -- для выполнения требуются привилегии роли EXECUTE_CATALOG_ROLE EXECUTE sys.dbms_tts.transport_set_check('TS1,TS2,TS3',true); -- представление отображающее зависимости объектов, можно использовать как дополнительный способ проверки зависимостей SELECT * FROM sys.transport_set_violations -- еще один способ проверки зависимостей, это использование параметра TRANSPORT_FULL_CHECK при экспорте и импорте -- если данный параметр используется при импорте, то дополнительно требуется указание параметра NETWORK_LINK и сетевое подключение к исходной базе -- (TTS_FULL_CHECK=Y, тоже самое, нужно разораться это два разных параметра или верный только один вариант)
Генерация набора переносимых ТП
В набор переносимых ТП входит:
- все файлы переносимых ТП
- файл экспорта метаданных всех объектов переносимых ТП
Порядок действий
- переключить переносимые ТП в режим READ ONLY (не обязательно, нужно для гарантии что в момент переноса не будут выполняться транзакции с этими ТП)
ALTER TABLESPACE TS1 READ ONLY; ALTER TABLESPACE TS2 READ ONLY; ALTER TABLESPACE TS3 READ ONLY;
- выполнить экспорт метаданных с указанием набора транспортируемых ТП
Пример
expdp <userid> DIRECTORY=dpump_dir1 DUMPFILE=TTS.dmp TRANSPORT_TABLESPACES=TS1,TS2,TS3 INCLUDE=triggers,constraint,grant # лучше не указывать userid, тогда expdp спросит имя пользователя и можно будет указать 'sys as sysdba'
Ссылки по теме
- Transportable tablespaces - переносим данные между базами данных Oracle (сайт распространяет пропаганду РФ)
- Transportable Tablespaces