Переход с 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-сервера из администраторов.
Подключаю все базы. Благо они все в одном каталоге и их немного, порядка 10, так что можно прощелкать руками команду присоединения. Подсчитываю, что присоединил все.
Останавливаю службу SQL Express, она больше не понадобится:
Останавливаю службу 1С-сервера:
Делаю копию lst-файла со списком баз:
Запускаю notepad.exe от имени администратора, в нем открываю файл 1CV8Clst.lst и меняю SQLEXPRESS на SQL:
Запускаю службу 1С-сервера. Служба запустилась, это хорошо. Проверяю в консоли, что все базы на месте:
Пробую зайти в базу, база работает!
Проверяю доступ к базе через веб-сервер, всё ок.
Теперь нужно сделать ещё один важный тест. Перезапускаю сервер, проверяю, что после запуска всё заработает. При первом запуске 1С выдает ошибку. Не могу понять в чем дело:
Потом доходит, что не все службы еще успели стартовать. Жду немного и база 1С начинает работать.
Тестово создаю пару документов, чтобы убедиться, что добавление информации в базу возможно и она работает не в режиме read-only.
Все тесты пройдены, оставляю сервер до утра, чтобы получить от клиента обратную связь по работе на новом сервере.
Объем работ план: 3 час.
используется Shared Memory?
не в курсе.
Спасибо! Статья помогла. Но у меня была проблема в том, что ОС Win10 home и там отключена оснастка Локальные пользователи и группы. В итоге нашел решение добавить пользователя MSSQL в группу Администраторы из командной строки, запущенной под правами администратора:
net localgroup Administrators /add «NT SERVICE\MSSQLSERVER»
Но все равно Студию SQL пришлось запускать под правами администратора.
Может кому нибудь пригодится.
Да, там много хитростей и нюансов.