MCPcopy
hub / github.com/wal-g/wal-g / RunOrReuseProxy

Function RunOrReuseProxy

internal/databases/sqlserver/sqlserver.go:553–576  ·  view source on GitHub ↗
(ctx context.Context, cancel context.CancelFunc, folder storage.Folder)

Source from the content-addressed store, hash-verified

551}
552
553func RunOrReuseProxy(ctx context.Context, cancel context.CancelFunc, folder storage.Folder) (*LockWrapper, error) {
554 bs, err := blob.NewServer(folder)
555 if err != nil {
556 return nil, xerrors.Errorf("proxy create error: %v", err)
557 }
558 reuse, _, err := conf.GetBoolSetting(conf.SQLServerReuseProxy)
559 if err != nil {
560 return nil, err
561 }
562 if reuse {
563 return &LockWrapper{nil}, bs.WaitReady(ctx, blob.ProxyStartTimeout)
564 }
565 lock, err := bs.AcquireLock()
566 if err != nil {
567 return nil, err
568 }
569
570 err = bs.RunBackground(ctx, cancel)
571 if err != nil {
572 tracelog.ErrorLogger.PrintOnError(lock.Close())
573 return nil, xerrors.Errorf("proxy run error: %v", err)
574 }
575 return &LockWrapper{lock}, nil
576}
577
578func GetDBRestoreLSN(db *sql.DB, databaseName string) (string, error) {
579 query := `SELECT MAX(redo_start_lsn)

Callers 6

HandleLogPushFunction · 0.85
HandleBackupRestoreFunction · 0.85
HandleBackupImportFunction · 0.85
HandleBackupExportFunction · 0.85
HandleBackupPushFunction · 0.85
HandleLogRestoreFunction · 0.85

Calls 6

WaitReadyMethod · 0.95
AcquireLockMethod · 0.95
RunBackgroundMethod · 0.95
NewServerFunction · 0.92
ErrorfMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected