Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сделать синхронный бэкап двух БД на одном сервере?  [new]
ДваждыДва
Member

Откуда:
Сообщений: 31
Добрый день.


Есть SQL Server.

В нем две огромные базы.


Из одной в другую постоянно перетекают данные (из 1 опирутеся в 2 и в 1 удаляются).





Скажите, как можно сделать бэкап двух баз одновременно, чтобы он был на один срез времени актуален?
19 фев 21, 14:05    [22283499]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
msLex
Member

Откуда:
Сообщений: 8719
Восстанавливать бекап лога обеих баз с опцией STOPAT
19 фев 21, 14:08    [22283501]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
komrad
Member

Откуда:
Сообщений: 5498
ДваждыДва

Скажите, как можно сделать бэкап двух баз одновременно, чтобы он был на один срез времени актуален?

вам же нужен не бекап сам по себе , а возможность восстановиться с него
достаточно иметь полные бекапы и бекапы логов и восстанавливать на момент времени
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model
19 фев 21, 14:13    [22283504]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
ДваждыДва
Member

Откуда:
Сообщений: 31
Понял, благодарю.
19 фев 21, 14:18    [22283506]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
ДваждыДва
Member

Откуда:
Сообщений: 31
Кстати, у инкрементального бэкапа есть возможность наопределенный момент восттановить? ИЛи только лог?
19 фев 21, 14:19    [22283507]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1697
ДваждыДва
Кстати, у инкрементального бэкапа есть возможность наопределенный момент восттановить? ИЛи только лог?


только журнал
19 фев 21, 14:25    [22283510]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52482
Осталась сущая мелочь: подгадать такую миллисекунду, которая гарантированно не придётся в промежуток между убытком данных из первой БД и их прибытием во вторую.

Я так подозреваю, двухфазный коммит у автора не задействован...
19 фев 21, 14:30    [22283512]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
msLex
Member

Откуда:
Сообщений: 8719
Dimitry Sibiryakov
Осталась сущая мелочь: подгадать такую миллисекунду, которая гарантированно не придётся в промежуток между убытком данных из первой БД и их прибытием во вторую.

Я так подозреваю, двухфазный коммит у автора не задействован...


если переливка/чистка в единой транзакции, то проблемы будут только если попасть на миллисекунду, когда commit в лог одной БД уже записался, а в другой еще нет.

Сообщение было отредактировано: 19 фев 21, 15:18
19 фев 21, 15:24    [22283541]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
komrad
Member

Откуда:
Сообщений: 5498
msLex,

MS на этот случай предлагает маркированные транзакции
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/use-marked-transactions-to-recover-related-databases-consistently
19 фев 21, 15:38    [22283550]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
msLex
Member

Откуда:
Сообщений: 8719
komrad
msLex,

MS на этот случай предлагает маркированные транзакции
https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/use-marked-transactions-to-recover-related-databases-consistently

Не уверен что между записью commit пользовательской транзакции в лог разные БД не возможна запись commit marked транзакции в лог всех БД.

Типа

db1 log commit user transaction1
db1 log commit marked transaction2
db2 log commit marked transaction2
db2 log commit user transaction1


Если так, то при восстановлении до marked transaction2 транзакция transaction1 в db2 откатиться.
19 фев 21, 18:46    [22283703]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
uaggster
Member

Откуда:
Сообщений: 954
https://www.specialist.ru/center/advice/82/kak-vosstanovitj-soglasovannuyu-rezervnuyu-kopiyu-neskoljkih-baz-dannih
19 фев 21, 20:15    [22283757]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8322
Непонятен смысл такого бэкапа, данные всегда можно восстановить на заданное время с использованием журнала, если модель восстановления полная. А вам и нужна полная.
19 фев 21, 20:24    [22283761]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать синхронный бэкап двух БД на одном сервере?  [new]
aleks222
Member

Откуда:
Сообщений: 1237
Владислав Колосов
Непонятен смысл такого бэкапа, данные всегда можно восстановить на заданное время с использованием журнала, если модель восстановления полная. А вам и нужна полная.


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

Вариант только остановить перенос и сделать ОБА бякапа.
Потом включить перенос.
21 фев 21, 12:32    [22284370]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить