Как сделать экспорт базы данных oracle

Добавил пользователь Alex
Обновлено: 05.10.2024

Привет хабровчане, в этой статье я расскажу о перемещаемых табличных пространствах(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. Выбор самодостаточного набора табличных пространств
Самодостаточный набор табличных пространств – это совокупность табличных пространств, объекты которых не ссылаются на какие-либо объекты, не содержащиеся в данном наборе.
Для проверки самодостаточности удобно использовать процедуру TRANSPORT_SET_CHECK(для выполнения процедуры требуется роль EXECUTE_CATALOG_ROLE).

Результаты ее работы записываются во временную таблицу и их можно посмотреть через системное представление 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 Database. Рассмотрим как встроенные в базу инструменты так и сторонние приложения. Oracle Database хранит все файлы созданной базы в файлах данных. Часто, для восстановления данных определённой базы, достаточно восстановить её файлы данных и импортировать их в Oracle Database.

Структура базы данных Oracle Database

Методы восстановления базы данных MySQL, MSSQL и Oracle ⚕️👨‍💻🖥️

Восстановление удаленной или поврежденной базы данных 1C: крах, ошибки 💥 🥇 ⚕️

В процессе работы экземпляр базы данных Oracle Database использует несколько групп файлов, которые следует архивировать для последующего восстановления. Это:

Файлы данных и табличных пространств (*.DBF).

Название файлов данных и табличных пространств, а также пути к ним можно посмотреть с помощью SQL Plus если выполнить следующий запрос:

В результате работы этого запроса получится подобный отчет:

SQL Command Line

*.DBF файлы базы

Файлы конфигурации базы данных (*.ora).

Конфигурационные файлы базы данных Oracle имеют расширение *.ora и расположены в папке:
C:\oraclexe\app\oracle\product\11.2.0\server\dbs

*.ora файлы базы

Управляющие файлы базы данных (*.DBF).

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

Определить путь и названия управляющих файлов с Notepad++

Также, чтобы определить названия и пути к управляющим файлам в SQL Plus необходимо выполнить запрос:

SELECT value FROM v$parameter WHERE name = ‘control_files’;

Запуск SQL Command Line

Файлы журналов транзакций (*.LOG).

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

SELECT member FROM v$logfile;

В результате работы этого запроса получится подобный отчет:

SQL Command Line: Файлы журналов транзакций (*.LOG)

Чтобы определить пути к папкам, где хранятся архивные журналы транзакций, необходимо выполнить такой запрос:

SELECT destination FROM v$archive_dest where status=’VALID’;

В результате работы этого запроса получится отчет:

SQL Command Line: пути к папкам, где хранятся архивные журналы

Файл паролей (*.ora).

Как правило, это файлы с расширением *.ora, имя которых начинается с символов PWD.
Например: PWDXE.ora

Путь: C:\oraclexe\app\oracle\product\11.2.0\server\database

Файл паролей *.ora

Итак, для сохранения, архивирования или бэкапа базы данных Oracle Database, копии именно указанных групп файлов следует создавать, а это:

  • *.DBF – файлы данных, табличных пространств и управляющие файлы базы данных. Расположены:
    C:\oraclexe\app\oracle\oradata\XE
  • *.ora – файлы конфигурации базы данных и файлы паролей.
    Файлы конфигурации:
    C:\oraclexe\app\oracle\product\11.2.0\server\dbs
    Файлы паролей (PW…ora):
    C:\oraclexe\app\oracle\product\11.2.0\server\database
  • *.LOG – файлы журналов транзакций:
    C:\oraclexe\app\oracle\fast_recovery_area\XE\ONLINELOG

где, ХЕ – это название базы данных в нашем случае.

Резервная копия базы данных Oracle Database

Резервную копию базы данных Oracle Database можно создать двумя способами:

  • Архивации средствами операционной системы.
  • Используя встроенные инструменты Oracle Application Express – Import / Export.

Архивация средствами операционной системы

  • Файлы табличных пространств.
  • Управляющие файлы.
  • Файлы журналов транзакций.
  • Файлы конфигурации.

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

Для восстановления поврежденной при сбое базы данных, её необходимо остановить и переписать резервные копии рабочих файлов и журналов транзакций на прежнее место.

Архивация и восстановление при помощи инструментов Export / Import

Архивацию и восстановление базы данных Oracle Database можно производить с помощью стандартных механизмов Экспорта и Импорта в Oracle. Для повышения надежности сохранности данных необходимо периодически, в зависимости от интенсивности работы с базой, производить полный экспорт. При достаточно интенсивном внесении изменений в данные, необходимо делать экспорт один раз в неделю.

Откройте Oracle Application Express и выберите меню Application Builder / Export

Откройте Oracle Application Express

Укажите тип экспорта: рабочее пространство полностью или одну из его составляющих

Oracle Application Express: Укажите тип экспорта

Установите формат файла для экспорта данных и нажмите кнопку Export Workspace (справа)

Oracle Application Express: Установите формат файла для экспорта

После указания места сохранения файла экспорта данных, они будут сохранены в SQL-файле.

Импорт файла, созданного раннее архива, осуществляется аналогичным образом:

Откройте Oracle Application Express и выберите меню Application Builder / Import

Oracle Application Express: Импорт файла архива

Выберите файл для импорта и укажите его тип

Резервное копирования и восстановление данных базы Oracle Database

Установите импортированную базу данных

Oracle Application Express: Выберите файл для импорта и укажите его тип

Восстановление утерянной базы данных Oracle Database

Запустите Hetman Partition Recovery и проанализируйте с её помощью диск на котором находилась база данных

Hetman Partition Recovery. Тип анализа

Дождитесь окончания процесса анализа и перейдите с помощью программы в папку с необходимыми файлами базы Oracle Database

Hetman Partition Recovery: Дождитесь окончания процесса анализа и перейдите с помощью программы в папку с необходимыми файлами базы Oracle Database

Hetman Partition Recovery. Восстановить

Замените файлы базы Oracle Database на восстановленные.

Для примера, восстановления файлов базы данных описан процесс восстановления файлов *.DBF. Но учтите, что для восстановления всех данных работоспособной базы, также необходимо восстановить соответствующие *.ORA и *.LOG файлы.

Резервирование и восстановление базы данных с помощью Oracle Recovery Manager (RMAN)

Oracle Recovery Manager (RMAN) – это ещё один инструмент создания резервной копии базы данных Oracle Database. Отличается он от других инструментов тем, что с его помощью создаётся полная копия всей базы данных, а не только данных из неё. А также, что немаловажно, Oracle Recovery Manager совмещает в себе функциональность SQL Command Line одновременно освобождая пользователя от полной зависимости от её команд. Устанавливается данный инструмент на компьютер одновременно и вместе с установкой Oracle Database.

Чтобы создать резервную копию базы с помощью Oracle Recovery Manager (RMAN):

Запустите файл Backup.bat в папке
C:\oraclexe\app\oracle\product\11.2.0\server\bin

C - oraclexe - app - oracle - product - 11.2.0 - server - bin

или выберите Backup Database среди приложений в меню Пуск

Пуск: Backup Database

Дождитесь окончания выполнения бэкапа базы данных инструментом RMAN

Дождитесь окончания выполнения бэкапа базы данных инструментом RMAN

В результате в папке с названием даты создания резервной копии базы будет создан файл бэкапа с расширением *.BKP

В результате будет создан файл бэкапа с расширением *.BKP

Чтобы восстановить базу данных из резервной копии базы с помощью Oracle Recovery Manager (RMAN):

Запустите файл Restore.bat в папке
C:\oraclexe\app\oracle\product\11.2.0\server\bin

C - oraclexe - app - oracle - product - 11.2.0 - server - bin

или выберите Restore Database среди приложений в меню Пуск

Пуск: Restore Database

Дождитесь окончания выполнения базы данных из созданного раннее бэкапа инструментом RMAN

Дождитесь окончания выполнения базы данных из созданного раннее бэкапа инструментом RMAN

К слову, в случае утери или удаления файла бэкапа базы данных Oracle Database, *.BKP файл бэкапа можно также восстановить с помощью Hetman Partition Recovery, после чего восстановить описанным выше способом в базе данных используя Oracle Recovery Manager (RMAN).

Hetman Partition Recovery. Восстановить

Vladimir Mareev

Автор: Vladimir Mareev, Технический писатель

Владимир Мареев - автор и переводчик технических текстов в компании Hetman Software. Имеет тринадцатилетний опыт в области разработки программного обеспечения для восстановления данных, который помогает ему создавать понятные статьи для блога компании. Спектр публикаций довольно широк и не ограничивается только лишь темой программирования. Статьи включают также разнообразные обзоры новинок рынка компьютерных устройств, популярных операционных систем, руководства по использованию распространенных и специфических программ, примеры решений возникающих системных или аппаратных проблем и многие другие виды публикаций. Подробнее

Экспорт данных из Oracle в файл (sqlplus)

Инструкция по реализации экспорта данных из таблицы Oracle в файл на shell (windows cmd) или на bash для unix-систем.

Используется стандартный интерпритатор SQLPlus, которого вполне достаточно для организации регулярных выгрузок в txt, csv файл.

1) Создаем SQL файл с именем export_items, где описываем что и откуда выбираем в SELECT и в какой файл записываем.

SET PAGESIZE 50 - через каждые N строк будет показан header с именами полей. Для импорта в текстовый файл или csv категорически не подходит, рекомендую ставить 0

SET LINESIZE 50 - количество символов в строке. По достижению установленного количества - оставшаяся часть будет переброщена на новую строку.

SET TRIMSPOOL ON - удаляет пробелы в конце строки в файле вывода. Например значение содержит 20 символов, LINESIZE=50, будет обрезано 30 пробелов

SET TRIMOUT ON - удаляет пробелы в конце строки при выводе. Например значение содержит 20 символов, LINESIZE=50, будет обрезано 30 пробелов в файле вывода.

SET FEEDBACK OFF - отключает вывод ифнормационной строки с числом выбранных запросом строк. Например: "25 rows selected" в конце вывода в консоль.

  1. Какие два метода управления undo-пространством Вы знаете?
  2. Какой метод управления undo-пространством использовать предпочтительнее?
  3. Для каких целей используется undo-пространство?

Сегодня мы начнем такую важную тему как управление данными. Базы данных не должны быть замкнутыми системами, всегда есть необходимость загрузить какой-либо готовый справочник или осуществить обмен информацией. Для этого Oracle предоставляет несколько стандартных, достаточно мощных средств. Ими являются:

  • Export – Сохраняет данные и их структуру во внешний бинарный файл. Созданный таким образом файл можно прочитать лишь с помощью утилиты Import;
  • Import – Воссоздает данные и их структуру из выбранного бинарного файла экспорта;
  • SQL * Loader – Это очень гибкий инструмент, с помощью которого можно загрузить данные из обычных текстовых файлов в БД Oracle .

Использование инструментов Export и Import

Итак, Export предназначен для записи описаний объектов БД и собственно самих данных во внешний бинарный файл. Такой файл называют файлом экспорта. Файл экспорта может быть использован только утилитой Import .

Для чего же необходимо создавать файл экспорта? Причины могут возникнуть следующие:

  • Создание резервной копии БД. Надо заметить, однако, что это не самый эффективный механизм.
  • Пересоздание базы данных. Если фрагментация табличных пространств заметно снижает производительность, то можно воспользоваться инструментами экспорта и импорта для дефрагментации.
  • Перемещение данных между различными БД. Вы можете извлечь данные в файл экспорта, а затем импортировать их в другую базу данных. Это великолепный способ для переноса таблиц.
  • Реорганизация физической структуры. Если Вам необходимо переместить файлы данных по другим директориям или изменить их состав (и тому подобное), опять же можно воспользоваться экспортом и импортом. К примеру, можно сделать файл экспорта, создать новые табличные пространства и воспользоваться импортом для перераспределения данных.

Как видите, причин достаточно.

Export

Инструмент Oracle Export utility записывает описание объектов и табличные данные в бинарный файл. Эта информация может быть использована для обмена данными между базами данных на нескольких физических серверах или как дополняющий механизм резервного копирования.

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

Также, файл экспорта можно использовать для реорганизации данных. Обычно при резервном копировании сохраняются образы файлов данных (т.е. их буквальная копия), и для восстановления требуется только скопировать эти образы обратно. Но поскольку Export записывает информацию в файл экспорта, то при импорте нет необходимости помещать данные в точности в то же место на диске. Это дает нам возможность уменьшить фрагментацию и избавиться от миграции строк.

Замечание: Прежде чем использовать Export или Import , необходимо выполнить (один раз) скрипт CATEXP.SQL. Если Вы создавали типовую базу данных, то скрипт CATALOG . SQL (выполняемый при создании БД) автоматически выполнит CATEXP.SQL.

Как и любой другой инструмент Oracle, Export можно использовать в графическом режиме (применяя Enterprise Manager ) и в командной строке. Думаю, в графическом режиме особых проблем не возникнет. Единственное что требуется – это предустановленный OMS (Oracle Management Server – создание репозитория кратко было рассмотрено в 10-м выпуске). Мы же рассмотрим более подробно работу с командной строкой.

Наверное, я не открою большого секрета, если скажу, что в графическом режиме используется та же самая утилита, как и в командной строке. Наименование файла – EXP (хотя в версиях Oracle 8 и младше он может называться по-другому, например, EXP 80).

Экспорт работает в нескольких режимах. Рассмотрим основные:

  • Full – В этом режиме экспортируются все объекты и данные за исключением схемы SYS . Причина этого проста – схема SYS и ее объекты всегда автоматически создаются при создании БД (Поэтому не рекомендуется хранить пользовательские данные в этой схеме).
  • Table – В этом режиме можно указать конкретные объекты для экспорта.
  • User – Этот режим предназначен для экспортирования всех объектов указанной схемы (включая таблицы, данные, права и индексы).

Для выполнения экспорта используется следующий синтаксис:

EXP имя/пароль [ опции … ]

Когда используется много параметров и настроек, удобно их вынести в отдельный файл. Тогда синтаксис команды будет такой:

EXP имя/пароль PARFILE =имя_файла [ опции … ]

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

Полезно знать следующие параметры экспорта:

Вот пример файла параметров:

Если параметров не указано совсем, то exp попросит указать их в интерактивном режиме, например:

В интерактивном режиме вопросов достаточно много, поэтому если нет желания заполнять длинную анкету, то лучше составить файл параметров.

Import

Инструмент Oracle Import предназначен только для одного – загрузить данные файла экспорта в базу данных Oracle . Если Вы желаете загрузить данные из других источников (не из файла экспорта Oracle), то следует пользоваться иным инструментом – SQL*Loader .

Точно также как и экспорт, импорт может быть выполнен в графическом режиме OEM, или в командной строке. Графический режим в силу его очевидности рассматривать не будем. Для работы в командной строке используется утилита IMP. Инструмент импорта имеет много параметров, схожих с параметрами экспорта. Мы рассмотрим основные из них, а для более детальной информации обращайтесь к официальной документации.

Для выполнения импорта используется следующий синтаксис:

IMP имя/пароль [ опции … ]

Так же как и при экспорте, можно указать файл параметров:

IMP имя/пароль PARFILE =имя_файла [ опции … ]

Далее перечислены основные параметры импорта:

Пример файла параметров импорта:

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

Подведем итоги

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

Но, как и с любым другим инструментом, следует соблюдать осторожность, иначе можно пораниться. Особенно это касается импорта, поскольку он оказывает непосредственное воздействие на БД. Прежде чем сделать решающий импорт, протестируйте его на резервной копии или с помощью параметра SHOW .

Читайте также: