Администрирование · 9 мин
Как перенести базу 1С SQL на другой диск
Подробная инструкция по переносу базы 1С на SQL Server на другой диск: отсоединение и присоединение БД, бэкап-восстановление, настройка прав и проверка результата.
Перенос базы 1С, работающей на Microsoft SQL Server, на другой диск — типовая задача администратора. Причины обычно три: заканчивается место на системном разделе, базу переносят на более быстрый SSD-массив или выделяют отдельный том под данные и журнал транзакций. Сама 1С при этом «не знает», где физически лежат файлы: она подключается к SQL Server по имени сервера и имени базы, поэтому вся работа выполняется средствами СУБД.
Существует два рабочих способа переноса: отсоединение и повторное присоединение базы (detach/attach) и резервное копирование с последующим восстановлением в новое расположение (backup/restore). Оба безопасны при соблюдении порядка действий, но различаются по времени простоя и удобству. Ниже разобраны оба варианта, а также настройка прав доступа и проверка результата.
Перед началом убедитесь, что у вас есть права администратора на SQL Server (роль sysadmin или достаточные права на уровне базы), доступ к файловой системе сервера и свежее резервное копирование. Все операции выполняются в нерабочее время — пользователи 1С должны завершить сеансы.
Подготовка: что проверить перед переносом
Сначала определите, где сейчас лежат файлы базы. Откройте SQL Server Management Studio (SSMS), подключитесь к серверу, найдите нужную базу, откройте её свойства и перейдите на вкладку «Файлы». Там указаны полные пути к файлу данных (MDF), дополнительным файлам (NDF, если есть) и файлу журнала транзакций (LDF), а также их текущие размеры.
Убедитесь, что на целевом диске достаточно свободного места с запасом: файлы базы со временем растут, а журнал транзакций в модели восстановления Full может раздуваться быстро. Рекомендуется иметь свободный объём минимум в 1,5–2 раза больше текущего размера базы. Также проверьте, что целевой диск — это надёжное хранилище (RAID-массив или SSD с резервированием), а не съёмный носитель.
Завершите все сеансы пользователей в 1С. Это можно сделать через консоль кластера серверов 1С или попросив пользователей выйти. Активные соединения помешают отсоединить базу или выполнить восстановление. Дополнительно остановите фоновые задания и регламентные операции, которые могут обращаться к базе.
Способ 1: отсоединение и присоединение базы (detach/attach)
Это самый быстрый способ, если база одна и переносится в пределах одного сервера. В SSMS щёлкните по базе правой кнопкой, выберите «Задачи» → «Отсоединить». В окне отсоединения установите флажки «Удалить соединения» и «Обновить статистику», затем подтвердите операцию. База исчезнет из списка, но её файлы останутся на диске.
Далее скопируйте (именно скопируйте, а не переместите — так безопаснее) файлы MDF, NDF и LDF в новую папку на целевом диске, например D:\SQLData\. После завершения копирования в SSMS щёлкните правой кнопкой по узлу «Базы данных», выберите «Присоединить», добавьте файл MDF из нового расположения — остальные файлы подтянутся автоматически, при необходимости поправьте пути в таблице вручную. Проверьте, что имя базы в поле «Присоединить как» совпадает с исходным.
- 1Сделайте полную резервную копию базы средствами SQL Server
- 2Завершите сеансы пользователей 1С и остановите обращения к базе
- 3Отсоедините базу в SSMS с удалением активных соединений
- 4Скопируйте файлы MDF/NDF/LDF в новую папку на целевом диске
- 5Присоедините базу из нового расположения с сохранением имени
- 6Настройте права учётной записи службы SQL Server на новую папку
- 7Проверьте подключение из 1С и состояние базы
Способ 2: резервное копирование и восстановление (backup/restore)
Этот способ предпочтителен, если нужно минимизировать риски: исходная база остаётся нетронутой до самого конца. Сначала выполните полное резервное копирование: правой кнопкой по базе → «Задачи» → «Создать резервную копию», укажите файл назначения на диске с достаточным местом. Дождитесь завершения и проверьте, что файл копии создан и имеет осмысленный размер.
Затем восстановите базу из копии под тем же именем, но с новыми путями к файлам. Если база с таким именем ещё существует, сначала отсоедините или переименуйте её. В мастере восстановления на вкладке «Файлы» укажите новые пути для каждого логического файла — именно здесь задаётся новое расположение. Удобнее делать это через T-SQL с параметром MOVE, где явно видны все пути.
RESTORE DATABASE [MyBase1C] FROM DISK = N'D:\Backup\MyBase1C.bak' WITH MOVE 'MyBase1C_Data' TO 'E:\SQLData\MyBase1C.mdf', MOVE 'MyBase1C_Log' TO 'E:\SQLLog\MyBase1C.ldf', REPLACE;Имена логических файлов в команде MOVE должны совпадать с реальными — их можно посмотреть командой RESTORE FILELISTONLY FROM DISK = '...' или в свойствах исходной базы. Ошибка в логическом имени — самая частая причина сбоя восстановления.
Настройка прав доступа на новую папку
После переноса файлов частая проблема — ошибка доступа (Access denied, ошибка 5) при присоединении или восстановлении. SQL Server работает под своей учётной записью службы, и именно ей нужны права на папку с файлами базы, а не администратору и не пользователю, запустившему SSMS.
Узнайте, под какой учётной записью работает служба SQL Server: откройте «Службы» (services.msc), найдите службу SQL Server (MSSQLSERVER или именованный экземпляр) и посмотрите столбец «Вход от имени». Обычно это виртуальная учётная запись вида NT SERVICE\MSSQLSERVER или выделенная доменная учётка. Предоставьте этой учётной записи полный доступ к новой папке через свойства папки → «Безопасность».
Проверка результата и настройка 1С
Если имя сервера и имя базы не изменились, в 1С ничего настраивать не нужно: информационная база в консоли кластера или в списке баз файлового запуска ссылается на сервер и имя БД, а не на пути к файлам. Просто запустите 1С и войдите в базу под учётной записью администратора.
Проверьте состояние базы на стороне SQL Server: в SSMS база должна быть в статусе Online, без пометок «Recovery Pending» или «Suspect». Выполните проверку целостности командой DBCC CHECKDB — для больших баз это займёт время, поэтому запускайте в нерабочие часы. Также убедитесь, что регламентные задания SQL Server (резервное копирование, обслуживание индексов) указывают на актуальные пути.
Как проверить результат
Online, без дополнительных пометок
Suspect, Recovery Pending или Offline
Файлы расположены на новом диске
Часть файлов осталась на старом томе
База открывается, документы и отчёты доступны
Ошибка соединения с СУБД или пустые данные
Ошибок не обнаружено
Сообщения о нарушениях целостности
Типичные ошибки и ограничения
Наиболее частые ошибки при переносе связаны не с самой операцией, а с окружением: нехваткой прав, занятыми соединениями и забытыми задачами обслуживания. Ниже — то, что чаще всего идёт не так.
Учитывайте ограничения: нельзя присоединить базу к серверу более старой версии SQL Server, чем та, на которой она работала. Если перенос совмещён с переездом на другой сервер, дополнительно потребуется перенести логины и настроить сопоставление пользователей базы. Также помните, что сжатие диска NTFS и размещение файлов базы на сетевых папках без специальной настройки SQL Server не поддерживаются штатно.
Файлы данных и журнал транзакций разумно размещать на разных физических дисках, если позволяет оборудование: это снижает конкуренцию за дисковые операции. Но главный приоритет — надёжность хранилища и регулярные резервные копии, а не экзотическая схема размещения.
Частые вопросы
Нужно ли что-то менять в настройках 1С после переноса базы на другой диск?
Нет, если сохранились имя сервера SQL и имя базы данных. 1С обращается к СУБД по этим параметрам и не знает о физическом расположении файлов. Менять настройки потребуется только при переезде на другой сервер или переименовании базы.
Можно ли перенести базу простым копированием файлов MDF и LDF без отсоединения?
Нет. Пока база подключена к SQL Server, файлы заблокированы и постоянно изменяются — скопированная версия будет повреждённой и не присоединится. Сначала базу нужно отсоединить или перевести в автономный режим, либо использовать резервное копирование.
Что делать, если при присоединении возникает ошибка доступа (error 5)?
Проверьте, что учётная запись службы SQL Server имеет полные права на новую папку и сами файлы. Также снимите атрибут «Только чтение» с файлов, если он появился при копировании. Права администратора Windows здесь не помогают — важны именно права учётной записи службы.
Какой способ выбрать для большой базы в несколько сотен гигабайт?
Обычно быстрее detach/attach, так как копирование файлов между дисками идёт на полной скорости дисковой подсистемы, тогда как backup/restore добавляет этапы сжатия и восстановления. Однако backup/restore безопаснее: исходная база остаётся рабочей до последнего момента, что снижает риск при сбоях.
Когда можно удалять старые файлы базы с прежнего диска?
Только после того, как база успешно работает с нового расположения несколько дней и создана свежая резервная копия. До этого момента старые файлы — ваша страховка для быстрого отката: достаточно отсоединить новую копию и присоединить старую обратно.
Что важно запомнить
Перенос базы 1С SQL на другой диск выполняется средствами SQL Server через detach/attach или backup/restore, без изменений в самой 1С. Обязательные условия безопасности: свежая резервная копия, завершённые сеансы пользователей, права учётной записи службы SQL Server на новую папку и проверка целостности базы после переноса. Старые файлы удаляйте только после подтверждения стабильной работы.