powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сжатие базы данных
25 сообщений из 26, страница 1 из 2
Сжатие базы данных
    #38871962
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребьзя, привет.

Исследуем тему миграции 1С (в частности СУБД) с MSSQL на PostgreSQL.

Сразу к делу:
У меня есть база (приложение - 1С) на MS SQL (2012) в несжатом виде (data_compression = NONE) весит 20 Гб.
Мы ее экспортируем в dt-файл и загружаем в Postgres 9.2 от 1С (собран со всеми последними патчами по исходникам).
База превращается в 34 Гб.

Насколько я уже успел начитаться, в PostgreSQL по умолчанию сжатие, аналогичное data_compression в MSSQL, включено.
Единственное, что я нашел в Google, так это поменять тип хранения у столбца в таблице, например:

ALTER TABLE _accumrg13793 ALTER COLUMN _fld13807_rrref SET STORAGE 'сюда напиши что-нить из TOAST';

Вопросы:

1) Какие есть еще варианты?
2) Получается надо в каждой таблице, для каждого столбца это сделать? поможет ли это?
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38871988
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу результаты запроса:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
  pg_relation_size(c.oid) as size,
  ns.nspname,
  (select relname from pg_class where reltoastrelid=c.oid) as parent,
  c.relname, c.relkind, c.relpages, c.reltuples
from pg_class c
  join pg_namespace ns on ns.oid=c.relnamespace
order by size desc
limit 20
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872001
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первые 20 записей:

size nspname parent relname relkind relpages reltuples1244233728 public _document274 r 151884 6716731112047616 public _inforg15522 r 135748 527974864837632 public _accumrgt13527 r 105571 5.80627e+06825139200 public _accum13527_bydims_trrrtrn i 100725 5.80627e+06690765824 public _accumrgt14294 r 84322 4.63767e+06684277760 public _inforg13419 r 83530 3.59176e+06658259968 public _accum14294_bydims_trrrr i 80354 4.63767e+06624795648 public _accumrgt14112 r 76269 4.65244e+06579813376 public _accum14112_bydims_trrr i 70778 4.65244e+06565846016 public _document359_vt10651 r 69073 3.59176e+06532094976 public _accumrg14093 r 64953 1.75089e+06492863488 public _inforg12136 r 60164 3.27958e+06474693632 public _accumrgt13742 r 57946 2.95277e+06450297856 public _accum13742_bydims_trrrnr i 54968 2.95277e+06409550848 public _accumrg13529 r 49994 1.89976e+06402710528 pg_toast config pg_toast_140510 t 0 0392462336 public _infor12136_byresource12150_snnnnnnn i 47908 3.27958e+06378585088 public _infor13419_byperiod_trrr i 46214 3.59176e+06372121600 public _document338 r 45425 183608
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872036
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel BobrovnikovПервые 20 записей:

sizenspnameparentrelnamerelkindrelpagesreltuples1244233728public_document274r1518846716731112047616public_inforg15522r135748527974864837632public_accumrgt13527r1055715.80627e+06825139200public_accum13527_bydims_trrrtrni1007255.80627e+06690765824public_accumrgt14294r843224.63767e+06684277760public_inforg13419r835303.59176e+06658259968public_accum14294_bydims_trrrri803544.63767e+06624795648public_accumrgt14112r762694.65244e+06579813376public_accum14112_bydims_trrri707784.65244e+06565846016public_document359_vt10651r690733.59176e+06532094976public_accumrg14093r649531.75089e+06492863488public_inforg12136r601643.27958e+06474693632public_accumrgt13742r579462.95277e+06450297856public_accum13742_bydims_trrrnri549682.95277e+06409550848public_accumrg13529r499941.89976e+06402710528pg_toastconfigpg_toast_140510t00392462336public_infor12136_byresource12150_snnnnnnni479083.27958e+06378585088public_infor13419_byperiod_trrri462143.59176e+06372121600public_document338r45425183608

-- тест
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872178
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel BobrovnikovБаза превращается в 34 Гб.
Для начала сделайте vacuum full & reindex (иногда быстрее сделать pg_dump а потом pg_restore в отдельную базу)
Восстановление из dt - довольно специфичная процедура. Возможно, база уменьшится.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872205
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо. Как закончится, сообщу результаты.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872299
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel BobrovnikovРебьзя, привет.

Исследуем тему миграции 1С (в частности СУБД) с MSSQL на PostgreSQL.

Сразу к делу:
У меня есть база (приложение - 1С) на MS SQL (2012) в несжатом виде (data_compression = NONE) весит 20 Гб.
Мы ее экспортируем в dt-файл и загружаем в Postgres 9.2 от 1С (собран со всеми последними патчами по исходникам).
База превращается в 34 Гб.

Насколько я уже успел начитаться, в PostgreSQL по умолчанию сжатие, аналогичное data_compression в MSSQL, включено.
Единственное, что я нашел в Google, так это поменять тип хранения у столбца в таблице, например:

ALTER TABLE _accumrg13793 ALTER COLUMN _fld13807_rrref SET STORAGE 'сюда напиши что-нить из TOAST';

Вопросы:

1) Какие есть еще варианты?
2) Получается надо в каждой таблице, для каждого столбца это сделать? поможет ли это?

всеравно что не делай скорее всего будет по размеру больше чем в mssql (по целому ряду причин).
Но всеравно попробуйте vacuum full+reindex (на время этой процедуры база будет недоступна) может гигов 5-10 освободите.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38872333
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vaccum full прошел.
reindex прошел.

Размер изменился на 1 Гб в минус.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
postgres=# select t1.datname AS db_name,
       pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;
  db_name   | db_size
------------+---------
 test_1c    | 33 GB 
(7 rows)
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38873165
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel BobrovnikovУ меня есть база (приложение - 1С) на MS SQL (2012) в несжатом виде (data_compression = NONE) весит 20 Гб.
Мы ее экспортируем в dt-файл и загружаем в Postgres 9.2 от 1С (собран со всеми последними патчами по исходникам).
База превращается в 34 Гб. Это норма, беспокоиться по этому поводу не нужно.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38873279
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это только одна база :)
У нас еще некоторые базы по 200-300 и 500 Гб в сжатом(data_compression=page) виде..
Получается, что выходи один - подключать большие диски?

А что скажите по поводу данной команды:

Код: sql
1.
ALTER TABLE _accumrg13793 ALTER COLUMN _fld13807_rrref SET STORAGE 'сюда напиши что-нить из TOAST';



Когда ее надо применять?
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38873294
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel BobrovnikovУ нас еще некоторые базы по 200-300 и 500 Гб в сжатом(data_compression=page) виде..
Не дешевле ли вам остаться на MS SQL?
Помимо размера будут и другие проблемы со связкой Postgresql+1С.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38873339
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руководство сейчас решает...
Моя задача сделать исследовательский контур, запустить отчеты, регламенты, обмен. Конечно, будет обсчет стоимости перехода.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875958
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще столкнулись с такой проблемой:

латинские идентификаторы обрезает до 63 символов, русские до 32.
по справке postgres, изменение NAMEDATALEN должно помочь.

It's not possible to alter this option - it needs to be changed in source file src/include/pg_config_manual.h. Then Postgres needs to be recompiled, data directory initialized with initdb and data restored.

После внесения изменений в pg_config_manual.h, сделал так:

1) rm -rf * /var/lib/pgsql/9.2/data
2) su - postgres
3) initdb --locale=ru_RU.utf8

Создали базу, а обрезание осталось. Теже 32 символа...
Что делать?
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875966
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel BobrovnikovЕще столкнулись с такой проблемой:

латинские идентификаторы обрезает до 63 символов, русские до 32.
по справке postgres, изменение NAMEDATALEN должно помочь.

It's not possible to alter this option - it needs to be changed in source file src/include/pg_config_manual.h. Then Postgres needs to be recompiled, data directory initialized with initdb and data restored.

После внесения изменений в pg_config_manual.h, сделал так:

1) rm -rf * /var/lib/pgsql/9.2/data
2) su - postgres
3) initdb --locale=ru_RU.utf8

Создали базу, а обрезание осталось. Теже 32 символа...
Что делать?в 1С8 нет русских имён.
так у вас 1С ?
правда--правда ??7777агага

если вы сами их наплодили в масдайскл -- вы ССЗБ. разыменуйте их взад в латиницу [однозначным транслитератором -- их есть], а на клиенте подставляйте свои алиасы обратно.

хотя ваша решимость обломать сразу нефритовый корень -- внушаит
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875967
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel BobrovnikovЕще столкнулись с такой проблемой:

латинские идентификаторы обрезает до 63 символов, русские до 32.
по справке postgres, изменение NAMEDATALEN должно помочь.

It's not possible to alter this option - it needs to be changed in source file src/include/pg_config_manual.h. Then Postgres needs to be recompiled, data directory initialized with initdb and data restored.

После внесения изменений в pg_config_manual.h, сделал так:

1) rm -rf * /var/lib/pgsql/9.2/data
2) su - postgres
3) initdb --locale=ru_RU.utf8

Создали базу, а обрезание осталось. Теже 32 символа...
Что делать?

а базу то пересобрали и переставили после сборки?
(configure/make/make install)?
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875985
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

Реинициализация "3) initdb --locale=ru_RU.utf8" системной БД это разве не все равно что пересобрать?

Просто, я скачивал http://v8.1c.ru/overview/postgres_patches_notes.htm файл postgresql92-9.2.1-1.1C.src.rpm.
Делал rpmbuild и все дела...
На выходе он мне дал готовый RPM - postgresql92-9.2.1-1.1C.x86_64.rpm

Как сделать reinit в данном случае?
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875987
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

Сами изменения в pg_config_manual.h я вносил по адресу:

/usr/pgsql-9.2/include/
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38875992
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel BobrovnikovMaxim Boguk,

Реинициализация "3) initdb --locale=ru_RU.utf8" системной БД это разве не все равно что пересобрать?

Просто, я скачивал http://v8.1c.ru/overview/postgres_patches_notes.htm файл postgresql92-9.2.1-1.1C.src.rpm.
Делал rpmbuild и все дела...
На выходе он мне дал готовый RPM - postgresql92-9.2.1-1.1C.x86_64.rpm

Как сделать reinit в данном случае?ну какбе по ссылке есть слово "рекомпайл". пересобрать вам надо бинарники (вы хидер сишный правили), а не кластер БД (который конечно тоже, но потом)

--простите, не сионист, так, мимо проходил
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876029
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как? Если я ставил с RPM.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876032
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel BobrovnikovПодскажите, пожалуйста, как? Если я ставил с RPM.
я бы начал с поиска окрестного сиониста
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876189
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я Вас правильно понял, то этот сишный файл ставиться из RPM и менять-не меняй его - уже установленный Postgres его не меняет.
Если это так, что я переделаю RPM и заново поставлю. Отпишусь тогда.
Спасибо за наводку.
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876198
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel Bobrovnikov,

ну все верно -- вот же ваша цитата
авторIt's not possible to alter this option -
1. it needs to be changed in source file src/include/pg_config_manual.h.
2. Then Postgres needs to be recompiled,
3. data directory initialized with initdb
4. and data restored.


а то что Макс сказал про базу --
авторconfigure/make/make install
-- вот это вот всё
-- это же типовой бубен сиониста, да :?)
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876254
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось!

Собрал RPM с измененным сишным файлом, установил на новую виртуалку для проверки и ..вуаля!
Создали тестовую таблицу с 129-тью русскими символами - 1С все таки :)

Исследуем дальше. Спасибо за помощь!
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38876258
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel Bobrovnikov,
...
Рейтинг: 0 / 0
Сжатие базы данных
    #38882924
Pavel Bobrovnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, а подскажите еще по поводу бэкапа:

Настроил Master\Slave Stream Replication + закрыл pgpoool.

Насколько правильным будет снимать бэкапы со Slave-ноды?

p.s. ничего страшного, что я пишу в одном посту? :)
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сжатие базы данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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