PDA

View Full Version : حرفه ای: مشکل با بک آپ ( backup) گرفتن با smo از کلاینت



saeid69
جمعه 24 تیر 1390, 21:59 عصر
من با این دستورات بک آپ میگیرم و فقط روی همان کامپیوتری که Sql server نصب هست کار میکنه ولی روی کامپیوتر های کلاینت کار نمیکنه.
و ارور backup failed for server میده .
مشکل دیگه ای که است مسیر باید شبکه ای باشد و فایل مستقیم میخواد از سرور بریزه روی کلاینت.
میخواستم بدونم آیا روشی هست که بتونم بک آپ رو از کلاینت بگیرم و مشکل امنیتی وجود نداشته باشه.







public void BackUp(SqlConnection ConnectionStr)
{
string strFileName = string.Empty;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.DefaultExt = "BAK";
string today = new tarikh().today().Replace('/', '-') + "-" + DateTime.Now.ToShortTimeString().Replace(':', '-');
saveFileDialog1.FileName = ConnectionStr.Database + " (" + today + ")";
saveFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
saveFileDialog1.AutoUpgradeEnabled = true;
saveFileDialog1.InitialDirectory = Application.StartupPath;

saveFileDialog1.Title = "پشتیبان گیری از پایگاه داده";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = saveFileDialog1.FileName;
SqlConnection cnn = ConnectionStr;
try
{
cnn.Open();
string DBName = cnn.Database;
cnn.ChangeDatabase("master");
ServerConnection Srvcon = new ServerConnection(cnn);
Server Srv = new Server(Srvcon);
if (cnn.DataSource == ".")
{

}
//' Create <span class="highlight">backup</span> device item for the <span class="highlight">backup</span>
BackupDeviceItem bdi = new BackupDeviceItem("d:\\a.bak", DeviceType.File);
//' Create the restore object
Backup b = new Backup();
b.Devices.Add(bdi);
// 'cnn.Close()
b.Action = BackupActionType.Database;
b.BackupSetDescription = "<span class='highlight'>Backup</span> DataBase";
b.BackupSetName = "d:\\a.bak";
b.Incremental = false;
b.PercentCompleteNotification = 1;
b.FormatMedia = false;
b.Initialize = true;
b.Checksum = true;
b.ContinueAfterError = true;
b.Incremental = false;
b.Database = cnn.Database.ToString();
b.LogTruncation = BackupTruncateLogType.Truncate;
b.SqlBackup(Srv);

MessageBox.Show("پشتیبان گیری از اطلاعات با موفقیت انجام شد.", "پشتیبان", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "پیغام");
}
finally
{
cnn.Close();
}
}
}