PostgreSQL Replication Solutions
Upcoming SlideShare
Loading in...5
×
 

PostgreSQL Replication Solutions

on

  • 2,671 views

 

Statistics

Views

Total Views
2,671
Views on SlideShare
2,614
Embed Views
57

Actions

Likes
0
Downloads
77
Comments
0

3 Embeds 57

http://wiki.simplexi.com:8080 42
http://wiki.simplexi.com 13
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

PostgreSQL Replication Solutions PostgreSQL Replication Solutions Presentation Transcript

  • PostgreSQL Replication Solutions BRUCE MOMJIAN, ENTERPRISEDB December, 2008 Abstract Replication is a complex feature. POSTGRESQL supports a variety of replication options. http://momjian.us/presentations
  • Uses for Replication Theolotech.com PostgreSQL Replication Solutions 1
  • 2 ©¨ ©¨ §¦ §¦ §¦ §¦          ©¨ ©¨ §¦ §¦ §¦ §¦          ¨©¨© §§        § ¦¦§ ¦¦                           ©¨ ©¨ §¦ §¦ §¦ §¦          ©¨ ©¨ §¦ §¦ §¦ §¦          Fail Over ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ PostgreSQL Replication Solutions ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤
  • 3 ©¨ ©¨ §¦ §¦ §¦ §¦         ©¨ ©¨ §¦ §¦ §¦ §¦         ©¨ ©¨ §¦ §¦ §¦ §¦         ©¨ ©¨ §¦ §¦ §¦ §¦         ¨© ¨© §§§§        ¦ ¦ ¦ ¦                             Load Balancing ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¡  ¡  ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ PostgreSQL Replication Solutions £¢ £¢ £¢ £¢  ¡  ¡ ££££¤¥¤¥¤¥¤¥¤¥¤¥¤¥¤        ¢ ¢ ¢ ¢                             ¡  ¡  £¢ £¢ £¢ £¢ ¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤ ¥¤  ¡  ¡ ££££¤¥¤¥¤¥¤¥¤¥¤¥¤¥¤        ¢ ¢ ¢ ¢                            
  • 4   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦  ©©©©§§¦ §¦ §§§§¦ ¦  § ¦     ¨ ¨¨¨   ¦  ¦  ¦  ¦       Data Warehousing ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¤¥¤¥ ££££¡¡  ¡  ¡¡¡¡     ¡   PostgreSQL Replication Solutions     ¢ ¢¢¢                    ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¤¥¤¥ ££££¡¡  ¡  ¡¡¡¡     ¡       ¢ ¢¢¢                   
  • ©¨ ©¨ ¡  ¡  ¡  ¡         5 ©¨ ©¨ ¡  ¡  ¡  ¡         ©¨ ©¨ ¡  ¡  ¡  ¡         ©¨ ©¨ ¡  ¡  ¡  ¡         ©¨ ©¨ ¡  ¡  ¡  ¡         Remote Servers £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ PostgreSQL Replication Solutions ¢£ ¢£¥¥¥¥¦§¦§¦§¦§ ¦§¦§¦§     ¤ ¤¤ ¤                   £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦
  • 6 Mobile Servers PostgreSQL Replication Solutions   ¡  ¡  ¥¤ ¥¤ ¥¤ ¥¤ £¢ £¢ £¢ £¢ £¢ £¢ £¢   ¡  ¡  ¥¤ ¥¤ ¥¤ ¥¤ £¢ £¢ £¢ £¢ £¢ £¢ £¢   ¡  ¡  ¥¤ ¥¤ ¥¤ ¥¤ £¢ £¢ £¢ £¢ £¢ £¢ £¢   ¡  ¡  ¥¤ ¥¤ ¥¤ ¥¤ £¢ £¢ £¢ £¢ £¢ £¢ £¢ §§ ¡¨ ¦ §§ ¡¨ §§§§¥§¥§¥§¥§§§§§§¢£§§¢£§§¢£§§¢£§§¢£§§¢£§§¢£§¨ ¦ ¦ ¦ ¨ §¨ §¨ §¨ ¤§¨ ¤§¨ ¤§¨ ¤§¨ §¨ §¨ §¨ §¨ ¦ ¨ ¦ ¨ ¦ ¨ ¦ ¨ ¦ ¨ ¦ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
  • Replication Solutions Taotaomona Computing PostgreSQL Replication Solutions 7
  • 8 Slave cannot execute queries No data loss on fail-over No overhead Shared Storage    Network−Attached Storage (NAS)   ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ ¨© ¨© ¨©  §  ¦            §  §  §  §       ¦ ¦ ¦ ¦ ¦   ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ PostgreSQL Replication Solutions ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¢£ ¢£ ¢£  ¡    ¥  ¥         ¡  ¡  ¡  ¡  ¤ ¤              ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡    ¡  ¡  ¡  ¡  ¡ 
  • 9 Synchronous or asynchronous Possible data loss on fail-over Slave cannot execute queries when using asynchronous No overhead on master Storage Mirroring       ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦ ¨© ¨© ¨© § ¦           § § § §       ¦ ¦ ¦ ¦   ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦ PostgreSQL Replication Solutions DRBD ¤¥ ¥ ¤ £ ¢ £ ¢ £ ¢ ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢ ¡  ¡  ¡  ¡  ¡        ¡ ¡ ¡ ¡  ¥  ¥             ¤ ¤  ¢£¢£ ¢£ ¡   ¥¤ ¥¤ £¢ £¢ £¢ ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¡ 
  • 10 Allowing slaves to execute queries Synchronous and auto-fail-over Possible data loss on fail-over modes under development when using asychonous No overhead on master is under development Point-In-Time Recovery (PITR)       ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦   ¨© © ¨ © ¨ ¦ § ¦ § ¦ § ¦ § ¦ § ¦        § §  § §   ¨¨¨ §  ¦    © © ©    ¦ ¦ ¦ ¦ ¦   ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ ¦ §¦ §¦ §¦ §¦ §¦ Ahead (WAL) Write PostgreSQL Replication Solutions Log ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¥ ¥ ¡ ¡ ¡ ¡ ¡     ¤  ¤  £ ¢ £ ¢ £ ¢                  ¥¤ ¥¤ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡ 
  • 11 Replication possible even over Possible data loss on fail-over Table-level granularity allows Triggers add overhead to the Slave can execute read-only complex data partitioning configurations slow links queries master Slony      ¨ ©¨ ©¨ ¡  ¡  ¡  ¡         ¨ ©¨ ©¨ ¡  ¡  ¡  ¡         ¨ ¨© ¨© ¡¡¡¡                                            ¨ ©¨ ©¨ ¡  ¡  ¡  ¡         ¨ ¨©¨©¡¡¡¡                          ¡  ¡  ¡  ¡  Asynchronous PostgreSQL Replication Solutions ¢ £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ ¢ £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ ¢ ¢£ ¢£ ¥¥¥¥§¦§¦§¦§¦§¦§¦§¦        ¤ ¤ ¤ ¤                             ¢ £¢ £¢ ¥¤ ¥¤ ¥¤ ¥¤ §¦ §¦ §¦ §¦ §¦ §¦ §¦ ¢ ¢£ ¢£ ¥¥¥¥§¦§¦§¦§¦§¦§¦§¦        ¤ ¤ ¤ ¤                            
  • 12 Slony - Cascading Slaves 54 54 32 32 32 10 10 10 10 10 )( )( & '& '& '& $ %$ %$ %$ %$ %$ 54 54 32 32 32 10 10 10 10 10 )( )( & '& '& '& $ %$ %$ %$ %$ %$ @ 5 7@ 5 7@ 79 9 9 @ 7@ 7@ 7@ 1 7@ 1 71 97@ 1 7 777723@ 7723@ 7723@ 777777@77@ 1 9 0 94 94 9 9 9 9 90 90 0 90 8 ) 7) 67 6 6 678 78 7% 678 % 78 % 78 % 7 78787&677&'8 77&'8 787&'678777877778 % 6 $ 6( ( 6 6$ $ 6$ 6$ 6$ 54 54 32 32 32 10 10 10 10 10 )( )( & '& '& '& $ %$ %$ %$ %$ %$ #" #" ! ! !      #" #" ! ! !      7777777777777P  I  P # 7P # 7P 7P !7P !7P !7P 7P 7P 7P  7P  7P  7P  7 I " I " I I I I I I I I I I I #" #" ! ! !        ¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦        ¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ C77 G7C 7C 7BG77H7H77H7H7H7 H7HC7HC7¨B77¨©H77¨©H7HC7¨©7HC777HC7777HC § BG ¦  7 BG7 BG BG BG7C 7C 7§ BG7C § 7C § 7C § 7 BG   BG BG ¦ ¦ BG ¦ BG ¦ BG ¦   ¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ ¦ §¦ §¦ §¦ §¦ §¦ ¥¤ ¥¤ £¢ £¢ £¢      ¥¤ ¥¤ £¢ £¢ £¢      ¥ 7¥ 77£7£7£7777 7 7 A7 7 A  A ¤ A ¤ A A ¢ A ¢ A ¢ A A A A A  A ¥¤ ¥¤ £¢ £¢ £¢      ¡  ¡            ¡  ¡            F7F7F7DE77F 77F 7F7DE7F777F7777F  DE  ¡ 7¡ DE77D7D77DE7F 7F 7 DE7F  7F  7F  7 E    D77 E E 7D7D77D7D7D7 E E  E E E ¡  ¡                  PostgreSQL Replication Solutions
  • 13 Subscribers Other Subscriber ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ sl_log ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ modifications CREATE TRIGGER prevents Slony Internals % % % % % % % % # # # # # # # #         $ $ $ $ $ $ $ $ " " " " " " " "         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         % % % % % % % % # # # # # # # #         $ $ $ $ $ $ $ $ " " " " " " " "         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         % % % % % % % % # # # # # # # #         $ $ $ $ $ $ $ $ " " " " " " " "         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         User © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         © © © © © © © © § § § § § § § §         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦         Slonik fills sl_log TRIGGER CREATE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             sl_log ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             Origin ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             CREATE ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             TABLE PostgreSQL Replication Solutions ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             ... ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                             ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡                                     ! ! ! ! ! ! ! ! ' ' ' ' ' ' ' '         & & & & & & & &                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢         ! ! ! ! ! ! ! ! ' ' ' ' ' ' ' '         & & & & & & & &                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ User                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢                 £ £ £ £ £ £ £ £                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢
  • 14 Subscriber                                                     sl_log                                                                                                                                                                                       @ @ @ @ @ @ @ @ @A @A @A @A @A @A @A @A % % % % % % % % 9 9 9 9 9 9 9 9 $ $ $ $ $ $ $ $ 8 8 8 8 8 8 8 8 © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         A A A A A A A A % % % % % % % % 9 9 9 9 9 9 9 9 $ $ $ $ $ $ $ $ 8 8 8 8 8 8 8 8 © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         User © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         © © © © © © © © ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡         ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨                         Slony Multi-Slave Subscriber                                                     sl_log                                                                                                                                                                                       ' ' ' ' ' ' ' ' 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 & & & & & & & & 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " " ' ' ' ' ' ' ' ' 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 & & & & & & & & 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " " User         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " "         # # # # # # # # ! ! ! ! ! ! ! !         " " " " " " " " PostgreSQL Replication Solutions                                                     sl_log                           Origin                                                                                                                                   ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 ( ( ( ( ( ( ( ( 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 6 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 ( ( ( ( ( ( ( ( 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 6 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 ( ( ( ( ( ( ( ( 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 6 User £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
  • 15 Subscriber              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( ( Origin sl_log sl_log              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( (              ) ) ) ) ) ) ) ) ) ) ) ) )              ( ( ( ( ( ( ( ( ( ( ( ( ( Slony Master Switching B B B B B B B B @ @ @ @ @ @ @ @ BC BC BC BC BC BC BC BC @A @A @A @A @A @A @A @A 9 9 9 9 9 9 9 9 I I I I I I I I Q Q Q Q Q Q Q Q U U U U U U U U 8 8 8 8 8 8 8 8 H H H H H H H H P P P P P P P P T T T T T T T T % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ C C C C C C C C A A A A A A A A 9 9 9 9 9 9 9 9 I I I I I I I I Q Q Q Q Q Q Q Q U U U U U U U U 8 8 8 8 8 8 8 8 H H H H H H H H P P P P P P P P T T T T T T T T % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ User User % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ % % % % % % % % ! ! ! ! ! ! ! !         ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 1 1 1 1 1 1 1 1 © © © © © © © © $ $ $ $ $ $ $ $                         0 0 0 0 0 0 0 0 ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ Subscriber              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & &              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & & sl_log sl_log              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & & Origin              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & &              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & &              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & &              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & &              ' ' ' ' ' ' ' ' ' ' ' ' '              & & & & & & & & & & & & & 4 4 4 4 4 4 4 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 7 7 7 7 7 7 7 7 E E E E E E E E G G G G G G G G S S S S S S S S 3 3 3 3 3 3 3 3 6 6 6 6 6 6 6 6 D D D D D D D D F F F F F F F F R R R R R R R R 2 2 2 2 2 2 2 2 # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ PostgreSQL Replication Solutions 5 5 5 5 5 5 5 5 7 7 7 7 7 7 7 7 E E E E E E E E G G G G G G G G S S S S S S S S 3 3 3 3 3 3 3 3 6 6 6 6 6 6 6 6 D D D D D D D D F F F F F F F F R R R R R R R R 2 2 2 2 2 2 2 2 # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ User User # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ # # # # # # # #                 £ £ £ £ £ £ £ £ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ § § § § § § § § " " " " " " " "                 ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
  • 16 Conflict resolution rules are multi-master with conflict Similar to Slony, except user-configurable resolution Bucardo     ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦   ©¨ ©¨ ©¨ ©¨ ¦ §¦ §¦ §¦ §¦ §¦ §¦ §¦       ¨  ¨ ¨  ¨         © © © © ¦ ¦§¦§ ¦§¦§ ¦§¦§ ¦§         with Conflict Resolution PostgreSQL Replication Solutions Asynchronous ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡  ¥¤ ¥¤ £¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡  ¡  ¡        ¢  ¢ ¢  ¢       ¤¥ ¤¥ £ £ £ £    ¡ ¡  ¡ ¡  ¡ ¡  ¡        
  • 17 Also does connection pooling and Automatically load-balances read behavior can cause inconsistency Allows parallel query execution Queries with non-deterministic query caching on all nodes queries Pgpool II     connection daemon INSERT, UPDATE, DELETE to all #" #" ! ! !      4%%%4%4%%%4%4%%%4%4%4  3  # 3%4 # 3%4 %!%!3%4 !3%4 %%3%4  3%4  % % 3% " "3 3 3 3  3 3  hosts 2%%%2%2%%%2%2%%%2%2%2  1  # 1%2 # 1%2 %!%!1%2 !1%2 %%1%2  1%2  % % 1% " "1 1 1 1  1 1  #" #" ! ! !           PostgreSQL Replication Solutions ¥¤ ¥¤ ¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡    ¨ ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦ ¥¤ ¥¤ ¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡    ¨ ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦ %%%¢%%¢£& %%¢£& %%¢£& %%%%%%%%& ¡ $   & ¥ %& ¥ %& $ $ $ $ & %& %& %& ¡ %& ¡ %& ¡ %& ¡ % $¤ $¤ $ $ $  $  $  $  $  (%%%¨%(%¨©%(%¨©'%%¨©( '%%(%(%%%(%(%( § ' ¦  '%(  '%( ' ' ( %%'%( § '%( § %§ %§ '%   ' ' ¦ '¦ '¦ ¦ ¥¤ ¥¤ ¢ £¢ £¢ £¢   ¡  ¡  ¡  ¡  ¡    ¨ ©¨ ©¨ ©¨ §¦ §¦ §¦ §¦ §¦   ¡  ¡  ¡  ¡  ¡  §¦ §¦ §¦ §¦ §¦ to a single SELECT host                       0%%%%0%%0%)%%0 )%%0%0%%%0%0%0  )   )%0  )%0 ) ) 0 %%)%0  )%0  % % )%   ) )  ) )                 
  • 18 High performance cost Still experimental PGCluster   Cluster ! ! #" #" #" $ %$ %$ %$ %$ %$ ! ! #" #" #" $ %$ %$ %$ %$ %$ Load Balancer @ ! 1@ ! 1@ 19# 11@ 91@ % 91% 1% 1@ % 91 111@1"11"9@ #11"9@ #1@1@111@1@11@ % 9 $ 9 9 9 9 9 $ $ 9$ 9$ $ ! ! #" #" #" $ %$ %$ %$ %$ %$ Replicator PostgreSQL Replication Solutions ¡  ¡  )( )( )( ¨ ©¨ ©¨ ©¨ ©¨ ©¨ ¥¤ ¥¤ £¢ £¢ £¢ & '& '& '& '& '&           ¡  ¡  )( )( )( ¨ ©¨ ©¨ ©¨ ©¨ ©¨ ¥¤ ¥¤ £¢ £¢ £¢ & '& '& '& '& '&           1111()2 11()2 11()2 111111112 © 0 ¨ 2 ¡ 12 ¡ 12 10 0 0 2 12 12 12 © 12 © 12 © 12 © 1 0  0  0 0 0 0¨ 0¨ 0¨ 0¨ 0¨ 6 ¥ 16 ¥ 16 15£ 116 516 ' 51' 1' 16 ' 51 11161¢11¢56 £11¢56 £1616111616116 ' 5 & 5¤ 5¤ 5 5 5 & & 5& 5& & 41411134 141141111414111414  3   1 14 31 3 3 4 314 311 14  314  31 1 3 3 3 3   3 ¡  ¡  )( )( )( ¨ ©¨ ©¨ ©¨ ©¨ ©¨ ¥¤ ¥¤ £¢ £¢ £¢ & '& '& '& '& '&           §¦ §¦          § 1§ 11181811181 81 1 1 81 8  8 ¦ 8 ¦ 8 8    8 8   8  8   § 1§ 11171711171 71 1 1 71 7  7 ¦ 7 ¦ 7 7    7 7   7  7   §¦ §¦               
  • Summary Asynch- Synch- Warm Statement- chronous chronous Shared File Standby Warm Based Multi- Multi- Disk System Using Slave Replication Master Master Feature Fail-over Replication PITR Replication Middleware Replication Replication Most Popular Implementation NAS DRBD PITR Slony pgpool-II Bucardo pgcluster Communication table rows Method shared disk disk blocks WAL table rows SQL table rows & row locks No Special hardware required             Allows multiple master servers       No master server overhead       No waiting for multiple servers         Master failure will never lose data         Slaves accept read-only queries         Per-table granularity       No conflict resolution necessary           PostgreSQL Replication Solutions 19