[HM1] Уменьшение размера баз данных

    • vpmarat
      vpmarat
      Модератор
      Модератор
      На форуме с: 22.01.2008 Сообщения: 84.233
      Это отдельная закрытая тема, в которой собственно скопированная из другой темы инструкция. Оригинал находится здесь снова про размеры базы и если кто желает подискутировать - вам туда.
      Чтобы сократить место, занимаемое на диске базами данных, нужно:
      1. Удалить (руками) логи PostgreSQL, которые лежат в папке data\pg_log, но саму папку не трогай. Если операционка не дает удалить - временно остановить сервис.
      2. Чтобы она логи больше не писала (а они - лишние для нас), отключить эту опцию в настройках PostgreSQL (logging_collector = off) вот так:
      (открыть файлик postgresql.conf на редактирование еще можно через Пуск -Программы-PostgreSQL-Конфигурационные файлы)
      3. После чего сделать вакуум базы, а потом еще и реиндексацию (удобнее через PGAdmin, раскрыв дерево, подключившись к нужной базе и по правому клику выбрав пункт Техобслуживание). UPD: в ХМ для етого есть Optimize в меню database management.
      Картинка PGadmin

      4. Если покажется мало - удалить из базы ХМ1 сдачи (какие не жалко). Options > Settings - Observed HH configuration - кнопка Purge HH options. Оно собственно истории выкинет, а статистика от них останется (только в ХМ1, во втором стата после этого НЕ остается!). Только посмотреть ты их потом в реплейере не сможешь. Экономится процентов 12-15 дискового пространства. Можно удалить только часть (есть возможность отбора по разным критериям). Полная инструкция на английском здесь.
      Осторожно! В ХМ1 есть и другая опция (Options - Settings Purge hands), которая, в отличие от вышеописаной, СОВСЕМ удаляет и руки, и статистику от них! Не перепутайте.
      Хотя оптимальным (для обоих ХМ) является просто создание новой базы данных + импорт в нее только нужного из архива. А старую - удалить.

      4а. Что касается ПТ , то удаление сдачи из базы удаляет и статистику от нее тоже. После удаления сдач (в любой из трех программ) необходимо проделать вакуум базы и реиндекс.
      5. А потом, после всего - дефрагментацию диска, на котором лежит папка Data. Причем, опять же, при остановленном сервисе PostgreSQL. Лучше делать более серьезным средством, чем встроенный в Винду дефрагментатор. Например, http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx
      6. После чего перегрузить комп - все само включится.
  • 1 ответ
    • vpmarat
      vpmarat
      Модератор
      Модератор
      На форуме с: 22.01.2008 Сообщения: 84.233
      - остановить сервис Postgresql (Панель управления - Администрирование - Службы)
      - переместить на другой диск папку
      C:\PostgreSQL\Х.Х\data, а на старом месте создать с ней логическую связь при помощи команды (запускать через Пуск - выполнить)

      mklink.exe /J C:\PostgreSQL\9.0\data\ D:\PostgreSQL\data\

      где (для примера) C:\PostgreSQL\9.0\data\ - старый путь к папке, место где будет связь
      D:\PostgreSQL\data - новое место куда мы переместили папку data.

      - После чего запустить сервис Постгри обратно

      Теперь Постгри будет думать что папка на старом месте.
      Чтобы вернуть все на место, нужно остановить сервер, удалить связь как обычную папку, а потом вернуть папку data на место.

      Внимание: в случае ХМ1 на этом процесс заканчивается.
      Но если речь идет о ХМ2 - там еще примерно столько же по объему информации находится в другой папке, к PostgreSQL отошения не имеющей. Но ее тоже обычно переносят.