mirror of
https://github.com/postgres/postgres.git
synced 2025-10-16 17:07:43 +03:00
Add backup_type column to pg_stat_progress_basebackup.
This commit introduces a new column backup_type that indicates the type of backup being performed: either 'full' or 'incremental'. Bump catalog version. Author: Shinya Kato <shinya11.kato@gmail.com> Reviewed-by: Yugo Nagata <nagata@sraoss.co.jp> Discussion: https://postgr.es/m/CAOzEurQuzbHwTj1ehk1a+eeQDidJPyrE5s6mYumkjwjZnurhkQ@mail.gmail.com
This commit is contained in:
@@ -6791,6 +6791,16 @@ FROM pg_stat_get_backend_idset() AS backendid;
|
|||||||
advances when the phase is <literal>streaming database files</literal>.
|
advances when the phase is <literal>streaming database files</literal>.
|
||||||
</para></entry>
|
</para></entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry role="catalog_table_entry"><para role="column_definition">
|
||||||
|
<structfield>backup_type</structfield> <type>text</type>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Backup type. Either <literal>full</literal> or
|
||||||
|
<literal>incremental</literal>.
|
||||||
|
</para></entry>
|
||||||
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
|
@@ -1048,7 +1048,7 @@ SendBaseBackup(BaseBackupCmd *cmd, IncrementalBackupInfo *ib)
|
|||||||
sink = bbsink_zstd_new(sink, &opt.compression_specification);
|
sink = bbsink_zstd_new(sink, &opt.compression_specification);
|
||||||
|
|
||||||
/* Set up progress reporting. */
|
/* Set up progress reporting. */
|
||||||
sink = bbsink_progress_new(sink, opt.progress);
|
sink = bbsink_progress_new(sink, opt.progress, opt.incremental);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Perform the base backup, but make sure we clean up the bbsink even if
|
* Perform the base backup, but make sure we clean up the bbsink even if
|
||||||
|
@@ -56,7 +56,7 @@ static const bbsink_ops bbsink_progress_ops = {
|
|||||||
* forwards data to a successor sink.
|
* forwards data to a successor sink.
|
||||||
*/
|
*/
|
||||||
bbsink *
|
bbsink *
|
||||||
bbsink_progress_new(bbsink *next, bool estimate_backup_size)
|
bbsink_progress_new(bbsink *next, bool estimate_backup_size, bool incremental)
|
||||||
{
|
{
|
||||||
bbsink *sink;
|
bbsink *sink;
|
||||||
|
|
||||||
@@ -69,10 +69,15 @@ bbsink_progress_new(bbsink *next, bool estimate_backup_size)
|
|||||||
/*
|
/*
|
||||||
* Report that a base backup is in progress, and set the total size of the
|
* Report that a base backup is in progress, and set the total size of the
|
||||||
* backup to -1, which will get translated to NULL. If we're estimating
|
* backup to -1, which will get translated to NULL. If we're estimating
|
||||||
* the backup size, we'll insert the real estimate when we have it.
|
* the backup size, we'll insert the real estimate when we have it. Also,
|
||||||
|
* the backup type is set.
|
||||||
*/
|
*/
|
||||||
pgstat_progress_start_command(PROGRESS_COMMAND_BASEBACKUP, InvalidOid);
|
pgstat_progress_start_command(PROGRESS_COMMAND_BASEBACKUP, InvalidOid);
|
||||||
pgstat_progress_update_param(PROGRESS_BASEBACKUP_BACKUP_TOTAL, -1);
|
pgstat_progress_update_param(PROGRESS_BASEBACKUP_BACKUP_TOTAL, -1);
|
||||||
|
pgstat_progress_update_param(PROGRESS_BASEBACKUP_BACKUP_TYPE,
|
||||||
|
incremental
|
||||||
|
? PROGRESS_BASEBACKUP_BACKUP_TYPE_INCREMENTAL
|
||||||
|
: PROGRESS_BASEBACKUP_BACKUP_TYPE_FULL);
|
||||||
|
|
||||||
return sink;
|
return sink;
|
||||||
}
|
}
|
||||||
|
@@ -1327,7 +1327,10 @@ CREATE VIEW pg_stat_progress_basebackup AS
|
|||||||
CASE S.param2 WHEN -1 THEN NULL ELSE S.param2 END AS backup_total,
|
CASE S.param2 WHEN -1 THEN NULL ELSE S.param2 END AS backup_total,
|
||||||
S.param3 AS backup_streamed,
|
S.param3 AS backup_streamed,
|
||||||
S.param4 AS tablespaces_total,
|
S.param4 AS tablespaces_total,
|
||||||
S.param5 AS tablespaces_streamed
|
S.param5 AS tablespaces_streamed,
|
||||||
|
CASE S.param6 WHEN 1 THEN 'full'
|
||||||
|
WHEN 2 THEN 'incremental'
|
||||||
|
END AS backup_type
|
||||||
FROM pg_stat_get_progress_info('BASEBACKUP') AS S;
|
FROM pg_stat_get_progress_info('BASEBACKUP') AS S;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -287,7 +287,8 @@ extern bbsink *bbsink_copystream_new(bool send_to_client);
|
|||||||
extern bbsink *bbsink_gzip_new(bbsink *next, pg_compress_specification *);
|
extern bbsink *bbsink_gzip_new(bbsink *next, pg_compress_specification *);
|
||||||
extern bbsink *bbsink_lz4_new(bbsink *next, pg_compress_specification *);
|
extern bbsink *bbsink_lz4_new(bbsink *next, pg_compress_specification *);
|
||||||
extern bbsink *bbsink_zstd_new(bbsink *next, pg_compress_specification *);
|
extern bbsink *bbsink_zstd_new(bbsink *next, pg_compress_specification *);
|
||||||
extern bbsink *bbsink_progress_new(bbsink *next, bool estimate_backup_size);
|
extern bbsink *bbsink_progress_new(bbsink *next, bool estimate_backup_size,
|
||||||
|
bool incremental);
|
||||||
extern bbsink *bbsink_server_new(bbsink *next, char *pathname);
|
extern bbsink *bbsink_server_new(bbsink *next, char *pathname);
|
||||||
extern bbsink *bbsink_throttle_new(bbsink *next, uint32 maxrate);
|
extern bbsink *bbsink_throttle_new(bbsink *next, uint32 maxrate);
|
||||||
|
|
||||||
|
@@ -57,6 +57,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* yyyymmddN */
|
/* yyyymmddN */
|
||||||
#define CATALOG_VERSION_NO 202508041
|
#define CATALOG_VERSION_NO 202508051
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -130,6 +130,7 @@
|
|||||||
#define PROGRESS_BASEBACKUP_BACKUP_STREAMED 2
|
#define PROGRESS_BASEBACKUP_BACKUP_STREAMED 2
|
||||||
#define PROGRESS_BASEBACKUP_TBLSPC_TOTAL 3
|
#define PROGRESS_BASEBACKUP_TBLSPC_TOTAL 3
|
||||||
#define PROGRESS_BASEBACKUP_TBLSPC_STREAMED 4
|
#define PROGRESS_BASEBACKUP_TBLSPC_STREAMED 4
|
||||||
|
#define PROGRESS_BASEBACKUP_BACKUP_TYPE 5
|
||||||
|
|
||||||
/* Phases of pg_basebackup (as advertised via PROGRESS_BASEBACKUP_PHASE) */
|
/* Phases of pg_basebackup (as advertised via PROGRESS_BASEBACKUP_PHASE) */
|
||||||
#define PROGRESS_BASEBACKUP_PHASE_WAIT_CHECKPOINT 1
|
#define PROGRESS_BASEBACKUP_PHASE_WAIT_CHECKPOINT 1
|
||||||
@@ -138,6 +139,10 @@
|
|||||||
#define PROGRESS_BASEBACKUP_PHASE_WAIT_WAL_ARCHIVE 4
|
#define PROGRESS_BASEBACKUP_PHASE_WAIT_WAL_ARCHIVE 4
|
||||||
#define PROGRESS_BASEBACKUP_PHASE_TRANSFER_WAL 5
|
#define PROGRESS_BASEBACKUP_PHASE_TRANSFER_WAL 5
|
||||||
|
|
||||||
|
/* Types of pg_basebackup (as advertised via PROGRESS_BASEBACKUP_BACKUP_TYPE) */
|
||||||
|
#define PROGRESS_BASEBACKUP_BACKUP_TYPE_FULL 1
|
||||||
|
#define PROGRESS_BASEBACKUP_BACKUP_TYPE_INCREMENTAL 2
|
||||||
|
|
||||||
/* Progress parameters for PROGRESS_COPY */
|
/* Progress parameters for PROGRESS_COPY */
|
||||||
#define PROGRESS_COPY_BYTES_PROCESSED 0
|
#define PROGRESS_COPY_BYTES_PROCESSED 0
|
||||||
#define PROGRESS_COPY_BYTES_TOTAL 1
|
#define PROGRESS_COPY_BYTES_TOTAL 1
|
||||||
|
@@ -1977,7 +1977,12 @@ pg_stat_progress_basebackup| SELECT pid,
|
|||||||
END AS backup_total,
|
END AS backup_total,
|
||||||
param3 AS backup_streamed,
|
param3 AS backup_streamed,
|
||||||
param4 AS tablespaces_total,
|
param4 AS tablespaces_total,
|
||||||
param5 AS tablespaces_streamed
|
param5 AS tablespaces_streamed,
|
||||||
|
CASE param6
|
||||||
|
WHEN 1 THEN 'full'::text
|
||||||
|
WHEN 2 THEN 'incremental'::text
|
||||||
|
ELSE NULL::text
|
||||||
|
END AS backup_type
|
||||||
FROM pg_stat_get_progress_info('BASEBACKUP'::text) s(pid, datid, relid, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20);
|
FROM pg_stat_get_progress_info('BASEBACKUP'::text) s(pid, datid, relid, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20);
|
||||||
pg_stat_progress_cluster| SELECT s.pid,
|
pg_stat_progress_cluster| SELECT s.pid,
|
||||||
s.datid,
|
s.datid,
|
||||||
|
Reference in New Issue
Block a user