archiver

package
v1.23.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package archiver manages the WAL archiving process

Index

Constants

View Source
const (
	// CheckEmptyWalArchiveFile is the name of the file in the PGDATA that,
	// if present, requires the WAL archiver to check that the backup object
	// store is empty.
	CheckEmptyWalArchiveFile = ".check-empty-wal-archive"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type WALArchiver

type WALArchiver struct {
	// contains filtered or unexported fields
}

WALArchiver is a structure containing every info need to archive a set of WAL files using barman-cloud-wal-archive

func New

func New(
	ctx context.Context,
	cluster *apiv1.Cluster,
	env []string,
	spoolDirectory string,
	pgDataDirectory string,
) (archiver *WALArchiver, err error)

New creates a new WAL archiver

func (*WALArchiver) Archive

func (archiver *WALArchiver) Archive(walName string, baseOptions []string) error

Archive archives a certain WAL file using barman-cloud-wal-archive. See archiveWALFileList for the meaning of the parameters

func (*WALArchiver) ArchiveList

func (archiver *WALArchiver) ArchiveList(
	ctx context.Context,
	walNames []string,
	options []string,
) (result []WALArchiverResult)

ArchiveList archives a list of WAL files in parallel

func (*WALArchiver) BarmanCloudCheckWalArchiveOptions added in v1.15.1

func (archiver *WALArchiver) BarmanCloudCheckWalArchiveOptions(
	cluster *apiv1.Cluster,
	clusterName string,
) ([]string, error)

BarmanCloudCheckWalArchiveOptions create the options needed for the `barman-cloud-check-wal-archive` command.

func (*WALArchiver) CheckWalArchiveDestination added in v1.15.1

func (archiver *WALArchiver) CheckWalArchiveDestination(ctx context.Context, options []string) error

CheckWalArchiveDestination checks if the destinationObjectStore is ready perform archiving. Based on this ticket in Barman https://github.com/EnterpriseDB/barman/issues/432 and its implementation https://github.com/EnterpriseDB/barman/pull/443 The idea here is to check ONLY if we're archiving the wal files for the first time in the bucket since in this case the command barman-cloud-check-wal-archive will fail if the bucket exist and contain wal files inside

func (*WALArchiver) DeleteFromSpool

func (archiver *WALArchiver) DeleteFromSpool(walName string) (hasBeenDeleted bool, err error)

DeleteFromSpool checks if a WAL file is in the spool and, if it is, remove it

func (*WALArchiver) IsCheckWalArchiveFlagFilePresent added in v1.15.5

func (archiver *WALArchiver) IsCheckWalArchiveFlagFilePresent(ctx context.Context, pgDataDirectory string) bool

IsCheckWalArchiveFlagFilePresent returns true if the file CheckEmptyWalArchiveFile is present in the PGDATA directory

type WALArchiverResult

type WALArchiverResult struct {
	// The WAL that have been archived
	WalName string

	// If not nil, this is the error that has been detected
	Err error

	// The time when we started barman-cloud-wal-archive
	StartTime time.Time

	// The time when end barman-cloud-wal-archive ended
	EndTime time.Time
}

WALArchiverResult contains the result of the archival of one WAL

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL