Al clonar un modo de espera, ¿cómo puedo evitar que pg_basebackup copie postgresql.conf y pg_hba.conf del maestro al directorio /var/lib/pgsql/9.9/data?
Actualmente estoy usando este comando
[root@xyz..]# pg_basebackup -h {master ipAddr} -D /var/lib/pgsql/9.6/data -U postgres -v -P
La copia de seguridad incluirá todos los archivos en el directorio de datos y espacios de tabla, incluidos los archivos de configuración y cualquier archivo adicional colocado en el directorio por terceros. Pero solo se copian los archivos y directorios normales. Se omiten los enlaces simbólicos (distintos de los que se utilizan para los espacios de tabla) y los archivos de dispositivos especiales.
Así que no hay tal opción. Si aún desea forzarlo, aleje los archivos de configuración del directorio de datos (y, opcionalmente, introdúzcalos en ln
)
Esta respuesta es para Postgres 14. pg_basebackup
realiza una copia de seguridad de todo el directorio de datos. https://www.postgresql.org/docs/14/app-pgbasebackup.html indica que la utilidad de copia de seguridad omitirá todos los directorios/archivos que sean enlaces simbólicos. Entonces, esa podría ser una solución para obtener solo el contenido deseado en la bola de alquitrán.
Me había enfrentado a situaciones similares en las que quería excluir el contenido de varios directorios como pg_replslot,pg_dynshmem, pg_notify
etc. Hice la bola tar de la forma habitual: pg_basebackup -D /backup/ -F t -P -v
. Después de crear la bola tar, y antes de restaurarla en otro servidor, actualicé la tar manualmente excluyendo el contenido de todos los directorios requeridos.