Переход с 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 пришлось запускать под правами администратора.

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

Добавить комментарий

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