Восстановление базы данных из резервной копии (бэкапа) — это критически важная задача для обеспечения доступности и целостности данных. Иногда требуется восстановить базу данных из бэкапа не в ту же базу данных, а в другую, например, для тестирования или создания резервной копии на другом сервере.
В этой статье мы подробно рассмотрим восстановление базы данных MS SQL из бэкапа в другую базу, используя Transact-SQL (T-SQL) и SQL Server Management Studio (SSMS).
Предварительные требования
- SQL Server — установленный и настроенный сервер MS SQL.
- SQL Server Management Studio (SSMS) — инструмент для управления и разработки на MS SQL Server.
- Бэкап-файл (.bak) — файл резервной копии базы данных, созданный с помощью команды
BACKUP DATABASE
.
Шаги восстановления базы данных из бэкапа в другую базу
1. Проверка наличия бэкап-файла
Убедитесь, что у вас есть доступ к бэкап-файлу базы данных и что он находится в доступной директории на сервере SQL. Например, файл может находиться в директории C:\Backups\DatabaseBackup.bak
.
2. Создание новой базы данных (если необходимо)
Прежде чем восстановить базу данных, необходимо создать пустую базу данных, в которую будет выполнено восстановление. Это можно сделать с помощью команды CREATE DATABASE
.
CREATE DATABASE NewDatabaseName;
GO
Для примера, создадим базу данных с именем NewDatabase
.
CREATE DATABASE NewDatabase;
GO
3. Определение логических имен файлов в бэкапе
Для восстановления базы данных необходимо узнать логические имена файлов данных и логов в бэкапе. Это можно сделать с помощью команды RESTORE FILELISTONLY
, которая возвращает список логических и физических файлов в бэкапе.
RESTORE FILELISTONLY
FROM DISK = 'C:\Backups\DatabaseBackup.bak';
GO
Вывод команды будет содержать информацию о логических именах файлов, например:
LogicalName PhysicalName
------------- ------------------------
Database_Data C:\SQLData\OriginalDatabase_Data.mdf
Database_Log C:\SQLData\OriginalDatabase_Log.ldf
4. Восстановление базы данных
Теперь, когда у нас есть логические имена файлов, можно выполнить восстановление базы данных. Важно указать новые физические пути для файлов данных и логов, чтобы избежать конфликта с существующей базой данных. Используем команду RESTORE DATABASE
с опцией MOVE
для изменения путей файлов.
RESTORE DATABASE NewDatabase
FROM DISK = 'C:\Backups\DatabaseBackup.bak'
WITH MOVE 'Database_Data' TO 'C:\NewSQLData\NewDatabase_Data.mdf',
MOVE 'Database_Log' TO 'C:\NewSQLData\NewDatabase_Log.ldf',
REPLACE;
GO
В данном примере мы восстанавливаем базу данных NewDatabase
из бэкапа DatabaseBackup.bak
, перемещая файлы данных и логов в директорию C:\NewSQLData
.
5. Проверка восстановления
После успешного выполнения команды восстановления необходимо проверить, что новая база данных создана и данные восстановлены корректно. Выполним несколько запросов к новой базе данных.
USE NewDatabase;
GO
-- Выполним выборку из таблицы для проверки данных
SELECT TOP 10 * FROM SomeTable;
GO
Для проверки вы можете использовать любую таблицу из восстановленной базы данных.
Восстановление базы данных с использованием SQL Server Management Studio (SSMS)
1. Открытие SSMS и подключение к серверу
Запустите SQL Server Management Studio и подключитесь к вашему серверу SQL.
2. Создание новой базы данных
Создайте новую пустую базу данных через интерфейс SSMS:
- Щелкните правой кнопкой мыши на папке "Databases".
- Выберите "New Database...".
- Введите имя новой базы данных, например,
NewDatabase
, и нажмите "OK".
3. Восстановление базы данных из бэкапа
- Щелкните правой кнопкой мыши на новой базе данных (
NewDatabase
). - Выберите "Tasks" > "Restore" > "Database...".
- В открывшемся окне выберите "Device" и укажите путь к вашему бэкап-файлу (.bak), например,
C:\Backups\DatabaseBackup.bak
. - Перейдите на вкладку "Files" и укажите новые пути для файлов данных и логов, например,
C:\NewSQLData\NewDatabase_Data.mdf
иC:\NewSQLData\NewDatabase_Log.ldf
. - Нажмите "OK" для начала восстановления.
4. Проверка восстановления
После завершения восстановления выполните несколько запросов в новой базе данных через SSMS, чтобы убедиться в корректности данных.
USE NewDatabase;
GO
SELECT TOP 10 * FROM SomeTable;
GO
Заключение
Восстановление базы данных из бэкапа в другую базу — это важная операция, которую необходимо уметь выполнять каждому администратору баз данных. В этой статье мы рассмотрели шаги, необходимые для выполнения этой задачи с помощью T-SQL и SQL Server Management Studio.
Следуя этим инструкциям, вы сможете успешно восстановить вашу базу данных и обеспечить ее доступность в случае необходимости.
Реклама Yandex |
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 20-летний опыт в этой области. |
Десять лучших практик резервного копирования в Казахстане
- Перенос гипервизора Proxmox на новый физический сервер
- Использование OpenShift для контейнеров Docker — глубокое погружение
- Использование Wazuh для мониторинга безопасности Proxmox
- Установка, настройка и использование Fail2Ban на zVirt
- Установка, настройка и использование Graylog Community Edition в Proxmox
- Установка, настройка и использование Elasticsearch в Proxmox
- Установка, настройка и использование Kibana в Proxmox
- Установка, настройка и использование Logstash в Proxmox
- Использование ИИ для анализа логов Proxmox
- Установка, настройка и использование Ceph в OpenStack