Переход с MS SQL Express на «взрослый» MS SQL

У клиента выросла база и уже не помещается в размер 10 Гб, отведенный под SQL Express 13. Приходится переходить на нормальный MS SQL 2019.

Устанавливаю сервер:

Важно, что при установке надо указывать авторизацию Win+sa. Как-то раньше я не сделал это сразу, потом пришлось повозиться.

Обнаружил, что старая консоль MS SMS 15-й версии к SQL Server 19 не подключается. Приходится скачать новую консоль.

Старый сервер назывался SQLEXPRESS. Новый сервер назвал SQL.

Пробовал переименовать сервер с помощью найденных в интернете инструкций, но они не сработали:

Поэтому решил просто заменить имя старого сервера на новый там, где оно используется.

Останавливаю старый сервер в службах.

Новый уже запущен.

Запускаю консоль MS SMS 18:

Присоединяю базы данных со старого сервера:

При присоединении файла базы возникает непонятная ошибка доступа.

Оказывается, SQL сервер так меняет права на свои файлы баз данных и транзакций, что только он и администраторы имеют к ним доступ:

На скриншоте права уже под новый сервер (SQL).

Я не знаю, как поменять права сразу на несколько файлов, а на папку не дает.

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

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

Подключаю все базы. Благо они все в одном каталоге и их немного, порядка 10, так что можно прощелкать руками команду присоединения. Подсчитываю, что присоединил все.

Останавливаю службу SQL Express, она больше не понадобится:

Останавливаю службу 1С-сервера:

Делаю копию lst-файла со списком баз:

Запускаю notepad.exe от имени администратора, в нем открываю файл 1CV8Clst.lst и меняю SQLEXPRESS на SQL:

Запускаю службу 1С-сервера. Служба запустилась, это хорошо. Проверяю в консоли, что все базы на месте:

Пробую зайти в базу, база работает!

Проверяю доступ к базе через веб-сервер, всё ок.

Теперь нужно сделать ещё один важный тест. Перезапускаю сервер, проверяю, что после запуска всё заработает. При первом запуске 1С выдает ошибку. Не могу понять в чем дело:

Потом доходит, что не все службы еще успели стартовать. Жду немного и база 1С начинает работать.

Тестово создаю пару документов, чтобы убедиться, что добавление информации в базу возможно и она работает не в режиме read-only.

Все тесты пройдены, оставляю сервер до утра, чтобы получить от клиента обратную связь по работе на новом сервере.

Объем работ план: 3 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 4

  1. Zuko:

    используется Shared Memory?

  2. Дмитрий:

    Спасибо! Статья помогла. Но у меня была проблема в том, что ОС Win10 home и там отключена оснастка Локальные пользователи и группы. В итоге нашел решение добавить пользователя MSSQL в группу Администраторы из командной строки, запущенной под правами администратора:
    net localgroup Administrators /add «NT SERVICE\MSSQLSERVER»

    Но все равно Студию SQL пришлось запускать под правами администратора.

    Может кому нибудь пригодится.

Добавить комментарий для Zuko Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *