powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Установка codeset и territory
23 сообщений из 23, страница 1 из 1
Установка codeset и territory
    #35014095
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте всем!
DB2 UDB 8.2 fp14 под Linux
При создании базы забыл явно указать набор кодов и регион. Хорошо бы было воспользоваться скриптом:
Код: plaintext
create database PENSTRAN using codeset  1251  territory RU using SYSTEM;
Вместо этого я выполнил короткий скрипт:
Код: plaintext
create database PENSTRAN;
Какие codeset и territory задаются по умолчанию? Можно ли изменить эти параметры на рабочей базе? В книжке прочитал, что нельзя.
С какими проблемами можно столкнуться, если для базы явно не заданы codeset и territory? Сейчас, например, я не могу со своей машины (ОС Windows 2000) через ЦУ администратора выполнить резервное копирование на сервере. Говорит, что не совпадает кодировка Unknown и 1251.

Спасибо
С уважением, Семен Попов
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35014169
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
При создании базы, если не указано явно, эти параметры берутся из локали пользователя:
Тут подробнее.
Я бы обращал внимание также на это .
Что у вас в
db2 get db cfg for PENSTRAN | grep -i code
?
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35014268
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinЗдравствуйте.
При создании базы, если не указано явно, эти параметры берутся из локали пользователя:
Тут подробнее.
Я бы обращал внимание также на это.
Что у вас в
db2 get db cfg for PENSTRAN | grep -i code
?
Спасибо. Вытащил cfg для базы. Там все в порядке.
Код: plaintext
1.
2.
3.
4.
5.
6.
 Территория базы данных                                  = RU
 Кодовая страница базы данных                            = 1251
 Кодовый набор базы данных                               = 1251
 Код страны/региона базы данных                          = 7
 Последовательность упорядочивания базы данных           = UNIQUE
 Альтернативная последовательность слияния (ALT_COLLATE) = 

Почему ж тогда не получается с моей машины сохранить резервную копию? Пишет вот это:
Код: plaintext
1.
2.
3.
SQL0332N  Невозможно преобразовать данные из исходной кодовой 
страницы "819" в кодовую страницу назначения "UNKNOWN".  Код 
причины "1".
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35014308
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen PopovПочему ж тогда не получается с моей машины сохранить резервную копию?
Нашел, почему. Спасибо.
Код: plaintext
1.
2.
3.
4.
Национальные настройки для сервера администратора DB2

Убедитесь, что национальная версия экземпляра сервера администратора DB2 совместима с национальной версией экземпляра DB2. В противном случае экземпляр DB2 не сможет связываться с сервером администратора DB2.

Если в профиле пользователя сервера администратора DB2 не задана переменная среды LANG, сервер администратора DB2 будет запущен с системной национальной версией по умолчанию. Если системная национальная версия по умолчанию не определена, сервер администратора будет запущен с кодовой страницей  819 . Если экземпляр DB2 использует одну из национальных версий DBCS, а сервер администратора DB2 запущен с кодовой страницей  819 , этот экземпляр не сможет связываться с сервером администратора DB2. Национальная версия экземпляра сервера администратора DB2 и национальная версия экземпляра DB2 должны быть совместимы.
А как побороть?
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35014546
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen PopovА как побороть?Поставьте локаль у владельца административного истанса в профиле.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35015291
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinПоставьте локаль у владельца административного истанса в профиле.
Вот такая ситуация.
На моей машине (ОС Win 2000) установлена DB2 8.2 14, на сервере (ОС Linux) также установлена DB2 8.2 14. Чтобы администрировать сервер на свою машину дополнительно установил Administration Client. В ЦУ подключил базу PENSTRAN. Теперь пытаюсь создать резервную копию этой базы, а DB2 мне выдает ошибку несоответствия кодовых страниц.
На сервере запускал команду get db cfg. Все нормально, кодовая страница 1251. Затем попытался задать переменную среды LANG (как это указано в доке по вашей ссылке - LANG=ru_RU), но резервное копирование все равно вываливается в ту же ошибку. Как поставить локаль в Линуксе и какое значение нужно? 819, я думаю, не очень подходит.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35015374
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что у вас в
locale -a | grep -i ru
?
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35015456
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
tt_RU.utf8
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35015504
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте
LANG=ru_RU.UTF-8
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35015548
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinПопробуйте
LANG=ru_RU.UTF-8
Попробую. Тут еще такая штука. DB2 на Линуксе устанавливалась не под root, а под пользователем db2inst. Под ним я и пытаюсь сделать резервное копирование. Для него и пытался устанавливать локаль ru_RU, но результата нет. А на моей машине почему 819? Может на моей тоже на какую-нить ru изменить?
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35016086
Anka_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov Mark BarinsteinПопробуйте
LANG=ru_RU.UTF-8
Попробую. Тут еще такая штука. DB2 на Линуксе устанавливалась не под root, а под пользователем db2inst. Под ним я и пытаюсь сделать резервное копирование. Для него и пытался устанавливать локаль ru_RU, но результата нет. А на моей машине почему 819? Может на моей тоже на какую-нить ru изменить? Воткни задание в планировщик ЦУ на самом серваке и ни парься, при желании можно всегда зайти, например, через цигвин отлогиниться под root'ом отбросить приложения, потом перелогиниться # su - db2inst и сделать копию. С своими экземплярами, когда разбиралась, то же то там чего то ни робит, то здесь, ребята предолжили полностью размонироваться и заново собрать пока я оттягиваю этот подвиг :)
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35016524
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LANG=ru_RU.utf8 тоже не помог.

Anka_SВоткни задание в планировщик ЦУ на самом серваке и ни парься, при желании можно всегда зайти, например, через цигвин отлогиниться под root'ом отбросить приложения, потом перелогиниться # su - db2inst и сделать копию. С своими экземплярами, когда разбиралась, то же то там чего то ни робит, то здесь, ребята предолжили полностью размонироваться и заново собрать пока я оттягиваю этот подвиг :)Спасибо. Чтобы воткнуть задание в планировщик на самом серваке, нужно сначала создать там каталог инструментов. Это у меня с первого раза, по крайней мере, не получилось - база создалась и далее вывалилась ошибка. Думаю, что попозже я его все равно добью. А сейчас резервное копирование у нас так и выполняется на самом серваке, только задача включена в планировщик ОС. В определенное время запускается .sh, который выполняет скрипт копирования от имени db2inst. Там все хорошо делается.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35690211
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Извиняюсь, что после большого периода продолжаю дискуссию по этой теме. Недавно мы вновь столкнулись с проблемой преобразования исходной кодовой страницы в кодовую страницу назначения. Невозможно было даже конфигурировать параметры удаленной базы, если мы пытались получить список парметров в центре управления через пункт вплывающего меню "Конфигурировать параметры". Много чего делали, чтобы побороть ошибку
Код: plaintext
1.
2.
SQL0332N  Невозможно преобразовать данные из исходной кодовой 
страницы "819" в кодовую страницу назначения "UNKNOWN".  Код 
причины "1".
В том числе выполнили все операции, предлагаемые в этой теме. Затем где-то выкопали, что у сервера DB2 существуют конфигурируемые параметры DB2CODEPAGE и DB2COUNTRY. За установку значений параметров сервера отвечает утилита db2set. В созданном терминале на сервере Linux с помощью команды
Код: plaintext
db2set -all
посмотрели все параметры сервера DB2. В списке не оказалось DB2CODEPAGE и DB2COUNTRY. Тогда мы просто проинициализировали эти параметры
Код: plaintext
1.
2.
db2set DB2CODEPAGE=1251
db2set DB2COUNTRY=7
Это решило нашу проблему. Теперь с моей машины (ОС Windows) из ЦУ я могу выполнить резервное копирование или конфигурировать параметры базы, которая создана на удаленном сервере с ОС Linux.

Думаю, что выполнили элементарные вещи. Но мы о них не знали. Может, кому-нибудь это будет интересно.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35690513
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov,

В моём случае (думаю и в Вашем тоже) было достаточно установить DB2CODEPAGE=915 (у меня AIX, iso-8859-5).
Такой способ кривой, по рекомендации IBM это параметр не должен устанавливаться.
По моему опыту с AIX (подобная проблема), я пришёл к выводу, что при установке графической среды у меня не было нужной локали, локаль доустанавливали после установки CDE. Потому такая проблема есть. Однако на тестовой машине, CDE устанавливалось после установки необходимых локалей, а там этих проблем с кодировкой - нет. Могу только предполагать, что в Вашем случае было что то подобное при установке Linux? Было бы интересно узнать правильно ли моё предположение?
Спасибо.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35690530
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, что не сразу написал, перечитал ветку, хочу поделиться опытом.
По поводу БД инструментов, в ней происходит тоже самое, потому выход, как я уже писал в другой ветке, запускать в задаче скрипт ОС (а не скрипт DB) примерно такой:
db2set DB2CODEPAGE=915
db2 -tvf backup.cpl -z backup.log
db2set DB2CODEPAGE=
либо намертво установить db2set DB2CODEPAGE=915 и не париться, хоть это и криво.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35691027
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir KiselevВ моём случае (думаю и в Вашем тоже) было достаточно установить DB2CODEPAGE=915 (у меня AIX, iso-8859-5).
Такой способ кривой, по рекомендации IBM это параметр не должен устанавливаться.
По моему опыту с AIX (подобная проблема), я пришёл к выводу, что при установке графической среды у меня не было нужной локали, локаль доустанавливали после установки CDE. Потому такая проблема есть. Однако на тестовой машине, CDE устанавливалось после установки необходимых локалей, а там этих проблем с кодировкой - нет. Могу только предполагать, что в Вашем случае было что то подобное при установке Linux? Было бы интересно узнать правильно ли моё предположение?Linux RedHat, DB2 8.1.14. Наши админы говорят, что никаких локалей дополнительно не устанавливали. После установки Linux поставили DB2 c параметрами по умолчанию. Думаю, что, если б не было нужных локалей RU, то проблема до сих пор существовала бы. Наверно, локали существовали изначально, просто они не использовались.
Vladimir KiselevИзвиняюсь, что не сразу написал, перечитал ветку, хочу поделиться опытом.
По поводу БД инструментов, в ней происходит тоже самое, потому выход, как я уже писал в другой ветке, запускать в задаче скрипт ОС (а не скрипт DB) примерно такой:
db2set DB2CODEPAGE=915
db2 -tvf backup.cpl -z backup.log
db2set DB2CODEPAGE=
либо намертво установить db2set DB2CODEPAGE=915 и не париться, хоть это и криво.Мы до сих пор так и делали. Только DB2CODEPAGE не устанавливали, потому что и без этого прокатывало. Из командной строки выполнялось все без проблем. Невозможно было выполнить ту же операцию из графического интерфейса ЦУ удаленной машины. После установки намертво db2set DB2CODEPAGE=1251 графический интерфейс ЦУ с моей машины больше не выдает ошибок преобразования кодовой страницы. А почему установить намертво DB2CODEPAGE в 1251 - это неправильно?
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35691575
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35692708
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Есть над чем задуматься.
По поводу Вашего предположения. Я предполагаю, что перед тем как устанавливать сервер DB2 нужно не доустанавливать локаль в Linux, а просто русифицировать ОС. Как русифицировать Linux можно почитать здесь . Думаю, что, если DB2 установить в русифицированной среде, то ошибок преобразования страниц возникать не будет.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35692726
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Semen Popov,

Похоже на правду, попробую, при случае, если новый сервер буду устанавливать.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35890548
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir KiselevSemen Popov,

Похоже на правду, попробую, при случае, если новый сервер буду устанавливать.Меняли мы тут у себя железо под одной задачей. Перед переносом базы решил сразу покопать проблему с кодовой страницей. Сначала русифицировал ОС Linux - сделал изменения в файле /etc/sysconfig/i18n (согласно документации из ссылки, которую я давал ранее). Правда, выбрал локаль ru_RU.utf-8. Содержание файла i18n такое:
Код: plaintext
1.
2.
3.
4.
5.
LANG="ru_RU.UTF-8"
LINGUAS="ru:en"
LC_ALL="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

Далее установил локаль для профайла root LANG=ru_RU.UTF-8 (она устанавливается автоматом из i18n после перезапуска системы).
Посмотрел admin cfg сервера DB2 (v8.1.14), который был установлен.
Код: plaintext
db2 get admin cfg
и вижу
Код: plaintext
1.
2.
 DAS Code Page                            (DAS_CODEPAGE) = 0
 DAS Territory                           (DAS_TERRITORY) = 0

Задал новые значения DAS_CODEPAGE=1251, DAS_TERRITORY=7.

Теперь радуюсь :-) Никаких проблем как в консоли, так в центре управления с удаленной машины, я не наблюдаю. Более того, в консоли Putty русифицировался текст сообщений, которые выдает DB2. Ранее при выполнении скриптов все ошибки или сообщения показывались на инглишь.

На старом сервере, где возникали проблемы с кодовыми страницами DAS_CODEPAGE, DAS_TERRITORY были равны нулю. Возможно из-за этого и возникали проблемы с кодовыми страницами, в частности
Код: plaintext
1.
2.
SQL0332N  Невозможно преобразовать данные из исходной кодовой 
страницы "819" в кодовую страницу назначения "UNKNOWN".  Код 
причины "1".
Сейчас системные переменные DB2CODEPAGE, DB2COUNTRY мне не потребовалось задавать.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #35890975
Semen Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственный минус локали ru_RU.UTF-8 в том, что создаваемые текстовые файлы будут иметь кодировку UTF-8. Чтобы работать с ними в ОС Win, нужно будет делать некоторые телодвижения.
Например, в консоли Putty хочу сохранить конфигурацию менеджера баз данных в файл, а затем через шару вытащить его на другую машину с ОС Win для чтения (анализа).
Код: plaintext
db2 get dbm cfg > /share/dbm_cfg.txt
В ОС Win этот файл в простеньких текстовых редакторах (например, FAR по F3) уже не прочтёшь.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Установка codeset и territory
    #37604866
D.Bug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Имеется сервер на CentOS 5.7 x64. На нем DB2 WSE 9.7.5.
Параметры базы:
Код: sql
1.
2.
3.
4.
 Территория базы данных                                  = RU
 Кодовая страница базы данных                            = 1251
 Кодовый набор базы данных                               = 1251
 Код страны/региона базы данных                          = 7


Выполняю к кроне скрипт бекапа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
#настраиваем переменные среды
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/home/db2inst/sqllib/bin:/opt/ibm/db2/V9.7/bin
MyPath=/home/db2inst/BackUPDB2
DBPath=/opt/ibm/db2/V9.7/bin

#Переменные для db2
DB2INSTANCE=db2inst
LANG=en_US.UTF-8
...


Дальнейший конект к базе в скрипте вызывает:
Код: sql
1.
SQL0332N  Character conversion from the source code page "819" to the target code page "UNKNOWN" is not supported.  SQLSTATE=57017


Т.е. скрипт не видит кодировку базы и установка LANG проходит мимо (хотя echo $LANG говорит об обратном). При этом не влияет ни текущая локаль сервера (ru_RU.UTF-8 | en_US.UTF-8), ни смена LANG (ru | en) в скрипте. Помогает только внешняя установка DB2CODEPAGE. Однако db2set DB2CODEPAGE=1251 в скрипте не дает результата.

Запуск скрипта руками из под db2inst - все ок.
...
Рейтинг: 0 / 0
Установка codeset и territory
    #37604973
D.Bug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тысяча чертей, разобрался!
LANG надо было устанавливать в файле крона, а не самом скрипте:
Код: sql
1.
2.
LANG=ru_RU.UTF-8
30 23 * * * /home/db2inst/BackUPDB2/script.sh > /home/db2inst/BackUPDB2/save.log
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Установка codeset и territory
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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