From bf312ecb9da7201fc76d11c820c6b18e680d9842 Mon Sep 17 00:00:00 2001 From: wuyuechuan Date: Wed, 29 Nov 2023 17:27:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4recovery=5Ftarget=5Ftime?= =?UTF-8?q?=E6=80=BB=E6=98=AF=E4=B8=BAbackup=5Fend=E7=9A=84=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E3=80=82=E5=AF=B9=E4=BA=8E=E6=89=80=E6=9C=89=E7=9A=84?= =?UTF-8?q?PITR=E6=81=A2=E5=A4=8D=E5=9C=BA=E6=99=AF=EF=BC=8C=E9=99=A4?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8C=87=E5=AE=9Arecovery=5Fcommand=E5=A4=96?= =?UTF-8?q?=EF=BC=8C=E5=85=A8=E9=83=A8=E9=80=9A=E8=BF=87warning=E6=8F=90?= =?UTF-8?q?=E9=86=92=E5=AE=A2=E6=88=B7=EF=BC=8C=E9=9C=80=E8=A6=81=E8=87=AA?= =?UTF-8?q?=E8=A1=8C=E8=BE=93=E5=85=A5restore=20command=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bin/pg_probackup/restore.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/bin/pg_probackup/restore.cpp b/src/bin/pg_probackup/restore.cpp index 4e24b55d5..3e57530ec 100644 --- a/src/bin/pg_probackup/restore.cpp +++ b/src/bin/pg_probackup/restore.cpp @@ -1660,17 +1660,7 @@ create_recovery_conf(time_t backup_id, /* construct restore_command */ if (pitr_requested) { - char *timestamp = NULL; - const char *oldtime = NULL; - timestamp = (char *)pg_malloc(RESTORE_ARRAY_LEN); - time2iso(timestamp, RESTORE_ARRAY_LEN, backup->end_time); - oldtime = rt->time_string; - if (rt->time_string) { - rt->time_string = timestamp; - } construct_restore_cmd(fp, rt, restore_command_provided, target_immediate); - rt->time_string = oldtime; - free(timestamp); } if (fio_fflush(fp) != 0 || @@ -1752,10 +1742,17 @@ static void construct_restore_cmd(FILE *fp, pgRecoveryTarget *rt, fio_fprintf(fp, "recovery_target_timeline = 'current'\n"); #endif } - if (instance_config.archive.host) { - elog(LOG, "archive host specified, input restore command manually."); + + if (restore_command_provided) + { + char restore_command_guc[16384]; + errno_t rc = sprintf_s(restore_command_guc, sizeof(restore_command_guc), "%s", instance_config.restore_command); + securec_check_ss_c(rc, "\0", "\0"); + fio_fprintf(fp, "restore_command = '%s\n", restore_command_guc); + elog(LOG, "Setting restore command to '%s'", restore_command_guc); } else { - fprintf(fp, "restore_command = 'cp %s/%%f %%p'\n", arclog_path); + elog(WARNING, "you need to input restore command manually."); + } }