
{"id":5898,"date":"2024-08-07T11:05:05","date_gmt":"2024-08-07T11:05:05","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=5898"},"modified":"2024-08-07T11:05:08","modified_gmt":"2024-08-07T11:05:08","slug":"optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/","title":{"rendered":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In PostgreSQL, logical replication allows you to replicate specific sets of tables from a primary (or source) database to a standby (or target) database. Over time, as your database and its usage evolve, certain tables might become more critical or experience different patterns of access. This can necessitate changes in your replication strategy to maintain optimal performance and manageability. As certain tables become more heavily used, they might generate a significant amount of replication traffic. If a publication contains many tables, the replication load might be unevenly distributed across all tables, leading to performance bottlenecks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This blog will walk you through the process of separating a table from one publication to another and ensuring that the changes are reflected on the subscriber.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Assumption<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"> Let us assume , we use a publication named <code>pub<\/code> on the primary database and a subscription named <code>sub<\/code> on the standby database. We have five tables under the publication <code>pub<\/code> on your primary database, and we want to move one table (<code>table5<\/code>) to a new publication called <code>pub1<\/code>. We also need to update the subscriber to reflect these changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 : On the Primary Database<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a New Publication for the Table 5<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First ,we need to create publication including Table 5. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE PUBLICATION pub1 FOR TABLE table5;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Remove the Table from the Old Publication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, modify the existing publication <code>pub<\/code> to remove <code>table5<\/code>. This ensures that <code>table5<\/code> will only be replicated through the new publication <code>pub1<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER PUBLICATION pub DROP TABLE table5;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verify the New Publication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check that the new publication <code>pub1<\/code> has been created and contains the correct table.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM pg_publication WHERE pubname = 'pub1';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verify the Old Publication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Confirm that <code>table5<\/code> has been removed from the old publication <code>pub<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM pg_publication WHERE pubname = 'pub';<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 : On the Standby Database<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Refresh the Subscription<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Refresh the subscription <code>sub<\/code> to ensure it is aware of the changes in the publication. This step will synchronize the subscriber with the current state of the publication on the primary database.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER SUBSCRIPTION sub REFRESH PUBLICATION;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Create a New Subscription for the New Publication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to ensure that <code>table5<\/code> is replicated through the new publication <code>pub1<\/code>, create a new subscription <code>sub1<\/code> on the subscriber database. Note that we set <code>copy_data=false<\/code> to avoid copying existing data, assuming the table is already populated on the subscriber.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE SUBSCRIPTION sub1\nCONNECTION 'dbname=mydb host=primary_host user=myuser password=mypassword'\nPUBLICATION pub1 WITH (copy_data=false);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verify the New Subscription Status<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check the status of the new subscription <code>sub1<\/code> to ensure it is active and properly connected to the new publication.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT * FROM pg_stat_subscription WHERE subname = 'sub1';<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step3 : Check the data consistency<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To ensure that the replication is working correctly, you may want to check the row count on the subscriber and verify that it matches the primary database. Additionally, insert a test row into <code>table5<\/code> on the primary database and check if it appears on the subscriber.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- Check row count on the subscriber\nSELECT COUNT(*) FROM table5;\n\n-- On the primary database, insert a test row into table5\nINSERT INTO table5 (column1, column2) VALUES ('test', 123);\n\n-- Verify the row count on the subscriber again\nSELECT COUNT(*) FROM table5;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the record count on both the primary and standby databases match, it indicates the setup is working as expected. Otherwise, check the PostgreSQL server logs for errors, and resolve them as appropriate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Use-Cases<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here are some specific use-cases<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Handling Increased Load<\/li>\n\n\n\n<li>Optimizing High-Frequency Replication<\/li>\n\n\n\n<li>Customizing Data Distribution<\/li>\n\n\n\n<li>Ensuring Data Security and Compliance<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In Realtime, as data volumes grow and access patterns change, a single publication handling multiple tables can become overloaded, leading to slower replication and increased latency. By isolating high-traffic or frequently updated tables into separate publications, we can optimize replication performance, reduce unnecessary data transfer, and better manage resources. Additionally, separating sensitive data into distinct publications allows for enhanced security and compliance, ensuring that stringent controls are applied without affecting other data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This blog has detailed the process of managing PostgreSQL logical replication by migrating tables between publications, allowing you to optimize replication performance and data management. By creating new publications for tables that require different replication strategies and updating existing ones, you can better distribute the replication load, customize settings for each table, and control data distribution to specific subscribers. Always remember to test these changes in a staging environment before applying them to production to prevent disruptions, and ensure to monitor the replication setup post-migration to verify data consistency and performance. Stay tuned for more info<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PostgreSQL, logical replication allows you to replicate specific sets of tables from a primary (or source) database to a [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":5904,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5898","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-others"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"In PostgreSQL, logical replication allows you to replicate specific sets of tables from a primary (or source) database to a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenSource DB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-07T11:05:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-07T11:05:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1050\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Venkat Akhil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:site\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Venkat Akhil\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\"},\"author\":{\"name\":\"Venkat Akhil\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328\"},\"headline\":\"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions\",\"datePublished\":\"2024-08-07T11:05:05+00:00\",\"dateModified\":\"2024-08-07T11:05:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\"},\"wordCount\":642,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png\",\"articleSection\":[\"Others\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\",\"name\":\"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png\",\"datePublished\":\"2024-08-07T11:05:05+00:00\",\"dateModified\":\"2024-08-07T11:05:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png\",\"width\":2000,\"height\":1050},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"name\":\"OpenSource DB\",\"description\":\"Your Trusted OpenSource Databases partner\",\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\",\"name\":\"OPENSOURCE DB PRIVATE LIMITED\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"width\":368,\"height\":120,\"caption\":\"OPENSOURCE DB PRIVATE LIMITED\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\",\"https:\/\/x.com\/opensource_db\",\"https:\/\/www.youtube.com\/channel\/UCmTI5h\",\"https:\/\/www.linkedin.com\/company\/opensource-db\",\"https:\/\/www.instagram.com\/opensource_db\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328\",\"name\":\"Venkat Akhil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g\",\"caption\":\"Venkat Akhil\"},\"url\":\"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB","og_description":"In PostgreSQL, logical replication allows you to replicate specific sets of tables from a primary (or source) database to a [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2024-08-07T11:05:05+00:00","article_modified_time":"2024-08-07T11:05:08+00:00","og_image":[{"width":2000,"height":1050,"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png","type":"image\/png"}],"author":"Venkat Akhil","twitter_card":"summary_large_image","twitter_creator":"@opensource_db","twitter_site":"@opensource_db","twitter_misc":{"Written by":"Venkat Akhil","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/"},"author":{"name":"Venkat Akhil","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328"},"headline":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions","datePublished":"2024-08-07T11:05:05+00:00","dateModified":"2024-08-07T11:05:08+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/"},"wordCount":642,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png","articleSection":["Others"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/","url":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/","name":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png","datePublished":"2024-08-07T11:05:05+00:00","dateModified":"2024-08-07T11:05:08+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png","width":2000,"height":1050},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/optimizing-postgresql-replication-moving-tables-between-publications-and-subscriptions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"Optimizing PostgreSQL Replication: Moving Tables Between Publications and Subscriptions"}]},{"@type":"WebSite","@id":"https:\/\/test.opensource-db.in\/wp1\/#website","url":"https:\/\/test.opensource-db.in\/wp1\/","name":"OpenSource DB","description":"Your Trusted OpenSource Databases partner","publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/test.opensource-db.in\/wp1\/#organization","name":"OPENSOURCE DB PRIVATE LIMITED","url":"https:\/\/test.opensource-db.in\/wp1\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","width":368,"height":120,"caption":"OPENSOURCE DB PRIVATE LIMITED"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","https:\/\/x.com\/opensource_db","https:\/\/www.youtube.com\/channel\/UCmTI5h","https:\/\/www.linkedin.com\/company\/opensource-db","https:\/\/www.instagram.com\/opensource_db\/"]},{"@type":"Person","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/a37b142ecbf953189a4f9209b0b8d328","name":"Venkat Akhil","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/522c0947d21b2c2c89f10698fd9131f9db4110f65c8d02b53d9b4559c7650865?s=96&d=mm&r=g","caption":"Venkat Akhil"},"url":"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/"}]}},"rttpg_featured_image_url":{"full":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",2000,1050,false],"landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",2000,1050,false],"portraits":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",2000,1050,false],"thumbnail":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL-150x150.png",150,150,true],"medium":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL-300x158.png",300,158,true],"large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL-1024x538.png",1024,538,true],"1536x1536":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL-1536x806.png",1536,806,true],"2048x2048":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",2000,1050,false],"ultp_layout_landscape_large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",1200,630,false],"ultp_layout_landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",870,457,false],"ultp_layout_portrait":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",600,315,false],"ultp_layout_square":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2024\/08\/Optimizing-PostgreSQL.png",600,315,false]},"rttpg_author":{"display_name":"Venkat Akhil","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/sudheer-sopensource-db-com\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/business\/others\/\" rel=\"category tag\">Others<\/a>","rttpg_excerpt":"In PostgreSQL, logical replication allows you to replicate specific sets of tables from a primary (or source) database to a [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/5898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/comments?post=5898"}],"version-history":[{"count":3,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/5898\/revisions"}],"predecessor-version":[{"id":5903,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/5898\/revisions\/5903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media\/5904"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=5898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=5898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=5898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}