|При добавлении узлов в многораздельную базу данных, содержащую одно или |несколько системных временных табличных пространств, размер страниц которых |отличается от размера страниц по умолчанию (4 Кбайта), вы можете получить |сообщение об ошибке "SQL6073N Операция Add Node прервана" и |SQLCODE. Это вызвано тем, что при создании узла существует только пул |буферов IBMDEFAULTBP с размером страниц 4 Кбайта.
|Например, для добавления узла в текущую многораздельную базу данных может |использоваться команда db2start:
| DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2
|Если эта многораздельная база данных содержит системные временные табличные |пространства, размер страниц которых равен размеру страниц по умолчанию, будет |возвращено следующее сообщение:
| SQL6075W Операция Start Database Manager успешно добавила узел. Узел не будет активен, пока все узлы не будут остановлены и запущены еще раз.
|Однако если системные временные табличные пространства этой многораздельной |базы данных имеют размер страниц, отличный от размера страниц по умолчанию, |будет возвращено сообщение:
| SQL6073N Операция Add Node прервана. SQLCODE = "<-902>"
|Для добавления узла можно также использовать команду ADD NODE, |предварительно вручную добавив описание нового узла в файл |db2nodes.cfg. После изменения этого файла и |выполнения команды ADD NODE для многораздельной базы данных, содержащей |системные временные табличные пространства, размер страниц которых равен |размеру страниц по умолчанию, будет возвращено следующее сообщение:
| DB20000I Команда ADD NODE выполнена успешно.
|Однако если системные временные табличные пространства этой многораздельной |базы данных имеют размер страниц, отличный от размера страниц по умолчанию, |будет возвращено сообщение:
| SQL6073N Операция Add Node прервана. SQLCODE = "<-902>"
|Один из способов предотвратить описанную выше ошибку - выполнить |команду:
| DB2SET DB2_HIDDENBP=16
|перед выполнением команды db2start или ADD NODE. Эта |переменная реестра разрешает DB2 выделять скрытые пулы буферов по 16 страниц |каждый, используя размер страницы, отличный от размера страницы по |умолчанию. Это обеспечивает успешное выполнение операции ADD |NODE.
|Другой способ предотвращения этой ошибки - задать условие WITHOUT |TABLESPACES в команде ADD NODE или db2start. После этого |нужно будет создать пулы буферов, используя оператор CREATE BUFFERPOOL, и |связать системные временные табличные пространства с пулом буферов, используя |оператор ALTER TABLESPACE.
|При добавлении узлов в существующую группу узлов, содержащую одно или |несколько табличных пространств, размер страниц которых отличается от размера |страниц по умолчанию (4 Кбайта), вы можете получить сообщение об ошибке |"SQL0647N Пул буферов "" в настоящее время неактивен.". Это |происходит потому, что созданные на новом узле пулы буферов с размером |страниц, отличным от размера страниц по умолчанию, не активируются для этих |табличных пространств.
|Например, для добавления узла в группу узлов можно использовать оператор |ALTER NODEGROUP:
| DB2START | CONNECT TO mpp1 | ALTER NODEGROUP ng1 ADD NODE (2)
|Если эта группа узлов содержит табличные пространства, размер страниц |которых равен размеру страниц по умолчанию, будет возвращено следующее |сообщение:
| SQL1759W Для изменения распределения данных для объектов в группе узлов |"<ng1>" требуется перераспределение группы узлов |с включением добавленных узлов или исключением отброшенных.
|Однако если табличные пространства этой группы узлов имеют размер страниц, |отличный от размера страниц по умолчанию, будет возвращено сообщение:
| SQL0647N Пул буферов "" в настоящее время неактивен.
|Один из способов предотвратить описанную выше ошибку - создать пулы буферов |для каждого размера страниц и затем заново соединиться с базой данных перед |выполнением оператора ALTER NODEGROUP:
| DB2START | CONNECT TO mpp1 | CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 | CONNECT RESET | CONNECT TO mpp1 | ALTER NODEGROUP ng1 ADD NODE (2)
|Другой способ предотвращения этой ошибки - выполнить команду:
| DB2SET DB2_HIDDENBP=16
|перед выполнением команды db2start и операторов CONNECT и |ALTER NODEGROUP.
|Другая ошибка может возникнуть, когда оператор ALTER TABLESPACE |используется для добавления табличного пространства к узлу. |Например:
| DB2START | CONNECT TO mpp1 | ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES | ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
|Эта последовательность команд и операторов генерирует сообщение об ошибке |SQL0647N (а не ожидаемое сообщение SQL1759W).
|Чтобы правильно выполнить это изменение, необходимо заново соединиться с |базой данных после выполнения оператора ALTER NODEGROUP... WITHOUT |TABLESPACES.
| DB2START | CONNECT TO mpp1 | ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES | CONNECT RESET | CONNECT TO mpp1 | ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2)
|Другой способ предотвращения этой ошибки - выполнить команду:
| DB2SET DB2_HIDDENBP=16
|перед выполнением команды db2start и операторов CONNECT, ALTER |NODEGROUP и ALTER TABLESPACE.