Описание и настройка резервного копирования для транзакционных баз на MS SQL Server
На практике администраторы баз данных часто сталкиваются с ситуацией, когда необходимо восстановить БД. Такая потребность может возникнуть как в результате аварии на сервере, так и в результате банальной ошибки разработчика БД, который неаккуратным запросом очистил таблицы с критически важными для бизнеса данными. Чтобы обеспечить выход из подобных ситуаций с минимальными потерями, необходимо правильно настроить регулярное бэкапирование. И если в случае хранилищ данных достаточно иметь на руках ежедневные бэкапы, так как в течение дня данные меняются незначительно, то в случае транзакционных БД этого будет мало.
SELECT name, recovery_model_desc
FROM sys.databases
WHERE name = 'YourDatabaseName';
USE [master];
GO
ALTER DATABASE [YourDataBaseName]
SET RECOVERY FULL;
GO
BACKUP DATABASE [YourDatabaseName] TO DISK = N'C:\Backup\Full\YourDatabaseName\YourDatabaseName_backup_YYYY_MM_DD_HHMMSS.bak' WITH NOFORMAT, NOINIT, STATS = 10;
GO
exec [dbo].[sp_DatabaseRestore]
@Database = 'YourDatabaseName',
@BackupPathFull = 'C:\Backup\Daily\YourDatabaseName\',
@BackupPathLog = 'C:\Backup\Transaction Logs\YourDatabaseName\',
@RunRecovery = 1,
@StopAt = '20230903134900',
@Execute = 'Y';