Наверх

База знаний
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С:Предприятие: hardlock.sys file (null) processing error. Status code 12 4 2163 32

При установке платформ 1С:Предприятие 8.3, начиная с версии 8.3.10.х, у многих наших клиентов при установке драйвера защиты HASP стала появляться следующая ошибка: hardlock.sys file (null) processing error. This is an internal error. For assistance, contact your administrator or the software manufacture. Status code 12 4 2163 32. Ошибка была замечена пока что только в Windows 10. Все простые шаги вроде чистки мусора и кэша, чистки реестра, запуска установки от имени администратора уже пройдены - не помогло. Но мы нашли решение! Рассказываем!    

Внутренняя ошибка компоненты 1С:Предприятие dbeng8.dll

Неоднократно наши клиенты обращались к нам с проблемой, обозначенной в заголовке этой статьи: пользователь входит в базу данных 1С:Предприятие и вместо своих документов и номенклатуры видит сообщение об ошибке "Внутренняя ошибка компоненты dbeng8.dll". Что же делать?