I have postgreSQL 9.4.1 installed on a Win 2012 Server.
I am looking to setup replication between this and another server of the same spec. So I am following guidance on preparing the master database server for standby servers as per warm standby section 25.2.3 This involves using pg_basebackup.
The PostgreSQL instance on the master contains a database for one of our apps. This database has 3 schemas each of which have their own dedicated tablespace. On windows the tablespace locations were created by using the MKLINK command (as I believe the LOCATION parameter has to point to a symbolic link on windows) so – for example, :
mklink /j C:tbs1 D:apptablespacetbs1
mklink /j C:tbs2 D:apptablespacetbs2
So, using the above as an example a tablespace in postgreSQL was created using the following command:
CREATE TABLESPACE app_ops OWNER the_user LOCATION 'C:tbs1';
Which is all fine. However when I wish to use the pg_basebackup tool, i received the following error/warning – with nothing being written to the backup location:
pg_basebackup -h localhost -U postgres -D C:master_backup
pg_basebackup: directory "C:tbs1" exists but is not empty
I don’t understand why I am receiving this specific message.
The main point in many of the answers I have seen talks about ensuring that the tablespaces didn’t exist within PG_DATA. However they don’t in my case – PG_DATA is set in the executable path of the windows service as -D C:Program FilesPostgreSQL9.4data, as can been seen:
"C:Program FilesPostgreSQL9.4binpg_ctl.exe" runservice -N "postgresql-x64-9.4" -D "C:Program FilesPostgreSQL9.4data" -w
I had looked at the tablespace-mapping parameter ‘old=new’, but this didn’t change the result.
I appreciate that there are similar questions and guidance, however I do not seem to be able to find anything additional that may help. I have looked on dba/stackoverflow and www.postgresql.org I would list more of the places I have seen helpful info – but alas my reputation doesn’t allow me to add any more
If there are any thoughts or ideas it would be greatly appreciated.
regards.