mirror of
https://github.com/postgres/postgres.git
synced 2026-03-31 06:46:32 -04:00
Previously non-exclusive backups had to be done using the replication protocol and pg_basebackup. With this commit it's now possible to make them using pg_start_backup/pg_stop_backup as well, as long as the backup program can maintain a persistent connection to the database. Doing this, backup_label and tablespace_map are returned as results from pg_stop_backup() instead of being written to the data directory. This makes the server safe from a crash during an ongoing backup, which can be a problem with exclusive backups. The old syntax of the functions remain and work exactly as before, but since the new syntax is safer this should eventually be deprecated and removed. Only reference documentation is included. The main section on backup still needs to be rewritten to cover this, but since that is already scheduled for a separate large rewrite, it's not included in this patch. Reviewed by David Steele and Amit Kapila
37 lines
1.4 KiB
C
37 lines
1.4 KiB
C
/*
|
|
* xlog_fn.h
|
|
*
|
|
* PostgreSQL transaction log SQL-callable function declarations
|
|
*
|
|
* Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/access/xlog_fn.h
|
|
*/
|
|
#ifndef XLOG_FN_H
|
|
#define XLOG_FN_H
|
|
|
|
#include "fmgr.h"
|
|
|
|
extern Datum pg_start_backup(PG_FUNCTION_ARGS);
|
|
extern Datum pg_stop_backup(PG_FUNCTION_ARGS);
|
|
extern Datum pg_stop_backup_v2(PG_FUNCTION_ARGS);
|
|
extern Datum pg_switch_xlog(PG_FUNCTION_ARGS);
|
|
extern Datum pg_create_restore_point(PG_FUNCTION_ARGS);
|
|
extern Datum pg_current_xlog_location(PG_FUNCTION_ARGS);
|
|
extern Datum pg_current_xlog_insert_location(PG_FUNCTION_ARGS);
|
|
extern Datum pg_current_xlog_flush_location(PG_FUNCTION_ARGS);
|
|
extern Datum pg_last_xlog_receive_location(PG_FUNCTION_ARGS);
|
|
extern Datum pg_last_xlog_replay_location(PG_FUNCTION_ARGS);
|
|
extern Datum pg_last_xact_replay_timestamp(PG_FUNCTION_ARGS);
|
|
extern Datum pg_xlogfile_name_offset(PG_FUNCTION_ARGS);
|
|
extern Datum pg_xlogfile_name(PG_FUNCTION_ARGS);
|
|
extern Datum pg_is_in_recovery(PG_FUNCTION_ARGS);
|
|
extern Datum pg_xlog_replay_pause(PG_FUNCTION_ARGS);
|
|
extern Datum pg_xlog_replay_resume(PG_FUNCTION_ARGS);
|
|
extern Datum pg_is_xlog_replay_paused(PG_FUNCTION_ARGS);
|
|
extern Datum pg_xlog_location_diff(PG_FUNCTION_ARGS);
|
|
extern Datum pg_is_in_backup(PG_FUNCTION_ARGS);
|
|
extern Datum pg_backup_start_time(PG_FUNCTION_ARGS);
|
|
|
|
#endif /* XLOG_FN_H */
|