public static object SpannerCreateBackup( string projectId, string instanceId, string databaseId, string backupId) { // Create the DatabaseAdminClient instance. DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create(); // Initialize request parameters. Backup backup = new Backup { DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId), ExpireTime = DateTime.UtcNow.AddDays(14).ToTimestamp(), VersionTime = DateTime.UtcNow.ToTimestamp(), }; InstanceName parentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId); // Make the CreateBackup request. Operation <Backup, CreateBackupMetadata> response = databaseAdminClient.CreateBackup(parentAsInstanceName, backup, backupId); Console.WriteLine("Waiting for the operation to finish."); // Poll until the returned long-running operation is complete. Operation <Backup, CreateBackupMetadata> completedResponse = response.PollUntilCompleted(); if (completedResponse.IsFaulted) { Console.WriteLine($"Error while creating backup: {completedResponse.Exception}"); return(1); } Console.WriteLine($"Backup created successfully."); // GetBackup to get more information about the created backup. BackupName backupName = BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId); backup = databaseAdminClient.GetBackup(backupName); Console.WriteLine($"Backup {backup.Name} of size {backup.SizeBytes} bytes " + $"was created at {backup.CreateTime} from {backup.Database} " + $"and is in state {backup.State}" + $"and has version time {backup.VersionTime}"); return(0); }
public static object SpannerCancelBackupOperation( string projectId, string instanceId, string databaseId, string backupId) { // Create the DatabaseAdminClient instance. DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create(); // Initialize request parameters. Backup backup = new Backup { DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId), ExpireTime = DateTime.UtcNow.AddDays(14).ToTimestamp() }; InstanceName parentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId); // Make the CreateBackup request. Operation <Backup, CreateBackupMetadata> operation = databaseAdminClient.CreateBackup(parentAsInstanceName, backup, backupId); // Cancel the operation. operation.Cancel(); // Poll until the long-running operation is complete since the backup wasn't // cancelled before it was created. Console.WriteLine("Waiting for the operation to finish."); Operation <Backup, CreateBackupMetadata> completedOperation = operation.PollUntilCompleted(); if (!completedOperation.IsFaulted) { Console.WriteLine("Delete backup because it completed before it could be cancelled."); BackupName backupAsBackupName = BackupName.FromProjectInstanceBackup(projectId, instanceId, backupId); databaseAdminClient.DeleteBackup(backupAsBackupName); } Console.WriteLine($"Create backup operation cancelled: {operation.Name}"); return(0); }