ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] снова вопрос о сортировке в постгресе
@ 2007-12-13 10:38 Serge
  2007-12-13 10:57 ` Alex Gorbachenko
  0 siblings, 1 reply; 9+ messages in thread
From: Serge @ 2007-12-13 10:38 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Доброго дня.
Надеюсь на помощь сообщества:
система старый сизиф, редкообновляемый.
стоит постгрес 8.1.5
OS locale koi8
база в утф. сортировка русских по алфавиту "едет"

где копнуть, куда глядеть? плз.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 10:38 [sisyphus] снова вопрос о сортировке в постгресе Serge
@ 2007-12-13 10:57 ` Alex Gorbachenko
  2007-12-13 11:29   ` Serge
  2007-12-13 12:01   ` Serge
  0 siblings, 2 replies; 9+ messages in thread
From: Alex Gorbachenko @ 2007-12-13 10:57 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 279 bytes --]

On Thu, 13 Dec 2007 12:38:29 +0200
Serge wrote:

>OS locale koi8
>база в утф. сортировка русских по алфавиту "едет"
>
>где копнуть, куда глядеть? плз.

вывод от: 
psql template1 postgres -c 'show all' | grep lc_

покажите.

-- 
np: Dark Lunacy - The Farewell Song

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 10:57 ` Alex Gorbachenko
@ 2007-12-13 11:29   ` Serge
  2007-12-13 12:07     ` Alex Gorbachenko
  2007-12-13 12:01   ` Serge
  1 sibling, 1 reply; 9+ messages in thread
From: Serge @ 2007-12-13 11:29 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Alex Gorbachenko пишет:
> вывод от: 
> psql template1 postgres -c 'show all' | grep lc_
>
> покажите.
>   

 lc_collate                      | ru_RU.KOI8-R                        | 
Shows the collation order locale.
 lc_ctype                        | ru_RU.KOI8-R                        | 
Shows the character classification and case conversion locale.
 lc_messages                     | ru_RU.KOI8-R                        | 
Sets the language in which messages are displayed.
 lc_monetary                     | ru_RU.KOI8-R                        | 
Sets the locale for formatting monetary amounts.
 lc_numeric                      | ru_RU.KOI8-R                        | 
Sets the locale for formatting numbers.
 lc_time                         | ru_RU.KOI8-R                        | 
Sets the locale for formatting date and time values.


ы.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 10:57 ` Alex Gorbachenko
  2007-12-13 11:29   ` Serge
@ 2007-12-13 12:01   ` Serge
  2007-12-13 12:10     ` Alex Gorbachenko
  1 sibling, 1 reply; 9+ messages in thread
From: Serge @ 2007-12-13 12:01 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

вот еще обнаружил в /var/lib/pgsql/data/postgresql.conf

# These settings are initialized by initdb -- they might be changed
lc_messages = 'ru_RU.KOI8-R'                    # locale for system 
error message
                                        # strings
lc_monetary = 'ru_RU.KOI8-R'                    # locale for monetary 
formatting
lc_numeric = 'ru_RU.KOI8-R'                     # locale for number 
formatting
lc_time = 'ru_RU.KOI8-R'                                # locale for 
time formatting


cat  /var/lib/pgsql/initdb.i18n
export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME
export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME

cat /etc/sysconfig/i18n
LANG=ru_RU.UTF-8
SUPPORTED=ru_RU.UTF-8

на основании этого, что мне необходимо изменить для решения проблемы?
я так понял, исправить на утф и реинитить бд?
бакапить при этом надо?

и если имеются разнородные базы (часть в кои, часть в утф) не полетит ли 
сортировка к примеру на других бд, отличных от утф?


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 11:29   ` Serge
@ 2007-12-13 12:07     ` Alex Gorbachenko
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Gorbachenko @ 2007-12-13 12:07 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 2403 bytes --]

On Thu, 13 Dec 2007 13:29:04 +0200
Serge wrote:

>lc_collate                      ru_RU.KOI8-R
>lc_ctype                        ru_RU.KOI8-R

ну вот, собственно, и причина засора. LC_COLLATE и LC_CTYPE задаются
при инициализации кластера, после чего их изменить нельзя. как
следствие, если initdb был выполнен с локалью KOI, получаем проблемы с
сортировками и работой ф-ций upper()/lower() во всех БД кластера,
кодировка которых отлична от той, с которой кластер инициализировали.

существует два способа решения данной проблемы. 

прервый. сдампить базу, остановить постгрес, удалить содержимое каталога
с данными (/var/lib/pgsql/data/*, предварительно сохранив конфиги из
него). затем выполнить: 
echo "LANG=ru_RU.UTF-8" > /var/lib/pgsql/data/.18n
поднять постгрес, создать базу, залить в неё содержимое дампа. это
официально рекомендованый способ.

способ второй. официально его вообще не существует, и ни в одной
рассылке по postgresql вам его никогда не расскажут :) сразу
предупрежу, что я сам так делать тоже не рекомендую, потому что
вероятность потери данных велика.

итак. 
1. Отключить сеть в postgresql;
2. service postgresql restart. Это позволит сбросить все сетевые
соединения и корректно завершить все транзакции;
3. service postgresql stop;
4. cp -a /var/lib/pgsql-root/var/lib/pgsql/data/global/ /root - спасаем
служебную информацию;
5. subst
"s,KOI8-R,UTF8,g" /var/lib/pgsql-root/var/lib/pgsql/data/global/pg_control
- изменяем значения LC_COLLATE и LC_CTYPE 
6. su -l postgres -s /bin/bash - получаем shell с правами
суперпользователя БД.
7. pg_resetxlog -n /var/lib/pgsql/data - запоминаем значения «Latest
checkpoint's NextXID» и «Latest checkpoint's NextOID». разумнее этот
этап делать до этапа 5 :)
8. cp -a /var/lib/pgsql/data/pg_xlog /var/lib/pgsql/data/pg_xlog.old -
на случай, если вам нужны старые логи транзакций. этап необязательный.
9. pg_resetxlog -o «Latest checkpoint's NextOID» -x «Latest
checkpoint's NextXID» -f /var/lib/pgsql/data - чиним служебный файл,
который искорёжили на этапе 5. после исправления выведется диагностика,
из которой можно будет понять, насколько успешно прошёл процесс.
10. если всё хорошо, и  pg_controldata /var/lib/pgsql/data не выдаёт
ругани, то можно поднять postgresql. 
если плохо, то нужно вернуть на место каталоги global и pg_xlog.

-- 
np: As I Lay Dying - Repeating yersterday

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 12:01   ` Serge
@ 2007-12-13 12:10     ` Alex Gorbachenko
  2007-12-13 12:11       ` Serge
  0 siblings, 1 reply; 9+ messages in thread
From: Alex Gorbachenko @ 2007-12-13 12:10 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 532 bytes --]

On Thu, 13 Dec 2007 14:01:50 +0200
Serge wrote:

>на основании этого, что мне необходимо изменить для решения проблемы?
>я так понял, исправить на утф и реинитить бд?

да. 

>бакапить при этом надо?

да.

>и если имеются разнородные базы (часть в кои, часть в утф) не полетит
>ли сортировка к примеру на других бд, отличных от утф?

полетит. в случае с постгресом, для поддержки разных кодировок для баз,
разумно держать n контейнеров с n кодировками. иначе никак.

-- 
np: As I Lay Dying - Repeating yersterday

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 12:10     ` Alex Gorbachenko
@ 2007-12-13 12:11       ` Serge
  2007-12-13 12:16         ` Alex Gorbachenko
  0 siblings, 1 reply; 9+ messages in thread
From: Serge @ 2007-12-13 12:11 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Alex Gorbachenko пишет:
> полетит. в случае с постгресом, для поддержки разных кодировок для баз,
> разумно держать n контейнеров с n кодировками. иначе никак.
>   
Не просветите насчет контейнеров? Что это и как кушать?
это vps? или что то особенное для постгри?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 12:11       ` Serge
@ 2007-12-13 12:16         ` Alex Gorbachenko
  2007-12-13 12:18           ` Serge
  0 siblings, 1 reply; 9+ messages in thread
From: Alex Gorbachenko @ 2007-12-13 12:16 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 212 bytes --]

On Thu, 13 Dec 2007 14:11:26 +0200
Serge wrote:

>Не просветите насчет контейнеров? Что это и как кушать?
>это vps? или что то особенное для постгри?

VPS

-- 
np: As I Lay Dying - Repeating yersterday

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [sisyphus] снова вопрос о сортировке в постгресе
  2007-12-13 12:16         ` Alex Gorbachenko
@ 2007-12-13 12:18           ` Serge
  0 siblings, 0 replies; 9+ messages in thread
From: Serge @ 2007-12-13 12:18 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Alex Gorbachenko пишет:
> On Thu, 13 Dec 2007 14:11:26 +0200
> Serge wrote:
>
>   
>> Не просветите насчет контейнеров? Что это и как кушать?
>> это vps? или что то особенное для постгри?
>>     
>
> VPS
>   
Спасибо большое за ликбез.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-12-13 12:18 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-13 10:38 [sisyphus] снова вопрос о сортировке в постгресе Serge
2007-12-13 10:57 ` Alex Gorbachenko
2007-12-13 11:29   ` Serge
2007-12-13 12:07     ` Alex Gorbachenko
2007-12-13 12:01   ` Serge
2007-12-13 12:10     ` Alex Gorbachenko
2007-12-13 12:11       ` Serge
2007-12-13 12:16         ` Alex Gorbachenko
2007-12-13 12:18           ` Serge

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git