Published on

February 17, 2022

Обслуживание базы данных SQL Server: обеспечение читаемости резервных копий

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

Создание процедуры для проверки читаемости файлов резервных копий и отправка результатов заинтересованным сторонам поможет вам выявить любые проблемы до того, как они станут критическими. В этой статье мы рассмотрим, как использовать оператор RESTORE VERIFYONLY для проверки читаемости файлов резервных копий и создания хранимой процедуры для автоматизации этого процесса.

Проверка читаемости файлов резервных копий

Оператор RESTORE VERIFYONLY является полезным инструментом для определения читаемости файлов резервных копий. Запустив этот оператор для каждого устройства резервного копирования, вы можете убедиться, что все базы данных и журналы транзакций резервируются таким образом, чтобы обеспечить минимальное время восстановления.

Вот пример хранимой процедуры, которая выполняет цикл по устройствам резервного копирования и запускает оператор RESTORE VERIFYONLY:


CREATE PROCEDURE CheckBackupReadability
AS
BEGIN
    -- Создание таблицы для хранения результатов
    CREATE TABLE BackupVerificationResults
    (
        BackupDevice NVARCHAR(255),
        Result NVARCHAR(50)
    )

    -- Цикл по устройствам резервного копирования
    DECLARE @BackupDevice NVARCHAR(255)
    DECLARE @SQL NVARCHAR(MAX)

    DECLARE BackupDevices CURSOR FOR
    SELECT physical_device_name
    FROM msdb.dbo.backupmediafamily
    WHERE media_type = 'Disk'

    OPEN BackupDevices

    FETCH NEXT FROM BackupDevices INTO @BackupDevice

    WHILE @@FETCH_STATUS = 0
    BEGIN
        -- Запуск оператора RESTORE VERIFYONLY
        SET @SQL = 'RESTORE VERIFYONLY FROM DISK = ''' + @BackupDevice + ''''

        BEGIN TRY
            EXEC sp_executesql @SQL

            -- Вставка результата в таблицу
            INSERT INTO BackupVerificationResults (BackupDevice, Result)
            VALUES (@BackupDevice, 'Success')
        END TRY
        BEGIN CATCH
            -- Вставка результата в таблицу
            INSERT INTO BackupVerificationResults (BackupDevice, Result)
            VALUES (@BackupDevice, 'Failure')
        END CATCH

        FETCH NEXT FROM BackupDevices INTO @BackupDevice
    END

    CLOSE BackupDevices
    DEALLOCATE BackupDevices

    -- Отправка электронной почты с результатами
    EXEC msdb.dbo.sp_send_dbmail
        @profile_name = 'YourEmailProfile',
        @recipients = 'youremail@example.com',
        @subject = 'Результаты проверки резервного копирования',
        @body = 'Пожалуйста, найдите прикрепленные результаты проверки резервного копирования.',
        @query = 'SELECT * FROM BackupVerificationResults',
        @attach_query_result_as_file = 1,
        @query_attachment_filename = 'BackupVerificationResults.csv',
        @query_result_separator = ',',
        @query_result_no_padding = 1
END

Эта хранимая процедура создает таблицу для хранения результатов тестов проверки резервного копирования. Затем она выполняет цикл по устройствам резервного копирования, запускает оператор RESTORE VERIFYONLY для каждого из них и вставляет результаты в таблицу. Наконец, она отправляет электронное письмо с результатами в виде прикрепленного файла CSV.

Запуск процедуры

Чтобы обеспечить читаемость ваших файлов резервных копий, вы должны запускать эту процедуру еженедельно во время не пиковых часов. Имейте в виду, что процесс проверки может занять некоторое время и ресурсы.

Важно отметить, что оператор RESTORE VERIFYONLY проверяет только читаемость файла, а не обязательно его целостность. Чтобы протестировать процесс восстановления и оценить время, необходимое для восстановления, вы должны выполнять фактическое восстановление данных как минимум ежеквартально с использованием сервера, не предназначенного для производства. Это также поможет выявить любые потенциальные проблемы, которые могут возникнуть во время процесса восстановления.

Реализуя регулярную процедуру проверки читаемости файлов резервных копий, вы можете обеспечить доступность и целостность резервных копий вашей базы данных. Это поможет вам минимизировать время простоя и оперативно реагировать на любые проблемы, которые могут возникнуть.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.