Некоторые из моих коллег были удивлены, когда я сказал им, что могу создать резервную копию базы данных SQL Server, пока она еще работает, и поинтересовался, как это возможно. Я знаю, что SQL Server способен выполнять резервное копирование базы данных, пока она еще в сети, но я не знаю, как объяснить, почему это возможно. Мой вопрос, как это влияет на базу данных?
Если данные будут изменены (путем вставки, обновления или удаления) во время выполнения резервного копирования, будет ли резервная копия содержать эти изменения или будет добавлена в базу данных впоследствии?
Я предполагаю, что файл журнала играет важную роль здесь, но я не совсем уверен, как.
редактировать: просто как примечание, мой случай включает в себя резервное копирование баз данных с помощью агента SQL Server и последствия изменений базы данных во время этого процесса.
источник
Во время резервного копирования для базы данных будет создан моментальный снимок, и данные будут считаны для резервного копирования из этого моментального снимка. Фактические операции с живой БД не влияют на операцию резервного копирования.
источник
Вы не можете просто скопировать его, поскольку в середине копии базы данных могут быть изменения, как вы упоминали в этом вопросе.
Это должно быть сделано с агентами, которые осведомлены о функциональности базы данных, а затем делают «снимок» через функции ОС или могут использовать утилиту для вывода базы данных в безопасное состояние (например, mysqldump, если используется mysql).
В противном случае вы получите резервную копию, которая может быть повреждена, и вы не узнаете ее, пока не восстановите ее. Я думаю, что Джоэл и Джефф недавно говорили об этом на недавнем подкасте StackOverflow.
И вы правы в том, что файл журнала важен. Если файл журнала / журнала не синхронизирован с фактическими данными, восстановление файлов приведет к повреждению.
Он сводится к резервному копированию, выполненному с использованием безопасного состояния базы данных, либо через агент с поддержкой базы данных, либо через приложение моментальных снимков, либо приложение, которое знает, как правильно подключить базу данных к сбросу данных, не мешая обновлениям во время сброса данных и резервного копирования. до результирующего файла.
источник
Есть так много способов сделать это (вообще говоря, понятия не имею, как это обычно делает MSSQL), например, просто выгрузить базу данных в файл, добавляя любые изменения в файл журнала, который фиксируется после завершения дампа, - к использованию снимка, специфичного для файловой системы. такие функции, как VSS на Windows.
источник
Вы можете взять так называемую резервную копию только для копирования. Не влияет на базу данных, пока она в сети
источник