URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 54413
[ Назад ]

Исходное сообщение
"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."

Отправлено diam , 14-Мрт-05 11:42 
Доброго всем времени года!

Моя проблема, кратко. Есть FreeBSD 5.2, на которой вертится СУБД PostgreSQL. Дело в том, что есть одна таблица, куда регулярно вносится и удаляется потом записей порядка 300 000.

Т.е., вносится INSERT'ом, удаляется DELETE'ом. При этом VACUUM не делается... БД выросла до охрененных размеров при этом, так, что я не смог её не остановить, не посмотреть, сколько данных в этой таблице.
Я остановил постгрес, намереваясь позже запустить его и сделать под админом VACUUM FULL, в резулатате он у меня висит... :(

Люди, что с ним сделать? Там лежат данные, которые нужны, причём очень. Мне нужно, что бы база продолжила функциклировать, т.е., лучше бы сделать VACUUM её...

Хелп, плиз!


Содержание

Сообщения в этом обсуждении
"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено Z0termaNN , 14-Мрт-05 11:55 
способ 1
postgresql$ vaccumdb -v database

способ2
1. pg_dump
2. dropdb
3. createdb
4. pg_restore


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 14-Мрт-05 11:56 
>способ 1
>postgresql$ vaccumdb -v database
>
>способ2
>1. pg_dump
>2. dropdb
>3. createdb
>4. pg_restore


При способе 2 данные потеряются?


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено Z0termaNN , 14-Мрт-05 12:30 
>>способ 1
>>postgresql$ vaccumdb -v database
>>
>>способ2
>>1. pg_dump
>>2. dropdb
>>3. createdb
>>4. pg_restore
>
>
>При способе 2 данные потеряются?

чего им вдруг теряться ?
1. делаем dump базы данных в файл (man pg_dump),
2. удаляем базу
3. создаем базу
4. восстанавливаем базу из дампа
(предварительно читаем man pages)



"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено butcher , 14-Мрт-05 11:56 
>Т.е., вносится INSERT'ом, удаляется DELETE'ом. При этом VACUUM не делается...
А вот это зря.. Нужно переодически это делать, я у себя делаю раз в 4 часа обычный VACUUM, раз в сутки FULL ANALYZE + backup.
Так что более ли менее шустро всё работает и бэкап есть в случае чего..

>БД выросла
>до охрененных размеров при этом, так, что я не смог её
какие размеры если не секрет? :)

>не остановить, не посмотреть, сколько данных в этой таблице.
>Я остановил постгрес, намереваясь позже запустить его и сделать под админом VACUUM
>FULL, в резулатате он у меня висит... :(

Что значит висит, поподробнее можно?


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 14-Мрт-05 12:01 
>>БД выросла до охрененных размеров при этом, так, что я не смог её
>какие размеры если не секрет? :)
18 Гигабайт на диске. Диск 20-гиговый, машина Атлон 900.


>>не остановить, не посмотреть, сколько данных в этой таблице.
>>Я остановил постгрес, намереваясь позже запустить его и сделать под админом VACUUM
>>FULL, в резулатате он у меня висит... :(
>
>Что значит висит, поподробнее можно?

Сорри за висит. Он не висит, он медленно работает, как оказалось... Т.е., я запускаю ( при запуске системы ) постгрес, висит четыре процесса postmaster'а, слушает на порту 5432, но зайти нельзя - пишет, что "ни одной БД не запущено".
Но после получаса такого простоя я зашёл! И могу смотреть любую таблицу, кроме tempstat!, в которой у меня так много записей. Говорю DELETE FROM tempstat;
Он мне.........
И ждём. Через час.... DELETE 1136176;

Запускаю VACUUM FULL... И всё, ответа пока нет...


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено butcher , 14-Мрт-05 12:05 
>Запускаю VACUUM FULL... И всё, ответа пока нет...
Надо было сделать verbose.. Тогда хоть процесс видно :)
Попробуйте подаждать.. dump+restore с такими объёмами будет не быстрее, ИМХО..

"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 14-Мрт-05 12:07 
>Попробуйте подаждать..
Попробую, что делать-то ещё? :)

"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено Brainbug , 14-Мрт-05 12:52 
>>>БД выросла до охрененных размеров при этом, так, что я не смог её
>>какие размеры если не секрет? :)
>18 Гигабайт на диске. Диск 20-гиговый, машина Атлон 900.
>
>
>>>не остановить, не посмотреть, сколько данных в этой таблице.
>>>Я остановил постгрес, намереваясь позже запустить его и сделать под админом VACUUM
>>>FULL, в резулатате он у меня висит... :(
>>
>>Что значит висит, поподробнее можно?
>
>Сорри за висит. Он не висит, он медленно работает, как оказалось... Т.е.,
>я запускаю ( при запуске системы ) постгрес, висит четыре процесса
>postmaster'а, слушает на порту 5432, но зайти нельзя - пишет, что
>"ни одной БД не запущено".
>Но после получаса такого простоя я зашёл! И могу смотреть любую таблицу,
>кроме tempstat!, в которой у меня так много записей. Говорю DELETE
>FROM tempstat;
>Он мне.........
>И ждём. Через час.... DELETE 1136176;
>
>Запускаю VACUUM FULL... И всё, ответа пока нет...

Pri 18Gb baze i 20Gb na diske - ne jest horosho.
Pri silnom zapolnenii diska ja na svojej baze zame4al snizenije proizvodi
telnosti. U menja ne 18Gb, no 7-8Gb.
Jest tablici s poradka 3-4 millionami zapisei. VACUUM na nih idet
poradka 3o min.
Kakaja versija postgresql ?


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 14-Мрт-05 13:38 
>>
>>Запускаю VACUUM FULL... И всё, ответа пока нет...
>
>Pri 18Gb baze i 20Gb na diske - ne jest horosho.
>Pri silnom zapolnenii diska ja na svojej baze zame4al snizenije proizvodi
>telnosti. U menja ne 18Gb, no 7-8Gb.
>Jest tablici s poradka 3-4 millionami zapisei. VACUUM na nih idet
>poradka 3o min.
>Kakaja versija postgresql ?
Версия - 7.4.


Блин, Я ДО СИХ ПОР ЖДУ!!!


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено butcher , 14-Мрт-05 13:42 

>Блин, Я ДО СИХ ПОР ЖДУ!!!
:)
А ты хотел, 18 гигов..
Запусти в другой консоли top и любуйся..

"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 14-Мрт-05 13:58 
>
>>Блин, Я ДО СИХ ПОР ЖДУ!!!
>:)
>А ты хотел, 18 гигов..
>Запусти в другой консоли top и любуйся..

Что, собственно говоря, и сделал. :)


"PostgreSQL. Большой размер БД. Ни посмотреть, ни..."
Отправлено diam , 15-Мрт-05 10:46 
Всё!
Вакуум закончился!
Длился ровно 16 часов!
Аффигеть!

Больше не буду делать таких ошибок :)