public static void SetupMirroring(DatabaseInitializerParams param) { if (!string.IsNullOrEmpty(param.MirroringSharedFolder)) { Console.WriteLine("Add Mirroring on the new Database ..."); var creatorDb = new DatabaseCreator(); Console.WriteLine("MirroringSharedFolder :" + param.MirroringSharedFolder); var backupFolder = Path.Combine(param.MirroringSharedFolder, param.CompanyName + DateTime.Now.ToString("dd-MM-yyyy_hh-mm-ss")); Directory.CreateDirectory(backupFolder); creatorDb.InitMirroring(param.MasterConnectionString, param.CompanyName); var mirrorDbExist = creatorDb.DatabaseExists(param.MirrorMasterConnectionString, param.CompanyName); if (mirrorDbExist) { Console.WriteLine("Deleting existing mirroring db..."); creatorDb.DropDatabase(param.MirrorMasterConnectionString, param.CompanyName, false); } Console.WriteLine("Backup for mirroring..."); creatorDb.BackupDatabase(param.MasterConnectionString, backupFolder, param.CompanyName); Console.WriteLine("Restoring mirroring backup..."); creatorDb.RestoreDatabase(param.MirrorMasterConnectionString, backupFolder, param.CompanyName); Console.WriteLine("Set Mirroring Partner..."); creatorDb.SetMirroringPartner(param.MirrorMasterConnectionString, param.CompanyName, param.MirroringMirrorPartner); Console.WriteLine("Complete Mirroring..."); creatorDb.CompleteMirroring(param.MasterConnectionString, param.CompanyName, param.MirroringPrincipalPartner, param.MirroringWitness); Console.WriteLine("Mirroring Completed."); } }