|
Обновление тестовой базы данных
|
|||
---|---|---|---|
#18+
Привет, сам не местный, всю жизнь с Oracle, но с некоторых пор появился и SQL Server. Есть задача обновления тестовой БД с продуктивной на конкретное время. Резервное копирование на продуктивной выполняется по следущему расписанию: 1. Full - воскресенье вечер 2. Differential - каждый вечер, кроме воскресенья 3. Logs - каждые 15 минут (TRN файлы) Для примера возьмём сегодня, 14:00 как время, на которое должно быть обновлена тестовая БД. В целом есть понимание, что надо восстановить ближайший Full, потом Differential понедельника и вторника, а потом уже все необходимые логи. Нет понимания по двум вопросам: 1. Как востанавливать Differential бэкапы - какие команды? Для восстановления FULL использовалась такая команда: Код: sql 1. 2. 3. 4. 5. 6. 7.
Соответственно, в папке \\BACKUPS\PRODUCTION\PROD\DIFF\ лежит несколько файлов Differential бэкапов. 2. Как правильно востанавливать логи. Точнее как программно (запрос или какая-нибудь команда) узнать при восстановлении какого лога надо будет использовать WITH NORECOVERY, STOPAT = 'Jan 29, 2020 2:00 PM' . Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2020, 17:56 |
|
Обновление тестовой базы данных
|
|||
---|---|---|---|
#18+
Chitago В целом есть понимание, что надо восстановить ближайший Full, потом Differential понедельника и вторника, а потом уже все необходимые логи. Неверное понимание. Diff всегда делается относительно последнего FULL, а значит восстанавливать два Diff-а не нужно (да и не получится). Цепочка полного восстановления такая FULL - DIFF (его может и не быть) - Log[N]...Log[N+M] Chitago Соответственно, в папке \\BACKUPS\PRODUCTION\PROD\DIFF\ лежит несколько файлов Differential бэкапов. 2. Как правильно востанавливать логи. Точнее как программно (запрос или какая-нибудь команда) узнать при восстановлении какого лога надо будет использовать WITH NORECOVERY, STOPAT = 'Jan 29, 2020 2:00 PM' . Спасибо. Если нужно генерить программно, то анализируйте инфу, полученную через RESTORE HEADERONLY по каждому файлу бекапа (full/diff/log) Если достаточно ручного, то при restore через SSMS можно выбирать все файлы, указать на какой момент времени восстановить данные, и он (SSMS) сам сгенерить правильный скрипт ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2020, 18:20 |
|
Обновление тестовой базы данных
|
|||
---|---|---|---|
#18+
Chitago, Здесь полно примеров https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver15#restoring_full_n_differential_db_backups ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2020, 18:22 |
|
|
start [/forum/topic.php?fid=46&fpage=71&tid=1686584]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 341ms |
total: | 501ms |
0 / 0 |