پشتیبان گیری تحت شبکه توسط کلاینت و سرور
یاسلام خدمت دوستان
یه برنامه نوشتم تحت شبکه ،هر کاری می کنم از دیتابیس پشتیبان بگیرم وبازیابی کنم نمی شه وخطا می گیره.
همه تاپیک ها تو این موضوع رو دیدم نتیجه نگرفتم
کلی کد از همین سایت گرفتم تست کردم نمی شه که نمی شه.
کانکشن استرینگ من به این شکله و از sql server 2005 استفاده می کنم
Data Source=192.168.0.1;Initial Catalog=DBFANO;User ID=ali;Password=010203
مسیر پشتیباگیری کلاینت ها وسرور باید کجا باشه؟
آیا کلاینت ها می تونن بازیابی کنن؟
کد پشتیبان گیری و بازیابی توسط سرور و کلاینت ها رو می خوام؟
:خجالت:
اگه یه نمونه بزارید که عالی می شه
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
خطا نمی تونه پشتیبان بگیره
دوستان کمک کنن
خیلی ضروریه؟
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
دوست من سلام:
میشه دقیقا" پیغام خطایی را که دریافت میکنید بنویسید؟
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
کد پشتیبان گیری من:
Shamsi.Shamsi sh = new Shamsi.Shamsi();
string[] m = sh.ShamsiDate().Split('/');
string h = m[0].ToString() + "-" + m[1].ToString() + "-" + m[2].ToString();
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.AddExtension = true;
saveFileDialog.CheckFileExists = false;
saveFileDialog.CheckPathExists = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.FileName = "Backup " + h;
saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
saveFileDialog.DefaultExt = "Bak";
saveFileDialog.RestoreDirectory = true;
saveFileDialog.InitialDirectory = "//192.168.0.1 \\Backup";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=192.168.0.1;Initial Catalog=DBFANO;User ID=ali;Password=010203 ");
SqlConnection.ClearAllPools();
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//گرفتن نام دیتابیس
SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + saveFileDialog.FileName + "' WITH NOFORMAT, NOINIT, NAME = N'DBFANO-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
cmd.Connection = new SqlConnection(@"Data Source=192.168.0.1;Initial Catalog=DBFANO;User ID=ali;Password=010203");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.Refresh();
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
}
catch
{
MessageBox.Show("ايجاد نسخه پشتيبان با خطا مواجه گرديد ", " پيام ", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
}
}
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
سلام.من پارسال یه همچین برنامه ای نوشتم.کلاینت ها نمیتونن نه پشتیبان بگیرن و نه بازیابی کنن.چون قراره یه فایل رو از سرور اطلاعاتش رو بگیرن و بسازن و یا به سرور بفرستن و بازگردانی کنن باید برنامه نویسی تحت شبکه انجام بدی و بتونی امنیت رو طوری تنظیم کنی تا سیستم ها بتونن به منابع هم دسترسی داشته باشن.من نتونستم و دیگه هم کار نکردم..
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
چرا من کلی برنامه دیدم کلاینت ها پشتیبان می گیرن
اگر یه کلاینت با سطح دسترسی مدیر وارد بشه باید بتونه پشتیبان بگیره وبازیابی کنه
مثلا همین کد بالا اگر مسیر پوشه شر شده تو سروز رو. بهش بدی پشتیبان می گیره ولی بازیابی نمی کنه
اساتید کمک کنن :افسرده: :افسرده:
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
باید دوتا سیستم توی شبکه به sharing folder های همدیگه دسترسی داشته باشن
من خودم برای این کار مراحل زیر رو انجام دادم :
به صورت دستی و بدون برنامه نویسی :
هر دوتا سیستم رو به هم شناسوندم هم از طریق ip هم از طریق computer name توی شبکه های workgroup
برنامه نویسی :: برای پشتیبان گیری در کلاینت
1.یک فولدر share میکنی
2.یه درخواست به بانک میفرستی که فایل بک آپ رو توی اون آدرس share ذخیر کنه مثلا client\\sharefolder\db.bak
3.دیگه این مرحله به اختیار خودته که میتونی زیپ کنی یا نه
برنامه نویسی : :بازرسانی اطلاعات
1.باز هم یه فولدر share میکنی
2.اندفعه به سرور میگی فایل db.bak را بخونه و restore کنه
همین.کدهاشم بگردی توی نت هست واسه share کردن
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
میشه کدهاشو بزاری!
خیلی واجبه
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
Private Shared Function GetSecurityDescriptor() As ManagementBaseObject
Dim account As New NTAccount("NT Authority", "Everyone")
Dim sid As SecurityIdentifier = DirectCast(account.Translate(GetType(SecurityIdent ifier)), SecurityIdentifier)
Dim sidArray As Byte() = New Byte(sid.BinaryLength - 1) {}
sid.GetBinaryForm(sidArray, 0)
Dim Trustee As ManagementObject = New ManagementClass(New ManagementPath("Win32_Trustee"), Nothing)
Trustee("Domain") = "NT Authority"
Trustee("Name") = "Everyone"
Trustee("SID") = sidArray
Dim AdminACE As ManagementObject = New ManagementClass(New ManagementPath("Win32_Ace"), Nothing)
AdminACE("AccessMask") = 2032127
AdminACE("AceFlags") = 3
AdminACE("AceType") = 0
AdminACE("Trustee") = Trustee
Dim SecurityDescriptor As ManagementObject = New ManagementClass(New ManagementPath("Win32_SecurityDescriptor"), Nothing)
SecurityDescriptor("ControlFlags") = 4
'SE_DACL_PRESENT
SecurityDescriptor("DACL") = New Object() {AdminACE}
Return SecurityDescriptor
End Function
Private Function ExistShareName(ByVal ShareDirectoryName As String) As Boolean
ShareDirectoryName = ShareDirectoryName.Trim
Dim ManagementClass As New Management.ManagementClass("Win32_Share")
Dim ManagementObjet As Management.ManagementObject
For Each ManagementObjet In ManagementClass.GetInstances()
If ManagementObjet.Properties("Type").Value = &H0 Then
If (ManagementObjet.Properties("Name").Value.ToString () = ShareDirectoryName) Then
Return True
End If
End If
Next ManagementObjet
Return False
End Function
Private Function SetShareDirectory(ByVal SharePath As String, ByVal ShareName As String, ByVal ShareDescription As String) As Boolean
Dim managementClass As New ManagementClass("Win32_Share")
Dim inParams As ManagementBaseObject = managementClass.GetMethodParameters("Create")
inParams("Description") = ShareDescription
inParams("Name") = ShareName
inParams("Path") = SharePath
inParams("Type") = &H0
inParams("MaximumAllowed") = Nothing
inParams("Password") = Nothing
inParams("Access") = GetSecurityDescriptor()
Dim outParams As ManagementBaseObject = managementClass.InvokeMethod("Create", inParams, Nothing)
If Convert.ToUInt32(outParams.Properties("ReturnValue ").Value) <> 0 Then
Return False
Else
Return True
End If
End Function
Private Function UnSetShareDirectory(ByVal ShareName As String) As Boolean
ShareName = ShareName.Trim
If Not ExistShareName(ShareName) Then Return True
Try
Using MyManagementObject As New ManagementObject("root\cimv2", "Win32_Share.Name='" & ShareName & "'", Nothing)
Dim outParams As ManagementBaseObject = MyManagementObject.InvokeMethod("delete", Nothing, Nothing)
'Return CInt(CUInt(outParams.Properties("ReturnValue").Val ue))
Return True
End Using
Catch ex As Exception
Return False
End Try
End Function
واسه share کردنه
برای پارامترهاشو بقیه چیزها توی گوگل بگرد
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
حداقل اگه کاربرای عزیز جواب سوال دوستمونو نمیدونن حداقل از مدیران محترم خواهش میکنم جواب سوال دوستمونو بدن.
این از سوال خیلی کاربرانه. از جمله خود بنده.
مرسی
نقل قول: پشتیبان گیری تحت شبکه توسط کلاینت و سرور
دوستان بیشتر راهنمایی کنن