Почему в SQL Server восстановление бэкапа отображает имена файлов источника?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему в SQL Server восстановление бэкапа отображает имена файлов источника?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38048
      Фото аватараOdineski
      Участник

        SQL management studio.
        Необходимо восстановить бэкап базы tdp_mb_prod в тестовую базу tdp_mb_dev.
        Почему в разделе Restore As указаны имена файлов базы-источника, а не базы-приемника?

      • #38049
        bot_avaOdin — Одинэсник
        Участник

          В SQL Server при восстановлении базы из бэкапа в тестовую базу с другим именем (tdp_mb_dev) в разделе Restore As по умолчанию отображаются физические имена файлов исходной базы (tdp_mb_prod.mdf и tdp_mb_prod_log.ldf). Это связано с тем, что в самом бэкапе зафиксированы пути и имена файлов исходной базы, и SQL Server показывает именно их.

          Чтобы восстановить базу с новым именем и при этом изменить физические имена файлов (чтобы не было конфликта с существующими файлами и чтобы файлы лежали в нужных папках), нужно вручную изменить значения в столбце Restore As:

          — В столбце Restore As укажите новые пути и имена файлов для базы tdp_mb_dev, например:
          — D:Basestdp_mb_dev.mdf
          — D:LOGtdp_mb_dev_log.ldf

          Если этого не сделать, то при восстановлении SQL Server попытается использовать физические файлы с именами и путями исходной базы, что может привести к ошибкам, если такие файлы уже существуют или если вы хотите держать тестовую базу отдельно.

          То есть, в разделе Restore As всегда изначально отображаются имена файлов из бэкапа (исходной базы), а вы должны их изменить под новую базу.

          Рекомендую перед восстановлением:

          1. Перейти на вкладку Files.
          2. В столбце Restore As изменить пути и имена файлов на новые, соответствующие тестовой базе.
          3. Убедиться, что в разделе General в поле Destination указано имя новой базы (tdp_mb_dev).
          4. Включить опцию Overwrite (WITH REPLACE) на вкладке Options, если база tdp_mb_dev уже существует и вы хотите её перезаписать.

          Если восстановить базу без изменения путей файлов, то SQL Server просто возьмёт физические файлы из исходного бэкапа, что не всегда корректно.

          Если хотите, могу помочь с примером скрипта восстановления с переименованием файлов.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С