Транспортируемые табличные пространства в Oracle 11gИсточник: habrahabr DevAndrew
В этой статье я расскажу о перемещаемых табличных пространствах(Transportable tablespaces) в Oracle 11g. Табличное пространство можно клонировать и затем включить в другую базу данных путем копирования, а также можно исключить из одной базы данных Oracle и включить в другую базу данных Oracle на той же платформе с помощью перемещения. Работа с утилитами экспорта и импортаOracle Database позволяет копировать данные между базами данных, а также обмениваться ими с внешними файлами. Копирование осуществляется посредством экспорта и импорта. Для осуществления данной задачи есть утилиты imp.exe и exp.exe
Переносимые табличные пространстваОперативное предоставление разработчикам свежей копии данных производственной системы. Использование информации, публикуемой на неперезаписываемых носителях (CD-ROM, DVD и т.п.). Быстрое перемещение данных из оперативной системы в хранилище или в витрину данных. Ускорение переноса информации достигается за счет замены ресурсоемких процессов экспорта-импорта или выгрузки-загрузки значительно более быстрым копированием файлов данных с одной вычислительной установки на другую.
Выбор самодостаточного набора табличных пространствСуществует ряд условий ограничивающих применение описываемой возможности. Можно перемещать табличные пространства только между такими базами данных, которые: 1. Имеют одинаковый размер блока (db_block_size), созданы с одинаковой кодировкой (character set), в файлах инициализации (INIT.ORA) исходной и целевых баз данных параметр COMPATIBLE должен быть установлен в значение, работают на совместимых платформах одного и того же производителя оборудования.
Результаты запросов в исходной и целевой БД, должны быть одинаковые. 2. В целевой базе данных не должно быть табличного пространства с таким же именем, как у подключаемого. 3. Не поддерживается транспортировка: снапшотов и тиражируемых таблиц, функциональных индексов, локальных ссылок на объекты, доменных индексов. 4. Выбор самодостаточного набора табличных пространств
Результаты ее работы записываются во временную таблицу и их можно посмотреть через системное представление SYS.TRANSPORT_SET_VIOLATIONS:
Перенос набора табличных пространствСначала следует перевести табличные пространства в состояние READ ONLY(далее в тексте XXX - имя табличного пространства):
Затем с помощью утилиты EXP экспортируются метаданные словаря. В командной строке следует изменить кодировку для корректного отображения информации.
oracle попросит ввести имя пользователя и пароль: Имя пользователя: sys/system@orcl2012 as sysdba orcl2012 - строка подключения к исходной БД. TRANSPORT_TABLESPACE=Y - указывает, что выполняется экспорт метаданных транспортируемых табличных пространств, TABLESPACES=(USERS, USER_DATA, INDX) - задает список транспортируемых табличных пространств, TRIGGERS=Y - Экспортировать табличные триггеры (если указать N, то триггеры экспортироваться не будут) CONSTRAINTS=Y - Экспортировать ограничения целостности (при N не экспортируются ограничения типов PRIMARY KEY, UNIQUE, FOREIGN KEY и CHECK, однако ограничения NOT NULL экспортируются), GRANTS=Y - Экспортировать привилегии доступа к таблицам (N отменяет экспорт привилегий), FILE=exp_tts и log=exp_tts имя файла с данными и имя файла журнала экспорта. После того как утилита успешно экспортирует метаданные на выходе будет файл с расширением .dmp.(exp_xxx.dmp) После экспорта метаданных, можно перевести табличные пространства назад в состояние READ WRITE:
Подключение набора табличных пространств к целевой БДПеред импортом, необходимо перенести данные от исходной базы данных к целевой: Это можно сделать средствами ftp, командной строки или копированием средствами Windows. Нужно копировать файл табличного пространства(.dbf) от исходной БД к целевой. В командной строке.
\\server1\oradata\orcl\TS_XXX.dbf - путь к файлу перемещаемого табличного пространства на исходной базе данных \\server2\oradata\orcl\ - путь, где будет хранится перемещаемое табличное пространство на целевой базе данных Теперь можно подключать набор табличных пространств к целевой БД
oracle попросит ввести имя пользователя и пароль: sys/system@ora2015 as sysdba ora2015 - строка подключения к целевой БД. TRANSPORT_TABLESPACE=Y - указывает, что импортируются метаданные набора подключаемых табличных пространств, DATAFILES=(…) - список, определяющий имена и место расположения подключаемых файлов данных, TABLESPACES=(TS_XXX) - список табличных пространств. Если параметр не задан, то список берется из файла экспорта. Если задан, то сверяется со списком, содержащимся в файле экспорта (в случае несовпадения будет выдано сообщение об ошибке). TTS_OWNERS=( XXXCORE) - список схем, которым принадлежат объекты в подключаемых табличных пространствах. Если параметр не задан, то список берется из файла экспорта. Если задан, то сверяется со списком, содержащимся в файле экспорта (в случае несовпадения будет выдано сообщение об ошибке). FROMUSER=( XXXCORE), TOUSER=( XXXCORE) - имена исходных и соответствующих им целевых схем. Если импорт завершен успешно, можно проверять наличие данных на целевой БД. Используемая литература литература:
|