Вопросы по DB2

User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Вопросы по DB2

Post by Dmitry67 »

Как это устроено или где это почитать ?
Может какая публичная документация в сети есть
Вопросы примерно такие

Есть ли disaster recovery и как устроено
Виды backups - обычные, transaction logs, differential ?
Возможность на одном сервере вести несколько баз
Если такое есть то возможность обращаться к ним из одной квери
Возможность организации linked servers, есть есть доступа к внешним серверам
Есть ли какие либо аналоги Oracle snapshot и flashback query ?

Спасибо
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Re: Вопросы по DB2

Post by zVlad »

Dmitry67 wrote:Как это устроено или где это почитать ?
Может какая публичная документация в сети есть
Вопросы примерно такие

Есть ли disaster recovery и как устроено
Виды backups - обычные, transaction logs, differential ?
Возможность на одном сервере вести несколько баз
Если такое есть то возможность обращаться к ним из одной квери
Возможность организации linked servers, есть есть доступа к внешним серверам
Есть ли какие либо аналоги Oracle snapshot и flashback query ?

Спасибо


IBM publications on DB2 could be found here:

http://www-3.ibm.com/software/data/pubs/

Briefly answering:

1. Yes. Wonderful. One doesn't need more than actually exists.

2. Backups in DB2 is implemented with utility COPY.

"There are two types of image copies:

A full image copy is a copy of all pages in a table space, partition, data set, or index space.
An incremental image copy is a copy only of pages that have been modified since the last use of the COPY utility."

Also:

"SHRLEVEL Indicates whether other programs can access or update the table space or index while COPY is running.

REFERENCE Allows read-only access by other programs.
The default is REFERENCE.
CHANGE Allows other programs to change the table space or index space.

3. One can create several data bases in one instance and/or several instances in one system (server).

4. Yes.

5. Yes.

6 No. But could be simulated by recovery to point in time.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Спасибо

Вот чего я не понял

1 Каким образом COPY делает backup consistent если он делается во время работы ?
2 disaster recovery делается с помощью дифференциальных backups ?
Если у меня на сервере две базы, baseA и baseB, то можно ли к ним образаться наподобии SQL servera, например так

select * from baseA..Table1 iiner join baseB..Table2 on ....
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Post by zVlad »

1. Dmitry67 wrote: “1 Каким образом COPY делает backup consistent если он делается во время работы ?” – backup could be (in most cases it is) inconsistent. But, it doesn’t’ mean that recovered database will be in inconsistent status just because after recovery done forward to consistent status will be performed.
2. For recovery, one full backup would be used and sequence of incremental backups (if needed). Without full backup it is impossible to recover data base.

It depended on what level of DRDA (Distributed Relational Database Architecture) protocol you are using. Different levels provide different options to run distributed queries. There is a level of DRDA which allows to run queries like:

select * from baseA..Table1 iiner join baseB..Table2 on .

DB2 version, I am working on now, doesn’t have that level of DRDA (or it needs to be configured somehow. I didn’t look at it because there was no need.) and that query is impossible for that.
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:Спасибо

Вот чего я не понял

......
2 disaster recovery делается с помощью дифференциальных backups ?

....


I might misunderstand what you are talking about here.
What I explained before is a standalone recovery: we lost production, and we lost disaster recovery database, and we want to restore it from backups. I realized that you might want to know how DB2 can provide dynamicaly upgraded Disaster Recovery database?

I never heard about using incremental backups to update disaster recovery database. For this scenario, you will probably need to deliver at DR site not only incremental backups but also DB2 catalog (also incremental? maybe) backups, some BSDS files, and some subset of archive logs. Then you will have to recover DB2 catalog, restore BSDS files, apply incremental backups to consistent point in time (checkpoint) using archive logs, rebuild indexes. It is a pain, but still possible. Other approaches could also exist.

DR Database could be maintained with replication software like DB2 DataPropogator (or any other ISV like BMC) in real time, or deffered. In this case, DR database could be available in RW mode at any time. Or you can create a member in Data Sharing group with RO access, in order to make sure your DR database cannot be changed. Last option is available on mainframe only (I guess).

Or (like what we do in our company) one you mirror disks to another site, and in case of disaster boot system from those mirrored disks. Disks, we are using - EMC and IBM Shark, have options for mirroring. In case of IBM Shark this option is supported in DB2 as well. IBM Shark together with DB2 can make snapshoots (I'm not an expert here.)
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Спасибо, zVlad.
Я правильно понимаю что в DB2 нет то что называется (transaction) log backups или они назваются дифференциальными ?

Про остальное поищу в интернете
А вот такой вопрос: есть ли как у Оракла какая то evaluation верися которую можно поставить на NT ? Насколько это сложно ?

Спасибо
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

http://www7b.software.ibm.com/dmdd/libr ... right.html

Вот нарыл вроде хорошая статья
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Почитал
Остался главный вопрос (zVlad - у вас наверное дока есть там)

можно ли делать readonly запросы к базе которая в "rollforward pending state"
видимо нет.
Видимо чтобы с базой можно было работать надо делать rollforward and stop
но того делается rollback последний логам транзакций которые еще незакончились
Значит, после rollforward and stop к полученной базе новые логи применить уже будет нельзя.
Увы
С другой стороны есть поция rollforward online, но не могу точно понять что она означает
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:Спасибо, zVlad.
Я правильно понимаю что в DB2 нет то что называется (transaction) log backups или они назваются дифференциальными ?

Про остальное поищу в интернете
А вот такой вопрос: есть ли как у Оракла какая то evaluation верися которую можно поставить на NT ? Насколько это сложно ?

Спасибо


Вы знаете, Dmitry67, мне бы не хотелось ввязываться в безперспективную гонку сравнения функционалов не назвав проблемы, которую эти функционалы призваны решать. Это потому что я глубоко убежден, что не каждому функционалу можно поставить в соответствие реальную (не надуманую) проблему. Более того, одна и таже проблема может быть решена разными средствами. И не обязательно проблема РБД должна решаться строго средствами РБД - решение может быть в операционной системе. Оракл отличается тем, что его девелоперы не могут добавлять произвольно в ОС поддержку для РБД, поэтому у Оракла и есть так много (порой бессмысленных) названий и функций.

Назовите проблему и я постараюсь объяснить как эта проблема решается в случае DB2.

Посмотрите здесь что доступно для "попробовать" в смысле DB2 вообще:

http://www14.software.ibm.com/webapp/do ... t=database


Собственно DB2 UDB можно скачать здесь:

http://www14.software.ibm.com/webapp/do ... DUN-49EVGU

К сожалению требует регистрации, но к счастью не навязчивой.

Успехов. Держи в курсе проблем и достижений. Так же хочу посоветовать QMF (Query Management Facility):

http://www-3.ibm.com/software/data/qmf/

cкачивается здесь:

http://www14.software.ibm.com/webapp/do ... &rs=qmfwin

Этот парень сделан по идеологии давно существующего продукта QMF для мэйнфрэйм, тесно с ними интегрирован, но существенно усилен возможностями современного GUI на ПК.
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:Почитал
Остался главный вопрос (zVlad - у вас наверное дока есть там)

можно ли делать readonly запросы к базе которая в "rollforward pending state"
видимо нет.
Видимо чтобы с базой можно было работать надо делать rollforward and stop
но того делается rollback последний логам транзакций которые еще незакончились
Значит, после rollforward and stop к полученной базе новые логи применить уже будет нельзя.
Увы
С другой стороны есть поция rollforward online, но не могу точно понять что она означает


Вы знаете, Dmitry67, мне кажется я понял Вашу проблему (почитав также смежный топик об Оракл). Вы ошибочно путаете DR и базу для продуцирования отчетов, ad hoc, BI и т.п.. DR база существует и должна существовать лишь для того, чтобы в случае потери продакш быстро восстановить работу с минимальными потерями - которые неизбежны. У нас (как я уже говорил) DR - это зеркало всех дисков продакшн систем. И это зеркало (в нормальном режиме) не доступно никакой системе вообще. Лишь когда мы потеряем продакшн систему мы загрузимся с зеркала на DR site и восстановим service.

База же данных для того что Вы хотите может быть построена различными способами и не обязана точно соответствовать продакшн. Точное соответсвие токой базы продакшн - это лишь один - не самый оптимальный - способ. Это может быть warehouse держащий интегрированную информация для анализов. Это могут быть материализованные view в самой продакшн, или таблицы с интегрированной информацией (сумма по счету) обеспеченные триггерами. И много других способов. Специально для мэйнфрэйм и DB2 можно назвать Data Sharing, когда много member-ов (DB2) имеют доступ к одной и той же базе, но какие-то с RW, а другие с RO.

Простая реплика продакшн - лишь на первый взгляд удобна.....
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Я не могу полностью описать задачу потому что это коммерческая тайна
Но проблема в том что сайт построения отчетов во первых может находится далеко
Вот вторых на гавной базе итем очень большая OLTP активность
И третье - для этих отчетов КРАЙНЕ важна согласованность. Более того, она важна на определенное время - на некое условное начало дня. То есть надо гонять отчеты по той базу которая была давно утром
Какое средство бы Вы посоветовали в такой ситуации ?
P.S. Главную базу сильно трогать нельзя, то есть менять структуру чтобы вести верии строк и даты модификации - не катит.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
SiarheiH
Уже с Приветом
Posts: 297
Joined: 21 Mar 2002 10:01
Location: Minsk, BY -> central NJ

Post by SiarheiH »

Если у меня на сервере две базы, baseA и baseB, то можно ли к ним образаться наподобии SQL servera, например так

select * from baseA..Table1 iiner join baseB..Table2 on ....


Для этих целей можно попробовать использовать DB2 Data Joiner, при его помощи можно делать доступ к federated data.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

SiarheiH wrote:
Если у меня на сервере две базы, baseA и baseB, то можно ли к ним образаться наподобии SQL servera, например так

select * from baseA..Table1 iiner join baseB..Table2 on ....


Для этих целей можно попробовать использовать DB2 Data Joiner, при его помощи можно делать доступ к federated data.


Спасибо
Сейчас по ключевым словам посмотрю

P.S.
А я Вас не помню
Неужели в полку DB2 Прибавление ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15311
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:Я не могу полностью описать задачу потому что это коммерческая тайна
Но проблема в том что сайт построения отчетов во первых может находится далеко
Вот вторых на гавной базе итем очень большая OLTP активность
И третье - для этих отчетов КРАЙНЕ важна согласованность. Более того, она важна на определенное время - на некое условное начало дня. То есть надо гонять отчеты по той базу которая была давно утром
Какое средство бы Вы посоветовали в такой ситуации ?
P.S. Главную базу сильно трогать нельзя, то есть менять структуру чтобы вести верии строк и даты модификации - не катит.


Unfortunately (or fortunately), I'm not working for DB2 UDB (Unix, Windows). All I tell you is related to DB2 for mainframes, and I doubt that you even think to consider mainframe for your data management needs.

You'd better have a look at DB2 UDB:

http://www-3.ibm.com/cgi-bin/db2www/dat ... 2w/en_main

Specifically on docs:

Replication Guide and Reference
Data Recovery and High Availability Guide and Reference

-------------------------------------------------------------------------------------------------------------------
Regarding DB2 on mainframe I can tell you that since ver. 6 there is a technology when IBM Shark disks and DB2 working together can create snapshot (just in one in 1-2 seconds). In order to support it DB2 has command:

SET LOG SUSPEND:

# Specifies to suspend logging and update activity for the current DB2
# subsystem until SET LOG RESUME is issued. DB2 externalizes unwritten
# log buffers, takes a system checkpoint (in non-data sharing
# environments), updates the BSDS with the high-written RBA, then
# suspends the update activity. Message DSNJ372I is issued and remains
# on the console until update activity resumes.

Where:

# DSNJ372I csect-name UPDATE ACTIVITY HAS BEEN SUSPENDED FOR xxxx AT RBA yyyyyyyyyyyy, PRIOR CHECKPOINT RBA zzzzzzzzzzzz

# Explanation: This message indicates that the -SET LOG command with the
# SUSPEND option has completed successfully.
# System Action: All log and database update activity has been suspended
# for DB2 subsystem xxxx. yyyyyyyyyyyy contains the RBA of the last record
# written to the log. zzzzzzzzzzzz contains the RBA of the last system
# checkpoint.
# Operator Response: Issue the -SET LOG command with the RESUME keyword
# when ready to resume update activity.


After this we can tell something to IBM Shark, and IBM Shark will create snapshot of whole database at this moment. To resume processing on DB2 we issue:

SET LOG RESUME:

# Specifies to resume logging and update activity for the current DB2
# subsystem and remove the message DSNJ372I from the console.

Version 8 DB2 for zOS has BACKUP SYSTEM utility which ".....provides fast volume-level copies of DB2 databases and logs. It relies on new DFSMShsm services in z/OS .... that automatically keep track of the volumes thet need to be copied. BACKUP SYSTEM is less disruptive than using the SET LOG SUSPEND command for copy procedures...."
"The RESTORE SYSTEM utility recovers a DB2 system to an arbitrary point in time. RESTORE SYSTEM automatically handles any creates, drops, and LOG NO events that might have occured between the backup and the recovery point in time."
User avatar
SGA
Posts: 14
Joined: 02 Apr 2003 18:59
Location: MA

Post by SGA »

Dmitry67 wrote:Но проблема в том что сайт построения отчетов во первых может находится далеко
Вот вторых на гавной базе итем очень большая OLTP активность
И третье - для этих отчетов КРАЙНЕ важна согласованность. Более того, она важна на определенное время - на некое условное начало дня. То есть надо гонять отчеты по той базу которая была давно утром
Какое средство бы Вы посоветовали в такой ситуации ?
P.S. Главную базу сильно трогать нельзя, то есть менять структуру чтобы вести верии строк и даты модификации - не катит.



Dmitry,
Судя по всему Вы пытаетесь воплотить стандартную связку
OLTP->Replication->DataMart
DB2 Replication создаст несколько новых служебных таблиц в обоих
базах и добавит 3 колонки в replication tables.
Входит ли это в критерий "сильно трогать нельзя"?
SiarheiH
Уже с Приветом
Posts: 297
Joined: 21 Mar 2002 10:01
Location: Minsk, BY -> central NJ

Post by SiarheiH »

P.S.
А я Вас не помню
Неужели в полку DB2 Прибавление ?


Можно сказать и прибавление, я уже давно занимаюсь DB2, правда в основном со стороны девелоперов.
Здесь на форуме как-то мало обитал, сейчас занялся плотнее. :)

Return to “Вопросы и новости IT”