Тонкая настройка ежедневного резервного копирования базы данных 1С средствами SQL ver. 2014 (SP3) — 12.0.6024.0 (X64)
Хочу вам предложить небольшой пример, как можно реализовать резервное копирование 1С-ых баз данных средствами SQL. Данный материал не претендует на пулитцеровскую премию. Но возможно кому-то будет интересно узнать, что-то новенькое.
Данный материал для резервного копирования только одной базы данных. А именно, если у вас 20-ть баз, то вам придется создавать 20-ть планов обслуживания для каждой базы индивидуально.
(Слава разработчикам SQL, они разрешили копировать блоки из одного плана в другой, вам остается только произвести небольшую настройку для каждого скопированного блока — некоторые настройки блоков сбрасываются и выставляются значением по умолчанию и остаются неактивными)
Общие сведения о сценариях восстановления
Сценарий восстановления в SQL Server — процесс восстановления данных из одной или более резервных копий и возврат в исходное состояние базы данных. Поддерживаемые сценарии восстановления зависят от модели восстановления базы данных и выпуска SQL Server.
Следующая таблица предоставляет возможные сценарии восстановления, которые поддерживаются различными моделями восстановления.
Сценарий восстановления | Простая модель восстановления | Модель полного восстановления или модель восстановления с неполным протоколированием |
---|---|---|
полное восстановление базы данных | Это базовая стратегия восстановления. Полное восстановление базы данных может содержать простые операции возврата и восстановления из полной резервной копии. Также полное восстановление базы данных может проводиться на основе полной резервной копии базы данных с ее последующим обновлением по журналу. Дополнительные сведения см. в разделе Полное восстановление базы данных (простая модель восстановления). | Это базовая стратегия восстановления. Восстановление всей базы данных включает в себя восстановление полной резервной копии, возможно, разностных резервных копий (если они есть) и восстановления всех последующих резервных копий журналов (последовательно). Восстановление всей базы данных завершается восстановлением из последней резервной копии журнала и возвратом в исходное состояние (RESTORE WITH RECOVERY). Дополнительные сведения см. в статье Выполнение полного восстановления базы данных (модель полного восстановления). |
File restore * | Восстановление одного или более поврежденных файлов с атрибутом «только для чтения» без восстановления всей базы данных. Восстановление файла возможно только при наличии в базе данных хотя бы одной файловой группы с атрибутом «только для чтения». | Восстановление одного или нескольких файлов без восстановления всей базы данных. Восстановление файлов может выполняться, когда база данных находится в режиме «вне сети» или в некоторых выпусках SQL Server«в сети». Во время восстановления файла файловые группы, содержащие обрабатываемый файл, всегда находятся в режиме вне сети. |
Восстановление страницы | Неприменимо | Восстановление одной или нескольких поврежденных страниц. Восстановление страницы может выполняться, когда база данных находится в режиме «вне сети» или в некоторых выпусках SQL Server«в сети». Во время восстановления страницы всегда находятся в режиме вне сети. Должна быть доступна непрерывная цепочка резервных копий журналов вплоть до текущего файла журнала, и они должны быть применены для приведения страницы в соответствие текущему журналу. Дополнительные сведения см. в разделе Восстановление страниц (SQL Server). |
Поэтапное восстановление * | Поэтапное восстановление базы данных на уровне файловой группы, начиная с групп файлов, доступных для чтения и записи, вторичных файловых групп. | Восстановление и перевод базы данных в режим в сети по этапам на уровне файловой группы, начиная с первичной файловой группы. Дополнительные сведения см. в разделе Поэтапное восстановление (SQL Server) |
* Восстановление в сети поддерживается только в выпуске Enterprise Edition.
Шаги по восстановлению базы данных
Для восстановления файла Компонент Database Engine выполняет два шага:
-
создает любой недостающий файл базы данных;
-
копирует данные с устройств резервного копирования в файл(ы) базы данных.
Для восстановления базы данных Компонент Database Engine выполняет три шага:
-
создает базы данных и файлы журнала транзакций, если они еще не созданы;
-
копирует все данные, журналы и страницы индексов с резервной копии базы данных в файлы базы данных;
-
применяет журнал транзакций в так называемом .
Независимо от способа восстановления данных, перед восстановлением базы данных Компонент SQL Server Database Engine обеспечивает логическую согласованность всей базы данных. Например, если файл был возвращен в исходное состояние, то нельзя восстановить его и вернуть в режим в сети, пока в нем не будет выполнено достаточное количество транзакций, чтобы он согласовывался с базой данных.
Преимущества восстановления файлов или страниц
Восстановление файлов и страниц вместо восстановления всей базы данных целиком дает следующие преимущества.
-
Восстановление данных меньшего объема данных уменьшает время, затрачиваемое на копирование и восстановление.
-
В среде SQL Server восстановление файлов или страниц позволяет другим данным в базе данных оставаться в режиме «в сети» во время операции восстановления.
Процедуры
Восстановление полной резервной копии базы данных
Для восстановления полной резервной копии базы данных выполните инструкцию RESTORE DATABASE, указав:
Имя базы данных для восстановления.
устройство резервного копирования, с которого происходит восстановление полной резервной копии базы данных;
предложение NORECOVERY при наличии журнала транзакций или разностной резервной копии, которые необходимо применить после восстановления полной резервной копии.
Важно!
Чтобы восстановить зашифрованную базу данных, необходимо иметь доступ к сертификату или асимметричному ключу, который использовался для шифрования базы данных. Без сертификата или асимметричного ключа восстановить базу данных нельзя
Поэтому сертификат, используемый для шифрования ключа шифрования базы данных, должен храниться в течение всего времени, пока есть необходимость в резервной копии. Дополнительные сведения см. в статье SQL Server Certificates and Asymmetric Keys.
Дополнительно можно указать следующее.
Предложение FILE, определяющее, из какого резервного набора, содержащегося на устройстве резервного копирования, будет выполнено восстановление.
Примечание
Обратите внимание, что если восстановить базу данных предыдущей версии до SQL Server 2019 (15.x), то эта база данных будет автоматически обновлена. Как правило, база данных сразу становится доступной
Но если база данных SQL Server 2005 (9.x) содержит полнотекстовые индексы, при обновлении будет произведен их импорт, сброс или повторное создание в зависимости от установленного значения свойства сервера upgrade_option . Если при обновлении выбран режим импорта (upgrade_option = 2) или перестроения (upgrade_option = 0), полнотекстовые индексы во время обновления будут недоступны. В зависимости от объема индексируемых данных процесс импорта может занять несколько часов, а перестроение — в несколько (до десяти) раз больше. Обратите внимание, что если для обновления выбран режим «Импортировать», а полнотекстовый каталог недоступен, то связанные с ним полнотекстовые индексы будут перестроены. Чтобы изменить значение свойства сервера upgrade_option , следует использовать процедуру sp_fulltext_service.
Создание полного бэкапа базы.
В обозревателе объектов переходим к пункту «Управление \ Планы обслуживания». В контекстном меню выбираем «Создать план обслуживания».
В этом основном плане обслуживания будем создавать вложенные планы полного бэкапа, промежуточного (разностного) бэкапа, перестроение индекса и обновление статистики.
В созданном плане нажимаем кнопку «Добавление вложенного плана»
Вводим название «Полный бэкап» и описание. Задаем расписание для выполнения задания: Раз в неделю в воскресенье в 2:00.
Добавляем в созданный план задание. Для этого с панели элементов перетаскиваем в поле заданий вложенного плана элемент с названием Задача «Резервное копирование базы данных».
Открываем задание на редактирование: правой клавишей мыши по заданию, выбираем пункт «Изменить».
- Тип резервной копии: Полное;
- Базы данных: если выбрать «Все пользовательские базы данных», то будет выполняться бэкап всех созданных вами баз данных, но есть возможность указать на конкретные базы;
- Создать файл резервной копии для каждой базы данных: отмечаем пункт «Создавать вложенный каталог для каждой базы данных», чтобы удобнее было ориентироваться в бэкапах и указываем путь как папке, в которой будут храниться резервные копии;
- Отмечаем пункт «Проверять целостнойсть резервной копии»;
- Устанавливаем параметр «Сжимать резервные копии».
Перед началом
Permissions
Если восстанавливаемая база данных не существуют, для выполнения инструкции RESTORE у пользователя должны быть разрешения CREATE DATABASE. Если база данных существует, разрешения на выполнение инструкции RESTORE по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator , а также владельцу базы данных (dbo) (для параметра FROM DATABASE_SNAPSHOT база данных всегда существует).
Разрешения на выполнение инструкции RESTORE даются ролям, в которых данные о членстве всегда доступны серверу. Так как членство в предопределенной роли базы данных может быть проверено только тогда, когда база данных доступна и не повреждена, что не всегда имеет место при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений RESTORE.
См. также:
Инструкция RESTORE FILELISTONLY (Transact-SQL)RESTORE HEADERONLY (Transact-SQL)RESTORE LABELONLY (Transact-SQL)RESTORE VERIFYONLY (Transact-SQL)Восстановление резервной копии базы данных в простой модели восстановления (Transact-SQL)Restore a Database Backup Using SSMSВосстановление разностной резервной копии базы данных (SQL Server)Восстановление базы данных в новое место (SQL Server)Создание резервных копий файлов и файловых групп (SQL Server)Создание резервной копии журнала транзакций (SQL Server)Создание разностной резервной копии базы данных (SQL Server)
Использование среды SQL Server Management Studio
Восстановление резервной копии с устройства
-
После подключения к соответствующему экземпляру Microsoft Компонент SQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув его имя.
-
Раскройте узел Базы данных и в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.
-
Щелкните правой кнопкой мыши базу данных, укажите на пункт Задачи и щелкните Восстановить.
-
Выберите нужный тип операции восстановления (База данных, Файлы и файловые группы или Журнал транзакций). Откроется соответствующее диалоговое окно.
-
На странице Общие в разделе Источник для восстановления выберите С устройства.
-
В текстовом поле С устройства нажмите кнопку обзора. Откроется диалоговое окно Указание резервной копии .
-
В текстовом поле Носитель резервной копии выберите Устройство резервного копирования и нажмите кнопку Добавить . Откроется текстовое поле Выбор устройства резервного копирования .
-
В текстовом поле Устройство резервного копирования выберите устройство для операции восстановления.
Использование среды SQL Server Management Studio
Восстановление файлов и групп файлов в новое место
-
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engine, разверните его, а затем разверните узел Базы данных.
-
Щелкните правой кнопкой мыши нужную базу данных, наведите указатель на пункт Задачи, а затем выберите пункты Восстановить и Файлы и файловые группы.
-
На странице Общие в списке В базу данных введите имя восстанавливаемой базы данных. Можно ввести новую базу данных или выбрать уже существующую из раскрывающегося списка. Список включает все базы данных на сервере кроме системных баз данных master и tempdb.
-
Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, выберите один из следующих вариантов.
-
Из базы данных
Введите имя базы данных в списке. Данный список содержит только базы данных, резервное копирование которых было выполнено в соответствии с журналом резервного копирования msdb .
-
С устройства
Нажмите кнопку обзора. В диалоговом окне Указание устройств резервного копирования выберите один из перечисленных типов устройств в списке Тип носителя резервной копии . Чтобы выбрать одно или несколько устройств в списке Носитель резервной копии , нажмите кнопку Добавить.
После добавления нужных устройств в списке Носитель резервной копии нажмите кнопку ОК для возвращения на страницу Общие .
-
-
В сетке Выберите резервные наборы данных для восстановления выберите нужные резервные наборы. В этой сетке отображаются резервные копии, доступные в указанном месте. По умолчанию предлагается план восстановления. Чтобы переопределить предложенный план восстановления, можно изменить выбранные элементы в сетке. Если выбор каких-то резервных копий отменяется, то автоматически отменяется и выбор зависящих от них резервных копий.
Заголовок столбца Значения Восстановление Установленные флажки обозначают резервные наборы данных, отмеченные для восстановления. имя; Имя резервного набора данных. Тип файла Задает тип данных в резервной копии: Данные, Журнал или Данные Filestream. Данные, содержащиеся в таблицах, хранятся в файлах типа Данные . Данные журнала транзакций хранятся в файлах типа Журнал . Данные больших двоичных объектов (BLOB), которые хранятся в файловой системе, находятся в файлах типа Данные Filestream . Тип Тип выполняемого резервного копирования: Полное, Разностное или Журнал транзакций. Server Имя экземпляра ядра СУБД, выполнившего операцию резервного копирования. Логическое имя файла Логическое имя файла. База данных Имя базы данных, участвовавшей в операции резервного копирования. Дата начала Дата и время начала операции резервного копирования, указанные в региональных настройках клиента. Дата завершения Дата и время завершения операции резервного копирования, указанные в формате, соответствующем региональным настройкам клиента. Размер Размер резервного набора данных в байтах. Имя пользователя Имя пользователя, выполнившего операцию резервного копирования. -
На панели Выбор страницы щелкните Параметры .
-
В сетке Восстановить файлы базы данных как укажите новое расположение для перемещаемых файлов.
Заголовок столбца Значения Имя исходного файла Полный путь исходного файла резервной копии. Тип файла Задает тип данных в резервной копии: Данные, Журнал или Данные Filestream. Данные, содержащиеся в таблицах, хранятся в файлах типа Данные . Данные журнала транзакций хранятся в файлах типа Журнал . Данные больших двоичных объектов (BLOB), которые хранятся в файловой системе, находятся в файлах типа Данные Filestream . Восстановить как Полный путь к файлу базы данных, который нужно восстановить. Чтобы указать новый восстанавливаемый файл, щелкните текстовое поле и измените предложенные путь и имя файла. Изменение пути или имени файла в столбце Восстановить как равнозначно использованию параметра MOVE в инструкции RESTORE языка Transact-SQL . -
Нажмите кнопку ОК.
Предварительные требования и рекомендации
-
Чтобы восстановить зашифрованную базу данных, необходимо иметь доступ к сертификату или асимметричному ключу, который использовался для шифрования базы данных. Без сертификата или асимметричного ключа восстановить базу данных нельзя. Поэтому сертификат, используемый для шифрования ключа шифрования базы данных, должен храниться в течение всего времени, пока есть необходимость в резервной копии. Дополнительные сведения см. в статье SQL Server Certificates and Asymmetric Keys.
-
В целях безопасности рекомендуется не присоединять и не восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Каков источник ошибки: Windows не может запустить SQL Server Ошибка 3417?
Эта проблема может возникнуть, когда есть —
- Изменения настроек Windows, намеренные или непреднамеренные (смещение папки SQL Server).
- Сжатие папки, содержащей файлы базы данных SQL.
- Сетевая учетная запись для папки данных несовместима.
- Повреждение файла базы данных SQL, например, из-за аппаратного сбоя, вторжения вирусов или внезапного отключения питания.
Эти причины ошибки не следует упускать из виду.
Подходы вручную: Windows не может запустить SQL Server, ошибка 3417
Иногда некоторые ошибки SQL-сервера говорят сами за себя, что означает, что если пользователь пытается правильно понять сообщение, то можно исправить ошибку вручную.В результате, чтобы решить эту проблему, пользователь должен либо восстановить резервную копию базы данных, либо восстановить базу данных, если она была повреждена. Перед этим вы также можете проверить, сжимается ли файл MDF или нет, чтобы исправить сообщение об ошибке SQL Server 3417. Давайте начнем с рассмотрения каждого метода устранения неполадок.
1. Необходимо распаковать файл MDF базы данных SQL
Проверьте, не сжимается ли основной файл базы данных (.mdf), если вы не можете его открыть. Если файл сжат, вам придется распаковать его. Для этого сделайте следующие шаги:
Перейти к Данные Microsoft SQL Server и найдите файлы db (MDF и NDF).
- Щелкните правой кнопкой мыши Папка данных SQL Server и выберите Характеристики. Откроется окно «Свойства» для Microsoft SQL Server. Затем выберите Advanced.
- Снимите флажок Компресс содержимое для экономии места на диске в Расширенные атрибуты появится диалоговое окно, затем щелкните Ok.
- В Характеристики диалоговое окно для Microsoft SQL Server появляется еще раз. Затем нажмите Ok после нажатия кнопки Применить. Нажмите Ok когда Подтвердить изменения атрибутов появится окно.
- Для продолжения нажмите Продолжать.
- Дайте время для корректировка атрибутов вступить в силу. Нажмите Ok после внесения изменений.
После выполнения этих процедур перезапустите службу SQL Server. Если проблема не исчезнет, используйте следующую ручную технику.
2. Проверьте разрешения папки.
Это исправление ошибки SQL 3417 предназначено для клиентов, у которых возникает ошибка при переносе папки на другой диск.
Убедитесь, что учетная запись, которая запускает службу SQL Server, имеет права доступа (сетевые разрешения) к папке файлов базы данных SQL. Если у вас нет доступа к папке, используйте эти процедуры, чтобы получить ее:
- Щелкните правой кнопкой мыши Файлы SQL папку и выберите Характеристики из меню.
- Выберите Вкладка Безопасность в поле «Свойства».
- Во всплывающем диалоговом окне под Группа или имена пользователей: в области выберите Сетевая служба учетная запись.
- Щелкните значок Кнопка ОК после выбора Флажок Полный доступ в разделе «Разрешения для аутентифицированных пользователей».
Убедитесь, что сейчас экземпляр SQL Server запускается без ошибок.
3. Используя файл резервной копии, восстановите базу данных.
Если проблема 3417 сохраняется в SQL Server 2017 или более ранних версиях, рассмотрите возможность восстановления базы данных из файла резервной копии. Убедитесь, что в резервной копии есть самая последняя копия базы данных SQL. В этом блоге вы узнаете, как восстановить базу данных из SQL Server. bak файл — Как сделать резервную копию и восстановить базы данных SQL Server различными подходами.
Профессиональный инструмент восстановления
Если код ошибки SQL 3417 не исправлен с помощью описанных выше процедур, вам необходимо восстановить базу данных. Программное обеспечение для восстановления DataHelp SQL лучше всего подходит для этого. Он может исправить как небольшие, так и серьезные повреждения MDF (первичный файл базы данных) и NDF (файл национальной базы данных) (вторичный файл базы данных). Эта проблема не возникнет в MS SQL Server после восстановления базы данных. Этот инструмент полезен для устранения неполадок SQL Server 3417 в различных версиях SQL Server, таких как SQL Server 2019, 2017, 2016, 2014, 2012, 2008/2008 R2, 2005 и 2000.
Заключение
При попытке запустить службу SQL Server вы можете получить ошибку SQL Server 3417. Если не удается вывести главную базу данных или базу данных tempdb в оперативный режим, папка, содержащая файлы базы данных (.mdf или .ndf), сжимается, или вы этого не делаете. есть права доступа к папке, возникает ошибка. Вы можете попытаться решить проблему, используя ручные обходные пути, описанные в этой статье. С другой стороны, ручное устранение проблемы SQL 3417 может занять много времени и привести к недоступности базы данных. Лучший способ — восстановить файл MDF и решить проблему с помощью специального решения для восстановления базы данных SQL, такого как DataHelp SQL Recovery Software.
Использование Transact-SQL
Создайте полную резервную копию базы данных, выполнив инструкцию для создания полной резервной копии базы данных и указав следующее:
- имя базы данных для создания резервной копии;
- устройство резервного копирования, на которое записывается полная резервная копия базы данных.
Базовая структура синтаксиса Transact-SQL для полного резервного копирования базы данных:
BACKUP DATABASE database TO backup_device ] ;
Параметр | Описание |
---|---|
database | База данных для резервного копирования. |
backup_device | Указывает список от 1 до 64 устройств резервного копирования, используемых для создания резервной копии. Можно указать как физическое устройство резервного копирования, так и соответствующее логическое устройство, если оно уже определено. Для указания физического устройства резервного копирования используйте параметр DISK или TAPE. { DISK | TAPE } = physical_backup_device_name Дополнительные сведения см. в разделе Устройства резервного копирования (SQL Server). |
WITH with_options | Используется для указания одного или нескольких параметров, o. Сведения о некоторых основных параметрах см. в пункте 2. |
При необходимости укажите один параметр WITH или несколько. Здесь описываются некоторые основные параметры WITH. Сведения о всех параметрах WITH см. в разделе BACKUP (Transact-SQL).
Основные параметры WITH резервного набора данных:
- { COMPRESSION | NO_COMPRESSION } : Только в версии SQL Server 2008 Enterprise и выше указано, выполняется ли команда backup compression для этой резервной копии, переопределяя значение по умолчанию на уровне сервера.
- ENCRYPTION (ALGORITHM, SERVER CERTIFICATE | ASYMMETRIC KEY) : Только для SQL Server 2014 и выше укажите используемый алгоритм шифрования, а также сертификат или асимметричный ключ для шифрования.
- DESCRIPTION = { ‘ text ‘ | @ text_variable }: Задает произвольное текстовое описание резервного набора данных. В этой строке может содержаться до 255 символов.
- NAME = { имя_резервного_набора_данных | @ переменная_резервного_набора_данных } : Указывает имя резервного набора данных. Длина имени не может превышать 128 символов. Если имя не указано, оно остается пустым.
По умолчанию команда добавляет резервную копию в существующий набор носителей, сохраняя существующие резервные наборы данных. Чтобы явно задать значение, используйте параметр . Сведения о присоединении к существующим резервным наборам данных см. в разделе Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).
Чтобы отформатировать носитель резервной копии, используйте параметр FORMAT:
FORMAT
Используйте предложение FORMAT при первом обращении к носителю или при необходимости перезаписать все существующие данные. При необходимости назначьте новому носителю имя и описание.
Важно!
Будьте предельно осторожны, используя предложение FORMAT инструкции , так как оно удаляет все резервные копии, сохраненные ранее на носителе резервных копий.
A. Резервное копирование на дисковое устройство
В следующем примере производится резервное копирование всей базы данных на диск и создание нового набора носителей с помощью параметра .
Б. Резервное копирование на ленточное устройство
В следующем примере создается полная резервная копия базы данных на ленте в дополнение к предыдущим резервными копиям.
В. Резервное копирование на логическое ленточное устройство
В следующем примере создается логическое устройство резервного копирования для ленточного накопителя. Затем показано, как производится полное резервное копирование базы данных SQLTestDB на этот накопитель.
Ректальное администрирование: Основы для практикующих системных АДминистраторов
Одной из самых популярных и зарекомендовавших себя методологий системного администрирования является так называемое ректальное. Редкий случай сопровождения и обслуживания информационных систем, инфраструктуры организации обходится без его использования. Зачастую без знания данной методологии сисадминам даже бывает сложно найти работу в сфере ИТ, потому что работодатели, особенно всякие аутсорсинговые ИТ фирмы, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям: практикам ITIL, нормальным ITSM и прочей ерунде.
Предварительные требования и рекомендации
-
Чтобы восстановить зашифрованную базу данных, необходимо иметь доступ к сертификату или асимметричному ключу, который использовался для шифрования базы данных. Без сертификата или асимметричного ключа восстановить базу данных нельзя. Поэтому сертификат, используемый для шифрования ключа шифрования базы данных, должен храниться в течение всего времени, пока есть необходимость в резервной копии. Дополнительные сведения см. в статье SQL Server Certificates and Asymmetric Keys.
-
В целях безопасности рекомендуется не присоединять и не восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Восстановление и журнал транзакций
Для большинства сценариев восстановления необходимо применить резервную копию журналов транзакций и позволить Компонент SQL Server Database Engine запустить процесс восстановления для подключения базы данных к сети. Восстановление — это процесс, используемый SQL Server для запуска каждой базы данных в транзакционно-согласованном (чистом) состоянии.
В случае отработки отказа или другого неясного завершения работы, базы данных могут оставаться в состоянии, в котором часть изменений не была записана из буферного кэша в файлы данных, и могут существовать некоторые изменения в файлах данных, вызванные незавершенными транзакциями. При запуске экземпляра SQL Server выполняется восстановление каждой базы данных, состоящее из трех этапов, на основе последней контрольной точки базы данных:
-
На этапе анализа выполняется анализ журнала транзакций для определения последней контрольной точки и создается таблица «грязных» страниц (ТГС) и таблица активных транзакций (ТАТ). ТГС содержит записи о страницах, которые были «грязными» на момент завершения работы базы данных. TАT содержит записи транзакций, которые оставались активными на момент некорректного завершения работы базы данных.
-
На стадии повтора выполняется накат всех изменений, записанных в журнале, которые, возможно, не были записаны в файлы данных на момент завершения работы базы данных. (minLSN), необходимый для успешного восстановления всей базы данных, находится в ТГС и отмечает начало операций восстановления, необходимых для всех «грязных» страниц. На этом этапе Компонент SQL Server Database Engine записывает на диск все «грязные» страницы, принадлежащие подтвержденным транзакциям.
-
На стадии отката выполняется откат незавершенных транзакций, обнаруженных в TАT, чтобы убедиться в сохранении целостности базы данных. После отката база данных включается в режим «в сети», и больше никакие резервные копии журнала транзакций не могут быть применены.
Сведения о ходе каждой стадии восстановления базы данных заносятся в журнал ошибок SQL Server. Ход восстановления базы данных также можно отслеживать с помощью расширенных событий. Дополнительные сведения см. в записи блога New extended events for database recovery progress (Новые расширенные события для процесса восстановления базы данных).
Примечание
Для сценария поэтапного восстановления, если файловая группа доступна только для чтения с момента, предшествующего созданию резервной копии файловых групп, использование резервных копий журналов не требуется и эта группа пропускается при восстановлении файлов.
Примечание
Чтобы максимально увеличить доступность баз данных в корпоративной среде, SQL Server выпуск Enterprise может перевести базу данных в действие после стадии повтора, в то время как стадия отката все еще будет выполняться. Это также называется быстрым восстановлением.
Как исправить ошибки в MS SQL с помощью Recovery Toolbox for SQL Server
Для восстановления поврежденной базы данных можно обратиться к помощи Recovery Toolbox for SQL Server. Для исправления ошибки (Error), следует воспользоваться пошаговой инструкцией восстановления данных из файла *.mdf, который был поврежден. Для этого необходимо:
- Скачать Recovery Toolbox for SQL Server.
- Установить программу следуя инструкциям и запустить ее.
- Из списка файлов выбрать файл *.mdf, который был поврежден.
- Осуществить предварительный просмотр тех данных, которые в процессе выполнения программы могут быть подвергнуты извлечению из базы MS SQL сервер, которая подверглась повреждению.
- Выбрать наиболее приемлемый способ, которым будут экспортироваться данные:
- сохранением на диск в качестве SQL-скрипта;
- выполнением SQL-скрипта в самой БД.
- Произвести выборку информации, требующей восстановления и сохранения.
- Начать восстановление нажатием Start recovery.
Данная программа создавалась, чтобы облегчить процесс восстановления поврежденных БД. Специально разработанная, оптимизированная для восстановления SQL Server, утилита поможет устранить ошибки и внести правки в разные типы повреждений *.mdf файлов и базы данных MS SQL Server.
Как становится понятно, для исправления ошибок и восстановления БД необходимо уметь пользоваться различными инструментами. Читайте, изучайте материалы по данной теме. Если возникнут вопросы – обязательно задавайте.