Наверх

База знаний
Try 2 Fix
beta

1С:Предприятие и PostgreSQL: Размещение базы данных 1С за пределами хранилища PostgreSQL

Переход с файловой БД на PostgreSQL

Вносить какие-то глобальные изменения сразу в работающую базу данных 1С:Предприятие — дело неблагодарное. Даже если у Вас есть резервные копии, понадобится время, чтобы восстановить их, а время для некоторых организаций критично. Поэтому лучше проводить отладку своих обработок на копии базы данных. Если это файловая версия — вообще нет никаких проблем. Если SQL — всё немного сложнее. А если ещё и закончилось место в хранилище баз данных СУБД, а расширять хранилище нет места/возможности — то это вообще проблема. Но мы поможем!

Итак, нашему клиенту понадобилась работающая копия SQL версии базы данных 1С:Предприятие. На SSD с корнем хранилища PostgreSQL осталось меньше 10Гб, а нам надо около 70Гб. На соседних HDD место есть. В качестве сервера у нас Windows Server 2008R2. Исходная база данных будет называться PG_1CBase. Создаваемая копия будет называться PG_1CBase_NEW.

  1. Делаем резервную копию базы данных 1С с помощью pg_dump:
    C:\Program Files\PostgreSQL\9.4.2-1.1C\bin>pg_dump.exe -U postgres -F c -b PG_1CBase > E:\PG_1CBase.backup

    За ключом -U указываем имя пользователя для доступа к серверу PostgreSQL, -F с — это формат custom. После вводе этой команды необходимо ввести пароль для пользователя postgres.

  2. Заходим в Администрирование серверов 1С:Предприятие:
    Console Root > Central 1C:Enterprise 8.3 servers > (*) %Server_Name% > Кластеры > Локальный кластер > Информационные базы.
  3. Создаём пустую базу данных с названием PG_1CBase_NEW, ставим галочку «Создать базу данных в случае её отсутствия».
  4. Идём в корень хранилища баз данных PostgreSQL, перемещаемся вглубь:
    %pg_root%\data\base
    
  5. Папка, находящиеся там, это базы даннх. Ищем последнюю созданную папку (её имя — большее число). Размер папки будет от 6Мб до12Мб. В нашем случае эта папка имеет имя 1885847. Полный путь новой БД:
    %pg_root%\data\base\1885847
  6. Через pgAdmin останавливаем службу PostgreSQL:
    Группы серверов > Серверы > localhost:5432 > ПКМ > Остановить службу
  7. На раздел с достаточным количеством свободного места переносим папку с созданной базой данных из пункта 5. В корне хранилища PostgreSQL её больше быть не должно. Новый путь будет выглядеть, например, так:
    E:\1885847
  8. В правах на эту папку добавим пользователя postgres (так назвали пользователя СУБД при установке), дадим ему полные права.
  9. Теперь начинается магия. Чтобы ОС думала, что база данных лежит в хранилище PostgreSQL, а физически она находилась в другом месте, создаём символьную ссылку (симлинк или symlink) в командной строке от имени Админинистратора:
    mklink /j /D "%pg_root%\data\base\1885847" "E:\1885847"

    Появится сообщение о том, что символьная ссылка успешно создана. В исходной папке появится ярлык. Но если Вы кликните по нему, то в адресной строке увидите не новый путь E:\1885847, а старый путь.

  10. ВАЖНО! После переноса директории, в pgAdmin при доступе к новой базе Вы можете увидеть сообщение «FATAL: could not open file «…»: Permission denied». Это значит, что у новой папки по новому пути нет прав для Windows пользователя postges (системный пользователь, не пользователь PostgreSQL!). Права должны быть полными. Даются через ПКМ по новой папке > Свойства > Безопасность > Изменить… > …
  11. Через pgAdmin запускаем службу PostgreSQL:
    Группы серверов > Серверы > localhost:5432 > ПКМ > Запустить службу
  12. А дальше просто восстанавливаем базу данных 1С:Предприятие из созданной ранее копии:
    C:\Program Files\PostgreSQL\9.4.2-1.1C\bin>pg_restore.exe -U postgres -d PG_1CBase_NEW E:\PG_1CBase.backup

    После этого вы получите 2 рабочие базы данных 1С:Предприятие: одна будет рабочая, другая для тестов.

Остались вопросы?

Лоджик Флоу


Аутсорсинг / Системное администрирование / Техническая поддержка / Сопровождение 1С:Предприятие

+7 (8634) 383-490 / +7 (906) 430-7000
mail@logicflow.ru

Что-то пошло не так? Специалисты нашей компании помогут Вам разобраться с возникшими проблемами! Обращайтесь! →

Также Ваши вопросы Вы можете задать в нашей группе ВК или на нашем YouTube канале!

Эти статьи будут Вам интересны

Настройка редиректа 301 в файле .htaccess. Переадресация со старого домена на новый.

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

Сетевая карта Intel Ethernet Connection I219-LM на Windows Server 2008R2

Ни с помощью драйверов с сайта производителей материнской платы, ни с помощью DriverPack Sollution, ни с помощью ручного указания папки с драйверами не удалось запустить сетевую карту Intel Ethernet Connection I219-LM на Windows Server 2008R2. Но мы не сдавались и победили.

FreeBSD 11: обновление ОС FreeBSD

Обновление любой операционной системы - обязательная операция и не важно, какая ОС у Вас стоит: Windows, Mac OS или Unix. FreeBSD тоже нуждается не только в обновлении портов, но и в обновлении системных компонентов. Рассказываем как это сделать.