Страница 1 из 1

Как ускорить работу PostgreSQL с помощью операций DUMP и RESTORE

СообщениеДобавлено: 15 июн 2010, 00:49
Kasside
Заинтересовала тема, начал делать описание с картинками и сам пробовать, но позже оказалось, что это мало что дает по сравнению с VACUUM, ANALYZE и REINDEX. Решил запостить как есть, вдруг кому пригодиться.

Сделали все это за 1 час вместе с моим другом, компьютер которого и стал подопытным кроликом...


По сообщениям на официальном форуме Holdem Manager такая операция сохранения дампа базы и восстановления ее из дампа лучше, чем VACUUM, ANALYZE и REINDEX, правда требует много места на жестком диске и некоторой сноровки. После нее размер базы данных значительно уменьшиться и увеличиться скорость работы, по словам специалистов.

У нас получилось, что небольшая база в 1500мб (это 300к рук) после полного VACUUM, ANALYZE и REINDEX стала занимать 1171мб, после же дампа и восстановления из него заняла 1111мб. Возможно еще это как-то повлияло на скорость работы, но мы не заметили, размер базы маловат для тестов.

Операция подойдет тем, у кого БД уже более 10-20гб, т.е. например кто покупает регулярно майнинг.

Чтобы определить размер базы данных, нужно выполнить такой запрос (окно выполнения запросов открывается в pgAdmin через кнопку "Выполнить пользовательские SQL запросы"):
Код: Выделить всё
SELECT pg_size_pretty(pg_database_size('yourdatabasename'));


Для тех, кто "в танке": подходит для программ Poker Tracker 3, Holdem Manager, Poker Office и всех других, которые используют PostgreSQL!

Итак, начнем

1) Найдите, где находится ваша база данных. Скорее всего это:
или C:\Program Files\PostgreSQL
или C:\Program Files (x86)\PostgreSQL

2) Для слабонервных: скопируйте установленный PostgreSQL(т.е. все директорию PostgreSQL из п.1), если вы боитесь потерять базу, хоть это почти невозможно в этой операции.

3) Запустите утилиту pgAdmin III(искать в Пуск - Программы - PostgreSQL). Она идет в комплекте с PostgreSQL. Если ее у вас нет, то скачайте отсюда: http://www.pgadmin.org/download/windows.php

4) Создайте новое соединение к базе данных:
DUMP_001.png


5) В списке появится новый пункт localhost(сервер postgresql). Выберите его и выберите нужную базу из списка "Базы". У меня это "hmdb".

6) По клику правой кнопкой выбираем Резервная копия...
DUMP_002.png


DUMP_004.png


Лучше делать копию в PLAIN - это быстрее, но требует больше места на диске!

7) Создайте новую базу данных. Для этого по правому клику на "Базы" выберите "Новая база данных..."
DUMP_005.png


8) Восстановите ее содержимое из файла дампа. Для этого по правому клику мыши выбираем "Восстановить" и выбираем нужный файл:
DUMP_007.png


DUMP_008.png


И жмем ОК. Если будут ошибки, то ничего страшного.

Если вдруг ОК ни в какую не горит(у нас при написании этой статьи после первого восстановления она уже не захотела загораться, видимо программа глючит иногда), можно сделать так:
8-А) Запускаем командную строку. Для этого в Пуск - Выполнить или в 7-ке в строке поиска меню Пуск введите cmd и нажмите ОК.
8-Б) Пишем: SET PATH=C:\Program Files\PostgreSQL\8.4\bin
Строка эта зависит от пути, куда установлен ваш PostgreSQL
8-В) Пишем: CD C:\
8-Г) Пишем: PSQL -h localhost -p 5432 -U postgres -W -f hmdb_dump.sql hmdb_new
Вводим свой пароль(обычно у всех postgres). И ждем, когда программа завершит работу.

Re: Как ускорить работу PostgreSQL с помощью операций DUMP и RESTORE

СообщениеДобавлено: 25 янв 2011, 19:59
serpank
в 8-Г вместо hmdb_dump.sql надо писать полный путь, аля С:\hmdb_dump.sql, по крайней мере в postgresql 8.4 без полного пути не работает восстановление. :hat:

Re: Как ускорить работу PostgreSQL с помощью операций DUMP и RESTORE

СообщениеДобавлено: 16 фев 2011, 20:21
Kasside
Спс :) А еще при резервировании можно выбрать "Только данные" и "Только схема", а то по умолчанию у меня еще и скрипты создания базы добавила и всякую прочую бесполезность...