1С сервер 8.2 + MsSql 2008 + BackUp

    Похожих статей достаточно много, но эту я в первую очередь писал для себя, останавливаясь на примечаниях, в которых описаны возможные проблемы. Надеюсь статья будет полезна и другим.
    1. Устанавливаем 1С платформу
    2. Устанавливаем MS SQL server 2008. При установке задаем пользователя баз данных. (Который SA).

    После установки открываем панель администрирования серверов 1С предприятия и видим что она пуста.
    Нужно создать сервер: Открываем console root->Central 1C: Enterprise 8.2 servers. Кликаем по нему правой кнопкой мыши и выбираем пункт new. В выпадающем меню выбираем Центральный сервер 1С Предприятия 8.2. Перед нами откроется окошко с 4-мя полями:
    Протокол — протокол по которомы будут передаваться данные
    Имя — имя компьютера в сети на котором располагается сервер
    IP порт- порт по которому доступен сервер
    Описание-описание. не обязательно.

    Примечание:
    Если платформа 1С была установлена на компьютер, и потом компьютер был переименован, то достучаться до него вы не сможете, потому что платформа 1С шибко умная платфома и записывает в определенные файлики при установке имя компьютера, но потом, когда имя компьютера менятся платформа их уже не перепишет. Эти файлики нужны для работы сервиса RAGENT 1С (его можно найти в запущеных службах, через панель администрирования сервера windows). Это все говорит о том, что чтобы переименовать эти файлы-необходимо остановить службу RAGENT. Сами файлы находятся в следующих местах:
    C:\Program Files (x86)\1cv82\srvinfo\srvribrg
    C:\Program Files (x86)\1cv82\srvinfo\reg_1541\1CV8Reg
    Открываем эти файлии блокнотом и правим прошлое имя машины на настоящее ручками. Сохраняем и запускаем RAGENT.

    Возвращаемся к настройке:
    После того как заполнено окно с полями нажимаем кнопку OK и если все сделано верно то у нас появляется сервер по имени машины, на которй он стоит.

    И так. Сервер запущен и теперь нам нужно создать базу на MYSQL server и связать ее с севером 1C. Есть несколько способов-здесь я опишу самый простой:
    На сервере 1С предприятия открываем наш новый созданный сервер кликом по + рядом с названием сервера и на пункте «ИНФОРМАЦИОННЫЕ БАЗЫ» кликаем правой кнопочкой мыши, выбираем New->Информационная база
    Перед нами откроется окно в котором будут следующие поля:

    Имя-имя нашей базы данных на сервере 1С (Как правило многие его пишут таким же как как и в поле база данных, чтобы не путаться)
    Описание-описание
    Защищенное соединение-по умолчанию выключено. можно включить но тогда нагрузка на сервер возрастет
    Сервер баз данных-если сервер на этом же сервере то указываем (local) именно так в скобочках, если не на этом сервере то указываем ip сервера
    Тип СУБД-Выбираем тип MS SQL
    База данных-имя базы данных на сервере MS SQL. Если базы нет то в одном из чекбоксов можно поставить галочку и она создастся
    Пользоватлель сервера БД-Указываем либо того пользователя которого создаваи при установке, либо создаем отдельного пользователя в MS SQL, задаем ему права и прописываем его здесь.
    Пароль пользователя сервера БД-пароль
    Разрешить выдачу лицензий сервером 1С предприятие-выбираем да
    Страна-Выбираем страну
    Смещение дат-ставим в 0
    Чекбокс «Создать базу в случае отсутсвия»-тот самый чекбокс для создания базы, если ее нет
    Чекбокс «Установить блокировку регламентных заданий»-не ставим галочку

    Нажимаем ОК и видим что серверы настроены и у нас в закладке «Информационные базы» появилась информационная база под именем которое мы ей дали.

    Далее осталось настроить BackUp. О том какие бывают я рассказывать не буду-информации и так море. Можно например посмотреть в этой замечательной статье.

    Чтобы нстроить Backup нам нужно открыть Microsoft SQL MANAGEMENT STUDIO.
    Вводим логин и подключаемся к серверу.
    Перед нами административная консоль. В Object explorer открываем вкладку Management и в ней видим Maintance plans. Здесь будем создавать нужный нам BackUP. Как обычно правый клик по Maintance plans->new maintance plan. В главном окне появится вкладка subplan, а под Object Explorer появится еще одно окошечко ToolBox в котором вложен Maintance Plans Tasks. В ней мы выберем Back Up DataBase Task кликнув по нему 2 раза. Он перенесется на главное окно. На нем кликаем 2 раза и перед нами появляется окно опять же с полями, где мы можем выбрать какой Back Up делать, какую базу BackUp-ить, и куда это сохранять. По окончании настроек нужно нажать Ok.

    Примечание:
    Сохраняя Back Up в какую либо сетевую папку (путь кстати придется прописать ручками, потому, что оконко выбора директории видит только локальные рессурсы) проследите за правами доступа, и заодно проследите какая у вас аутентификация на сервере MySql потому что если аутентификация выставлена не по учетным записям Windows, а по внутреннему пользователю СУБД и если при этом у вас поднят сервер AD то BackUp будет выдавать ошибку при попытке исполнения, поскольку будет это делать от имени внутреннего пользователя СУБД и AD его не пропустит никуда кроме локального компьютера.

    После того как вы настроили путь, базу и тип BackUp нужно настроить расписание. Для этого в главном окошке над созданным вами Task есть табличка SubPlan. В конце таблички (справа) есть иконка календаря. Кликнув на нее вы попадете в настройку расписания. Отмечая чекбоксы дней и выставляя время вы настроите расписание. Кликнув 2 раза на поле под названием SubPlan вы сможете изменить название Task-a. Настроив все пройдите в File->Save All. После сохранения в Maintance plans появится Task c вашим названием который вы дали BackUp-у.

    По окончании настройки нужно обязательно проверить Работу. Для этого Правой клавишей мыши кликните на созданном Task и выполние Exicute.

    Примечание:
    Если Exicute выполняется с ошибкой читайте ошибки которые вам выдаст Studio, и первым делом проверьте запуще ли у вас SQL server agent. Это он занимается выполнением заданий и функция Exicute обращается именно к нему за выполнением заданий. Если он не запущен попытка выполнения потерпит неудачу. Дял того чтобы посмотреть работатет ди агент или нет в Studio в Object Explorer пройдите во вкладку SQL Server Agent . Если на иконке булет красный кружок с крестиком- значит агент остановлен. ЗАпустить его можно кликнув на нем правой кнопкой мыши и выбрав к контекстном меню опцию START.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 16
    • 0
      Смещение дат ставьте 2000, чтобы не получить потом проблем с «пустыми датами». Вроде в 2008 еще не сделали по человечески. Из-за этого при попытке загрузить документ в котором дата < 1753 года, например из-за опечатки получился «211 год» — загрузка не сможет пройти. Ну а так — кроме грабель переименования компьютера — ничего сверх того, что есть в прилагаемой к 1с книге из сотни страниц «Клиент-сервер. Особенности установки и использования» нету. Ну и в этой книге еще и про особенности postgre sql, db2, сервера для линукса написано.
      Ну а про бэкапы — в мануалах к скулю, да.
      • 0
        Хотя, конечно, популяризации 1с на хабре рад.
        • 0
          собственно ничего нового привнести особо и не старался. Заметку делал для себя и для своей дырявой памяти) Просто раз уж написал решил поделиться, какая разница в черновиках держать или выкладывать в сеть, вдруг кому поможет)
          • 0
            Делайте на вики-страничке на портале предприятия.
      • 0
        Про 211 год — такое может произойти, например, в распределенной базе, в которой другой узел на чем угодно, кроме MS SQL, т.е. файловый, на Postgre, на DB2. А из-за такой мелочи встанут обмены, придется искать этот документ, а ведь дата кривая может быть в любом реквизите.

        После создания это смещение уже не изменить, только через выгрузку в .dt, удаления базы в скуле, создания новой с правильным смещением, загрузки .dt, а это долго.
      • 0
        Нет смысла создавать базы под встроенным пользователем SA. Достаточно создать в MSSQL нового пользователя и дать ему права на создание баз. В этом случае при создании через сервер предприятия он будет автоматически владельцем, и можно регулировать области доступа к разным базам с нескольких серверов. Ну и вообще это идеологически правильнее.
        Если мне не изменяет память, 1С 8.2 не работает с mssql если там выставлена аутентификация только по доменным учетным записям, необходимо выставлять обязательно смешанную аутентификацию. Доменные учетки использовать при этом можно.
        • 0
          Да. Наверное учеткам в моем посте было бы правильно уделить больше внимания. Спасибо за правильные дополнения.
          • 0
            Идеологически правильнее создавать базу вручную и не давать owner'у 1сной базы право на создание баз.

            И 1С 8.2 работает без смешанной аутентификации, просто нужно оставлять пустое имя пользователя и пароль, в принципе смешанная аутентификация — тоже брешь в безопасности и идеологически не совсем верно.
            • 0
              Чем может быть опасно создание баз owner'ом, который заведен отдельным аккаунтом? Пользователи в любом случае не имеют права создавать базы, для этого они должны знать данный логин и пароль. А для исполнения повседневных обязанностей он им не нужен.

              По поводу пустого имени пользователя и пароля немного недопонял. Где вы предлагаете их оставлять, при создании базы на сервере предприятия?
              • 0
                А зачем ему право что-либо создавать? Идеологически — право это лишнее, значит оно не нужно.
                Да, не мешает, но всё-таки оно не нужно.

                При создании базы, если имя пользователя и пароль не заполнены, сервер 1с пытается использовать сервер SQL от текущего Windows-пользователя (пользователя, от имени которого запущен сервер 1С).

                Я надеюсь, у вас он не запускается от имени Local System или локального USR1CV82?

                Кстати, для служб (для того же сервера 1С), если у вас уровень домена 2008 R2, рекомендую использовать Managed Service Accounts — тут не нужно заботиться о хранении паролей пользователя, истечении сроков давности паролей, политиках домена для этого и т. п.
                • 0
                  Все зависит от количества баз и частоты их добавления. Вполне возможна ситуация, когда более удобным является выдача права на создание баз пользователю, чем вручную создание баз на сервере SQL и назначении на каждую из созданных баз owner заново. Чем больше количество операций в процессе создания базы 1С, тем больше вероятность ошибки. Это тоже нужно учитывать при создании регламента добавления базы.

                  У меня почему-то не сработал кейс по включению в SQL Server 2008 «Windows Authentication mode» Даже если в этом случае пользователь, который подключается к базе SQL со стороны 1С является owner-ом данной базы — подключение не происходит. Вполне допускаю свою ошибку в данном процессе. пытался сейчас найти пруф, но не могу. Если найду — отпишусь.

                  MSA действительно достаточно удобная штука.
                  • 0
                    1) А, ну я видимо не понял про создание баз. Если у вас действительно разработчики, которые периодически создают кучу баз — то да, ваш подход вернее. У нас всего пара баз, которые созданы раз и навсегда.

                    3) У нас сервер 1С запускается из-под MSA, и этот же доменный аккаунт добавлен в SQL2008R2.

                    Попробуйте ради интереса сделать так: дать доменному юзеру в SQL роль с полными правами sysadmin, проверьте, есть ли подключение. Если есть — значит всё ок аутентифицирует, но просто проблемы в правах юзера.
                    • 0
                      Ошибка при создании информационной базы: Ошибка при выполнении операции с информационной базой: Ошибка СУБД:
                      Microsoft OLE DB Provider for SQL Server: Login failed for user 'Domain_1\user123'.
                      HRESULT=80040E4D, SQLSrvr: Error state=1, Severity=E, native=18456, line=1

                      Пользователь в список пользователей добавлен, роль sysadmin у него есть, база создана и он является ее владельцем. В статусе пользователя разрешены подключения к БД, логин включен.
                      Чего-то видимо другого не хватает.
                      • 0
                        Хм, а включите аудит отказов на сервере sql (через групп. политики) и посмотрите, может он пользователя у себя не авторизует, может ему логин на комп сервера sql не разрешен или ещё что?

                        Т.е. не на уровне 1С или SQL, а на уровне аутентификации на самом сервере.
          • 0
            Не забывайте в регламентные задания SQL Server добавлять бэкап transaction лога.
            Во-первых, это позволяет восстанавливать базу на любой момент времени.
            Во-вторых, без бэкапа transaction лог будет все время расти.
            Ну или ставьте базу в режим восстановления simple :-)

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.