By Mouhamadou Diaw
I was looking for a build-in function to get the hostname of the server hosting my PostgreSQL cluster.
But seems that there is no build-in function. Looking in the extensions, I find the extension hostname which can allow to get the database server host name.
In this this blog I am explaining how to install and how to use it. The installation is very easy. The first step is to download it here .
After let’s go to the directory where the archive was decompressed and let’s run the command make
|
1
2
3
4
5
6
7
8
9
10
11
|
master/pg-hostname-master/ [PG1] lsChanges doc hostname.control Makefile META.json README.md sql src test14:46:26 postgres@dbi-pg-essentials:/home/postgres/pg-hostname-master/pg-hostname-master/ [PG1] lsChanges doc hostname.control Makefile META.json README.md sql src test14:46:48 postgres@dbi-pg-essentials:/home/postgres/pg-hostname-master/pg-hostname-master/ [PG1] makegcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -I. -I./ -I/u01/app/postgres/product/95/db_0/include/server -I/u01/app/postgres/product/95/db_0/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/hostname.o src/hostname.cgcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fpic -L/u01/app/postgres/product/95/db_0/lib -Wl,--as-needed -Wl,-rpath,'/u01/app/postgres/product/95/db_0/lib',--enable-new-dtags -shared -o src/hostname.so src/hostname.ocp sql/hostname.sql sql/hostname--1.0.0.sql14:46:55 postgres@dbi-pg-essentials:/home/postgres/pg-hostname- |
Once done let’s run the command make install
|
1
2
3
4
5
6
7
8
9
10
|
pg-hostname-master/ [PG1] make install/bin/mkdir -p '/u01/app/postgres/product/95/db_0/share/extension'/bin/mkdir -p '/u01/app/postgres/product/95/db_0/share/extension'/bin/mkdir -p '/u01/app/postgres/product/95/db_0/lib'/bin/mkdir -p '/u01/app/postgres/product/95/db_0/share/doc/extension'/bin/install -c -m 644 .//hostname.control '/u01/app/postgres/product/95/db_0/share/extension/'/bin/install -c -m 644 .//sql/hostname--1.0.0.sql .//sql/hostname--unpackaged--1.0.0.sql '/u01/app/postgres/product/95/db_0/share/extension/'/bin/install -c -m 755 src/hostname.so '/u01/app/postgres/product/95/db_0/lib/'/bin/install -c -m 644 .//doc/hostname.mmd '/u01/app/postgres/product/95/db_0/share/doc/extension/'14:47:29 postgres@dbi-pg-essentials:/home/postgres/pg-hostname-master/pg-hostname-master/ [PG1] |
If everything is ok we should now have the extension in our $PGHOME/share/extension
|
1
2
3
4
|
15:02:39 postgres@dbi-pg-essentials:[PG1] ls -ltra *hostname*-rw-r--r--. 1 postgres postgres 140 Dec 5 14:47 hostname.control-rw-r--r--. 1 postgres postgres 96 Dec 5 14:47 hostname--1.0.0.sql-rw-r--r--. 1 postgres |
And that’s all. We just have now have to install the extension in the database
|
1
2
|
postgres=# CREATE EXTENSION hostname;CREATE EXTENSION |
And then now we can have the hostname of our the server
|
1
2
3
4
5
6
7
|
postgres=# SELECT hostname(); hostname------------------- dbi-pg-essentials(1 row)postgres=# |