Ключевые слова:db2, sql, faq, database, (найти похожие документы)
From: "Nikolay A.Kulikov" <nick@itcenter.msk.ru>
Newsgroups: fido7.su.dbms.db2
Subject: DB2 FAQ для начинающих
DB2 FAQ для начинающих
Q1: 1. Что такое DB2?
Семейство СУБД от IBM.
Работающие на ограмном спектре современного аппаратного обеспечения
от карманных блокнотов (DB2 EveryWhere) до mainfraime (DB2 for OS/390) и
архитектур с массовым паралеизмом SPP. В поледнее время различные ветки
DB2, IBM сливает в одну по названием IBM DB2 Universal DataBase.
Q2: На каких платформах доступна DB2???
DB2 как сервер доступна на платформах:
OS/2, OS/390, OS/400, VSE, VM,
AIX, HP-UX, Sun Solaris (SPARC), SCO, DB2 for PTX (NUMA),
Windows NT, Windows 2000, Linux, Win95/98 PE
Как клиент добавляются IRIX, SINIX, MacOS, WinCE, PalmOS, Neutrino,
и для версии 1.* есть клиент для DOS.
Q3: Какие сетевые протоколы поддерживает DB2?
DB2 server поддерживает следующие сетевые протоколы
если их поддержка установлена в ОС. Один instance DB2
может обслуживать клиентов по нескольким протоколам.
Платф/Прот TCP/IP | SNA/APPC | NETBIOS | IPX/SPX | Named Pipes |
AIX X | X | | X | |
HP-UX X | X | | X | |
Solaris_SPARC X | X | | X | |
OS/2 X | X | X | X | X |
WinNT(x86) X | X | X | X | X |
SCO X | X | | X | |
Linux X | | | X | |
Q4: Где взять DB2???
Trial CDROM можно заказать на http://www.software.ibm.com/data/db2
Так же стоит полазить по ftp://ftp.software.ibm.com/ps/products/db2/
там можно найти fixpack и многое другое.
Q5: Где можно набраться по DB2???
http://www.software.ibm.com/data/db2http://www.ru.ibm.com/software/db2http://ourworld.compuserve.com/homepages/Graeme_Birchall/htm_cook.htm
Основная книга для изучения развитого языка запросов db2
http://www.adm.nso.ru/~toa/links.html
русский сервер с некоторой информацией по DB2
ttp://www.db2mag.com
DB2 magazine - можно бесплатно подписаться на журнал по db2
там публикуется достаточно большое количество интересной информации
так же имеет смысл обратить внимание на следующие news конференции
news.software.ibm.com.db2.v6beta
news.software.ibm.com.db2.eee
(тут можно еще написать news группы, но я их не помню)
www.techguide.com/dw/index.html
весьма любопытное место, где "зарождается" всякое (в т.ч. и что потом в
DB2
входит через несколько лет)
www.alphaworks.ibm.com
www.almaden.ibm.com/cs/k53/database.html
wwwqbic.almaden.ibm.com
Есть FAQ на
http://www.cyberramp.net/~tgg/webdata/webdata_faq.cgi?cgifunction=user
Сервис и супорт на www.software.ibm.com/data/db2/db2tech
VA с DB2 хорошая пара, а потому www7.software.ibm.com/vad.nsf - это
IBM VisualAge Developer Domain
www.developer.ibm.com/sdp/business/vadd.html
Subscription to VisualAge Developer Domain
VisualAge Object Connection Member Center
www.developer.ibm.com/pid_obj/ocwel.html
Выкладываются сорцы (free)
www.research.ibm.com/dx/download/index.html
официальный журнал www.db2mag.com/spring.htm
дока www.software.ibm.com/data/db2/library/publications
группа пользователей DB2 - IDUG (много всякого, форумы,
правда не очень...), но ссылок полезных и информации там
много
www.idug.org
Q6: Какие типы лицензии бывают на DB2?
Нижеописанное справедливо для Сommon Platform
Common Platform NOT IN ( OS/390, OS/400, VSE, VM )
Host System IN ( OS/390, OS/400, VSE, VM )
Количество лицензий регулируется юридическим
образом см. (Лицензионное соглашение с IBM)
DB2 CAE (client)(Client Application Enabler) - Клиент для доступа к
серверу DB2 идет в поставке любого db2 сервера,
является бесплатным
DB2 Workgroup Edition (we)- cервер для рабочих групп, стоит ~1200 ,
отличается от Enterprise Edition, тем что internet/intranet пользователь
равен простому пользователю (лицензия на пользователя порядка
200$), так же отсутствует
Personal Edition - локальный полнофункциональный сервер без
поддержки сетевых клиентов, является бесплатным. Доступен
под OS/2 и WinXX, Linux
Personal Developer Edition - есть бесплатный Personal Ed. с
дополнениями необходимыми для разработки.
Доступен под OS/2 и WinXX, Linux.
Enterprise Developer Edition - набор Personal, Workgroup и Enterprise
Ed.
DB2 Connect (conn)- cредство для связи с Host System, входит в DB2
UDB EE так же продается как отдельно.
DB2 Enterprise Edition (ee)- лицензирутся на количество процессоров, в
поставку входит DB2 Connect, также дает лицензию на неограниченное
количество internet/intranet пользователей
DB2 Extended Enterprise Edition (eee)- Версия DB2 для кластеров,
существует для AIX, NT, Sun Solaris
А9: На каких пратформах доступны Extenders
DB2 Extenders для os/2, nt, win95, win98, aix, hp-ux , solaris (sparc),
для
linux.
P.S. Покупка продуктов у IBM происходит за счет набора points
(points - некая у.е) В зависимости от кол-ва points вы попадаете
в определенную группу скидок.
A8: Существуют ли скидки для образовательных учереждений
Для вузов ее можно получить на www.software.ibm.com/data/highered
- если для преподавания, то вообще бесплатно, а если "для бугалтерии",
то там 60% скидка
/*Students can receive a free copy of DB2 Universal Database, either by
download,
or by requesting a free CD ROM */ - а приходит коробка DE.
DE можно заказать по инету. Если надо что-то из
DB2 Universal Database Extended Enterprise Edition for AIX, Solaris, or
Windows NT Version 6.1
DB2 Data Links Manager for AIX or Windows NT Version 6.1
DB2 Query Patroller for AIX, Solaris, or Windows NT Version 6.1
IBM DB2 Intelligent Miner for Text - Version 2.3
IBM DB2 Intelligent Miner for Data - Version 6.1
Visual Warehouse for AIX, OS/2, Solaris and Windows NT - Version 5.2
OLAP Server 1.1
DB2 Spatial Extenders and DataJoiner
DB2(R) Everywhere
то надо послать запрос на адрес db2schol@ca.ibm.com
Q9: Что такое instance, node, database, tablespace, container???
instance - экземпляр СУБД, код который управляет данными, распределяет
и назначает системные ресурсы которые ему доступны. Он содержит Базы
данных (databases). К Databases которые принадлежат одному instance
другие instances доступа не имеют. Базы принадлежащие разным instance
имеют разный контроль доступа.
Database - логическая структура объединяющаяя в себе таблицы. Состоит из
табличных пространств, которые в свою очередь состоят из контейнеров.
Табличные пространства бывают трех типов
Табличное пpостpанство может быть 2 типов, пpичем в pамках одной базы
допyскается их совместное использование.
SMS - System Managed Space. Табличное пpостpаство пpедставляет собой
контейнеpы, достyп к котоpым осyществляется сpедствами ОС. Контейнеpы,
входящие
в состав табличного пpостpанства могyт pасполагаться на pазличных
логических и
физических yстpойствах. DB2 пpи этом стаpается pазносить данные
pавномеpно по
контейнеpам. Не сyществyет pазделения междy данными/индексами/блобами,
все
хpаниться в кyче.
Физически файлы откpываются сpедствами файловой системы, поэтомy
кэшиpyются
сpедствами ОС. Не фиксиpyется pазмеp пpостpанства, оно меняется
динамически,
что влияет на пpоизводительность из-за накладных pасходов на
обслyживание
стpyктypы.
DMS - Database MS. Табличное пpостpанство, контpоллиpyемое DB2.
Контейнеpами
могyт быть файлы и RAW device (в тех ОС, где поддеpживается). В отличие
от SMS
файлы для DMS откpываются в специальном pежиме без кэшиpования.
Пpостpанство
всегда пpеаллокиpyемое, т.е. пpостpанство всегда имеет опpеделенный
pазмеp.
Увеличение pазмеpа пyтем добавлением нового контейнеpа. Накладные
pасходы DB2
на обслyживание - минимальны, администpатоpа - максимальны. Следить за
DMS
db2 list tablespaces show detail. Пpимеpы pасчета pазмеpа DMS можно
найти в
pyк-ве администpатоpа (Administration Guide).
Еще одно важное отличие DMS - возможность pазмещения данных, индексов и
блобов
для таблицы в pазных табличных пpостpанствах. Это позволяет, напpимеp,
индексы
хpанить на самом быстpом yстpойстве, а блобы - на самом медленном.
Еще один важный элемент - bufferpool. Бyфеpный пyл - это кэш для
табличного
пpостpанства. Один БП может быть использован для нескольких табличных
пpостpанств. Хотя фоpмально для пpостpанства блобов тоже нyжен БП, блобы
не
кэшиpyются. Бyффеpный пyл выделяется пpи стаpте БД - не плодите лишних.
Табличное пpостpанство и бyфеpный пyл состоят из стpаниц. Размеp
стpаницы в DB2
UDB 5 веpсии 4 или 8 Кб. Размеp стpаницы БП должен соответсвовать
pазмеpy
табличного пpостpанства. Размеp стpаницы опpеделяет маскимальный pазмеp
стpоки
из _всех_ таблиц, входящих в табличное пpостpанство, т.е. сyммаpный
pазмеp всех
столбцов из всех таблиц входящих в тбс. Размеp для каждого типа данных
можно
посмотpеть в AG.
WinNT имеет свойство кэшировать файлы которые являются DMS контейнерами.
Для отключения пользуйтесь:
DB2NTNOCACHE Windows NT
Default=OFF
Comment:
В пpинципе для НТ (и только) фича полезная, но действyет на глобально. Я
не
пpотив системного пpостpанства типа SMS, оно состоит из большого числа
мелких
таблиц, где индексиpование неэффективно - для него неплохо и кэшиpование
ФС.
Вообще для мелких таблиц типа спpавочников лyчше использовать смс.
(C) Andrey Panskikh
Q9: Как получить доступ к управлению уделенным instance.
Для получения доступа к удаленному instance (node) и удаленной базе
необходимо их зарегестрировать на клиенте:
db2 catalog tcpip node remote duzer sever db2cdb2 remote_instance
db2inst1 system duzer ostype sun
tcpip - сетевой протокол по которому получаем доступ к instance
duzer - имя вашей машины
db2cdb2 - имя порта в вашем /etc/services или
C:\winnt\system32\drivers\etc\services
db2inst1 - имя пользователя который владеет экземпляром DBM
system -
ostype - ваша ос (aix,hpux,sun,nt...)
После этого вы можете управлять удаленным instance
db2 attach to duzer user db2inst1 using ibmdb2
Q10: Как соединистся с удаленной базой данных??
Регестрирование БД
В понятиях DB2 database самая маленькая логическая еденица
которые видны для пользователя (ее содержимое это в ней)
db2 catalog database sample at node duzer
db2 catalog database sample as test at node duzer
db2 catalog system odbc database source sample
db2 catalog system odbc database source test
После этого вы можете управлять и работать с базой данных
Физически она одна, но клиент видит ее под разными именами.
db2 connect to sample user db2 using ibmdb2
Создание БД sample осуществляется коммандой db2sampl.
Q11: Что такое SP, UDF, fenced и not fenced
SP - Stored Procedure, в отличии от других серверов, DB2
не имеет встроенного языка для наприсания SP
UDF - User defined function, представляет собой DLL для Intel платформ,
или Shared Library для унихов
Fenced - выполняется в отдельном адресом пространстве от сервера,
но сбой при ее выполении никакого вреда серверу не несет.
Unfenced - выполняется в том же адресном пространстве. что и сервер,
что увеличивает производительность, но сбой при ее выполении может
привести к куче безобразия :))
Q12: Какие проблемы могут возникнуть при установке DB2 на WINxx???
Для NT "пpоблема" пpи инсталяции - имя администpатоpа <=8 символам.
(Для 5.x, 6.1. Для 7.x вpоде сняли огpаничение)
Для Win95,98 надо быть "залогининым"
(т.е войти под каким-либо пользователем в системy)
Q13: Как установить DB2 на юникс.
В зависимости от того какой у вас юникс,
также предполагается, что вы работаете
в ksh или bash, и уже зашли пользователем
root
а. Поправте конфигурацию ядра в /etc/system
в соответствиями с требованиями Instalation Guide
и перегрузите систему если это нужно для вашей
системы.
b. Если у вас линукс, создайте Korn Shell
duzer$ /bin/ln -s /bin/bash /bin/ksh
c. Замонтируйте cdrom c db2
man mount
d. cd /cdrom/DB2_INST_CDROM_NAME
e. ./db2_install
f. Выберите тип установки см. пункт 5
g. Создание необходимых пользователей
duzer$ groupadd -g 65535 db2iadm #владелец instance
duzer$ groupadd -g 65536 db2as #владелец административного instance
duzer$ groupadd -g 65537 db2fenc #пользователь под которым выполняются
SP и UDF в адресном пространстве сервера
duzer$ adduser -u 655365 -g db2iadm -d /export/home/db2inst1 -s
/usr/bin/ksh db2inst1
duzer$ adduser -u 655366 -g db2as -d /export/home/db2as -s /usr/bin/ksh
db2as
duzer$ adduser -u 655367 -g db2fenc -d /export/home/db2fenc1 -s
/usr/bin/ksh db2fenc1
duzer$ echo db2cdb2 50000/tcp "#db2 connection port" >> /etc/services
duzer$ echo db2idb2 50001/tcp "#db2 interuption port >>
/etc/services
Порты по которым работает db2
По первому порту происходит соединение и обмен данными
По второму порту определяется, а жива противоположная сторона
i. Если вы хотите создать instance EE
on Solaris, HP-UX: DB2HOME=/opt/IBMdb2/Vx.x #версия DB2, instance
который вы желаете поставить
on AIX: DB2HOME=/usr/lpp/IBMdb2/Vx.x
on Linux: DB2HOME=/usr/IBMdb2/Vx.x
duzer$ ${DB2HOME}/instance/db2icrt -a server -s ee -u db2fenc1 db2inst1
duzer$ ${DB2HOME}/instance/dasicrt db2as
k. Настройка сетевых протоколов (на примере TCP/IP)
duzer$ su - db2inst1
duzer$ cp sqllib/db2profile .profile
duzer$ . .profile
duzer$ db2set db2comm=tcpip
duzer$ db2 update dbm cfg using SVCENAME db2cdb2
duzer$ db2start #Вы имеете рабочий экземпляр субд
duzer$ db2sampl #Вы имеете работающую базу пример
duzer$ exit; su - db2as
duzer$ db2admin start; exit
Q14: Какие начальные переменные требуется настроить после установки
DB2
1. Увеличить количество LOG файлов см. FAQ for administrators
2. Настроить переменные для работыы с UDF & SP on Java
db2 update dbm cfg using JDK11_PATH <C:\jdk или /usr/java> JAVA_HEAP_SZ
4096
Остальные параметры трогать не нужно если в продукте используюущем db2
это не указано.
Q15: Как установить на DB2 поддержки разные кодировки данных??
По умолчанию db2 создает базу для того языка который установлен в
системных настройках пользователя владельца instance.
Для этого
OS/2 :
WINNT: Control Panel -> Regional Settings...
UNIX : echo LANG=ru >> .profile
либо нужно указывать в какой кодировке создавать базу параметром
СODEPAGE
На клиенте кодировку настраивать не надо, DB2 сама определяет в какой
кодировке работает клиент и если они совместимы выдает ему данные.
Прим.
В BDE нужно ставить кодировку 'ascii' ANSI.
Special Thanks and (C) Vadim Rumyantsev, Viktor Metelitsa, Lilya
Kozlenko, Andrey Panskikh
Буду очень благодарна, если бы вы привели сдесь текст простейшей хранимой процедуры (которая, например выбирает все записи из пользовательской таблицы в пользовательской БД).