Наверх

База знаний
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С:Предприятие: одна будет рабочая, другая для тестов.

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

Создание, просмотр и распаковка архивов TAR, ZIP, RAR в Linux (tar.gz, tar.bz2, zip, rar)

Рассказываем как в терминале ОС Linux проводить обыденные операции по архивированию и разархивированию файлов и директорий с помощью TAR, ZIP и RAR.

Пустой рабочий стол Windows после чистки ПК от вирусов

Различное рекламное и вирусное ПО всё чаще обходит защиту дорогостоящих антивирусов и проникает на наши ПК и ноутбуки. Тому, как от этого защититься посвящена наша отдельная статья. Если это уже произошло, то существует множество утилит, способных найти всех зловредов. Но зачастую случается ситуация, когда после перезагрузки ПК пользователь не обнаруживает не только сторонее ПО или баннеры, но и панель задач Windows и все ярлыки - рабочий стол абсолютно пустой. Исправляем сложившуюся ситуацию.

Mercury MPrint LP58 EVA: печатает непонятные символы («иероглифы», «кракозябры»)

Клиент приобрёл указанный в заголовке принтер этикеток, потребовалось настроить его для 1С. Драйверы установлены, настройки принтера сделаны (размер бумаги, отступы). Ничто не предвещало беды. Пускаем на печать любой документ *.txt и вместо содержимого файла видим то, что можно увидеть на картинке, прикреплённой к этой записи. Разбираемся, почему это происходит.