PDA

View Full Version : زیپ کردن فایل بکاپ



mohammad2407
جمعه 23 آبان 1393, 13:23 عصر
سلام دوستان من میخوام وقتی بکاپ میگیرم از پایگاه دادم فایل بکاپ من یا ZIP بشه و یا RAR و اسم فایل هم تاریخ روز و ساعت مربوطه باشه

در سایت جستجو کردم ولی هیچ مطلب پیدا نکردم

اگر هم تاپیک بنده تکراری هست و میخواین پاک کنید لطفا لینک آموزش رو قرار بدین

Mr.Csharp
جمعه 23 آبان 1393, 16:15 عصر
این لینک آموزش مربوط به زیپ کردنه :

لینک (http://www.w3-farsi.com/%D9%81%D8%B4%D8%B1%D8%AF%D9%87-%DA%A9%D8%B1%D8%AF%D9%87-%DB%8C%DA%A9-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-zip/)

veniz2008
جمعه 23 آبان 1393, 16:16 عصر
سلام دوستان من میخوام وقتی بکاپ میگیرم از پایگاه دادم فایل بکاپ من یا ZIP بشه و یا RAR و اسم فایل هم تاریخ روز و ساعت مربوطه باشه

در سایت جستجو کردم ولی هیچ مطلب پیدا نکردم

اگر هم تاپیک بنده تکراری هست و میخواین پاک کنید لطفا لینک آموزش رو قرار بدین
سلام.
اگر هدفتون از فشرده سازی با این پسوندها، کمتر کردن حجم فایل پشتیبان هست، خود sql server یک خاصیت کاربردی برای این کار داره که هم فایل پشتیبان رو فشرده تر و کم حجم تر میکنه و هم موقع restore کردن زمان بازیابی اطلاعات کمتر میشه (در این حالت در زمان تهیه پشتیبان و بازیابی اطلاعات، مصرف منابع مخصوصا cpu مقداری افزایش پیدا میکنه که در بین نرم افزارهای فشرده ساز هم وضع به همین منوال هست):

BACKUP DATABASE Northwind TO DISK='C:\TEMP\1.BAK' WITH COMPRESSION
موفق باشید.

mohammad2407
جمعه 23 آبان 1393, 16:30 عصر
از همه دوستان ممنون

هدف من اصلا حجم نیست من فقط میخوام روی تاریخ و ساعت مدیریت داشته باشم البته veniz2008 عزیز مطلب جالب و مفیدی قرار دادن که حتما استفاده میکنم

من میخوام بفهمم آخرین بکاپی که دارم مربطو به چه روزی و چه ساعتی هست من در روز حدود 4 بار بکاپ میگیرم برای همین ساعت و تاریخ بکاپ خیلی برام مهم هست

برای همین میخوام فایل بکاپی که بدست میاد رو فشرده سازی کنم که اسم فایل تاریخ و ساعت باشه

چون نمیتونم اسم فایل بکاپ رو تغییر بدم

اگر میشه راهنمایی کنید

از کد veniz2008 عزیز هم استفاده کردم ولی خطا میده :

try
{
Cursor.Current = Cursors.WaitCursor;
backgroundWorker1.RunWorkerAsync();
SqlConnection sq = new SqlConnection("Data Source=.;Initial Catalog=irankhodro;Integrated Security=True");
// SqlCommand com = new SqlCommand(@"backup database irankhodro to disk='d:\SQLBackup\irankhodro.bak'", sq);
SqlCommand com = new SqlCommand(@"BACKUP DATABASE irankhodro TO DISK='d:\SQLBackup\irankhodro.bak' WITH COMPRESSION", sq);



sq.Open();
com.ExecuteNonQuery();
sq.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}


این هم خطا

125685

hosseinbarnamenevis
جمعه 23 آبان 1393, 17:59 عصر
اینو dll کارتون رو راه میندازه
کار کردن باهاشم راحته
میشه به راحتی پسورد هم گذاشت
Ionic.Zip

hosseinbarnamenevis
جمعه 23 آبان 1393, 18:02 عصر
' Using Ziper As ZipFile = New ZipFile
'Ziper.Password = "passworde shoma"
'Ziper.Encryption = EncryptionAlgorithm.WinZipAes256


'Ziper.AddDirectory(asli)
'Ziper.Save(masir + ".zip")
'End Using

mohammad2407
جمعه 23 آبان 1393, 18:20 عصر
فکر میکنم کد شما VB باشه من برای سی شارپ میخوام

من میخوام کلا در زمانی که دارم بکاپ میگیرم فایل زیپ بشه
نمیخوام اول بکاپ بگیرم و بعد فایل بکاپ رو تبدیل به زیپ کنم

hosseinbarnamenevis
جمعه 23 آبان 1393, 18:34 عصر
tفرق چندانی با c# نمیکنه ها!
نمیشه که!
شما بکاپ رو حتما باید بگیرین. بعدش تبدیل به زیپ کنید.

mohammad2407
جمعه 23 آبان 1393, 19:55 عصر
دوستان لطفا راهنمایی کنید

hosseinbarnamenevis
جمعه 23 آبان 1393, 20:22 عصر
خب منتظر معجزه ای؟
روش بکاپ گیری مشخصه.
روش زیپ کردن هم مشخصه
اول بکاپ گیری بعد زیپش کنین
راهه دیگه ای ندارین

Mahmoud.Afrad
جمعه 23 آبان 1393, 21:34 عصر
میتونی به راحتی اسم فایل بکاپ رو تعیین کنی.

private string GetName()
{
DateTime dt = DateTime.Now;
PersianCalendar pc = new PersianCalendar();
int year = pc.GetYear(dt);
int month = pc.GetMonth(dt);
int day = pc.GetDayOfMonth(dt);
string persianDateTime =
string.Format("Backup Date {0}-{1}-{2} Time {3}", year,
month.ToString("d2"), day.ToString("d2"), dt.ToString("HH-mm-ss"));
return persianDateTime;
}

private void Backup(string destinationPath)
{
using (SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Database1.mdf;Integrated Security=True;Connect Timeout=10"))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
if (con.State != ConnectionState.Open)
con.Open();
cmd.Connection = con;
string dbname = cmd.Connection.Database; //'گرفتن نام کامل دیتابیس
cmd.CommandText = "USE [MASTER] BACKUP DATABASE [" + dbname + "] TO DISK =N'" + destinationPath + ".bak" + "'";
cmd.ExecuteNonQuery();
MessageBox.Show("نسخه پشتیبان با موفقیت ایجاد شد");
}
catch (Exception ex)
{
MessageBox.Show("در تهیه نسخه پشتیبان حطایی رخ داده است\n" + ex.ToString());
}
}
}
}

mohammad2407
جمعه 23 آبان 1393, 21:59 عصر
اقا محمود مگه شما همیشه راهنمایی و کمک کنی

یه سوال الان فایل بکاپ به صورت زیر میشه

مثال

Date 1393-01-02 Time 22-36-20.bak

موقع ریستور کردن دچار مشکل نمیشه

یه سوال دیگه من میخوام کد رو در دکمه بنویسم و محل ذخیره فایل هم با saveFileDialog مشخص کنم چطوری باید مسیر مربوطه رو به destinationPath منتقل کنم

نمیشه فایل بکاپ به صورت RAR باشه با همین الگوریتم