public void BackupRestore_A_Backup02StreamingTest() { if (GetServerVersion() < new Version("2.5.0.0")) { Assert.Inconclusive("Not supported on this version."); return; } FbStreamingBackup backupSvc = new FbStreamingBackup(); var backupLength = default(long); using (var ms = new MemoryStream()) { backupSvc.ConnectionString = BuildServicesConnectionString(); backupSvc.Options = FbBackupFlags.IgnoreLimbo; backupSvc.OutputStream = ms; backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput); backupSvc.Execute(); backupLength = ms.Length; } Assert.Greater(backupLength, 0); // suppose the "previous" test is done and the file is somewhere var backup = GetBackupRestoreFullPath(); Assert.IsNotNull(backup); Assert.AreEqual(new FileInfo(backup).Length, backupLength); }
private void StreamingBackupRestoreTest_BackupPart(MemoryStream buffer) { FbStreamingBackup backupSvc = new FbStreamingBackup(); backupSvc.ConnectionString = BuildServicesConnectionString(FbServerType); backupSvc.Options = FbBackupFlags.IgnoreLimbo; backupSvc.OutputStream = buffer; backupSvc.ServiceOutput += new EventHandler <ServiceOutputEventArgs>(ServiceOutput); backupSvc.Execute(); }
private void StreamingBackupRestoreTest_BackupPart(MemoryStream buffer) { var backupSvc = new FbStreamingBackup(); backupSvc.ConnectionString = BuildServicesConnectionString(FbServerType, Compression, true); backupSvc.Options = FbBackupFlags.IgnoreLimbo; backupSvc.OutputStream = buffer; backupSvc.ServiceOutput += ServiceOutput; backupSvc.Execute(); }
public async Task StreamingBackupRestoreTest(bool verbose) { if (!EnsureServerVersion(new Version(2, 5, 0, 0))) { return; } Task BackupPart(MemoryStream buffer) { var backupSvc = new FbStreamingBackup(); backupSvc.ConnectionString = BuildServicesConnectionString(ServerType, Compression, WireCrypt, true); backupSvc.Options = FbBackupFlags.IgnoreLimbo; backupSvc.OutputStream = buffer; backupSvc.ServiceOutput += ServiceOutput; return(backupSvc.ExecuteAsync()); } Task RestorePart(MemoryStream buffer, bool verbose) { var restoreSvc = new FbStreamingRestore(); restoreSvc.ConnectionString = BuildServicesConnectionString(ServerType, Compression, WireCrypt, true); restoreSvc.Options = FbRestoreFlags.Create | FbRestoreFlags.Replace; restoreSvc.PageSize = FbTestsSetup.PageSize; restoreSvc.Verbose = verbose; restoreSvc.InputStream = buffer; restoreSvc.ServiceOutput += ServiceOutput; return(restoreSvc.ExecuteAsync()); } await Connection.OpenAsync(); await using (var cmd = Connection.CreateCommand()) { cmd.CommandText = "create table dummy_data (foo varchar(1000) primary key)"; await cmd.ExecuteNonQueryAsync(); } await using (var cmd = Connection.CreateCommand()) { cmd.CommandText = @"execute block as declare cnt int; begin cnt = 199999; while (cnt > 0) do begin insert into dummy_data values (uuid_to_char(gen_uuid())); cnt = cnt - 1; end end"; await cmd.ExecuteNonQueryAsync(); } await Connection.CloseAsync(); using (var ms = new MemoryStream()) { await BackupPart(ms); ms.Position = 0; await RestorePart(ms, verbose); // test the database was actually restored fine await Connection.OpenAsync(); await Connection.CloseAsync(); } await Connection.OpenAsync(); using (var cmd = Connection.CreateCommand()) { cmd.CommandText = "drop table dummy_data"; await cmd.ExecuteNonQueryAsync(); } await Connection.CloseAsync(); }