Здравствуйте хабровцы, в этой статье я расскажу о переносимых табличных пространствах в 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) – имена исходной и соответствующей целевой схемы.
Если импорт завершен успешно, вы можете проверить доступность данных в целевой базе данных.
Использованная литература:
- Тидвелл Д.
XSLT / Д.
Тидвелл – СПб: Символ-Плюс, 2010. – 960 с.
- www.emanual.ru
- docs.oracle.com/cd/B19306_01/server.102/b14231/tspaces.htm
-
Несколько Советов По Использованию Wi-Fi
19 Oct, 24 -
Трагедии И Домены
19 Oct, 24 -
Jsoc: Опыт Молодого Российского Mssp
19 Oct, 24 -
Рекорд Скорости Передачи Данных
19 Oct, 24