Дамп SQL из DB2 - PullRequest
       31

Дамп SQL из DB2

9 голосов
/ 29 мая 2009

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

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

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

JRH.

Ответы [ 5 ]

10 голосов
/ 29 мая 2009

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

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

db2move [your_db_name] EXPORT -sn [your_schema_name]

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

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

5 голосов
/ 29 мая 2009

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

2 голосов
/ 29 мая 2009

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

Фактически вы можете генерировать операторы на основе метаданных из 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, хотя могу ошибаться.)

1 голос
/ 14 декабря 2017

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

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

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

Синтаксис: db2look -d DbName -x -e -z Имя схемы -o -o Выходное имя_файла

0 голосов
/ 11 июня 2016

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

db2 -x "ВЫБРАТЬ" загрузить ИЗ / usr / data / SCHEMA / '|| TABNAME ||' .ixf из IXF LOBS ИЗ / usr / data / SCHEMA / ИЗМЕНЕНО ИДЕНТИФИКАТОРАМИ INSERT INTO CFEXT. ' || TABNAME || ';' ИЗ SYSCAT.TABLES ГДЕ TABSCHEMA = 'CFEXT' ЗАКАЗАТЬ ПО TABNAME "> /tmp/db2cfeimport.sql

...