Documentation ¶
Index ¶
- Constants
- func FormatSegmentBackupPath(contentID int) string
- func FormatSegmentStoragePrefix(contentID int) string
- func FormatSegmentWalPath(contentID int) string
- func GetSegmentFolder(backupFolder storage.Folder, contentID int) storage.Folder
- func NewGreenplumBackupFetcher(restoreCfg ClusterRestoreConfig, logsDir string) func(folder storage.Folder, backup internal.Backup)
- type Backup
- type BackupArguments
- type BackupHandler
- type BackupSentinelDto
- type BackupWorkers
- type ClusterRestoreConfig
- type CurrBackupInfo
- type DeleteHandler
- func (h *DeleteHandler) DeleteBeforeTarget(target internal.BackupObject, confirmed bool) error
- func (h *DeleteHandler) HandleDeleteBefore(args []string, confirmed bool)
- func (h *DeleteHandler) HandleDeleteEverything(args []string, confirmed bool)
- func (h *DeleteHandler) HandleDeleteRetain(args []string, confirmed bool)
- func (h *DeleteHandler) HandleDeleteRetainAfter(args []string, confirmed bool)
- type FetchHandler
- type GenericMetaFetcher
- type GenericMetaInteractor
- type GenericMetaSetter
- type GpQueryRunner
- func (queryRunner *GpQueryRunner) AbortBackup() (err error)
- func (queryRunner *GpQueryRunner) CreateGreenplumRestorePoint(restorePointName string) (restoreLSNs map[int]string, err error)
- func (queryRunner *GpQueryRunner) GetGreenplumSegmentsInfo(semVer semver.Version) (segments []cluster.SegConfig, err error)
- func (queryRunner *GpQueryRunner) GetGreenplumVersion() (version string, err error)
- func (queryRunner *GpQueryRunner) IsInBackup() (isInBackupByContentID map[int]bool, err error)
- type PgHbaMaker
- type PgSegmentMetaDto
- type RecoveryConfigMaker
- type SegmentFwdArg
- type SegmentMetadata
- type SegmentRestoreConfig
- type SegmentRole
- type SegmentUserData
Constants ¶
const ( BackupNamePrefix = "backup_" BackupNameLength = 23 // len(BackupNamePrefix) + len(utility.BackupTimeFormat) )
const PgHbaTemplate = `` /* 759-byte string literal not displayed */
Variables ¶
This section is empty.
Functions ¶
func FormatSegmentBackupPath ¶
func FormatSegmentWalPath ¶
func GetSegmentFolder ¶
Types ¶
type Backup ¶
type Backup struct { internal.Backup SentinelDto *BackupSentinelDto // used for storage query caching // contains filtered or unexported fields }
Backup contains information about a valid Greenplum backup generated and uploaded by WAL-G.
func ToGpBackup ¶
func (*Backup) GetSegmentBackup ¶
func (*Backup) GetSentinel ¶
func (backup *Backup) GetSentinel() (BackupSentinelDto, error)
type BackupArguments ¶
type BackupArguments struct {
// contains filtered or unexported fields
}
BackupArguments holds all arguments parsed from cmd to this handler class
func NewBackupArguments ¶
func NewBackupArguments(isPermanent bool, userData interface{}, fwdArgs []SegmentFwdArg, logsDir string) BackupArguments
NewBackupArguments creates a BackupArgument object to hold the arguments from the cmd
type BackupHandler ¶
type BackupHandler struct {
// contains filtered or unexported fields
}
BackupHandler is the main struct which is handling the backup process
func NewBackupHandler ¶
func NewBackupHandler(arguments BackupArguments) (bh *BackupHandler, err error)
NewBackupHandler returns a backup handler object, which can handle the backup
func (*BackupHandler) HandleBackupPush ¶
func (bh *BackupHandler) HandleBackupPush()
HandleBackupPush handles the backup being read from filesystem and being pushed to the repository
type BackupSentinelDto ¶
type BackupSentinelDto struct { RestorePoint *string `json:"restore_point,omitempty"` Segments []SegmentMetadata `json:"segments,omitempty"` UserData interface{} `json:"user_data,omitempty"` StartTime time.Time `json:"start_time"` FinishTime time.Time `json:"finish_time"` Hostname string `json:"hostname"` GpVersion string `json:"gp_version"` IsPermanent bool `json:"is_permanent"` SystemIdentifier *uint64 `json:"system_identifier"` UncompressedSize int64 `json:"uncompressed_size"` CompressedSize int64 `json:"compressed_size"` }
BackupSentinelDto describes file structure of json sentinel
func NewBackupSentinelDto ¶
func NewBackupSentinelDto(currBackupInfo CurrBackupInfo, restoreLSNs map[int]string, userData interface{}, isPermanent bool) BackupSentinelDto
NewBackupSentinelDto returns new BackupSentinelDto instance
func (*BackupSentinelDto) String ¶
func (s *BackupSentinelDto) String() string
type BackupWorkers ¶
BackupWorkers holds the external objects that the handler uses to get the backup data / write the backup data
type ClusterRestoreConfig ¶
type ClusterRestoreConfig struct {
Segments map[int]SegmentRestoreConfig `json:"segments"`
}
ClusterRestoreConfig is used to describe the restored cluster
type CurrBackupInfo ¶
type CurrBackupInfo struct {
// contains filtered or unexported fields
}
CurrBackupInfo holds all information that is harvest during the backup process
type DeleteHandler ¶
type DeleteHandler struct { internal.DeleteHandler // contains filtered or unexported fields }
func NewDeleteHandler ¶
func NewDeleteHandler(folder storage.Folder) (*DeleteHandler, error)
func (*DeleteHandler) DeleteBeforeTarget ¶
func (h *DeleteHandler) DeleteBeforeTarget(target internal.BackupObject, confirmed bool) error
func (*DeleteHandler) HandleDeleteBefore ¶
func (h *DeleteHandler) HandleDeleteBefore(args []string, confirmed bool)
func (*DeleteHandler) HandleDeleteEverything ¶
func (h *DeleteHandler) HandleDeleteEverything(args []string, confirmed bool)
func (*DeleteHandler) HandleDeleteRetain ¶
func (h *DeleteHandler) HandleDeleteRetain(args []string, confirmed bool)
func (*DeleteHandler) HandleDeleteRetainAfter ¶
func (h *DeleteHandler) HandleDeleteRetainAfter(args []string, confirmed bool)
type FetchHandler ¶
type FetchHandler struct {
// contains filtered or unexported fields
}
func NewFetchHandler ¶
func NewFetchHandler(backup internal.Backup, sentinel BackupSentinelDto, restoreCfg ClusterRestoreConfig, logsDir string) *FetchHandler
func (*FetchHandler) Fetch ¶
func (fh *FetchHandler) Fetch() error
type GenericMetaFetcher ¶
type GenericMetaFetcher struct{}
func NewGenericMetaFetcher ¶
func NewGenericMetaFetcher() GenericMetaFetcher
func (GenericMetaFetcher) Fetch ¶
func (mf GenericMetaFetcher) Fetch(backupName string, backupFolder storage.Folder) (internal.GenericMetadata, error)
type GenericMetaInteractor ¶
type GenericMetaInteractor struct { GenericMetaFetcher GenericMetaSetter }
func NewGenericMetaInteractor ¶
func NewGenericMetaInteractor() GenericMetaInteractor
type GenericMetaSetter ¶
type GenericMetaSetter struct{}
func NewGenericMetaSetter ¶
func NewGenericMetaSetter() GenericMetaSetter
func (GenericMetaSetter) SetIsPermanent ¶
func (GenericMetaSetter) SetUserData ¶
func (ms GenericMetaSetter) SetUserData(backupName string, backupFolder storage.Folder, userData interface{}) error
type GpQueryRunner ¶
type GpQueryRunner struct {
// contains filtered or unexported fields
}
GpQueryRunner is implementation for controlling Greenplum
func NewGpQueryRunner ¶
func NewGpQueryRunner(conn *pgx.Conn) (*GpQueryRunner, error)
NewGpQueryRunner builds QueryRunner from available connection
func (*GpQueryRunner) AbortBackup ¶
func (queryRunner *GpQueryRunner) AbortBackup() (err error)
AbortBackup stops the backup process on all segments
func (*GpQueryRunner) CreateGreenplumRestorePoint ¶
func (queryRunner *GpQueryRunner) CreateGreenplumRestorePoint(restorePointName string) (restoreLSNs map[int]string, err error)
CreateGreenplumRestorePoint creates a restore point
func (*GpQueryRunner) GetGreenplumSegmentsInfo ¶
func (queryRunner *GpQueryRunner) GetGreenplumSegmentsInfo(semVer semver.Version) (segments []cluster.SegConfig, err error)
GetGreenplumSegmentsInfo returns the information about segments
func (*GpQueryRunner) GetGreenplumVersion ¶
func (queryRunner *GpQueryRunner) GetGreenplumVersion() (version string, err error)
GetGreenplumVersion returns version
func (*GpQueryRunner) IsInBackup ¶
func (queryRunner *GpQueryRunner) IsInBackup() (isInBackupByContentID map[int]bool, err error)
IsInBackup check if there is backup running
type PgHbaMaker ¶
type PgHbaMaker struct {
// contains filtered or unexported fields
}
func NewPgHbaMaker ¶
func NewPgHbaMaker(segments map[int][]*cluster.SegConfig) PgHbaMaker
func (PgHbaMaker) Make ¶
func (m PgHbaMaker) Make() (string, error)
type PgSegmentMetaDto ¶
type PgSegmentMetaDto struct { postgres.ExtendedMetadataDto BackupName string }
PgSegmentMetaDto is used during the initial fetching of the segment backup metadata
type RecoveryConfigMaker ¶
type RecoveryConfigMaker struct {
// contains filtered or unexported fields
}
func NewRecoveryConfigMaker ¶
func NewRecoveryConfigMaker(walgBinaryPath, cfgPath, recoveryTargetName string) RecoveryConfigMaker
func (RecoveryConfigMaker) Make ¶
func (m RecoveryConfigMaker) Make(contentID int) string
type SegmentFwdArg ¶
SegmentFwdArg describes the specific WAL-G arguments that is going to be forwarded to the segments
type SegmentMetadata ¶
type SegmentMetadata struct { DatabaseID int `json:"db_id"` ContentID int `json:"content_id"` Role SegmentRole `json:"role"` Port int `json:"port"` Hostname string `json:"hostname"` DataDir string `json:"data_dir"` BackupID string `json:"backup_id"` BackupName string `json:"backup_name"` RestorePointLSN string `json:"restore_point_lsn"` }
func NewSegmentMetadata ¶
func NewSegmentMetadata(backupID string, segCfg cluster.SegConfig, restoreLSN, backupName string) SegmentMetadata
func (SegmentMetadata) ToSegConfig ¶
func (c SegmentMetadata) ToSegConfig() cluster.SegConfig
type SegmentRestoreConfig ¶
type SegmentRole ¶
type SegmentRole string
const ( Primary SegmentRole = "p" Mirror SegmentRole = "m" )
type SegmentUserData ¶
type SegmentUserData struct {
ID string `json:"id"`
}
func NewSegmentUserData ¶
func NewSegmentUserData() SegmentUserData
func NewSegmentUserDataFromID ¶
func NewSegmentUserDataFromID(backupID string) SegmentUserData
func (SegmentUserData) QuotedString ¶
func (d SegmentUserData) QuotedString() string
QuotedString will do json.Marshal-ing followed by quoting in order to escape special control characters in the resulting JSON so it can be transferred as the cmdline argument to a segment
func (SegmentUserData) String ¶
func (d SegmentUserData) String() string