Перенос базы на другой логический диск
Page 1 of 2 12 LastLast
Results 1 to 10 of 19
  1. #1
    Junior Member
    Join Date
    Apr 2016
    Posts
    6

    Default Перенос базы на другой логический диск

    Добрый день.
    У меня базы НМ2 хранятся на диске С
    Можно получить пошаговую инструкцию чтоб перенести эти базы на другой логический диск?
    Просто на диске С возникла проблема со свободным местом.
    Я видел здесь на форуме инструкции как ИЗНАЧАЛЬНО установить базы на другой диск...
    Но как быть с переносом - Чтоб и данные перенеслись - и с Диска С все вычистить?
    Win10x64
    С уважением,
    Александр
    Last edited by Kashevar; 07-30-2017 at 05:52 AM.

  2. #2
    Holdem Manager Support Sarek's Avatar
    Join Date
    May 2010
    Location
    Eridani 40
    Posts
    22,519

    Default

    Можно перенести и впоследствии.
    ХМ2, как известно, хранит данные в двух местах. Подробнее см. здесь.
    Поэтому инструкция тоже будет состоять из двух частей (Б и В) и предисловия (А).

    А. Создаем на желаемом диске (куда будем переносить) примерно такую структуру папок:
    D:\HM2base\PGdata
    D:\HM2base\HMparent
    (имена и взаимное расположение, конечно, я дал чисто в качестве рекомендации, но желающим проявить креативность предлагается делать это аккуратно и без фанатизма)

    Б. Перенос папки PostgreSQL\data
    1. Открываем Панель управления - Администрирование - Службы и для начала останавливаем сервис PostgreSQL.
    (в это же окно можно попасть через Диспетчер задач - Службы - Открыть Службы)
    В английском интерфейсе Винды это называется Sevices

    2. Затем делаем правый клик на этом сервисе - свойства
    В открывшемся окошке видим среди прочего нередактируемое поле "Исполняемый файл" (Path to executable). Там прописана (для системы) полная команда запуска postgres. Она обычно длинная (в символах если считать) и вся в окно не помещается. Но это не страшно, в поле данное, несмотря на его нередактируемость, курсор поставить кликом мыши можно. А затем нажать на клавиатуре клавишу END - курсор перейдет в самый конец строки, что и требуется. См. картинку:

    И вот в конце строки нас интересует путь к папке с данными, по умолчанию там
    C:\PostgreSQL\data
    но может быть и другой - смотря как СУБД устанавливалась. Например, на картинке путь чуть другой.
    Если имена папок при установке пользователь давал свои - должен разобраться.

    3. Запоминаем путь и открываем в Проводнике Windows эту папку.
    Открываем еще одно окно Проводника, в котором - новая папка D:\HM2base\PGdata (мы ее создали в разделе А).
    В старой исполняем пункт меню Проводника "Выделить всё" (оно же = CTRL+A)
    и копируем оттуда все в новую. Именно копируем пока, а не "перемещаем".

    4. Делаем в старой папке "шаг наверх" в Проводнике по структуре папок.
    Правый клик по папке Data - Переименовать - Добавляем к имени папки, например, пару нолей (дело вкуса, впрочем). Главное - имя сменить (и не забыть, как - потому что см. п.п. 10 и 11).

    5. Теперь идем в новую папку и ставим курсор в адресную строку - должен оказаться выделенным весь полный путь к папке. Копируем (чтобы не ошибиться при последующем наборе с клавиатуры) его в буфер обмена (CTRL+C).

    6. Запускаем редактор реестра Regedit
    причем обязательно от администратора, чтобы избежать проблем с сохранением изменений.
    Разворачиваем дерево реестра до уровня
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\postgresql-x64-9.3
    (номер версии, конечно, дан для примера - раз уж именно этот на картинке был - но обычно там 8.4 написано, ибо именно 8.4 ХМ2 ставит автоматически при своей установке).

    7. Ставим курсор на этот ключ реестра - справа видим несколько параметров.
    Правый клик на ImagePath - Изменить (Modify)
    Откроется малое окошко, в котором будет вся та строка запуска, которую мы уже видели в пункте А2. В нашем случае там будет:
    "C:\PostgreSQL\93\bin\pg_ctl.exe" runservice -N "postgresql-x64-9.3" -D "C:/PostgreSQL/93/data" -w
    Выделяем в самом конце ее путь к папке data
    И вставляем (CTRL+V) тот новый путь, который недавно копировали в пункте А5.
    тут нюанс: как мы видим, в реестре используется "прямой слеш" в пути к папке data. А тот путь, что мы скопировали в А5, содержит символ "обратный слеш". Поэтому - вручную меняем все слеши в этом только что вставленном фрагменте. Но только в нем! В пути к EXE, как видим, менять ничего не нужно.
    После нажатия OK в окне редактирования параметра изменения сохранятся сразу.

    8. Возвращаемся в окно Службы, исполняем там команду меню действия - Обновить (Action - Refresh).
    Открываем свойства сервиса Postgres и убеждаемся, что внесенное в пункте 7 изменение пути системой воспринято.
    Запускаем сервис. В норме должен стартовать за пару-тройку секунд, не очень долго.

    9. Запускаем ХМ2 - если все выполнено правильно, должна открыться все та же база данных, которая у нас была активна прошлый раз, и данные все в отчетах выводятся. Для полной проверки еще и смотрим несколько раздач в реплейере или на живом столе - все ли корректно выводится в HUD.

    10. Если не заработал - ищем по пунктам, где мы ошиблись. Если возникнет необходимость вернуться к хоть старой, но работавшей системе - отменяем все изменения, сделанные в пунктах 4 и 7.

    11. А вот если в пункте 9 все хорошо - вот теперь вспоминаем, что пунктом 4 мы старую папку Data только переименовали, а место на диске она все еще занимает. Самое время вернуться туда и удалить уже насовсем.


    В. Перенос папки Parent
    См. следующий пост, сюда не поместилось.
    Last edited by Sarek; 07-30-2017 at 12:43 PM.

  3. #3
    Holdem Manager Support Sarek's Avatar
    Join Date
    May 2010
    Location
    Eridani 40
    Posts
    22,519

    Default

    Теперь В. Перенос папки Parent
    1. Открываем папку Парента, путь по умолчанию к ней такой:
    %appdata%\HoldemManager\Database
    Чтобы добраться до папки (а она скрытая) - надо просто скопировать предыдущую строку вместе со знаками процентов и вставить в адресную строку Проводника windows - туда, где путь указывается, после чего нажать Enter

    2. Там на каждую базу данных имеется структура подпапок. Залезать внутрь - не стоит, разве что в целях удовлетворения любопытства. Брать будем всё. Если какая-то из баз данных не нужна - удалять можно только из интерфейса ХМ2!, он сделает все как положено, вместе с той частью БД, что в postgresql.

    3-а. Открываем в другом окне Проводника созданную в разделе А новую папку Парента и копируем всё из старой в новую. Будет долго. Очень долго. Потому см. п. 3б.

    3-б. По причине наличия в паренте большого (точнее, огромного) числа очень мелких файлов оптимальный способ копирования состоит в использовании командной строки CMD (которую обязательно запускать по правому клику "от администратора")
    В окне CMD дать команду xcopy со всеми параметрами, как указано ниже (удобно будет просто скопировать и вставить - см. картинку)

    Текст команды - вот он (при ручном наборе не запутаться в кавычках, слешах и пробелах!):

    xcopy "%appdata%\holdemmanager\Database\*.*" D:\HM2base\HMparent /E /C /I /H /R /Y

    и нажать Enter - в том же черном окне CMD пойдет прокручиваться список копирующихся файлов.
    Практика показывает, что таким способом копирование исполняется раз в десять быстрее, чем используя графический интерфейс Винды (из Проводника в Проводник).

    4. Когда копирование (тем или иным способом) завершится - старую папку парента (вот эту \database ) переименовываем аналогично п. А4.

    5. Теперь надо сообщить ХМ2 это новое местоположение папки. Для чего:
    - Открыть Пуск - Программы - Postgresql - Pgadmin
    - сделать дабл-клик на строке сервера слева (при первом запуске он попросит пароль для соединения с базами - указать и поставить галку пароль сохранить).
    - развернуть дерево до уровня баз данных и найти свою
    - развернуть ветку дерева еще дальше до уровня Schemas - public - Tables
    - найти таблицу с названием "Settings" и по правому клику открыть ее на просмотр данных. Там всего 4 строки, см. картинку:


    6. - В той строке, где в первой колонке написано "DatabaseParent" надо заменить содержимое второй колонки на свой новый путь к папке.
    В нашем примере это
    D:\HM2base\HMparent

    7. Повторить п. 6 для каждой из имеющихся баз данных ХМ2.
    Путь в таблице Settings надо прописывать до парента "вообще", для всех БД одинаково.
    То есть, вот так
    D:\HM2base\HMparent\имя_базы_данных - будет неправильно
    а правильно так, во всех базах:
    D:\HM2base\HMparent

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

    9. После чего старую папку Парента (на диске C) можно удалять.
    Причем удаление тоже из CMD работает гораздо быстрее, чем из Проводника.
    Вот так:
    RD /S "%appdata%\holdemmanager\Database"

    10. И последнее. ХМ2 помнит последний заданный в нем путь к Паренту.
    Потому, чтобы при следующем создании базы данных он опять не начал писать файлы на диск C (по умолчанию), надо в ХМ проделать такой трюк:
    открыть окно Database и нажать там зеленый плюсик
    откроется диалоговое окно создания новой базы данных, в нем имеется поле пути к Паренту
    вот в нем задать этот новый путь (ничего больше в окне не меняя)
    D:\HM2base\HMparent
    придумать базе данных любое имя и довести создание до конца.
    Вновь созданная БД станет активной (зеленой) - но это ненадолго.
    Назначить активной обратно ту базу, что была до этого,
    а эту только что созданную - удалить красным минусом.
    Этим "создали-удалили" мы добились, что новый путь к Паренту ХМ запомнил, и когда нам потребуется уже на самом деле создавать новые базы - все будет писаться куда нам нужно.
    Last edited by Sarek; 07-30-2017 at 12:57 PM.

  4. #4
    Junior Member
    Join Date
    Apr 2016
    Posts
    6

    Default

    БРАВО!!!!!
    Благодарю за столь профессиональный и оперативный ответ!
    Благодаря Вам все оказалось гораздо проще чем представлялось изначально. Всего то минут 20 ))
    Спасибо за помощь и УДАЧИ!!! ))
    Last edited by Kashevar; 07-31-2017 at 04:42 AM.

  5. #5
    Junior Member
    Join Date
    Apr 2016
    Posts
    6

    Default

    Вопрос вдогонку
    Если этот перенос произвести на внешний диск
    А потом подключить на другой компьютер с аналогичной конфигурацией Postgres и НМ2 и буквой для внешнего диска?
    Можно таким образом базу переносить с места на место и играть со своей базой НМ с разных мест - или это бред?

  6. #6
    Holdem Manager Support Sarek's Avatar
    Join Date
    May 2010
    Location
    Eridani 40
    Posts
    22,519

    Default

    Сделать-то можно...
    Для этого нужно, чтобы оба компа были в смысле конфигурации - абсолютно аналогичны. Начиная с именю пользователя Винды (которое вылезет в расшифровке системной переменной %appdata%).

    Но "бесплатно" это не пройдет: поскольку подключаемые диски всегда медленнее встроенных - получится снижение шустрости ХМ.
    Я уж не говорю, что на том компе, к которому в момент включения диск этот НЕ подключен - не стартует PostgreSQL.

  7. #7
    Junior Member
    Join Date
    Nov 2017
    Location
    Chernivtsy
    Posts
    14

    Default

    а что делать, если при конекте к серверу выдает такое. я подключился впервые, ввел пароль, а оно мне.pg.png

  8. #8
    Holdem Manager Support Sarek's Avatar
    Join Date
    May 2010
    Location
    Eridani 40
    Posts
    22,519

    Default

    Тут варианты:
    - либо просто пароль неправильно вводил (а по умолчанию он = postgrespass)
    - либо вообще PostgreSQL была нехорошо установлена. Инструкция в теме Read me first вверху раздела.
    - либо антивирус мешает.

  9. #9
    Junior Member
    Join Date
    Mar 2019
    Posts
    4

    Default

    Сделал все по инструкции, базу postgresql по первой инструкции перенес, все работало. По второй инструкции проблема возникла как на скриншоте. Может неправильно путь указан к папке? Как исправить?
    5.jpg

  10. #10
    Holdem Manager Support Sarek's Avatar
    Join Date
    May 2010
    Location
    Eridani 40
    Posts
    22,519

    Default

    Последовательно пройтись еще раз по всем пунктам инструкции - на этот раз тщательнЕЕ

Similar Threads

  1. Replies: 7
    Last Post: 07-25-2017, 02:49 AM
  2. Перенос базы из другой системы
    By A0313 in forum Русский форум
    Replies: 1
    Last Post: 08-27-2016, 03:37 PM
  3. Replies: 1
    Last Post: 01-22-2014, 07:09 PM
  4. Сбил настройки подключения к Посгри
    By kirevg in forum Русский форум
    Replies: 7
    Last Post: 07-20-2012, 12:30 PM
  5. Просмотр предыдущей раздачи! И Шансы банк
    By PostAllNuts in forum Русский форум
    Replies: 1
    Last Post: 03-05-2012, 05:22 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •