{"id":12151,"date":"2018-12-07T22:30:30","date_gmt":"2018-12-07T21:30:30","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/"},"modified":"2018-12-07T22:30:30","modified_gmt":"2018-12-07T21:30:30","slug":"postgresql-12-new-option-socketdir-for-pg_upgrade","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/","title":{"rendered":"PostgreSQL 12 : New option &#8211;socketdir for pg_upgrade"},"content":{"rendered":"<p><strong>By Mouhamadou Diaw<\/strong><\/p>\n<p>PostgreSQL 12 is under development but tests can be done. Steps to install this version can be found <a href=\"https:\/\/www.dbi-services.com\/blog\/testing-new-postgresql-features-before-alphabetarc-releases\/\" target=\"_blank\" rel=\"noopener noreferrer\">in this dbi blog <\/a>. Many thanks to Daniel.<br \/>\nWhile reading the documentation I found that there is a new parameter for pg_upgrade. This new parameter is <em>&#8211;socketdir<\/em>.<br \/>\nWhy this parameter?<br \/>\nIn fact the path name of a UNIX socket is allowed to be maximally 108 chars long. Before PostgreSQL 12, the default directory for the sockets created for the temporary postmasters started by pg_upgrade was the current directory. But depending of the current directory the pathname might be very long for a socket name. In PostgreSQL 12 The default location is still the current working directory, but the parameter socketdir now allows us to specify another location<\/p>\n<p>To better understand I am going to upgrade from PostgreSQL 10 to PostgreSQL 12<\/p>\n<div>\n<div id=\"highlighter_183720\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">20:59:44 postgres@dbi-pg-essentials:<\/code><code class=\"bash plain\">\/u02\/pgdata\/PG12TEST\/<\/code> <code class=\"bash plain\">[PG12TEST] psql -U postgres -d postgres<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">psql (12devel dbi services build)<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">Type <\/code><code class=\"bash string\">\"help\"<\/code> <code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">help.<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">postgres=<\/code><code class=\"bash comments\"># select version();<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">version<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">---------------------------------------------------------------------------------------------------------------------<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash spaces\">\u00a0<\/code><code class=\"bash plain\">PostgreSQL 12devel dbi services build on x86_64-pc-linux-gnu, compiled by <\/code><code class=\"bash functions\">gcc<\/code> <code class=\"bash plain\">(GCC) 4.8.5 20150623 (Red Hat 4.8.5-11<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">(1 row)<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">postgres=<\/code><code class=\"bash comments\">#<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Now let&#8217;s create a very deeply nested directory<\/p>\n<div>\n<div id=\"highlighter_683113\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash functions\">mkdir<\/code> <code class=\"bash plain\">-p ttttttttttttttttttttttttttttttttttttttttt<\/code><code class=\"bash plain\">\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\/UUUUUUUUUUUUUUUUUUUUUUUUUUUUUuuuuuuuuuuuuuuuuuuuuuuuuuuuu\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>And let\u2019s do a cd into this new directory and let\u2019s try to do an upgrade<\/p>\n<div>\n<div id=\"highlighter_341679\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">$ <\/code><code class=\"bash functions\">export<\/code> <code class=\"bash plain\">PGDATAOLD=<\/code><code class=\"bash plain\">\/u02\/pgdata\/PG3<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">$ <\/code><code class=\"bash functions\">export<\/code> <code class=\"bash plain\">PGBINOLD=<\/code><code class=\"bash plain\">\/u01\/app\/postgres\/product\/10\/db_1\/bin<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">$ <\/code><code class=\"bash functions\">export<\/code> <code class=\"bash plain\">PGDATANEW=<\/code><code class=\"bash plain\">\/u02\/pgdata\/PG12TEST<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">$ <\/code><code class=\"bash functions\">export<\/code> <code class=\"bash plain\">PGBINNEW=<\/code><code class=\"bash plain\">\/u01\/app\/postgres\/product\/12dev\/db_0\/bin<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>When running the pg_upgrade with the check option, we got following errors<\/p>\n<div>\n<div id=\"highlighter_438323\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">$ pg_upgrade -c<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">Performing Consistency Checks<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">-----------------------------<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">Checking cluster versions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">*failure*<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">Consult the last few lines of <\/code><code class=\"bash string\">\"pg_upgrade_server.log\"<\/code> <code class=\"bash keyword\">for<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">the probable cause of the failure.<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">connection to database failed: Unix-domain socket path <\/code><code class=\"bash string\">\"\/home\/postgres\/ttttttttttttttttttttttttttttttttttttttttt\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\/UUUUUUUUUUUUUUUUUUUUUUUUUUUUUuuuuuuuuuuuuuuuuuuuuuuuuuuuu\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\/.s.PGSQL.50432\"<\/code> <code class=\"bash plain\">is too long (maximum 107 bytes)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">could not connect to <\/code><code class=\"bash functions\">source<\/code> <code class=\"bash plain\">postmaster started with the <\/code><code class=\"bash functions\">command<\/code><code class=\"bash plain\">:<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash string\">\"\/u01\/app\/postgres\/product\/10\/db_1\/bin\/pg_ctl\"<\/code> <code class=\"bash plain\">-w -l <\/code><code class=\"bash string\">\"pg_upgrade_server.log\"<\/code> <code class=\"bash plain\">-D <\/code><code class=\"bash string\">\"\/u02\/pgdata\/PG3\"<\/code> <code class=\"bash plain\">-o <\/code><code class=\"bash string\">\"-p 50432 -b\u00a0 -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='\/home\/postgres\/ttttttttttttttttttttttttttttttttttttttttt\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\/UUUUUUUUUUUUUUUUUUUUUUUUUUUUUuuuuuuuuuuuuuuuuuuuuuuuuuuuu\/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'\"<\/code> <code class=\"bash plain\">start<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"bash plain\">Failure, exiting<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash plain\">$<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Seems that the pathname for the socket is very long.<br \/>\nAnd if we use this new parameter, we can specify a new location for the sockets. And we can see that the checks are now successful<\/p>\n<div>\n<div id=\"highlighter_137285\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">$ pg_upgrade -c --socketdir=<\/code><code class=\"bash plain\">\/home\/postgres\/<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">Performing Consistency Checks<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">-----------------------------<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">Checking cluster versions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">Checking database user is the <\/code><code class=\"bash functions\">install<\/code> <code class=\"bash plain\">user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">Checking database connection settings\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">prepared transactions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">reg* data types <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">user tables\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">contrib<\/code><code class=\"bash plain\">\/isn<\/code> <code class=\"bash plain\">with bigint-passing mismatch\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">tables WITH OIDs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">presence of required libraries\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">Checking database user is the <\/code><code class=\"bash functions\">install<\/code> <code class=\"bash plain\">user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">prepared transactions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash plain\">*Clusters are compatible*<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>And then we can upgrade the cluster using this new parameter and still staying in this new created directory<\/p>\n<div>\n<div id=\"highlighter_761025\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">$ pg_upgrade\u00a0 --socketdir=<\/code><code class=\"bash plain\">\/home\/postgres\/<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">Performing Consistency Checks<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">-----------------------------<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">Checking cluster versions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">Checking database user is the <\/code><code class=\"bash functions\">install<\/code> <code class=\"bash plain\">user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">Checking database connection settings\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">prepared transactions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">reg* data types <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">user tables\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">contrib<\/code><code class=\"bash plain\">\/isn<\/code> <code class=\"bash plain\">with bigint-passing mismatch\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">tables WITH OIDs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">Creating dump of global objects\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">Creating dump of database schemas<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">ok<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">presence of required libraries\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash plain\">Checking database user is the <\/code><code class=\"bash functions\">install<\/code> <code class=\"bash plain\">user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"bash plain\">Checking <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">prepared transactions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"bash plain\">If pg_upgrade fails after this point, you must re-initdb the<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"bash plain\">new cluster before continuing.<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"bash plain\">Performing Upgrade<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"bash plain\">------------------<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"bash plain\">Analyzing all rows <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">the new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"bash plain\">Freezing all rows <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">the new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"bash plain\">Deleting files from new pg_xact\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"bash plain\">Copying old pg_xact to new server\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"bash plain\">Setting next transaction ID and epoch <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"bash plain\">Deleting files from new pg_multixact<\/code><code class=\"bash plain\">\/offsets<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"bash plain\">ok<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"bash plain\">Copying old pg_multixact<\/code><code class=\"bash plain\">\/offsets<\/code> <code class=\"bash plain\">to new server\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"bash plain\">Deleting files from new pg_multixact<\/code><code class=\"bash plain\">\/members<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"bash plain\">ok<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"bash plain\">Copying old pg_multixact<\/code><code class=\"bash plain\">\/members<\/code> <code class=\"bash plain\">to new server\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"bash plain\">Setting next multixact ID and offset <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"bash plain\">Resetting WAL archives\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"bash plain\">Setting frozenxid and minmxid counters <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"bash plain\">Restoring global objects <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">the new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"bash plain\">Restoring database schemas <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">the new cluster<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">ok<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"bash plain\">Copying user relation files<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">ok<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"bash plain\">Setting next OID <\/code><code class=\"bash keyword\">for<\/code> <code class=\"bash plain\">new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"bash plain\">Sync data directory to disk\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"bash plain\">Creating script to analyze new cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"bash plain\">Creating script to delete old cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ok<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"bash plain\">Upgrade Complete<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"bash plain\">----------------<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"bash plain\">Optimizer statistics are not transferred by pg_upgrade so,<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"bash plain\">once you start the new server, consider running:<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">.<\/code><code class=\"bash plain\">\/analyze_new_cluster<\/code><code class=\"bash plain\">.sh<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"bash plain\">Running this script will delete the old cluster's data files:<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"bash spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"bash plain\">.<\/code><code class=\"bash plain\">\/delete_old_cluster<\/code><code class=\"bash plain\">.sh<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"bash plain\">$<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>Conclusion :<\/h3>\n<p>In this blog we have seen the new option &#8211;socketdir for pg_upgrade. It&#8217;s a good thing to know that this parameter exists, but in most case the current working directory should be ok for an upgrade<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Mouhamadou Diaw PostgreSQL 12 is under development but tests can be done. Steps to install this version can be found in this dbi blog . Many thanks to Daniel. While reading the documentation I found that there is a new parameter for pg_upgrade. This new parameter is &#8211;socketdir. Why this parameter? In fact the&hellip;&nbsp;<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[4133,83],"tags":[1481],"class_list":["post-12151","post","type-post","status-publish","format-standard","hentry","category-database","category-postgresql","tag-postgresql-12"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL 12 : New option -socketdir for pg_upgrade - dbi services | Blog<\/title>\n<meta name=\"description\" content=\"postgresql 12, pg_upgrade, socket unix\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL 12 : New option --socketdir for pg_upgrade\" \/>\n<meta property=\"og:description\" content=\"postgresql 12, pg_upgrade, socket unix\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-07T21:30:30+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\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:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bf7c7eb0bec165183207237c9d0ee1d5\"},\"headline\":\"PostgreSQL 12 : New option &#8211;socketdir for pg_upgrade\",\"datePublished\":\"2018-12-07T21:30:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/\"},\"wordCount\":279,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"keywords\":[\"PostgreSQL 12\"],\"articleSection\":[\"Database\",\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/\",\"name\":\"PostgreSQL 12 : New option -socketdir for pg_upgrade - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2018-12-07T21:30:30+00:00\",\"description\":\"postgresql 12, pg_upgrade, socket unix\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-12-new-option-socketdir-for-pg_upgrade\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL 12 : New option &#8211;socketdir for pg_upgrade\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bf7c7eb0bec165183207237c9d0ee1d5\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/oracle-square.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/oracle-square.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/oracle-square.png\",\"caption\":\"Oracle Team\"},\"description\":\"Posts published under the Oracle Team account are collective contributions by the dbi services Oracle consultants. The practice covers the full Oracle Database lifecycle: architecture, migration and upgrade, high availability with RAC and Data Guard, backup and recovery, performance tuning, and engineered systems such as Oracle Database Appliance and Exadata. The team holds Oracle certifications up to Certified Master level and operates customer platforms under service level agreements.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/oracle-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL 12 : New option -socketdir for pg_upgrade - dbi services | Blog","description":"postgresql 12, pg_upgrade, socket unix","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:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL 12 : New option --socketdir for pg_upgrade","og_description":"postgresql 12, pg_upgrade, socket unix","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2018-12-07T21:30:30+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bf7c7eb0bec165183207237c9d0ee1d5"},"headline":"PostgreSQL 12 : New option &#8211;socketdir for pg_upgrade","datePublished":"2018-12-07T21:30:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/"},"wordCount":279,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"keywords":["PostgreSQL 12"],"articleSection":["Database","PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/","name":"PostgreSQL 12 : New option -socketdir for pg_upgrade - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-12-07T21:30:30+00:00","description":"postgresql 12, pg_upgrade, socket unix","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-12-new-option-socketdir-for-pg_upgrade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL 12 : New option &#8211;socketdir for pg_upgrade"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bf7c7eb0bec165183207237c9d0ee1d5","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/12\/oracle-square.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/12\/oracle-square.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/12\/oracle-square.png","caption":"Oracle Team"},"description":"Posts published under the Oracle Team account are collective contributions by the dbi services Oracle consultants. The practice covers the full Oracle Database lifecycle: architecture, migration and upgrade, high availability with RAC and Data Guard, backup and recovery, performance tuning, and engineered systems such as Oracle Database Appliance and Exadata. The team holds Oracle certifications up to Certified Master level and operates customer platforms under service level agreements.","url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12151"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12151\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}