Commit 0b63291
committed
Make pg_receivexlog and pg_basebackup -X stream work across timeline switches.
This mirrors the changes done earlier to the server in standby mode. When
receivelog reaches the end of a timeline, as reported by the server, it
fetches the timeline history file of the next timeline, and restarts
streaming from the new timeline by issuing a new START_STREAMING command.
When pg_receivexlog crosses a timeline, it leaves the .partial suffix on the
last segment on the old timeline. This helps you to tell apart a partial
segment left in the directory because of a timeline switch, and a completed
segment. If you just follow a single server, it won't make a difference, but
it can be significant in more complicated scenarios where new WAL is still
generated on the old timeline.
This includes two small changes to the streaming replication protocol:
First, when you reach the end of timeline while streaming, the server now
sends the TLI of the next timeline in the server's history to the client.
pg_receivexlog uses that as the next timeline, so that it doesn't need to
parse the timeline history file like a standby server does. Second, when
BASE_BACKUP command sends the begin and end WAL positions, it now also sends
the timeline IDs corresponding the positions.1 parent 8ae35e9 commit 0b63291
File tree
12 files changed
+677
-290
lines changed- doc/src/sgml
- src
- backend
- access/transam
- replication
- bin/pg_basebackup
- include/access
12 files changed
+677
-290
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1418 | 1418 | | |
1419 | 1419 | | |
1420 | 1420 | | |
1421 | | - | |
1422 | | - | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
1423 | 1425 | | |
1424 | 1426 | | |
1425 | 1427 | | |
| |||
1784 | 1786 | | |
1785 | 1787 | | |
1786 | 1788 | | |
1787 | | - | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
1788 | 1792 | | |
1789 | 1793 | | |
1790 | 1794 | | |
| |||
1827 | 1831 | | |
1828 | 1832 | | |
1829 | 1833 | | |
1830 | | - | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
1831 | 1837 | | |
1832 | 1838 | | |
1833 | 1839 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
545 | 545 | | |
546 | 546 | | |
547 | 547 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
552 | 552 | | |
553 | 553 | | |
554 | | - | |
| 554 | + | |
555 | 555 | | |
556 | 556 | | |
557 | 557 | | |
| 558 | + | |
| 559 | + | |
558 | 560 | | |
559 | 561 | | |
560 | 562 | | |
561 | 563 | | |
562 | 564 | | |
563 | 565 | | |
| 566 | + | |
| 567 | + | |
564 | 568 | | |
565 | 569 | | |
566 | 570 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4930 | 4930 | | |
4931 | 4931 | | |
4932 | 4932 | | |
4933 | | - | |
| 4933 | + | |
4934 | 4934 | | |
4935 | 4935 | | |
4936 | 4936 | | |
| |||
7870 | 7870 | | |
7871 | 7871 | | |
7872 | 7872 | | |
| 7873 | + | |
| 7874 | + | |
| 7875 | + | |
7873 | 7876 | | |
7874 | 7877 | | |
7875 | 7878 | | |
7876 | 7879 | | |
7877 | | - | |
| 7880 | + | |
| 7881 | + | |
7878 | 7882 | | |
7879 | 7883 | | |
7880 | 7884 | | |
7881 | 7885 | | |
7882 | 7886 | | |
| 7887 | + | |
7883 | 7888 | | |
7884 | 7889 | | |
7885 | 7890 | | |
| |||
8021 | 8026 | | |
8022 | 8027 | | |
8023 | 8028 | | |
| 8029 | + | |
8024 | 8030 | | |
8025 | 8031 | | |
8026 | 8032 | | |
| |||
8154 | 8160 | | |
8155 | 8161 | | |
8156 | 8162 | | |
| 8163 | + | |
| 8164 | + | |
8157 | 8165 | | |
8158 | 8166 | | |
8159 | 8167 | | |
| |||
8190 | 8198 | | |
8191 | 8199 | | |
8192 | 8200 | | |
| 8201 | + | |
| 8202 | + | |
| 8203 | + | |
8193 | 8204 | | |
8194 | 8205 | | |
8195 | | - | |
| 8206 | + | |
8196 | 8207 | | |
8197 | 8208 | | |
8198 | 8209 | | |
8199 | 8210 | | |
8200 | 8211 | | |
| 8212 | + | |
8201 | 8213 | | |
8202 | 8214 | | |
8203 | 8215 | | |
| |||
8401 | 8413 | | |
8402 | 8414 | | |
8403 | 8415 | | |
| 8416 | + | |
8404 | 8417 | | |
8405 | 8418 | | |
| 8419 | + | |
| 8420 | + | |
8406 | 8421 | | |
8407 | 8422 | | |
8408 | 8423 | | |
| |||
8414 | 8429 | | |
8415 | 8430 | | |
8416 | 8431 | | |
| 8432 | + | |
8417 | 8433 | | |
8418 | 8434 | | |
8419 | 8435 | | |
| |||
8529 | 8545 | | |
8530 | 8546 | | |
8531 | 8547 | | |
| 8548 | + | |
| 8549 | + | |
8532 | 8550 | | |
8533 | 8551 | | |
8534 | 8552 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | | - | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| 97 | + | |
97 | 98 | | |
| 99 | + | |
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
101 | 103 | | |
102 | | - | |
103 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
104 | 107 | | |
105 | 108 | | |
106 | 109 | | |
| |||
218 | 221 | | |
219 | 222 | | |
220 | 223 | | |
221 | | - | |
| 224 | + | |
222 | 225 | | |
223 | 226 | | |
224 | 227 | | |
| |||
426 | 429 | | |
427 | 430 | | |
428 | 431 | | |
429 | | - | |
| 432 | + | |
430 | 433 | | |
431 | 434 | | |
432 | 435 | | |
| |||
635 | 638 | | |
636 | 639 | | |
637 | 640 | | |
638 | | - | |
| 641 | + | |
639 | 642 | | |
640 | 643 | | |
641 | 644 | | |
642 | 645 | | |
643 | | - | |
644 | | - | |
645 | 646 | | |
646 | | - | |
| 647 | + | |
647 | 648 | | |
648 | | - | |
| 649 | + | |
649 | 650 | | |
650 | 651 | | |
651 | 652 | | |
652 | 653 | | |
653 | 654 | | |
654 | 655 | | |
655 | 656 | | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
656 | 669 | | |
657 | 670 | | |
658 | 671 | | |
659 | 672 | | |
660 | | - | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
661 | 680 | | |
662 | 681 | | |
663 | 682 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
120 | 121 | | |
121 | 122 | | |
122 | 123 | | |
| |||
449 | 450 | | |
450 | 451 | | |
451 | 452 | | |
452 | | - | |
| 453 | + | |
| 454 | + | |
453 | 455 | | |
454 | 456 | | |
455 | 457 | | |
| |||
496 | 498 | | |
497 | 499 | | |
498 | 500 | | |
499 | | - | |
500 | | - | |
| 501 | + | |
501 | 502 | | |
502 | 503 | | |
503 | 504 | | |
| |||
554 | 555 | | |
555 | 556 | | |
556 | 557 | | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
557 | 594 | | |
558 | 595 | | |
559 | | - | |
560 | | - | |
| 596 | + | |
| 597 | + | |
561 | 598 | | |
562 | 599 | | |
563 | 600 | | |
| |||
1377 | 1414 | | |
1378 | 1415 | | |
1379 | 1416 | | |
1380 | | - | |
| 1417 | + | |
1381 | 1418 | | |
| 1419 | + | |
1382 | 1420 | | |
1383 | 1421 | | |
1384 | 1422 | | |
| |||
0 commit comments