{"id":1665,"date":"2018-08-14T09:18:48","date_gmt":"2018-08-14T09:18:48","guid":{"rendered":"http:\/\/dbtut.com\/?p=1665"},"modified":"2018-11-09T23:00:58","modified_gmt":"2018-11-09T23:00:58","slug":"database-maintenance","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/","title":{"rendered":"PostGre SQL Database Maintenance"},"content":{"rendered":"<ul>\n<li>PostgreSQL, like any database software, requires that certain\u00a0tasks be performed regularly to achieve optimum performance.\u00a0The tasks discussed here are required, but they are repetitive in\u00a0nature and can easily be automated using standard tools such\u00a0as cron scripts or Windows&#8217; Task Scheduler. It is the database\u00a0administrator&#8217;s responsibility to set up appropriate scripts, and\u00a0to check that they execute successfully.<\/li>\n<li>PostgreSQL databases require periodic maintenance known\u00a0as vacuuming. You might need to adjust the autovacuuming\u00a0parameters described there to obtain best results for your\u00a0situation. Some database administrators will want to\u00a0supplement or replace the daemon&#8217;s activities with\u00a0manually-managed VACUUM commands, which typically are\u00a0executed according to a schedule by cron or Task\u00a0Scheduler scripts. To set up manually-managed vacuuming<br \/>\nproperly, it is essential to understand the issues discussed in the\u00a0next few subsections. Administrators who rely on\u00a0autovacuuming may still wish to skim this material to help them\u00a0understand and adjust autovacuuming.<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>Backup and Restore<\/strong><\/span><\/p>\n<ul>\n<li>Backup File Formats Three different backup file\u00a0formats can be created by pgAdmin:<\/li>\n<\/ul>\n<ol>\n<li>Plain-Text Format. A plain-text script file\u00a0containing SQL statements and commands\u00a0that can be executed by the psql command\u00a0line terminal program to recreate the\u00a0database objects and load the table data. Use\u00a0the psql program to restore from a plain-text\u00a0backup file.<\/li>\n<li>Custom Archive Format. A binary file that allows for restoration of all or only selected database objects from the backup file. Use pgAdmin to restore from a custom archive backup file.<\/li>\n<li>Tar Archive Format. A tar archive file that allows for restoration of all or only selected\u00a0 database objects from the backup file. Use pgAdmin to restore from a tar archive backup file.<\/li>\n<\/ol>\n<p><span style=\"text-decoration: underline;\"><strong>Re-Indexing<\/strong><\/span><\/p>\n<ul>\n<li>REINDEX is similar to a drop and recreate of the index in that the\u00a0index contents are rebuilt from scratch. However, the locking\u00a0considerations are rather different. REINDEX locks out writes but\u00a0not reads of the index&#8217;s parent table. It also takes an exclusive\u00a0lock on the specific index being processed, which will block reads\u00a0that attempt to use that index. In contrast, DROP INDEX\u00a0momentarily takes an exclusive lock on the parent table, blocking\u00a0both writes and reads. The subsequent CREATE INDEX locks out\u00a0writes but not reads; since the index is not there, no read will\u00a0attempt to use it, meaning that there will be no blocking but\u00a0reads might be forced into expensive sequential scans.<\/li>\n<li>One way to do this is to shut down the server and start a\u00a0single-user PostgreSQL server with the -P option included on its\u00a0command line. Then, REINDEX DATABASE, REINDEX SYSTEM,\u00a0REINDEX TABLE, or REINDEX INDEX can be issued, depending on\u00a0how much you want to reconstruct. If in doubt, use REINDEX\u00a0SYSTEM to select reconstruction of all system indexes in the\u00a0database. Then quit the single-user server session and restart the\u00a0regular server.<\/li>\n<li>Alternatively, a regular server session can be started\u00a0with -P included in its command line options. The method for doing\u00a0this varies across clients, but in all libpq-based clients, it is possible\u00a0to set the PGOPTIONS environment variable to -Pbefore starting\u00a0the client. Note that while this method does not require locking\u00a0out other clients, it might still be wise to prevent other users from\u00a0connecting to the damaged database until repairs have been\u00a0completed.<\/li>\n<\/ul>\n<p><strong>Rebuild a single index:<\/strong><\/p>\n<p>REINDEX INDEX my_index;<\/p>\n<p><strong>Rebuild all the indexes on the table my_table:<\/strong><\/p>\n<p>REINDEX TABLE my_table;<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Vacuum<\/strong><\/span><\/p>\n<ol>\n<li>VACUUM reclaims storage occupied by dead tuples. In\u00a0normal PostgreSQL operation, tuples that are deleted or obsoleted by\u00a0an update are not physically removed from their table; they remain\u00a0present until a VACUUM is done. Therefore it&#8217;s necessary to do VACUUM periodically, especially on frequently-updated tables.<\/li>\n<li>With no parameter, VACUUM processes every table in the current\u00a0database that the current user has permission to vacuum. With a\u00a0parameter, VACUUM processes only that table.<\/li>\n<li>VACUUM ANALYZE performs a VACUUM and then an ANALYZE for\u00a0each selected table. This is a handy combination form for routine\u00a0maintenance scripts.<\/li>\n<li>Plain VACUUM (without FULL) simply reclaims space and makes it\u00a0available for re-use. This form of the command can operate in parallel<br \/>\nwith normal reading and writing of the table, as an exclusive lock is\u00a0not obtained. However, extra space is not returned to the operating<br \/>\nsystem (in most cases); it&#8217;s just kept available for re-use within the\u00a0same table. VACUUM FULL rewrites the entire contents of the table<br \/>\ninto a new disk file with no extra space, allowing unused space to be\u00a0returned to the operating system. This form is much slower and<br \/>\nrequires an exclusive lock on each table while it is being processed.<\/li>\n<li>To recover or reuse disk space occupied by updated or deleted rows.<\/li>\n<li>To update data statistics used by the PostgreSQL query planner.<\/li>\n<li>To protect against loss of very old data due to transaction ID wraparound.<\/li>\n<li>Each of these reasons dictates performing VACUUM operations of varying frequency and scope, as explained in the following\u00a0subsections.<\/li>\n<li>There are two variants of VACUUM:<strong>Standard VACUUM and VACUUM FULL. <\/strong><\/li>\n<\/ol>\n<ol style=\"list-style-type: lower-alpha;\">\n<li>VACUUM FULL can\u00a0reclaim more disk space but runs much more slowly. Also, the\u00a0standard form of VACUUM can run in parallel with production<br \/>\ndatabase operations. (Commands such\u00a0as SELECT, INSERT, UPDATE, and DELETE will continue to function\u00a0normally, though you will not be able to modify the definition of\u00a0a table with commands such as ALTER TABLE while it is being\u00a0vacuumed.)<\/li>\n<li>VACUUM FULLrequires exclusive lock on the table it<br \/>\nis working on, and therefore cannot be done in parallel with<br \/>\nother use of the table. Generally, therefore, administrators<br \/>\nshould strive to use standard VACUUM and avoid VACUUM FULL.<\/li>\n<\/ol>\n\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1665\" class=\"pvc_stats all  \" data-element-id=\"1665\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>PostgreSQL, like any database software, requires that certain\u00a0tasks be performed regularly to achieve optimum performance.\u00a0The tasks discussed here are required, but they are repetitive in\u00a0nature and can easily be automated using standard tools such\u00a0as cron scripts or Windows&#8217; Task Scheduler. It is the database\u00a0administrator&#8217;s responsibility to set up appropriate scripts, and\u00a0to check that they execute &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1665\" class=\"pvc_stats all  \" data-element-id=\"1665\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":109,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1665","post","type-post","status-publish","format-standard","","category-postgres"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PostGre SQL Database Maintenance - Database Tutorials<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostGre SQL Database Maintenance - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"PostgreSQL, like any database software, requires that certain\u00a0tasks be performed regularly to achieve optimum performance.\u00a0The tasks discussed here are required, but they are repetitive in\u00a0nature and can easily be automated using standard tools such\u00a0as cron scripts or Windows&#8217; Task Scheduler. It is the database\u00a0administrator&#8217;s responsibility to set up appropriate scripts, and\u00a0to check that they execute &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-14T09:18:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-11-09T23:00:58+00:00\" \/>\n<meta name=\"author\" content=\"Vaibhav Krishna\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vaibhav Krishna\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\"},\"author\":{\"name\":\"Vaibhav Krishna\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/6c10f95f66ae2b4026552b02018b18b7\"},\"headline\":\"PostGre SQL Database Maintenance\",\"datePublished\":\"2018-08-14T09:18:48+00:00\",\"dateModified\":\"2018-11-09T23:00:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\"},\"wordCount\":941,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\",\"name\":\"PostGre SQL Database Maintenance - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"datePublished\":\"2018-08-14T09:18:48+00:00\",\"dateModified\":\"2018-11-09T23:00:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostGre SQL Database Maintenance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbtut.com\/#website\",\"url\":\"https:\/\/dbtut.com\/\",\"name\":\"Database Tutorials\",\"description\":\"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux\",\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbtut.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dbtut.com\/#organization\",\"name\":\"dbtut\",\"url\":\"https:\/\/dbtut.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"width\":223,\"height\":36,\"caption\":\"dbtut\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/6c10f95f66ae2b4026552b02018b18b7\",\"name\":\"Vaibhav Krishna\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/482ae666004473e37e849efeedbf7111152f716f6e9fc6852074d49536796697?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/482ae666004473e37e849efeedbf7111152f716f6e9fc6852074d49536796697?s=96&d=mm&r=g\",\"caption\":\"Vaibhav Krishna\"},\"url\":\"https:\/\/dbtut.com\/index.php\/author\/vaibhavkrishna\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PostGre SQL Database Maintenance - Database Tutorials","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/","og_locale":"en_US","og_type":"article","og_title":"PostGre SQL Database Maintenance - Database Tutorials","og_description":"PostgreSQL, like any database software, requires that certain\u00a0tasks be performed regularly to achieve optimum performance.\u00a0The tasks discussed here are required, but they are repetitive in\u00a0nature and can easily be automated using standard tools such\u00a0as cron scripts or Windows&#8217; Task Scheduler. It is the database\u00a0administrator&#8217;s responsibility to set up appropriate scripts, and\u00a0to check that they execute &hellip;","og_url":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/","og_site_name":"Database Tutorials","article_published_time":"2018-08-14T09:18:48+00:00","article_modified_time":"2018-11-09T23:00:58+00:00","author":"Vaibhav Krishna","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vaibhav Krishna","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/"},"author":{"name":"Vaibhav Krishna","@id":"https:\/\/dbtut.com\/#\/schema\/person\/6c10f95f66ae2b4026552b02018b18b7"},"headline":"PostGre SQL Database Maintenance","datePublished":"2018-08-14T09:18:48+00:00","dateModified":"2018-11-09T23:00:58+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/"},"wordCount":941,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"articleSection":["PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/","url":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/","name":"PostGre SQL Database Maintenance - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"datePublished":"2018-08-14T09:18:48+00:00","dateModified":"2018-11-09T23:00:58+00:00","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2018\/08\/14\/database-maintenance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"PostGre SQL Database Maintenance"}]},{"@type":"WebSite","@id":"https:\/\/dbtut.com\/#website","url":"https:\/\/dbtut.com\/","name":"Database Tutorials","description":"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux","publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbtut.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dbtut.com\/#organization","name":"dbtut","url":"https:\/\/dbtut.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","width":223,"height":36,"caption":"dbtut"},"image":{"@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dbtut.com\/#\/schema\/person\/6c10f95f66ae2b4026552b02018b18b7","name":"Vaibhav Krishna","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/482ae666004473e37e849efeedbf7111152f716f6e9fc6852074d49536796697?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/482ae666004473e37e849efeedbf7111152f716f6e9fc6852074d49536796697?s=96&d=mm&r=g","caption":"Vaibhav Krishna"},"url":"https:\/\/dbtut.com\/index.php\/author\/vaibhavkrishna\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/1665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=1665"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/1665\/revisions"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=1665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=1665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=1665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}