Documentation ¶
Index ¶
- Constants
- func BuildTableRanges(tbl *model.TableInfo) ([]kv.KeyRange, error)
- func CheckBackupStorageIsLocked(ctx context.Context, s storage.ExternalStorage) error
- func OnBackupResponse(storeID uint64, bo *tikv.Backoffer, backupTS uint64, ...) (*backuppb.BackupResponse, int, error)
- func SendBackup(ctx context.Context, storeID uint64, client backuppb.BackupClient, ...) error
- func WriteBackupDDLJobs(metaWriter *metautil.MetaWriter, store kv.Storage, ...) error
- type Checksum
- type Client
- func (bc *Client) BackupRange(ctx context.Context, startKey, endKey []byte, req backuppb.BackupRequest, ...) (err error)
- func (bc *Client) BackupRanges(ctx context.Context, ranges []rtree.Range, req backuppb.BackupRequest, ...) error
- func (bc *Client) GetClusterID() uint64
- func (bc *Client) GetGCTTL() int64
- func (bc *Client) GetStorage() storage.ExternalStorage
- func (bc *Client) GetTS(ctx context.Context, duration time.Duration, ts uint64) (uint64, error)
- func (bc *Client) SetGCTTL(ttl int64)
- func (bc *Client) SetLockFile(ctx context.Context) error
- func (bc *Client) SetStorage(ctx context.Context, backend *backuppb.StorageBackend, ...) error
- type ClientMgr
- type ProgressUnit
- type Schemas
Constants ¶
const ( // DefaultSchemaConcurrency is the default number of the concurrent // backup schema tasks. DefaultSchemaConcurrency = 64 )
Variables ¶
This section is empty.
Functions ¶
func BuildTableRanges ¶
BuildTableRanges returns the key ranges encompassing the entire table, and its partitions if exists.
func CheckBackupStorageIsLocked ¶
func CheckBackupStorageIsLocked(ctx context.Context, s storage.ExternalStorage) error
CheckBackupStorageIsLocked checks whether backups is locked. which means we found other backup progress already write some data files into the same backup directory or cloud prefix.
func OnBackupResponse ¶
func OnBackupResponse( storeID uint64, bo *tikv.Backoffer, backupTS uint64, lockResolver *txnlock.LockResolver, resp *backuppb.BackupResponse, ) (*backuppb.BackupResponse, int, error)
OnBackupResponse checks the backup resp, decides whether to retry and generate the error.
func SendBackup ¶
func SendBackup( ctx context.Context, storeID uint64, client backuppb.BackupClient, req backuppb.BackupRequest, respFn func(*backuppb.BackupResponse) error, resetFn func() (backuppb.BackupClient, error), ) error
SendBackup send backup request to the given store. Stop receiving response if respFn returns error.
func WriteBackupDDLJobs ¶
func WriteBackupDDLJobs(metaWriter *metautil.MetaWriter, store kv.Storage, lastBackupTS, backupTS uint64) error
WriteBackupDDLJobs sends the ddl jobs are done in (lastBackupTS, backupTS] to metaWriter.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a client instructs TiKV how to do a backup.
func NewBackupClient ¶
NewBackupClient returns a new backup client.
func (*Client) BackupRange ¶
func (bc *Client) BackupRange( ctx context.Context, startKey, endKey []byte, req backuppb.BackupRequest, metaWriter *metautil.MetaWriter, progressCallBack func(ProgressUnit), ) (err error)
BackupRange make a backup of the given key range. Returns an array of files backed up.
func (*Client) BackupRanges ¶
func (bc *Client) BackupRanges( ctx context.Context, ranges []rtree.Range, req backuppb.BackupRequest, concurrency uint, metaWriter *metautil.MetaWriter, progressCallBack func(ProgressUnit), ) error
BackupRanges make a backup of the given key ranges.
func (*Client) GetClusterID ¶
GetClusterID returns the cluster ID of the tidb cluster to backup.
func (*Client) GetStorage ¶
func (bc *Client) GetStorage() storage.ExternalStorage
GetStorage gets storage for this backup.
func (*Client) SetLockFile ¶
SetLockFile set write lock file.
func (*Client) SetStorage ¶
func (bc *Client) SetStorage(ctx context.Context, backend *backuppb.StorageBackend, opts *storage.ExternalStorageOptions) error
SetStorage set ExternalStorage for client.
type ClientMgr ¶
type ClientMgr interface { GetBackupClient(ctx context.Context, storeID uint64) (backuppb.BackupClient, error) ResetBackupClient(ctx context.Context, storeID uint64) (backuppb.BackupClient, error) GetPDClient() pd.Client GetLockResolver() *txnlock.LockResolver Close() }
ClientMgr manages connections needed by backup.
type ProgressUnit ¶
type ProgressUnit string
ProgressUnit represents the unit of progress.
const ( // RangeUnit represents the progress updated counter when a range finished. RangeUnit ProgressUnit = "range" // RegionUnit represents the progress updated counter when a region finished. RegionUnit ProgressUnit = "region" )
Maximum total sleep time(in ms) for kv/cop commands.
type Schemas ¶
type Schemas struct {
// contains filtered or unexported fields
}
Schemas is task for backuping schemas.
func BuildBackupRangeAndSchema ¶
func BuildBackupRangeAndSchema( storage kv.Storage, tableFilter filter.Filter, backupTS uint64, ) ([]rtree.Range, *Schemas, error)
BuildBackupRangeAndSchema gets KV range and schema of tables. KV ranges are separated by Table IDs. Also, KV ranges are separated by Index IDs in the same table.
func (*Schemas) BackupSchemas ¶
func (ss *Schemas) BackupSchemas( ctx context.Context, metaWriter *metautil.MetaWriter, store kv.Storage, statsHandle *handle.Handle, backupTS uint64, concurrency uint, copConcurrency uint, skipChecksum bool, updateCh glue.Progress, ) error
BackupSchemas backups table info, including checksum and stats.