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

Function HandleLogPush

internal/databases/sqlserver/log_push_handler.go:17–45  ·  view source on GitHub ↗
(dbnames []string, norecovery bool)

Source from the content-addressed store, hash-verified

15)
16
17func HandleLogPush(dbnames []string, norecovery bool) {
18 ctx, cancel := context.WithCancel(context.Background())
19 signalHandler := utility.NewSignalHandler(ctx, cancel, []os.Signal{syscall.SIGINT, syscall.SIGTERM})
20 defer func() { _ = signalHandler.Close() }()
21
22 folder, err := internal.ConfigureStorage()
23 tracelog.ErrorLogger.FatalOnError(err)
24
25 db, err := getSQLServerConnection()
26 tracelog.ErrorLogger.FatalfOnError("failed to connect to SQLServer: %v", err)
27
28 dbnames, err = getDatabasesToBackup(db, dbnames)
29 tracelog.ErrorLogger.FatalOnError(err)
30
31 tracelog.ErrorLogger.FatalfOnError("failed to list databases to backup: %v", err)
32
33 lock, err := RunOrReuseProxy(ctx, cancel, folder.RootFolder())
34 tracelog.ErrorLogger.FatalOnError(err)
35 defer lock.Close()
36
37 builtinCompression := blob.UseBuiltinCompression()
38 logBackupName := generateLogBackupName()
39 err = runParallel(func(i int) error {
40 return backupSingleLog(ctx, db, logBackupName, dbnames[i], builtinCompression, norecovery)
41 }, len(dbnames), getDBConcurrency())
42 tracelog.ErrorLogger.FatalfOnError("overall log backup failed: %v", err)
43
44 tracelog.InfoLogger.Printf("log backup finished")
45}
46
47func backupSingleLog(ctx context.Context, db *sql.DB, backupName string, dbname string, builtinCompression bool, noRecovery bool) error {
48 baseURL := getLogBackupURL(backupName, dbname)

Callers 1

log_push.goFile · 0.92

Calls 14

CloseMethod · 0.95
NewSignalHandlerFunction · 0.92
ConfigureStorageFunction · 0.92
UseBuiltinCompressionFunction · 0.92
getSQLServerConnectionFunction · 0.85
getDatabasesToBackupFunction · 0.85
RunOrReuseProxyFunction · 0.85
generateLogBackupNameFunction · 0.85
runParallelFunction · 0.85
backupSingleLogFunction · 0.85
getDBConcurrencyFunction · 0.85
FatalOnErrorMethod · 0.80

Tested by

no test coverage detected