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

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

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

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

Для случаев, когда перенос с помощью backup / restore невозможен, вместе с db2move используется db2look .
...
Рейтинг: 0 / 0
13.01.2009, 12:00
    #35754400
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
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
14.01.2009, 20:00
    #35758135
iv_va
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
Огромное СПАСИБО
...
Рейтинг: 0 / 0
15.01.2009, 18:51
    #35760064
ARIST_A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
Vladimir Kiseleviv_va,

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

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

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

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

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

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

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

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

Трудоёмкость трудоёмкостью, но DB2-то они сделали, а это не в пример труднее.
...
Рейтинг: 0 / 0
26.08.2009, 14:18
    #36164041
Arman Baibmekov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
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
27.08.2009, 10:04
    #36165400
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
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
27.08.2009, 12:48
    #36165900
Arman Baibmekov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
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
27.08.2009, 13:20
    #36166039
Arman Baibmekov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
Иеще я сделал не 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
04.09.2009, 10:19
    #36178332
Arman Baibmekov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
с кодировкой разобралсья
остались таблицы с xml
...
Рейтинг: 0 / 0
04.09.2009, 10:34
    #36178371
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 перенос даных
Arman Baibmekov,

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

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


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