Переносимые Табличные Пространства В Oracle 11G

Здравствуйте хабровцы, в этой статье я расскажу о переносимых табличных пространствах в Oracle 11g. Табличное пространство можно клонировать и затем включить в другую базу данных путем копирования или удалить из одной базы данных Oracle и включить в другую базу данных Oracle на той же платформе путем перемещения.

Миграция данных с помощью перемещения табличного пространства происходит на порядок быстрее, чем операции экспорта/импорта или загрузки/загрузки, поскольку перемещения табличного пространства состоят только из копирования файлов данных и интеграции метаданных табличного пространства.

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



Работа с утилитами экспорта и импорта
База данных Oracle позволяет копировать данные между базами данных, а также обмениваться ими с внешними файлами.

Копирование осуществляется посредством экспорта и импорта.

Для выполнения этой задачи существуют утилитыimp.exe и exp.exe.

Переносные табличные пространства
Оперативное предоставление разработчикам свежей копии данных производственной системы.

Использование информации, опубликованной на неперезаписываемых носителях (CD-ROM, DVD и т.п.

).

Быстро перемещайте данные из операционной системы в хранилище или витрину данных.

Ускорение передачи информации достигается за счет замены ресурсоемких процессов экспорта-импорта или загрузки-выгрузки на гораздо более быстрое копирование файлов данных с одной вычислительной установки на другую.

Выбор автономного набора табличных пространств Существует ряд условий, ограничивающих использование описанной возможности.

Вы можете перемещать табличные пространства между базами данных, которые: 1. Иметь одинаковый размер блока (db_block_size), созданный с одинаковым набором символов, в файлах инициализации (INIT.ORA) исходной и целевой баз данных, для параметра COMPATIBLE должно быть установлено значение, запускаться на совместимых платформах одного и того же типа.

производитель оборудования.

Удовлетворение требований можно проверить, выполнив следующий запрос в исходной и целевой базе данных:

  
  
  
  
  
  
  
  
   

select name, value from v$parameter where name in ('db_block_size','compatible') union all selct parameter, value from nls_database_parameters where parameter like '%characterset'

Результаты запросов в исходной и целевой базе данных должны совпадать.

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

3. Не поддерживается транспорт: снимки и реплицированные таблицы, функциональные индексы, локальные ссылки на объекты, доменные индексы.

4. Выбор автономного набора табличных пространств Автономный набор табличных пространств — это набор табличных пространств, объекты которого не ссылаются ни на какие объекты, не содержащиеся в этом наборе.

Для проверки самодостаточности удобно использовать процедуру TRANSPORT_SET_CHECK (для выполнения процедуры необходима роль EXECUTE_CATALOG_ROLE).



begin sys.dbms_tts.transport_set_check (ts_list => 'USER_DATA', incl_constraints => true); end;

Результаты его работы записываются во временную таблицу и их можно просмотреть через системное представление SYS.TRANSPORT_SET_VIOLATIONS:

select * from sys.transport_set_violations

Миграция набора табличных пространств Сначала следует перевести табличные пространства в состояние READ ONLY (здесь и далее по тексту XXX — имя табличного пространства):

ALTER TABLESPACE TS_XXX READ ONLY;

Метаданные словаря затем экспортируются с помощью утилиты EXP. Вам следует изменить кодировку в командной строке, чтобы информация отображалась правильно.



set nls_lang=russian_cis.ru8pc866



exp transport_tablespace=y tablespaces=(TS_XXX) triggers=y constraints=y grants=y file=d:\exp_xxx log=d:\exp_xxx

Oracle попросит вас ввести имя пользователя и пароль: Имя пользователя: sys/system@orcl2012 как 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:

ALTER TABLESPACE TS_XXX READ WRITE;

Подключение набора табличных пространств к целевой базе данных Перед импортом необходимо перенести данные из исходной базы в целевую: Это можно сделать с помощью FTP, командной строки или копирования с помощью Windows. Вам необходимо скопировать файл табличного пространства (.

dbf) из исходной базы данных в целевую базу данных.

В командной строке.



Copy \\server1\oradata\orcl\TS_XXX.dbf \\server2\oradata\orcl\

\\server1\oradata\orcl\TS_XXX.dbf — путь к перемещаемому файлу табличного пространства в исходной базе данных.

\\server2\oradata\orcl\ — путь, по которому перемещаемое табличное пространство будет храниться в целевой базе данных.

Теперь вы можете подключить набор табличных пространств к целевой базе данных.



imp transport_tablespace=y DATAFILES=('E:\server2\oradata\orcl\TS_XXX.dbf') TABLESPACES=(TS_XXX) TTS_OWNERS=(XXXCORE) fromuser=(XXXCORE) touser=(XXXCORE) FILE=D:\ exp_xxx.dmp LOG=D:\imp_xxx.log

Oracle попросит вас ввести имя пользователя и пароль: sys/system@ora2015 как sysdba ora2015 – строка подключения к целевой базе данных.

TRANSPORT_TABLESPACE=Y – указывает, что импортированы метаданные набора связанных табличных пространств, DATAFILES=(…) – список, определяющий имена и расположение связанных файлов данных, TABLESPACES=(TS_XXX) – список табличных пространств.

Если параметр не указан, то список берется из файла экспорта.

Если указано, он сверяется со списком, содержащимся в файле экспорта (в случае несоответствия будет выдано сообщение об ошибке).

TTS_OWNERS=(XXXCORE) – список схем, владеющих объектами в связанных табличных пространствах.

Если параметр не указан, то список берется из файла экспорта.

Если указано, он сверяется со списком, содержащимся в файле экспорта (в случае несоответствия будет выдано сообщение об ошибке).

FROMUSER=( XXXCORE), TOUSER=( XXXCORE) – имена исходной и соответствующей целевой схемы.

Если импорт завершен успешно, вы можете проверить доступность данных в целевой базе данных.

  Использованная литература:

Теги: #oracle #переносимые табличные пространства #oracle
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.