
{"id":7570,"date":"2025-04-16T08:04:19","date_gmt":"2025-04-16T08:04:19","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=7570"},"modified":"2025-04-16T08:04:19","modified_gmt":"2025-04-16T08:04:19","slug":"managing-postgresql-los-a-practical-perspective","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/","title":{"rendered":"Managing PostgreSQL LOs: A Practical Perspective"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In our previous blog, we explored how to handle Large Objects (LO) in PostgreSQL and potential challenges, including orphaned LOs. The importance of managing LOs efficiently became evident during an operational scenario that involved using tools like <code>vacuumlo<\/code> to clean up orphaned LOs and reclaim space.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Observations from a recent LO cleanup exercis<\/strong>e:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting the cleanup process, we ensured data safety by performing a full physical backup using <code>pg_basebackup<\/code> on the witness server. This backup was taken in <code>TAR<\/code> format, providing a recovery path in case anything went wrong during the upcoming operations.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Archiving considerations before cleanup:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Before initiating any heavy maintenance operations like <code>vacuumlo<\/code> or <code>VACUUM FULL<\/code>, we checked the archive settings to prevent unnecessary WAL file buildup during the process.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW archive_command;\nThe output is cp %p \/pgdb\/pgarchive\/%f<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We then disabled WAL archiving temporarily to avoid unnecessary disk space usage during cleanup.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER SYSTEM SET archive_command = '\/bin\/true';\nSELECT pg_reload_conf();<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><code>vacuumlo<\/code> execution time:\u00a0<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The vacuumlo utility was run to remove orphaned LOs which we already explored in the previous blog. With the archive command disabled and a backup safely stored, we proceeded to identify and remove orphaned LOs from the database.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>time  vacuumlo -n -v testdb<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This <code>--dry-run<\/code> reveals number of orphaned large objects to be removed from the database.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nohup time vacuumlo -v testdb &amp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is something that we keep in mind as a vacuumlo can be time-consuming, especially on large databases make sure to have some downtime while working on this exercise.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Database size reduction after vacuum full:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Once the orphaned LOs are removed, we ran <code>vacuum full<\/code> operation to reclaim storage space from bloated tables using parallel jobs to speed up the process<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nohup time vacuumdb -f -j 6 -v -d testdb &amp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This significantly reduced the database size from 460Gb to 8GB demonstrating the impact of thorough maintenance. This exercise resulted in better resource utilization and improved system performance. The overall data directory size decreased from 575GB to 301GB. To monitor which table was being processed during the operation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT pid, usename, datname, state, query \nFROM pg_stat_activity \nWHERE state = 'active';<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Orphaned Large Objects cleanup:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">After dropping a table that referenced LOs, we again ran <code>vacuumlo<\/code> to identify and clean orphaned LOs.\u00a0 The <code>--dry-run<\/code> confirmed that 9 large objects were ready for removal, and the cleanup operation completed successfully, showing the importance of periodic LO cleanup in preventing disk space from being consumed by unreferenced objects.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Conclusion:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This experience highlighted several important aspects of working with LOs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Timely Cleanup: It\u2019s crucial to run a utility like vacuumlo periodically to avoid accumulation of orphaned large objects.<\/li>\n\n\n\n<li>Archiving considerations: Disabling the archive_command during the intensive maintenance tasks can prevent unnecessary WAL generation and reduce disk space usage.<\/li>\n\n\n\n<li>Post-cleanup monitoring: After executing VACUUM FULL monitoring the systems performance and disk usage is essential to ensure that the cleanup operations are effective.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A big thank you to my colleague Shashidhar for sharing detailed insights that were instrumental in executing a smooth and effective cleanup process. His understanding of PostgreSQL Large Object (LO) management helped us navigate the intricacies involved and contributed significantly to creating a leaner, more efficient database environment\u2014free from unnecessary bloat and potential performance issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our previous blog, we explored how to handle Large Objects (LO) in PostgreSQL and potential challenges, including orphaned LOs. [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":7575,"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":[23,42,89],"tags":[141,26],"class_list":["post-7570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql-14","category-postgresql-15","category-postgresql-16","tag-largeobjects","tag-postgresql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Managing PostgreSQL LOs: A Practical Perspective - 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=\"Managing PostgreSQL LOs: A Practical Perspective - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"In our previous blog, we explored how to handle Large Objects (LO) in PostgreSQL and potential challenges, including orphaned LOs. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\" \/>\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=\"2025-04-16T08:04:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"945\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brahmini Ratnam\" \/>\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=\"Brahmini Ratnam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 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\/managing-postgresql-los-a-practical-perspective\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\"},\"author\":{\"name\":\"Brahmini Ratnam\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/867a56696ebca29a93489ed53609f301\"},\"headline\":\"Managing PostgreSQL LOs: A Practical Perspective\",\"datePublished\":\"2025-04-16T08:04:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\"},\"wordCount\":478,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png\",\"keywords\":[\"LargeObjects\",\"postgresql\"],\"articleSection\":[\"PostgreSQL 14\",\"PostgreSQL 15\",\"PostgreSQL 16\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\",\"name\":\"Managing PostgreSQL LOs: A Practical Perspective - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png\",\"datePublished\":\"2025-04-16T08:04:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png\",\"width\":1800,\"height\":945},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing PostgreSQL LOs: A Practical Perspective\"}]},{\"@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\/867a56696ebca29a93489ed53609f301\",\"name\":\"Brahmini Ratnam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05bcc95d3352ddae501c8cdae6b20b8e4e59c373cb7e506042427bca7fe13a3b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/05bcc95d3352ddae501c8cdae6b20b8e4e59c373cb7e506042427bca7fe13a3b?s=96&d=mm&r=g\",\"caption\":\"Brahmini Ratnam\"},\"url\":\"https:\/\/test.opensource-db.in\/wp1\/author\/brahmini-ratnam-meruva\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Managing PostgreSQL LOs: A Practical Perspective - 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":"Managing PostgreSQL LOs: A Practical Perspective - OpenSource DB","og_description":"In our previous blog, we explored how to handle Large Objects (LO) in PostgreSQL and potential challenges, including orphaned LOs. [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2025-04-16T08:04:19+00:00","og_image":[{"width":1800,"height":945,"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png","type":"image\/png"}],"author":"Brahmini Ratnam","twitter_card":"summary_large_image","twitter_creator":"@opensource_db","twitter_site":"@opensource_db","twitter_misc":{"Written by":"Brahmini Ratnam","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/"},"author":{"name":"Brahmini Ratnam","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/867a56696ebca29a93489ed53609f301"},"headline":"Managing PostgreSQL LOs: A Practical Perspective","datePublished":"2025-04-16T08:04:19+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/"},"wordCount":478,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png","keywords":["LargeObjects","postgresql"],"articleSection":["PostgreSQL 14","PostgreSQL 15","PostgreSQL 16"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/","url":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/","name":"Managing PostgreSQL LOs: A Practical Perspective - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png","datePublished":"2025-04-16T08:04:19+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png","width":1800,"height":945},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/managing-postgresql-los-a-practical-perspective\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"Managing PostgreSQL LOs: A Practical Perspective"}]},{"@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\/867a56696ebca29a93489ed53609f301","name":"Brahmini Ratnam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/05bcc95d3352ddae501c8cdae6b20b8e4e59c373cb7e506042427bca7fe13a3b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/05bcc95d3352ddae501c8cdae6b20b8e4e59c373cb7e506042427bca7fe13a3b?s=96&d=mm&r=g","caption":"Brahmini Ratnam"},"url":"https:\/\/test.opensource-db.in\/wp1\/author\/brahmini-ratnam-meruva\/"}]}},"rttpg_featured_image_url":{"full":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",1800,945,false],"landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",1800,945,false],"portraits":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",1800,945,false],"thumbnail":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13-150x150.png",150,150,true],"medium":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13-300x158.png",300,158,true],"large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13-1024x538.png",1024,538,true],"1536x1536":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13-1536x806.png",1536,806,true],"2048x2048":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",1800,945,false],"ultp_layout_landscape_large":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",1200,630,false],"ultp_layout_landscape":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",870,457,false],"ultp_layout_portrait":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",600,315,false],"ultp_layout_square":["https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2025\/04\/image-13.png",600,315,false]},"rttpg_author":{"display_name":"Brahmini Ratnam","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/brahmini-ratnam-meruva\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-14\/\" rel=\"category tag\">PostgreSQL 14<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-15\/\" rel=\"category tag\">PostgreSQL 15<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-16\/\" rel=\"category tag\">PostgreSQL 16<\/a>","rttpg_excerpt":"In our previous blog, we explored how to handle Large Objects (LO) in PostgreSQL and potential challenges, including orphaned LOs. [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/7570","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/comments?post=7570"}],"version-history":[{"count":3,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/7570\/revisions"}],"predecessor-version":[{"id":7574,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/7570\/revisions\/7574"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media\/7575"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=7570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=7570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=7570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}