У меня есть схема базы данных на сервере Oracle, установленном на машине Linux. Мне нужно экспортировать связанную с схемой информацию в файл дампа.
Как это сделать?
У меня есть схема базы данных на сервере Oracle, установленном на машине Linux. Мне нужно экспортировать связанную с схемой информацию в файл дампа.
Как это сделать?
Это зависит от какой версии Oracle? Для более старых версий требуется exp (экспорт), более новые версии используют expdp (data pump); exp был устаревшим, но он все еще работает большую часть времени.
Перед запуском обратите внимание, что Data Pump экспортируется в серверную "директорию" Oracle, которая является символическим местоположением Oracle, отображаемым в базе данных, в физическое местоположение. Может быть каталог по умолчанию (DATA_PUMP_DIR), проверьте, запросив DBA_DIRECTORIES:
SQL> select * from dba_directories;
... и если нет, создайте один
SQL> create directory DATA_PUMP_DIR as '/oracle/dumps';
SQL> grant all on directory DATA_PUMP_DIR to myuser; -- DBAs dont need this grant
Предполагая, что вы можете подключиться как пользователь SYSTEM или другой администратор базы данных, вы можете экспортировать любую схему, например, в каталог по умолчанию:
$ expdp system/manager schemas=user1 dumpfile=user1.dpdmp
Или указав конкретный каталог, добавьте directory=<directory name>
:
C:\> expdp system/manager schemas=user1 dumpfile=user1.dpdmp directory=DUMPDIR
С более старой утилитой экспорта вы можете экспортировать ее в рабочий каталог и даже на клиентскую машину, удаленную от сервера, используя:
$ exp system/manager owner=user1 file=user1.dmp
Убедитесь, что экспорт выполнен в правильной кодировке. Если вы не настроили свою среду, кодировка клиента Oracle может не соответствовать кодировке DB, и Oracle сделает преобразование набора символов, что может и не быть тем, что вы хотите. Вы увидите предупреждение, если это так, то вы захотите повторить экспорт после установки переменной среды NLS_LANG, чтобы клиентская кодировка соответствовала кодировке базы данных. Это заставит Oracle пропустить преобразование кодировки.
Пример для американского UTF8 (UNIX):
$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
Windows использует SET, например, используя японский UTF8:
C:\> set NLS_LANG=Japanese_Japan.AL32UTF8
Подробнее о Data Pump здесь: http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624