Thread: [GENERAL] how can I use "pg_basebackup" and not include pg_log of master ?

Hi,
   all. I use "pg_basebackup" to make slave, but the master has too large logs of pg_log, How Can I use "pg_basebackup" but not include logs of "pg_log" ?

  best regards,
     wln


 

Re: [GENERAL] how can I use "pg_basebackup" and not include pg_log ofmaster ?

From
Michael Paquier
Date:
On Mon, Mar 20, 2017 at 9:28 PM, lin <jluwln@163.com> wrote:
>    all. I use "pg_basebackup" to make slave, but the master has too large
> logs of pg_log, How Can I use "pg_basebackup" but not include logs of
> "pg_log" ?

Unfortunately not, there have been several discussions about being
able to define a blacklist of paths when taking a backup but nothing
has showed up in the code tree. For log files, there is a trick
though: you can define log_directory with an absolute path pointing
out of PGDATA so those logs won't be included in base backups.
--
Michael



Can I modify "sendDir"  function to skip the log_direction (default is "pg_log") ?

the sendDir function is :
static int64
sendDir(char *path, int basepathlen, bool sizeonly, List *tablespaces)
{
DIR   *dir;
struct dirent *de;
char pathbuf[MAXPGPATH];
struct stat statbuf;
int64 size = 0;

dir = AllocateDir(path);
while ((de = ReadDir(dir, path)) != NULL)
{
/* Skip special stuff */
              if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)  
continue;
.......
--if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) 
++ if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0 || strcmp(de->d_name, "pg_log"))    

Is there something wrong ? 

  Thanks,
   wln 







At 2017-03-20 20:43:11, "Michael Paquier" <michael.paquier@gmail.com> wrote: >On Mon, Mar 20, 2017 at 9:28 PM, lin <jluwln@163.com> wrote: >> all. I use "pg_basebackup" to make slave, but the master has too large >> logs of pg_log, How Can I use "pg_basebackup" but not include logs of >> "pg_log" ? > >Unfortunately not, there have been several discussions about being >able to define a blacklist of paths when taking a backup but nothing >has showed up in the code tree. For log files, there is a trick >though: you can define log_directory with an absolute path pointing >out of PGDATA so those logs won't be included in base backups. >-- >Michael > > >-- >Sent via pgsql-general mailing list (pgsql-general@postgresql.org) >To make changes to your subscription: >http://www.postgresql.org/mailpref/pgsql-general


 

Re: [GENERAL] how can I use "pg_basebackup" and not includepg_log of master ?

From
Michael Paquier
Date:
On Tue, Mar 21, 2017 at 12:08 PM, lin <jluwln@163.com> wrote:
> Can I modify "sendDir"  function to skip the log_direction (default is
> "pg_log") ?

Of course you can patch your own version of the backend. That will
just not be supported by community if there are bugs in your patches.
You are looking at Log_directory by the way.
--
Michael