Sql server backup: Create a Full Database Backup — SQL Server
Содержание
Общие сведения о типах резервных копий SQL Server
Резервное копирование SQL Server само по себе является обширной темой; настолько обширны, что о них написано множество книг. Однако в этой статье мы сосредоточимся на доступных нам типах резервных копий и поймем, как выбрать то, что нам нужно, и на каких аспектах мы основываем это решение. Это понимание, в свою очередь, помогло бы нам выбрать нашу стратегию резервного копирования и восстановления.
Ниже приведены наиболее распространенные типы резервных копий, доступных в SQL Server:
- Полный
- Дифференциал
- Журнал транзакций
- Резервное копирование хвостового журнала
Также доступны другие типы резервного копирования:
- Резервное копирование только для копирования
- Резервные копии файлов
- Частичные резервные копии.
Полные резервные копии
Полная резервная копия, как следует из названия, создает резервную копию всего. Это основа любого резервного копирования. Это полная копия, в которой хранятся все объекты базы данных: таблицы, процедуры, функции, представления, индексы и т. д. Имея полную резервную копию, вы сможете легко восстановить базу данных именно в том виде, в каком она была на момент время резервного копирования.
Полная резервная копия создает полную резервную копию базы данных, а также часть журнала транзакций, поэтому базу данных можно восстановить. Это обеспечивает простейшую форму восстановления базы данных, поскольку все содержимое содержится в одной резервной копии.
Полное резервное копирование должно быть выполнено хотя бы один раз, прежде чем можно будет запустить любой другой тип резервного копирования — это основа для любого другого типа резервного копирования.
Как создать полную резервную копию базы данных с помощью T-SQL
BACKUP DATABASE — это команда, используемая для создания полной резервной копии базы данных. Для этого требуется как минимум два входных параметра: имя базы данных и устройство резервного копирования.
Ниже приведен пример хранения полной резервной копии базы данных на устройстве:
РЕЗЕРВНАЯ БАЗА ДАННЫХ [SQLShackDemoATC] На ДИСК=’f:\PowerSQL\SQLShackDemoATC.BAK’ С ФОРМАТОМ, MEDIANAME = ‘Native_SQLServerBackup’, NAME = ‘Резервная копия Full-SQLShackDemoATC’; |
Полное резервное копирование базы данных в несколько файлов
Иногда в некоторых случаях мы ограничены количеством места, которое у нас есть. Что, если бы мы захотели сделать резервную копию всей огромной базы данных? Или что, если нам придется копировать файлы резервных копий по сети? В этих случаях может быть хорошей идеей разделить резервную копию на более мелкие фрагменты, каждый из которых представляет собой отдельный файл.
1 2 3 4 5 6 |
РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ SQLShackDemoATC TO DISK = ‘f:\PowerSQL\SQLShackDemoATC_1. DISK = ‘f:\PowerSQL\SQLShackDemoATC_2.BAK’, DISK = ‘f:\SQLCemoSQL. , DISK = ‘f:\PowerSQL\SQLShackDemoATC_4.BAK’ WITH INIT, NAME = ‘FULL SQLShackDemoATC backup’, STATS = 5 |
Если вы хотите создать зеркальную копию файла резервной копии:
РЕЗЕРВНАЯ БАЗА ДАННЫХ ProdSQLShackDemo НА ДИСК = ‘F:\PowerSQL\ProdSQLShackDemo_1.BAK’ ЗЕРКАЛО НА ДИСК = ‘F:\PowerSQL\ProdSQLShackDemo_2.BAK’ С ФОРМАТОМ 5 |
На самом деле вы можете иметь до трех зеркальных копий:
1 2 3 4 5 6 7 |
РЕЗЕРВНАЯ БАЗА ДАННЫХ ProdSQLShackDemo НА ДИСК = ‘F:\PowerSQL\ProdSQLShackDemo_1.BAK’ ЗЕРКАЛО НА ДИСК = ‘F:\PowerSQL\ProdSQLShackDemo_2.BAK’ BAK’ ЗЕРКАЛО НА ДИСК = ‘F:\PowerSQL\ProdSQLShackDemo_4. С ФОРМАТОМ GO |
Дифференциальные резервные копии
Разностная резервная копия базы данных представляет собой надмножество 90 155 90 156 последней полной резервной копии и содержит все внесенные изменения с момента последней полной резервной копии . Таким образом, если в последнее время произошло очень мало транзакций, размер дифференциальной резервной копии может быть небольшим, но если вы выполнили большое количество транзакций, размер дифференциальной резервной копии может быть очень большим.
Поскольку при дифференциальном резервном копировании не выполняется резервное копирование всего , резервное копирование обычно выполняется быстрее, чем полное резервное копирование. Разностная резервная копия базы данных фиксирует состояние измененных экстентов на момент создания резервной копии. Если вы создаете серию разностных резервных копий, часто обновляемая база данных, вероятно, будет содержать разные данные в каждой разностной копии. По мере увеличения размера разностных резервных копий восстановление разностной резервной копии может значительно увеличить время, необходимое для восстановления базы данных. Поэтому рекомендуется делать новую полную резервную копию через заданные промежутки времени, чтобы установить новую дифференциальная база для данных.
Дифференциальные резервные копии экономят место в хранилище и время, необходимое для резервного копирования. Однако по мере изменения данных с течением времени размер дифференциальной резервной копии также увеличивается. Чем больше возраст дифференциальной резервной копии и больше ее размер, тем больше в какой-то момент времени она может достичь размера полной резервной копии. Большая дифференциальная резервная копия теряет преимущества более быстрой и компактной резервной копии, поскольку требует восстановления полной резервной копии перед восстановлением последней дифференциальной резервной копии. Как правило, мы восстанавливаем самую последнюю полную резервную копию, а затем самую последнюю дифференциальную резервную копию, основанную на этой полной резервной копии.
Как создать дифференциальную резервную копию базы данных с помощью T-SQL
Команда BACKUP DATABASE используется с дифференциальным предложением для создания разностной резервной копии базы данных. Требует три параметра:
- Имя базы данных
- Резервное устройство
- ДИФФЕРЕНЦИАЛЬНОЕ предложение
Например,
база данных резервного копирования [SQLSHACKDEMOATC] TO DISK = ‘F: \ POWERSQL \ SQLSHACKDEMOATC_DIFF.BAK’ с дифференциалом, Medianame = ‘Native_SQLServerdiffbackup’, name = ‘diff-squclsemc. |
Резервная копия журнала транзакций
Резервная копия журнала, как следует из ее названия, создает резервную копию журналов транзакций. Этот тип резервного копирования возможен только с полными моделями восстановления или моделями восстановления с неполным протоколированием. Файл журнала транзакций хранит серию журналов, которые предоставляют историю каждой модификации данных в базе данных. Резервная копия журнала транзакций содержит все записи журнала, которые не были включены в последнюю резервную копию журнала транзакций.
Это позволяет восстановить базу данных на определенный момент времени. Это означает, что резервные копии журнала транзакций являются добавочными, а дифференциальные резервные копии — кумулятивными. Если вы хотите восстановить базу данных на определенный момент времени, вам необходимо восстановить полный, недавний разностный и все соответствующие записи журнала транзакций, которые необходимы для построения базы данных до этого конкретного момента или до момента, очень близкого к этому моменту. желаемый момент времени, непосредственно перед возникновением аварии, которая привела к потере данных. Эта серия модификаций содержится и поддерживается с помощью LSN (порядковый номер журнала) в цепочке журналов. Цепочка резервных копий журналов — это непрерывный ряд журналов, содержащих все записи журнала транзакций, необходимые для восстановления базы данных на определенный момент времени. Цепочка журналов всегда начинается с полной резервной копии базы данных и продолжается до тех пор, пока по какой-либо причине не разорвется цепочка (например, изменение модели восстановления базы данных на простую или создание дополнительной полной резервной копии), таким образом предотвращая создание резервных копий журналов на до тех пор, пока для этой базы данных не будет инициировано другое полное (или дифференциальное) резервное копирование.
Как создать резервную копию журнала транзакций с помощью T-SQL
Команда BACKUP LOG используется для резервного копирования журнала транзакций. Для запуска резервного копирования журнала транзакций требуется имя базы данных, целевое устройство и условие TRANSACTION LOG.
1 2 3 4 5 6 |
РЕЗЕРВНОЕ КОПИРОВАНИЕ ЖУРНАЛА [SQLShackDemoATC] На ДИСК=’f:\PowerSQL\SQLShackDemoATC_Log.trn’ WITH MEDIANAME = ‘Native_SQLServerLogBackup’, NAME = ‘Резервная копия Log-SQLShackDemoATC’; ГО |
Резервные копии хвостового журнала
В случае сбоя, когда вам нужно, чтобы база данных была восстановлена и работала, а база данных работает в модели восстановления FULL или BULK_LOGGED, всегда легко запустить операцию восстановления и приступить к восстановлению резервных копий. Но до этого первое действие, которое необходимо предпринять после сбоя, — это то, что называется резервной копией хвостового журнала журнала активных транзакций.
Это промежуточный шаг, который нам нужно сделать, прежде чем мы начнем восстановление. Этот процесс называется восстановлением резервной копии хвостового журнала.
1 2 3 4 5 6 7 |
мастер ЕГЭ; GO — создать резервную копию заключительного журнала0003 С CONTINUE_AFTER_ERROR; ГО |
Предложение WITH CONTINUE_AFTER_ERROR заставит SQL Server сохранить файл журнала, даже если он генерирует ошибку.
Резервное копирование только для копирования
Резервное копирование только для копирования — это особый тип полного резервного копирования, который не зависит от обычной последовательности резервных копий. Разница между резервной копией только для копирования и полной резервной копией заключается в том, что резервная копия только для копирования не становится основой для следующей дифференциальной резервной копии.
Полное резервное копирование работает на всех моделях восстановления базы данных. С другой стороны, резервное копирование только для копирования применимо только к моделям восстановления с полным или неполным протоколированием. Восстановление резервной копии только для копирования ничем не отличается от обычного процесса восстановления.
Выполнение резервного копирования только для копирования довольно просто. Синтаксис будет выглядеть примерно так:
1 2 3 4 5 6 7 8 9 |
BACKUP DATABASE [SQLShackDemoATC] To DISK=’f:\PowerSQL\SQLShackDemoATC_1.BAK’ WITH COPY_ONLY, MEDIANAME = ‘Native_SQLServerFullBackup’, NAME = ‘Full-SQLShackDemoATC backup’; ЖУРНАЛ РЕЗЕРВНОГО КОПИРОВАНИЯ [SQLShackDemoATC] НА ДИСК = ‘f:\PowerSQL\SQLShackDemoATCCopyOnly.log’ WITH COPY_ONLY; ГО |
Команда BACKUP LOG с параметром COPY_ONLY создает резервную копию журнала только для копирования. Это не связано с усечением журнала транзакций.
Необходимо использовать опцию резервного копирования «COPY_ONLY», чтобы сохранить последовательность резервного копирования базы данных.
Частичное резервное копирование
Частичное резервное копирование — один из наименее используемых методов резервного копирования, доступных в SQL Server. Все модели восстановления базы данных поддерживают частичное резервное копирование, но частичное резервное копирование в основном используется в простой модели восстановления для повышения гибкости при резервном копировании больших баз данных, содержащих файловые группы, доступные только для чтения.
Параметр READ_WRITE_FILEGROUPS используется с командой BACKUP DATABASE. Эта команда предназначена для частичного резервного копирования. Он обрабатывает резервное копирование групп файлов для чтения и записи.
SQLShackPartialBackup — это база данных, созданная с первичными и вторичными файловыми группами. Давайте используем эту базу данных для этой демонстрации.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Создание базы данных SQLSHACKPARTIALBACKUP на первичном (имя = N’SQLSHACKPARTIALBACKUP_1 ‘, FILENAME = N’F: \ POWERSQL \ SQLSHACKPARTIALBACKUP_1.MDF’, SIZE = 5000KB, fileGROWTHUP_1.MDF ‘, SIZE = 5000KB, fileGROWTHUP_1.MDF’, . (ИМЯ = N’SQLShackPartialBackup_2′, ИМЯ ФАЙЛА = N’f:\PowerSQL\SQLShackPartialBackup_2.mdf’, РАЗМЕР = 5000 КБ, FILEGROWTH = 1024 КБ) ВХОД (ИМЯ = N’SQLShackPartialBackup_Log’, ИМЯ ФАЙЛА = N’f:\PowerSQL\SQLShackPartialBackup_log.ldf’, РАЗМЕР = 1024 КБ, FILEGROWTH = 9003 GO 44 |
Давайте изменим модель восстановления базы данных на SIMPLE, используя следующую инструкцию ALTER.
ИЗМЕНИТЬ БАЗУ ДАННЫХ SQLShackPartialBackup УСТАНОВИТЬ ВОССТАНОВЛЕНИЕ ПРОСТОЕ |
Теперь установите дополнительную файловую группу в режим READONLY.
ИЗМЕНИТЬ БАЗУ ДАННЫХ SQLShackPartialBackup ИЗМЕНИТЬ ФАЙЛОВУЮ ГРУППУ [Вторичный] ТОЛЬКО ДЛЯ ЧТЕНИЯ |
Инициируйте резервное копирование, используя параметр READ_WRITE_FILEGROUPS.
РЕЗЕРВНАЯ БАЗА ДАННЫХ SQLShackPartialBackup READ_WRITE_FILEGROUPS НА ДИСК = N’f:\PowerSQL\SQLShackPartialBackup_Full.bak’ ГО |
На следующем снимке экрана видно, что файловая группа SQLShackPartialBackup_2 не была заархивирована в процессе резервного копирования.
Резервные копии файлов и групп файлов
Этот раздел актуален для баз данных SQL Server, содержащих несколько файлов или файловых групп. Резервные копии файлов файловых групп только для чтения можно комбинировать с частичными резервными копиями. Частичные резервные копии включают все файловые группы для чтения/записи и, при необходимости, одну или несколько файловых групп только для чтения.
Давайте создадим базу данных с несколькими файлами и файловыми группами.
1 2 3 4 5 6 7 8 10 11 0003 12 13 . |
СОЗДАТЬ БАЗУ ДАННЫХ SQLShackFileBackup НА ОСНОВНОМ ( ИМЯ = N’SQLShackFileBackup_1′, ИМЯ ФАЙЛА = N’f:\PowerSQL\SQLShackFileBackup_1.mdf’ , Size = 5000 кб, fileGrowth = 1024KB), FileGroup [вторичная] (name = n’sqlshackfilebackup_2 ‘, filename = n’f: \ powersql \ sqlshackfilebackup_2.ndf’, size = 5000kbs = 5000kbe = 5000kbbe = 5000kb = 1024KB) Log ON (имя = n’sqlshackfilebackup_log ‘, filename = n’f: \ powersql \ sqlshackfilebackup_log. размер = 1024KB, файл. |
В следующих примерах показано, как создать резервную копию файлов на уровне файлов:
РЕЗЕРВНАЯ БАЗА ДАННЫХ SQLShackFileBackup ФАЙЛ = ‘SQLShackFileBackup_1’, ФАЙЛ = ‘SQLShackFileBackup_2’ ; ИДТИ |
В следующем примере показано полное резервное копирование всех файлов как в первичной, так и во вторичной файловых группах.
РЕЗЕРВНАЯ БАЗА ДАННЫХ SQLShackFileBackup FILEGROUP = ‘PRIMARY’, FILEGROUP = ‘Secondary’ TO DISK = ‘f:\PowerSQL\SQLShackGroupfilegroup.bak’; ГО |
Опции резервного набора
Ниже приведены несколько параметров, которые работают с набором резервных копий базы данных, который будет создан с помощью команды резервного копирования базы данных.
С опциями
Предложение WITH используется с командой BACKUP, если у нас есть дополнительные требования к резервному копированию.
СЖАТИЕ: этот параметр включает сжатие резервных копий. NO_COMPRESSION явно отключает сжатие резервных копий. По умолчанию сжатие во время резервного копирования отключено.
ШИФРОВАНИЕ: С помощью BACKUP можно указать алгоритм шифрования для защиты файлов резервных копий, хранящихся вне офиса. Вы можете указать NO_ENCRYPTION, если вам не нужно резервное шифрование.
Набор носителей Опции
FORMAT: Этот параметр используется для указания, следует ли перезаписывать информацию заголовка носителя. Предложение FORMAT создаст новый набор резервных копий носителя, тогда как NOFORMAT сохранит всю информацию.
INIT: INIT используется для создания нового набора резервных копий; NOINIT используется для добавления резервной копии к существующему набору резервных копий. Параметр NOINIT используется в основном при резервном копировании базы данных на ленточное устройство.
ИМЯ: Параметр ИМЯ используется для идентификации набора резервных копий.
SKIP: Параметр skip используется для пропуска проверки срока действия резервного набора.
NOREWIND: этот параметр используется для того, чтобы лентопротяжное устройство оставалось открытым и готовым к использованию.
NOUNLOAD: этот параметр указывает SQL Server не выгружать ленту из накопителя после завершения операции резервного копирования.
СТАТИСТИКА: параметр СТАТИСТИКА полезен для получения состояния операции резервного копирования на регулярных этапах ее выполнения.
Сводка
Планирование резервного копирования относительно проще для небольших баз данных. По мере роста базы данных управление резервным копированием может быстро превратиться в сложную и утомительную работу.
Планируя и определяя правильную стратегию резервного копирования и восстановления/восстановления, мы окажемся в хорошей позиции на случай любого сбоя.
Полную резервную копию всегда легче восстановить, но это ресурсоемкая операция, и ее выполнение занимает больше времени.
В этой статье мы рассмотрели различные типы резервных копий с примерами. Это дает вам представление о доступных типах резервного копирования и основных целях каждого типа резервного копирования.
Например, для операции перестроения индекса рассмотрите требуемое время и убедитесь, что это происходит непосредственно перед полным резервным копированием, чтобы все эти изменения не нужно было объединять в дифференциальные резервные копии.
Чтобы ускорить операцию резервного копирования, рассмотрите возможность перемещения исторических данных в архивные группы файлов и разделения данных для чтения и записи и данных только для чтения на отдельные группы файлов. Это дает вам возможность создавать резервные копии только групп файлов для чтения и записи и соответствующих им файлов.
Используя доступные параметры сжатия резервных копий, мы можем уменьшить объем данных, которые необходимо резервировать. Это снимает дополнительную нагрузку на ресурсы хранения и передачи, необходимые для всей операции.
Это все на данный момент. Следите за обновлениями!
Содержание
Процесс резервного копирования и восстановления базы данных в SQL Server — введение в серию |
Обзор процесса резервного копирования и восстановления SQL Server |
Понимание жизненного цикла управления данными SQL Server |
Общие сведения о моделях восстановления базы данных SQL Server |
Общие сведения о типах резервных копий SQL Server |
Стратегии резервного копирования и восстановления (или восстановления) для базы данных SQL Server |
Обсуждение автоматизации резервного копирования и восстановления с использованием SQLCMD и агента SQL Server |
Понимание моментальных снимков базы данных и резервных копий базы данных в SQL Server |
SqlPackage. |
Интеллектуальное резервное копирование базы данных в SQL Server 2017 |
Как выполнить восстановление уровня страницы в SQL Server |
Резервное копирование баз данных Linux SQL с использованием PowerShell и планировщика заданий Windows |
Операции резервного копирования и восстановления базы данных SQL Server с использованием облака |
Резервное копирование и восстановление хвостового журнала в SQL Server |
Отчеты о резервном копировании и восстановлении базы данных SQL Server |
Файловые группы базы данных и поэтапное восстановление в SQL Server |
Оптимизированное в памяти резервное копирование и восстановление базы данных в SQL Server |
Общие сведения об операциях резервного копирования и восстановления в контейнерах Docker SQL Server |
Операции резервного копирования и восстановления с SQL Server 2017 в контейнерах Docker с использованием Azure Data Studio |
Вопросы для интервью по резервному копированию, восстановлению и восстановлению базы данных SQL Server — часть I |
Вопросы для интервью по резервному копированию, восстановлению и восстановлению базы данных SQL Server — часть II |
Вопросы для интервью по резервному копированию, восстановлению и восстановлению базы данных SQL Server — часть III |
Вопросы для интервью по резервному копированию, восстановлению и восстановлению базы данных SQL Server — часть IV |
Ссылки
- Резервные копии только для копирования (SQL Server)
- РЕЗЕРВНАЯ КОПИЯ (Transact-SQL)
- Резервное копирование файлов и файловых групп (SQL Server)
- Автор
- Последние сообщения
Прашант Джаярам
Я технолог по базам данных, имею богатый практический опыт работы с технологиями баз данных более 11 лет. Я сертифицированный специалист Microsoft и имею степень магистра компьютерных приложений.
Моя специальность заключается в разработке и внедрении решений высокой доступности и межплатформенной миграции БД. В настоящее время работают над такими технологиями, как SQL Server, PowerShell, Oracle и MongoDB.
Просмотреть все сообщения Прашанта Джаярама
Последние сообщения Прашанта Джаярама (посмотреть все)
Как создать резервную копию базы данных SQL Server, чтобы переместить ее на другой сервер
В этом разделе описывается, как создать резервную копию базы данных в SQL Server с помощью dbForge Studio для SQL Server. Вы можете использовать эту функцию для перемещения вашей базы данных на другой сервер.
Для резервного копирования базы данных:
- После подключения к требуемому экземпляру ядра базы данных Microsoft SQL Server в Database Explorer , щелкните имя сервера, чтобы развернуть дерево серверов.
- Либо выберите пользовательскую базу данных, либо разверните папку Системные базы данных и выберите системную базу данных.
- Щелкните базу данных правой кнопкой мыши, выберите Задачи и щелкните Резервное копирование . Появится диалоговое окно Backup Database .
- В списке Соединение проверьте имя соединения. При желании вы можете выбрать другое соединение из списка.
- В списке Backup type выберите тип резервного копирования.
- В списке База данных проверьте имя базы данных. При желании вы можете выбрать другую базу данных из списка.
-
Дополнительно можно выбрать Резервная копия только для копирования , чтобы создать резервную копию только для копирования. Резервная копия только для копирования — это резервная копия SQL Server, которая не зависит от последовательности обычных резервных копий SQL Server.
Примечание
Если для типа резервной копии установлено значение Дифференциальная , вы не сможете создать резервную копию только для копирования. - Для компонента резервного копирования щелкните База данных или Файлы и файловые группы .
-
Чтобы выбрать пути, нажмите Добавить . Выбранные пути отображаются в поле Backup to disk .
Примечание
Чтобы создать резервную копию базы данных на подключенном сетевом диске, создайте путь к локальному диску, а затем измените его вручную. - Чтобы просмотреть или выбрать параметры носителя, щелкните Параметры носителя .
- Выберите параметр Перезаписать носитель , щелкнув один из следующих вариантов:
- Резервное копирование на существующий набор носителей
Для этого параметра щелкните Добавить к существующему набору резервных копий или Перезаписать все существующие наборы резервных копий. - Резервное копирование на новый набор носителей и удаление всех существующих резервных наборов
Для этого параметра введите имя в текстовом поле Имя нового набора носителей и, при необходимости, опишите набор носителей в текстовом поле Описание нового набора носителей.
- Резервное копирование на существующий набор носителей
- В разделе Надежность дополнительно выберите:
- Проверить резервное копирование после завершения
- Выполнить проверку контрольной суммы перед записью на носитель
- Продолжить при ошибке
- Параметры в разделе Журнал транзакций неактивны, если вы не выполняете резервное копирование журнала транзакций (как указано в разделе Тип резервного копирования на странице Общие).
-
Чтобы просмотреть или выбрать параметры резервного копирования, щелкните Параметры резервного копирования . Страница позволяет:
- Укажите дополнительную информацию о наборе резервных копий, созданном операцией резервного копирования
- Создать зашифрованную резервную копию
- Щелкните Резервное копирование .