|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
Добрый день, Сегодня набрел на такую проблему, когда стал восстанавливать базу: Код: sql 1. 2. 3. 4. 5. 6. 7.
Полный бекап завершился в 7:31:44, поэтому вроде бы как логично восстановить FullBackup.bak и потом LogBackup5.trn. Однако на деле не так, LogBackup4.trn начался и завершился до завершения полного, но тем не менее имеено он должен быть восстановлен первым поверх полного. Вопрос собственно риторический: получается нельзя полагаться на время начала/завершения бекапов при определении последовательности восстановления базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 06:11 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
Roust_m Вопрос собственно риторический: получается нельзя полагаться на время начала/завершения бекапов при определении последовательности восстановления базы. Полагаться нужно на LSN В крайнем случае, на время начала полного бакапа, и время завершения бакапа лога. Почему так сделано - понятно. Бакап же на время своего завершения не может содержать все изменения базы на этот момент, т.к. иначе бы он никогда не завершился. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 08:13 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
alexeyvg Бакап же на время своего завершения не может содержать все изменения базы на этот момент, т.к. иначе бы он никогда не завершился. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. всегда считал по иному вот выдержка из бола Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 08:32 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
HandKot alexeyvg Бакап же на время своего завершения не может содержать все изменения базы на этот момент, т.к. иначе бы он никогда не завершился. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. всегда считал по иному вот выдержка из бола Код: plaintext 1. 2. 3.
Как то там всё это расплывчато описано :-) На уровне "утром полный бакап, вечером бакап журнала"... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 09:04 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
alexeyvg Roust_m Вопрос собственно риторический: получается нельзя полагаться на время начала/завершения бекапов при определении последовательности восстановления базы. В крайнем случае, на время начала полного бакапа, и время завершения бакапа лога. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. В том то и дело, что нельзя полагаться на время вообще. Полный бекап содержит изменения сделанные во время бекапа. Например, измения LogBackup1.trn, LogBackup2.trn, LogBackup3.trn вошли в полный бекап, хотя все эти бекапы начались после полного бекапа. А вот изменения LogBackup4.trn не вошли, хотя он завершился до окончания полного бекапа. То есть полный бекап включает изменения во время себя, но до определенного момента, потом "ворота" закрываются и он делает какие-то операции завершения и не берет новые изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 09:18 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
Roust_m Полный бекап завершился в 7:31:44, поэтому вроде бы как логично восстановить FullBackup.bak и потом LogBackup5.trn. В данном случае за 8 секунд. Нельзя на это рассчитывать, всё будет зависеть от нагрузки, и производительности. Полный бакап записывает остатки лога, а в базу в это время валятся транзакции. Когда там настанет час X, или LSN X вы предсказать не сможете. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 11:11 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
Roust_m alexeyvg пропущено... В крайнем случае, на время начала полного бакапа, и время завершения бакапа лога. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. В том то и дело, что нельзя полагаться на время вообще. Полный бекап содержит изменения сделанные во время бекапа. Например, измения LogBackup1.trn, LogBackup2.trn, LogBackup3.trn вошли в полный бекап, хотя все эти бекапы начались после полного бекапа. А вот изменения LogBackup4.trn не вошли, хотя он завершился до окончания полного бекапа. То есть полный бекап включает изменения во время себя, но до определенного момента, потом "ворота" закрываются и он делает какие-то операции завершения и не берет новые изменения. Или можно полагаться на время - бакап лога, который завершился до момента начала полного бакапа, не нужен. Вот это всё гарантированно, а остальное - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 11:13 |
|
Последовательность бекапов
|
|||
---|---|---|---|
#18+
Roust_m alexeyvg пропущено... В крайнем случае, на время начала полного бакапа, и время завершения бакапа лога. Поэтому, когда восстанавливается полный бакап, изменения, сделанные во время бакапа, восстановлены не будут, и для восстановления дальнейшей цепочки нужно восстановить то, что менялось, начиная с начала бакапа. В том то и дело, что нельзя полагаться на время вообще. Полный бекап содержит изменения сделанные во время бекапа. Например, измения LogBackup1.trn, LogBackup2.trn, LogBackup3.trn вошли в полный бекап, хотя все эти бекапы начались после полного бекапа. А вот изменения LogBackup4.trn не вошли, хотя он завершился до окончания полного бекапа. То есть полный бекап включает изменения во время себя, но до определенного момента, потом "ворота" закрываются и он делает какие-то операции завершения и не берет новые изменения. Все просто полный бекап состоит из двух основных частей 1. Бекап данных. Т.е. прям постраничная копия файлов данных. Т.к. в процессе чтение этих данных, страницы меняются, то эта часть получается не консистентной. И для этого добавляется вторая часть 2. Бекап лога, содержавший все изменения с начала до конца первой части. Т.е. по факту, полный бекап хранит базу в состоянии на момент завершения 1-й части бекапа. Если во второй период полного бекапа успело сделаться более одного бекапа лога, то все они, начиная со второго, будут иметь дату начала меньше, чем дата окончания полного, но при этом не могут быть восстановлены на него. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2020, 11:27 |
|
|
start [/forum/topic.php?fid=46&tid=1686094]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 131ms |
0 / 0 |