Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Здравствуйте.
на тестовом сервере AIX создаю локальную базу, и добавляю разрешения:
CREATE DATABASE EAI DBPATH ON testEAI/Databases USING CODESET UTF-8 TERRITORY US COLLATE USING SYSTEM PAGESIZE 32768;
CONNECT TO EAI;
GRANT DBADM, CREATETAB, BINDADD, CONNECT, CREATE_NOT_FENCED_ROUTINE, IMPLICIT_SCHEMA, LOAD, CREATE_EXTERNAL_ROUTINE, QUIESCE_CONNECT, SECADM ON DATABASE TO GROUP  testvs;
UPDATE DATABASE CONFIGURATION USING APPLHEAPSZ 1024 DEFERRED;
UPDATE DATABASE CONFIGURATION USING LOCKTIMEOUT 30 DEFERRED;
UPDATE DATABASE CONFIGURATION USING APP_CTL_HEAP_SZ 1024 DEFERRED;
update database configuration for using logfilsiz 10000;
update db EAI for EAI using NEWLOGPATH /testEAI/Databases/log
UPDATE DATABASE CONFIGURATION USING LOGSECOND 8 IMMEDIATE ;
CONNECT RESET;


Когда я проверяю список баз данных, то у меня есть разница между моей (Database 4 entry) и той, которая уже была создана ранее (Database 3 entry), а конкретно, что тип у той - Remote.
Database 3 entry:

Database alias = T_D
Database name = WH
Node name = TEST
Database release level = f.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =

Database 4 entry:

Database alias = EAI
Database name = EAI
Local database directory = /testEAI
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =

подскажите, как мне создать базу данных по аналогии с Database 3 entry?
11 фев 19, 09:55    [21806092]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko,

Добрый день.

Это не тип базы, а тип регистрации базы в системном каталоге экземпляра DB2.

Когда вы создаете базу, то информация о ней автоматически заносится в системный каталог с
Directory entry type = Indirect
, что говорит о том, что это локальная база, т.е. управляется текущим экземпляром DB2, и работа с ней клиента будет осуществляться по IPC, а не по TCPIP.
Если вы хотите подключаться к удаленной базе, т.е. к базе, которая управляется другим экземпляром DB2, то вы можете зарегистрировать эту удаленную базу, и она будет иметь
Directory entry type = Remote

Есть возможность (если хочется) зарегистрировать локальный экземпляр как удаленный на этом клиенте, чтобу работать с его базами так же, как и с удаленными - по TCPIP, а не по IPC.

Если ваш вопрос по такому способу регистрации, то это можно сделать так:

db2 catalog tcpip node mynode remote localhost service myport_number
db2 catalog db eai as eaialias at node mynode
11 фев 19, 10:51    [21806148]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
Mark Barinstein,

Поправка:

db2 catalog tcpip node mynode remote localhost server myport_number
db2 catalog db eai as eaialias at node mynode
11 фев 19, 10:54    [21806151]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein,

спасибо за быстрый ответ! а в каком случае это может понадобиться?
например, у меня есть тестовый сервер и основной, если я просматриваю list db directory, то старая база данных там отображается, а моя новая после выполнения этих команд - нет.
11 фев 19, 11:05    [21806164]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
а еще, не знаю почему, но при команде drop db теперь ошибка
SQL30082N Security processing failed with reason "3" ("PASSWORD MISSING").
это из-за того, что я выполнил те команды?
11 фев 19, 11:47    [21806202]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko
например, у меня есть тестовый сервер и основной, если я просматриваю list db directory, то старая база данных там отображается, а моя новая после выполнения этих команд - нет.
Какие именно команды вы выполнили создания/регистрации базы, и какой именно результат получен в точности?
AVRomanenko
а еще, не знаю почему, но при команде drop db теперь ошибка
Если вы делаете drop db на базу с "Directory entry type = Remote", то надо сначала сделать attach к node (соединение с экземпляром), под которым удаляемая база зарегистрирована.
Если нет, то для удаляемой базы приведите вывод команд list node directory, list db directory.

На всякий случай: убедитесь, что вы понимаете разницу между "drop db" и "uncatalog db".
11 фев 19, 12:24    [21806253]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein,
по созданию базы я выполнял запросы, которые прикрепил в теме.
регистрировал точно по Вашей схеме двумя запросами, к сожалению результатов нет.

по list и node соответственно:

Database 1 entry:

Database alias = INVOICES
Database name = EAI
Node name = EAI
Database release level = f.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =


Node 1 entry:

Node name = INVOICES
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 192.168.98.206
Service name = 60008

это я получал с 192.168.98.206
есть еще основной сервер: 192.168.98.199
и вот если эти команды (list и node) запускать через него, то там в списке нет этой базы данных.

да, я имел ввиду удалить базу физически с диска, со всеми ее папками.
11 фев 19, 15:49    [21806563]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
выполнял следующие команды по регистрации бд:
сначала делал:
uncatalog node EAI
uncatalog db EAI
далее:
db2 catalog tcpip node INVOICES remote 192.168.98.206 server 60008
db2 catalog db EAI as INVOICES at node EAI
terminate
и теперь не могу через консоль приконнектиться...хотя через Toad все работает
выдает такие ошибки:

db2 => connect to EAI
SQL1013N The database alias name or database name "EAI" could not be found.
SQLSTATE=42705
db2 => connect to INVOICES user test
Enter current password for test:
SQL1097N The node name was not found in the node directory. SQLSTATE=42720
db2 =>
11 фев 19, 15:56    [21806571]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
а нет. все сломалось...
пытался получить данные из таблицы в базе через Toad, получил ошибку:

DB2 Database Error: ERROR [08001] [IBM] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "192.168.98.206". Communication function detecting the error: "selectForRecvTimeout". Protocol specific error code(s): "0", "*", "*". SQLSTATE=08001 (Remembered answer: "OK". Enable)
11 фев 19, 16:15    [21806595]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko,

Когда я писал команды каталогизации, была информация об одном сервере.
Теперь их уже 2, и их IP адреса мне ни о чем не говорят.
Если вы не будете писать, на каком и что именно вы выполняли, мы будем долго переписываться так...
+ По выводу с 192.168.98.206

Database 1 entry:

Database alias = INVOICES
Database name = EAI
Node name = EAI
...
Directory entry type = Remote


Node 1 entry:

Node name = INVOICES
...
Hostname = 192.168.98.206
Service name = 60008
Записи друг с другом не связаны. У них разные Node name.
Предполагаю, что вы ошиблись в команде catalog db.
Я не зря в паре своих команд указал, что имя mynode должно быть одинаковое.
Если вы зарегистрировали node под именем INVOICES, то команда каталогизации базы EAI должна выглядеть так:

db2 catalog db EAI as EAIALIAS at node INVOICES

Алиас базы EAIALIAS вы можете выбрать свой.
Вероятно, вы ошиблись с этой командой, и поэтому эта база с новым алиасом не видна в выводе list db directory.

Про "основной сервер 192.168.98.199" я не понял, как к он связан с 192.168.98.206, и что и зачем вы там запускаете...
11 фев 19, 16:20    [21806603]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko
выполнял следующие команды по регистрации бд:
db2 catalog tcpip node INVOICES remote 192.168.98.206 server 60008
db2 catalog db EAI as INVOICES at node EAI
и теперь не могу через консоль приконнектиться...хотя через Toad все работает
выдает такие ошибки:

db2 => connect to EAI
SQL1013N The database alias name or database name "EAI" could not be found.
SQLSTATE=42705
db2 => connect to INVOICES user test
Enter current password for test:
SQL1097N The node name was not found in the node directory. SQLSTATE=42720
db2 =>
Надо:

db2 catalog tcpip node INVOICES remote 192.168.98.206 server 60008
db2 catalog db EAI as INVOICES at node INVOICES
db2 connect to INVOICES user test
11 фев 19, 16:24    [21806610]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein,
я выполнил еще раз команды, теперь получается так:
 Database alias                       = INVOICES
Database name = INVOICES
Node name = INVOICES
Database release level = f.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =


Node 1 entry:

Node name = INVOICES
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 192.168.98.206
Service name = 60008
и при попытке выполнить команду
connect to INVOICES

консоль просто переходит на новую строку, и ничего не просходит, ощущение, будто долго думает.

хотел сделать бэкап базы, потому что там уже есть данные, чтобы потом восстановить на новой базе, но даже этого сделать не могу.
посоветуйте, как быть...я бы просто снес эту базу полностью, а потом попытался создать новую..
11 фев 19, 16:27    [21806613]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Извините меня за этот сумбур...понимаю, что у Вас нет времени на меня, а я все на живую тестирую, без возможности долго ждать...
сейчас я исправил проблему из предыдущего письма.
изменил директорию и ноду. теперь это выглядит так:

Database 1 entry:

Database alias = INVOICES
Database name = EAI
Node name = INVOICES
Database release level = f.00
Comment =
Directory entry type = Remote
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =


Node 1 entry:

Node name = INVOICES
Comment =
Directory entry type = LOCAL
Protocol = TCPIP
Hostname = 192.168.98.206
Service name = 60008

коннект к базе этой командой проходит:
db2 connect to INVOICES user test
далее пытаюсь запустить бэкап базы, и получаю ошибку...
db2 => QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
DB20000I The QUIESCE DATABASE command completed successfully.
db2 => CONNECT RESET
DB20000I The SQL command completed successfully.
db2 => BACKUP DATABASE EAI user db2inbvb TO /backup_prod3/INVOICES/backup
Enter current password for db2inbvb:
SQL1013N The database alias name or database name "EAI" could not be found.
db2 => BACKUP DATABASE INVOICES user db2inbvb TO /backup_prod3/INVOICES/backup
Enter current password for db2inbvb:
SQL1013N The database alias name or database name "EAI" could not be found.
SQLSTATE=42705
11 фев 19, 17:00    [21806662]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko,

Предыдущей командой uncatalog db EAI вы удалили из системного каталога локальную базу, которую до этого создали командой CREATE DB EAI в первом посте, если обе команды выполнялись на одном хосте (192.168.98.206). Теперь экземпляр db2 не знает, что она вообще есть, и не может с ней работать. Не надо было этого делать.
Теперь надо эту базу найти в локальном каталоге этого хоста. У вас есть рассогласование:
если было
CREATE DATABASE EAI DBPATH ON testEAI/Databases
, то непонятно, почему в list db directory было Local database directory = /testEAI

В локальном пути (скажем, /testEAI) должна быть такой подкаталог: ${DB2INSTANCE}/NODE0000/sqldbdir, где ${DB2INSTANCE} - имя владельца экземпляра.
Если он там есть, то надо сделать его листинг:

db2 list db directory on /testEAI

Выдает что-то?
11 фев 19, 17:10    [21806673]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein, вот что выдает:
$ db2 list db directory on /testEAI

Local Database Directory on /testEAI

Number of entries in the directory = 1

Database 1 entry:

Database alias = EAI
Database name = EAI
Database directory = SQL00001
Database release level = f.00
Comment =
Directory entry type = Home
Catalog database partition number = 0
Database member number = 0

по пути есть каталог
/testEAI/db2inbvb/NODE0000/sqldbdir
дополнительно есть такие вот файлы в нескольких папках по др путям
/testEAI/db2inbvb/NODE0000/EAI/T0000003/C0000000.LRG
11 фев 19, 17:21    [21806684]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko,

Для возвращения "потерянной" локальной базы в системный каталог надо:

db2 catalog db EAI on /testEAI

Проверьте теперь соединение и с EAI, и c INVOICES. Должны обе работать...
11 фев 19, 17:24    [21806691]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein, ура! чудеса! получилось приконнектиться к обеим, и сделать бэкап обеих, но они одинаковые.
list directory показывает и ту и другую базу
11 фев 19, 17:33    [21806703]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko
получилось приконнектиться к обеим, и сделать бэкап обеих, но они одинаковые.
list directory показывает и ту и другую базу
Но вы же сами хотели возможность подключаться к локальной базе по TCPIP...
Вы это и получили через, фактически, алиас этой базы - INVOICES.
Т.е. когда connect to EAI, то это коннект к EAI по IPC.
Когда connect to INVOICES, то это коннект к EAI по TCPIP.
Как они могут быть неодинаковые?
11 фев 19, 17:39    [21806712]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
AVRomanenko
Member

Откуда:
Сообщений: 75
Mark Barinstein, а если я хочу, чтобы была в directory видна только одна, что нужно сделать?
а по поводу того, что я писал про разные серверы (192.168.98.199 и 192.168.98.206) - это 2 сервера, подключенные по TCPIP, и вот с 199 я могу подключиться к базам, которые лежат на 206м сервере, но к новой не получается. Вы не знаете, почему?
и еще, чтобы в list db не была отображена локальная EAI, нужно сделать так?
db2 catalog db EAI as INVOICES at node INVOICES
и тогда я смогу делать connect to INVOICE ?
12 фев 19, 09:05    [21807037]     Ответить | Цитировать Сообщить модератору
 Re: Создание БД по аналогии с существующими  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
AVRomanenko,

Я вас правильно понимаю, что:

На 192.168.98.206 есть экземпляр DB2, слушающий порт 60008, и там создана база EAI.

Вы хотите, чтобы:
  • На 192.168.98.206 в системном каталоге база была видна не под алиасом EAI, а под INVOICES. А под алиасом EAI - нет (не знаю зачем это, но так сделать можно).
  • Регистрация этой локальной базы по TCPIP на 192.168.98.206 не нужна (мы это начали делать из-за неправильного понимания задачи)
  • На 192.168.98.199 эта база была бы зарегистрирована под алиасом INVOICES (или укажите нужный), чтобы к ней можно было удаленно подключаться с этого сервера.
  • 12 фев 19, 10:18    [21807098]     Ответить | Цитировать Сообщить модератору
     Re: Создание БД по аналогии с существующими  [new]
    AVRomanenko
    Member

    Откуда:
    Сообщений: 75
    Mark Barinstein,
    команда
    List db directory
    выводит следующее

    Database 1 entry:

    Database alias = INVOICES
    Database name = EAI
    Node name = INVOICES
    Database release level = f.00
    Comment =
    Directory entry type = Remote
    Catalog database partition number = -1
    Alternate server hostname =
    Alternate server port number =

    Database 2 entry:

    Database alias = EAI
    Database name = EAI
    Local database directory = /testEAI
    Database release level = f.00
    Comment =
    Directory entry type = Indirect
    Catalog database partition number = 0
    Alternate server hostname =
    Alternate server port number =

    а команда
    list node directory
    только это

    Node 1 entry:

    Node name = INVOICES
    Comment =
    Directory entry type = LOCAL
    Protocol = TCPIP
    Hostname = 192.168.98.206
    Service name = 60008
    Remote instance name =
    System =
    Operating system type = None
    1. я бы хотел убрать Database 1 entry, чтобы у меня была только локальная база EAI c нодой INVOICES
    2. насколько я Вас понял, то эти команды
    db2 catalog tcpip node INVOICES remote 192.168.98.206 server 60008
    db2 catalog db EAI as INVOICES at node INVOICES
    нужно выполнять как раз на сервере .199, чтобы регистрировать там подключение к локальной базе, которая находится на 206-м, правильно?
    12 фев 19, 14:59    [21807476]     Ответить | Цитировать Сообщить модератору
     Re: Создание БД по аналогии с существующими  [new]
    Mark Barinstein
    Member

    Откуда: Москва
    Сообщений: 4850
    + quot AVRomanenko

    команда
    List db directory
    выводит следующее

    Database 1 entry:

    Database alias = INVOICES
    Database name = EAI
    Node name = INVOICES
    Database release level = f.00
    Comment =
    Directory entry type = Remote
    Catalog database partition number = -1
    Alternate server hostname =
    Alternate server port number =

    Database 2 entry:

    Database alias = EAI
    Database name = EAI
    Local database directory = /testEAI
    Database release level = f.00
    Comment =
    Directory entry type = Indirect
    Catalog database partition number = 0
    Alternate server hostname =
    Alternate server port number =

    а команда
    list node directory
    только это

    Node 1 entry:

    Node name = INVOICES
    Comment =
    Directory entry type = LOCAL
    Protocol = TCPIP
    Hostname = 192.168.98.206
    Service name = 60008
    Remote instance name =
    System =
    Operating system type = None

    AVRomanenko
    1. я бы хотел убрать Database 1 entry, чтобы у меня была только локальная база EAI c нодой INVOICES

    Если цель - оставить только локальную базу, и нет цели сделать ее доступной с этого же сервера по TCPIP, то Node name = INVOICES не нужно.
    Для локальных баз не заводится Node name.
    На .206:
    db2 uncatalog db invoices
    db2 uncatalog node invoices
    AVRomanenko
    2. насколько я Вас понял, то эти команды
    db2 catalog tcpip node INVOICES remote 192.168.98.206 server 60008
    db2 catalog db EAI as INVOICES at node INVOICES
    нужно выполнять как раз на сервере .199, чтобы регистрировать там подключение к локальной базе, которая находится на 206-м, правильно?
    Да, правильно, если вы хотите обращаться на .199 к этой базе по имени INVOICES.
    Алиас базы вы можете выбрать любой. Или вообще не использовать "as INVOICES", тогда база зарегистрируется под именем EAI.
    Для каталогизации базы на клиенте (.199) не нужно, чтобы в "list node directory" на сервере (.206) было имя INVOICES. Node name на клиенте для регистрации удаленного инстанса выбирается произвольно, и с серверными именами никак не связано.
    12 фев 19, 16:08    [21807596]     Ответить | Цитировать Сообщить модератору
     Re: Создание БД по аналогии с существующими  [new]
    AVRomanenko
    Member

    Откуда:
    Сообщений: 75
    Mark Barinstein,
    спасибо Вам большое, очень помогаете всегда.
    13 фев 19, 14:30    [21808502]     Ответить | Цитировать Сообщить модератору
    Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить