Датамайнинг
Рейкбек от NLclub

Перенос базы данных PostgreSQL на новый жесткий диск

Как мне перенести базу данных PostgreSQL на новый жесткий диск?




Если у Вас PostgreSQL установлен на системном диске C, но вы хотите переместить базы данных на другой раздел или внешний жесткий диск, т.к на диске C мало места, это может быть сделано без переустановки PostgreSQL.

Первым делом, остановите службу PostgreSQL на время переноса.

Windows XP
Пуск > Панель Управления> Администрирование > Службы

Windows Vista/W7
Пуск > Поиск > Службы

Вам нужно, чтобы открылось такое окно:

postgres-001.jpg

Щелкните правой кнопкой мыши по службе PostgreSQL и выберите в меню "Стоп" для остановки службы.

Затем создайте на том диске куда вы хотите перенести базу папку Program Files в ней PostgreSQL и в ней data. Должен получиться путь I:/Program Files/PostgreSQL/data

Далее скопируйте или переместите все данные из первоначальной папки c:/program files/PostgreSQL/8.3/data в новую созданную Вами I:/Program Files/PostgreSQL/data. Это может занять много времени.



Редактирование реестра:
Теперь мы должны указать PostgreSQL новую папку расположения данных, а для этого нам нужно внести изменения в реестр

Windows XP
Перейдите Пуск > Выполнить и в текстовом поле наберите команду regedit, нажмите enter, должно открыться следующее окно:

Windows Vista/W7
Перейдите Пуск> Все программы>Стандартные > Выполнить и в текстовом поле наберите команду regedit, нажмите enter, должно открыться следующее окно:

postgres-002.jpg

В левой панели откройте папку : HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/pgsql-8.3, см. картинку ниже:

postgres-003.jpg

На картинке красной линией обведен ключ, который нужно изменить. Щелкните правой кнопкой мыши по имени ключа и выберите "Изменить", откроется окно со значением ключа:

"C:/Program Files/PostgreSQL/8.3/bin/pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "C:/Program Files/PostgreSQL/8.3/data/"

Теперь Вам нужно изменить только часть, выделенную жирным шрифтом. Вы переместили базу и должны указать PostgreSQL новый путь, именно он и выделен. Нельзя допустить ошибку в пути, поэтому можно сделать так: открыть в проводнике нашу папку /data и кликнуть правой кнопкой мыши по любому файлу и выбрать Свойства, откроется такое окно:

postgres-004.jpg

В строке "Размещение" будет написан полный путь к папке, который нужно выделить и скопировать. И после этого вставить его вместо выделенной части ключа в реестре. Старый ключ выглядел так:

"C:/Program Files/PostgreSQL/8.3/bin/pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "C:/Program Files/PostgreSQL/8.3/data/"

Должно получиться так:
"C:/Program Files/PostgreSQL/8.3/bin/pg_ctl.exe" runservice -w -N "pgsql-8.3" -D "I:/Program Files/PostgreSQL/8.3/data/"

Это все. Закройте все окна и перезагрузите компьютер.


Если перенесенная база данных работает нормально можно удалить исходную папку /data на диске C, если Вы не сделали этого раньше.







www.webmoney.ru Здесь находится аттестат нашего WM идентификатора 221460217454 Борис Северный,
E-mail: boreaz@nlclub.org
ICQ: 369768182