powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 перенос даных
17 сообщений из 17, страница 1 из 1
DB2 перенос даных
    #35753354
iv_va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше не работал с DB2 потому вопрос может бить очень простой

У нас два сервера баз даних DB2 v9 Один на виндовс другой на линуксе
Задача следущая нужно перенести структуру и даные с одного сервера на другой Чем попроще

Использовал backup на линуксовай машине и когда запускал на виндовой ругаеться "у вас другая ОС"
Севодня пробывал Replication center Все как написано в примере На промежуточном етапе выдаеться ошибка

СПАСИБО
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35753733
ARIST_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрите на db2move
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35754027
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_va,

Для случаев, когда перенос с помощью backup / restore невозможен, вместе с db2move используется db2look .
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35754400
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_va,

надо бы статью написать, но пока некогда, вот пример переноса с винды32 на линукс64, в Вашем случае наоборот, но это почти не важно. Все переносы, которые я делал, это Win32->Linux64, Linux64->AIX64, всё делалось именно по этой схеме:

Миграция ALIAS с Windows32 на Linux64, схема SCHEMA.

1. Создание структуры БД с помощью db2look:
db2look -d ALIAS -e -td @ -a -o alias.cp@

ALIAS – алиас исходной БД
-td @ - терминальный символ @, поскольку структура содержит триггеры и т.п.

2. Экспорт таблиц БД:
db2move ALIAS EXPORT

ALIAS – алиас БД

3. Перемещение полученных данных на Linux64 сервер

После перемещения все текстовые файлы обработаны командой dos2unix!

4. Создание БД на Linux64:

db2 drop database ALIAS
db2 create database ALIAS USING CODESET 1251 TERRITORY ru
db2 connect reset

5. Восстановление структуры БД

db2 –td@ -vf alias.cp@ -z alias.out >/dev/null

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

diff –Bb alias.out_3 alias.out_4
здесь alias.out_3 и alias.out_4 логи от 3 и 4 раза запуска скрипта восстановления alias.cp@

На самом деле можно просто перенести описание функций и ХП перед описанием VIEW. Но это у кого как, в моём случае работает.

6. Загрузка данных в таблицы БД:

db2move ALIAS load

ошибки при загрузке можно найти в файле LOAD.out и соответствующих tabx.msg файлах, которые создаются для каждой таблицы.

7. Восстановление связей.
7.1. Создание скрипта для восстановления:

CONNECT TO ALIAS;
SELECT ‘SET INTEGRITY FOR SCHEMA.’ || TABNAME || ‘IMMEDIATE CHECKED;’ FROM SYSCAT.TABLES WHERE TABSCHEMA=’SCHEMA’ AND TYPE=’T’;
CONNECT RESET;

Вывод сохраняем в файл restore.cpl, затем редактируем его, удаляя лишнюю информацию.

7.2. Запуск скрипта восстановления:

db2 -tvf restore.cpl

7.3. Проверка восстановления целостности:

db2 –tvf control.cpl

Текст срипта control.cpl:

CONNECT TO ALIAS;

SELECT TABNAME,ACCESS_MODE,
SUBSTR(CONST_CHECKED,1,1) AS FK_CHECED,
SUBSTR(CONST_CHECKED,2,1) AS CC_CHECED,
SUBSTR(CONST_CHECKED,5,1) AS MQT_CHECED,
SUBSTR(CONST_CHECKED,6,1) AS GC_CHECED,
SUBSTR(CONST_CHECKED,7,1) AS STG_CHECED,
SUBSTR(CONST_CHECKED,8,1) AS DP_CHECED
FROM SYSCAT.TABLES
WHERE TABSCHEMA=’SCHEMA’ AND TYPE=’T’ AND ACCESS_MODE != ‘F’;

CONNECT RESET;

Для простоты можно объединить вызов 7.2 и 7.3 в одном командном файле.

8. Компилируем UDF, ХП на сервере.
9. Связываем пакеты с клиентской машины с серверной базой.
10. Запускаем клиентское ПО, всё ок.
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35758135
iv_va
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное СПАСИБО
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35760064
ARIST_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Kiseleviv_va,

надо бы статью написать
Ну так и напишите. https://www.ibm.com/developerworks/secure/myideas.jsp?start=true&domain=dwrussia&domain=dwrussia
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35760188
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то я делал то же, что и Владимир Киселёв, но всегда считал это неправильным.

На самом деле нам надо правильную утилиту (которая, по-хорошему, должна быть в поставке базы), что-то вроде смеси db2look и db2move, причём качественную - раскручивающую цепочку зависимостей и генерирующую скрипт с командами в правильном порядке.

Для себя я такую сделал; на входе она получает выражение (какие именно объекты нужно изменить; для переноса всей базы это выражение будет "true") и генерирует три скрипта - экспорт, удаление, создание/импорт. И теперь не могу нарадоваться, что её-таки сделал. Однако, к сожалению, она совсем не в том виде, чтобы ею делиться - начиная с того, что она работает внутри VisualWorks Smalltalk (и выражения пишутся на этом языке).

Однако советую поизучать Quest Central. У меня его давно уже нет, но я помню, создатели там тоже раскручивают цепочки зависимостей для изменения тех или иных объектов - так что, быть может, там есть команда и для генерации правильных скриптов для всей базы.
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35760217
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дерево зависимостей может быть очень запутанным. Суть же обработки проста. Я создаю объекты, используя информацию системного каталога, отфильтровываю по выражению и печатаю соотв. выражение в определённом порядке. У каждого объекта есть "родители" и "дети" (их класс неважен). Когда его обрабатываем, его родителей и/или детей также надо обрабатывать - порядок обхода зависит от того, что именно нужно. Для скрипта удаления выражения для "родителей" печатаются позже "детей" (если в отфильтрованном списке один объект, то в "убийстве" его "родителей" нет нужды - "убивается" только он и его "дети"). Для скрипта создания/импорта выражения для "родителей" печатаются раньше "детей" (если в отфильтрованном списке один объект, то родителей не "рожают" - только его и потом его "детей"). (И они помечаются, чтобы выражения не были выведены второй раз).

Так, пусть процедура P1 использует таблицу T1. T1 попадает в список "родителей" P1, P1 попадает в список "детей" T1. Если надо DROP P1, то перед этим надо DROP всех "детей" P1, т.е. DROP T1 и т.д. (у этих "детей" могут быть свои "дети" - их надо "убить" ещё раньше). Для CREATE же начинаем с "родителей", а "детей" потом.

Всё это банально (рекурсивный обход дерева), хотя и много мороки в подробностях.
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35761176
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa,

Смысл понятен, но написать такое, как Вы сами уже знаете достаточно сложно (впрочем, скорее трудоёмко), хотя, согласен, такой модуль был бы полезен если бы он входил в систему изначально, т.е. продукт от IBM, а не самописанный, поскольку структура системных таблиц также терпит изменения, увы :( А протолкнуть что то в IBM достаточно сложно, я думаю. Впрочем, если будет время и необходимость, кто знает. Спасибо за идею :)
...
Рейтинг: 0 / 0
DB2 перенос даных
    #35762505
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa
Если надо DROP P1, то перед этим надо DROP всех "детей" P1, т.е. DROP T1 и т.д.

Конечно, в примере имелось ввиду наоборот - сперва DROP P1, потом DROP T1, поскольку T1 не входит в список детей.

Трудоёмкость трудоёмкостью, но DB2-то они сделали, а это не в пример труднее.
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36164041
Arman Baibmekov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Kiselev,


Добрый день я не знаток DB2
но надо.
Вото теперь проблема появилась.
Необходимо перенсти базу с WinXP db2 v9.5 на Linux db2 v9.1.
Перерыл весь инет но не нашел нечего подходящего.
Если вам не трудно не могли ли вы мне помощь.
Я пыталсья сделать как вы написали но не получаетсья.

Когда пишу это
авторdb2look -d ALIAS -e -td @ -a -o alias.cp@
говарить что синтаксис неправильный.

Дальше на Linuxe
пишу это авторdb2 –td@ -vf alias.cp@ -z alias.out >/dev/null

не че непройсходит
пишу так db2 –tvf alias.cp@ -z alias.out
После Load
7.1 не получаетсья
а 7.2 нормально
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36165400
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arman BaibmekovVladimir Kiselev,
Необходимо перенсти базу с WinXP db2 v9.5 на Linux db2 v9.1.
Когда пишу это
авторdb2look -d ALIAS -e -td @ -a -o alias.cp@
говарить что синтаксис неправильный.


Честно говоря никогда проблем здесь не встречал. Может конкретно посмотреть, какую именно ошибку выдаёт эта команда? И как тогда понимать, что дальше Вы используете alias.cp@?


Дальше на Linuxe
пишу это авторdb2 –td@ -vf alias.cp@ -z alias.out >/dev/null

не че непройсходит
пишу так db2 –tvf alias.cp@ -z alias.out
После Load
7.1 не получаетсья
а 7.2 нормально

alias.cp@ содержит символ @ вместо ; поскольку у нас в базе есть триггеры, потому нельзя использовать ;
Если у Вас не получается 7.1, то как же тогда Вы выполняете 7.2?

Все пункты надо выполнять последовательно. Причём каждый должен быть выполнен успешно.
Перескакивать нельзя, иначе ничего не получится.
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36165900
Arman Baibmekov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Kiselev,
когда пишу это:
авторdb2 –td@ -vf alias.cp@ -z alias.out >/dev/null
нечего не пройсходит
alias.out не создаетсья

а насчет авторdb2look -d ALIAS -e -td @ -a -o alias.cp@
td @ должны писатсья с пробелом
а я писал вместе
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36166039
Arman Baibmekov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иеще я сделал не Load а Impot все как бы норма но
талы с xml не хотят импортироватсья
а те каторые импортировались показывает квадратики вместо рус букв

-- Using database D_LANGS

-- Using userid

-- Database Manager Version DB2/NT Version 9.5.0

-- Database Codepage 1208

-- Database Collating Sequence is IDENTITY
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36178332
Arman Baibmekov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с кодировкой разобралсья
остались таблицы с xml
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36178371
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arman Baibmekov,

С этим не могу помочь, пока что не используем xml
...
Рейтинг: 0 / 0
DB2 перенос даных
    #36180953
Arman Baibmekov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Kiselev,

спс вам огромное
я все сделал
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 перенос даных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]