Дамп SQL из DB2

Я пытаюсь сбросить содержимое определенной схемы на одном сервере IBM DB2 UDB в текстовый файл sql (так же, как функциональность mysqldump mysql).

я наткнулся на db2look, но он только сбрасывает структуру схемы (только ddl, без dml).

Итак, как я могу сделать свое дело?

jrh.

5 ответов


можно использовать SQquirreL, клиент SQL, реализованный на Java,для этого. В его дереве " объекты "вы бы выбрали все нужные таблицы и выберите" Скрипты > создать скрипт данных " из контекстного меню.


то, что вы ищете-это db2move. Для конкретной схемы вы должны использовать переключатель "sn".

Так, например, для экспорта данных:

db2move [your_db_name] EXPORT -sn [your_schema_name]

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

Если db2move не совсем то, что вам нужно, вы можете просмотреть таблицу параметры перемещения данных доступны в DB2.


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

фактически, вы можете генерировать операторы the на основе метаданных из SYSCAT.TABLES

экспорт

   SELECT 'EXPORT TO /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS TO /usr/data/SCHEMA/lbos/ MODIFIED BY LOBSINFILE SELECT * FROM SCHEMA.' || TABNAME || ';'
     FROM SYSCAT.TABLES
    WHERE TABSCHEMA = 'SCHEMA'
 ORDER BY TABNAME

импорт

   SELECT 'IMPORT FROM /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS FROM /usr/data/SCHEMA/lobs/ MODIFIED BY LOBSINFILE INSERT INTO SCHEMA.' || TABNAME || ';'
     FROM SYSCAT.TABLES
    WHERE TABSCHEMA = 'SCHEMA'
 ORDER BY TABNAME

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


для импорта небольшая настройка для использования нагрузки помогает избежать отклонения строк.

db2-x "выберите" Загрузить из /usr/data/SCHEMA/ ' | | TABNAME||'.ixf все из ixf все посылает из /usr/данных/схемы/ изменены identityoverride вставить в CFEXT.'//TABNAME||'; 'ИЗ SYSCAT.Таблицы, где TABSCHEMA = 'CFEXT' порядок по имени табуляции " > / tmp / db2cfeimport.в SQL


схема Db2 со всей резервной копией DDL:

У меня есть команда ниже, она работала для меня, чтобы экспортировать все DDL.

db2look -d CusDb -x -e -z CusSchema -o OutputFile

синтаксис : db2look-D DbName - X-e-z SchemaName-o OutputFile_name