صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 55

نام تاپیک: حل مشکل پشتیبان گیری و بازیابی برای همیشه

  1. #1
    کاربر دائمی آواتار mohammad-gh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    باغ شهر آذربايجان (مراغه)
    پست
    671

    حل مشکل پشتیبان گیری و بازیابی برای همیشه

    با سلام ، ابتدا باید عرض کنم که این تاپیک بعد از جستجوی کامل سایت ایجاد شده

    من در برنامه ام می خواهم بدون اینکه تنظیماتی روی Sql 2000 انجام شود از بانکم پشتیبان گیری کنم.
    راههای زیادی در سایت پیشنهاد شده که عملی ترین آنها نیاز به این داره که یک نفر کاربلد و آشنا به sql تنظیماتی را در آن ایجاد کند .تازه اگر قرار است برنامه از طریق install و بدون دسترسی به entrprice Maneger انجام شود نمی دانم چه طوری عملی است.

    به هر حال من این نوع پشتیبان گیری را در برنامه حسابداری هلو دیدم که شامل امکانات زیر است :
    1- وقتی دکمه پشتیبان گیری زده میشه از کاربر سوال می کنه کجا ذخیره کنم و کاربر با مشخص کردن جا شروع به پشتیبان گیری می شود.
    2- این فایلها به صورت زیپ یا کددار هستند.
    3- موقع بازگرداندن هم با انتخاب همان فایل کا تمام میشود.
    ---------------------------------------------------
    برنامه من در VS2005 و بانکم با sql2000 است.
    امیدوارم در پایان این بحث کلمه حل شده را مقابل تاپیک ببینیم.

  2. #2
    سلام دوست عزیز
    برای پشتیبان گیری می تونی یه پروسیجر بنویسی و مسیر رو بهش پاس بدی و از کامپوننت ها هم برای فشرده سازی استفاده کنی و..
    اما برای بازیابی اطلاعات میتونی فایل پشتیبان را از حالت زیب خارج کنی(با همان کامپوننتی که استفاده کردی) و بعد مسیر فایل رو به یه پروسیجر دیگه که برای بازیابی هست بفرستی
    اما مشکلبیشتر زمانی هست که می خوای بازیابی کنی و بهت پیغام می ده که یک کاربر داره از بانک استفاده می کنه و.. که اونم باید use master رو اول sp بنویسی و بعد همه کاربرای بانکی رو که می خوای برگردانی رو از بین ببری و بعد پشتیبان بگیری که من موقع بازیابی کمی مشکل دارم (همین بانک داره استفاده می شه و..)
    برای دیدن پروسیجر ها هم کلمه backup رو در قسمت sql همین سایت جستجو کن
    موفق باشی

  3. #3
    کاربر دائمی آواتار mohammad-gh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    باغ شهر آذربايجان (مراغه)
    پست
    671
    ابتدا از توجه شما متشکرم
    اما:
    من در بخش sql کدی که بشود از داخل vs2005 برای پشتیبان گیری استفاده کرد و بدون نیاز به دستکاری در sql باشد پیدا نکردم.
    اگر ممکن است بیشتر توضیح بدید

  4. #4
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    سلام دوست عزیز کارهایی که بهشون اشاره کردی (برنامه حسابداری هلو) کد نویسی بسیار ساده ای داره . در واقع یکی از ویژگیهای جدید .Net این اجازه رو به برنامه نویس میده که بدون استفاده از توابع Sql و تنها با اضافه کردن چند رفرنس و اجرای فانکشهای از پیش تعریف شده اونها ، اعمال مورد نظر رو انجام بده .
    مراحل انجام کار رو برات توضیح میدم .
    ابتدا رفرنس های زیر رو به برنامتون اضافه کنید :
    Microsoft.SqlServer.Smo
    Microsoft.SqlServer.ConnectionInfo
    بعد nameSpace های زیر رو به صورت زیر به کلاستون Import کنید :
    Imports System.Data.SqlClient
    Imports Microsoft.SqlServer.Management.Smo
    Imports Microsoft.SqlServer.Management.Common

    کد زیر رو برای گرفتن پشتیبان از دیتابیس استفاده کنید.
     Public Shared Sub BackupDatabase(ByVal ConnectionStr As String, ByVal DevicePath As String)
    Dim DataName As String="DataBaseName.bak"
    Using cnn As New SqlConnection(ConnectionStr)
    cnn.Open()
    Dim Srvcon As New ServerConnection(cnn)
    Dim Srv As New Server(Srvcon)
    ' Create backup device item for the backup
    Dim bdi As New BackupDeviceItem(DevicePath & DataName, DeviceType.File)
    ' Create the backup informaton
    Dim Backup As New Backup
    Backup.Devices.Add(bdi)

    With Backup
    'Type Of Backup
    .Action = BackupActionType.Database
    .BackupSetDescription = "Backup DataBase"
    .BackupSetName = "DB"
    .Database = cnn.Database.ToString()
    .LogTruncation = BackupTruncateLogType.Truncate
    'Backup.ExpirationDate = New DateTime(2007, 5, 1)
    ' Run the backup
    .SqlBackup(Srv)
    End With
    End Using
    End Sub

    پارامترهای این رویه شامل کانکشن استرینگ که رشته مربوط به اتصال به دیتابیس رو مشخص میکنه و Device Path که مسیر ذخیره بانک اطلاعاتی رو مشخص میکنه هست . شما میتونید با استفاده از یک SaveFileDialog این مسیر رو از کاربر دریافت کنید .
    متغییر DataName نام فایل پشتیبان رو مشخص میکنه که پسوند اون bak است.
    تا اینجا مربوط به پشتیبان گیری بود. برای انجام عمل restore از رویه زیر استفاده کنید.:
    Public Shared Sub RestoreBackup(ByVal ConnectionStr As String, ByVal DevicePath As String)
    Using cnn As New SqlConnection(ConnectionStr)
    cnn.Open()
    Dim DBName As String = cnn.Database
    cnn.ChangeDatabase("master")
    Dim Srvcon As New ServerConnection(cnn)
    Dim Srv As New Server(Srvcon)
    ' Create backup device item for the backup
    Dim bdi As New BackupDeviceItem(DevicePath, DeviceType.File)
    ' Create the restore object
    Dim Restore As New Restore()
    'cnn.Close()
    With Restore
    .Devices.Add(bdi)
    .NoRecovery = False
    .ReplaceDatabase = True
    .Database = DataBaseName.bak
    ' Restore the database
    Srv.KillAllProcesses(DBName) 'Important Code For Remove All Processes
    .SqlRestore(Srv)
    End With
    End Using
    End Sub


    پارامترها مانند قبلند با این تفاوت که Device Path در اینجا شامل مسیر ونام بانک اطلاعاتی است که میتوان با استفاده از OpenFileDialog آن را از کاربر دریافت نمود . متد ChangeDatabase نیز باعث میشه مشکلی که جناب rezaei manesh بهش اشاره کردن پیش نیاد . برای اطمینان بیشتر متد KillAllProcesses رو هم استفاده کنید .
    لازم به ذکر است که این روش رو خودم بارها پیاده سازی کردم وکاملا هم جواب داده . اگه جایی مشکل پیدا کردی مطرح کن .
    آخرین ویرایش به وسیله Sub Zero : دوشنبه 16 اردیبهشت 1387 در 11:18 صبح

  5. #5
    سلام جناب sub zero
    دست تان درد نکنه من از این روش استفاده نمی کردم من از پروسیجر هایی که تو دات نت می سازم استفاده می کنم و.. اما روش شما رو هم دست می کنم فکر کنم بهتر و کم دردسر تر باشه
    حالا اگه می شه راهنمایی کنید که اگه بخوایم این پشتیبان گیری رو از سمت کلاینت انجام بدیم
    چه مواردی رو باید رعایت کنیم
    1.دادن مسیر شبکه ای
    2. دادن سطوح دسترسی مورد نیاز
    3.و...

  6. #6
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    اگه بخوایم این پشتیبان گیری رو از سمت کلاینت انجام بدیم
    چه مواردی رو باید رعایت کنیم
    تنها چیز عجیبی که در این مورد باهاش مواجه شدم این بود که اگر مسیر ماشین پشتیبان گیری (BackupDeviceItem) یه کم طولانی میشد پیغام Failed Backup یا Failed Restore میداد . البته این مشکل فقط در کامپیوتر شرکت که به شبکه وصل بود پیش می یومد . توی کامپیوتر خونه همچین مشکلی نبود . شما هم تست کنید و نتیجه رو به من اطلاع بدید .

  7. #7
    کاربر دائمی آواتار mohammad-gh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    باغ شهر آذربايجان (مراغه)
    پست
    671
    می خواهم قبل ار هر چیز از sub zero عزیز تشکر کنم ، کد شما بسیار کارآمد و زیبا بود.

    اما حیفم می آید حالا که بحث به این خوبی پیش رفته این رو نپرسم.

    به نظر شما بهترین روش zip کردن یا کد دار کردن فایل Backup در vs20005 چیه؟
    البته من شنیده ام که vb.net یه ابزار برای این کار داره که فقط هم با خود این ابزار فایل از حالت فشرده در می اید، که البته این خود یک مزیت هم است.

  8. #8
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط mohammad-gh مشاهده تاپیک
    می خواهم قبل ار هر چیز از sub zero عزیز تشکر کنم ، کد شما بسیار کارآمد و زیبا بود.

    اما حیفم می آید حالا که بحث به این خوبی پیش رفته این رو نپرسم.

    به نظر شما بهترین روش zip کردن یا کد دار کردن فایل Backup در vs20005 چیه؟
    البته من شنیده ام که vb.net یه ابزار برای این کار داره که فقط هم با خود این ابزار فایل از حالت فشرده در می اید، که البته این خود یک مزیت هم است.
    کلاس های موجود در این فضا به شما کمک خواهند کرد،فایل ها فشرده شده ، این کلاس ها از استاندارهای تعریف شده در RFC 1951 http://www.faqs.org/rfcs/rfc1951.html
    استفاده می کنند و تقریبا نرم افزارهای فشرده سازی با این فایلها کار می کنند ادامه توضیحات MSDN

    The System.IO.Compression namespace contains classes that provide basic compression and decompression services for streams.
    Classes
    Class Description
    DeflateStream Provides methods and properties for compressing and decompressing streams using the Deflate algorithm.
    GZipStream Provides methods and properties used to compress and decompress streams.
    Enumerations
    Enumeration Description
    CompressionMode Specifies whether to compress or decompress the underlying stream.

  9. #9
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    به نظر شما بهترین روش zip کردن یا کد دار کردن فایل Backup در vs20005 چیه؟
    بهترین روش از نظر هر کسی یه چیزیه .روشی که من ازش استفاده میکنم به این شکله :
    اگه برنامه WinRar رو نصب کرده باشید در محل نصب برنامه فایلی با نام Rar.exe وجود داره این فایل دارای قابلیتهای زیادیه . من این فایل رو در کنار برنامم کپی میکنم و با استفاده از سویچهای این فایل عمل فشرده سازی رو انجام میدم . مثال :
    Using Prs As New Process
    Dim SynName As String = Path.GetFileNameWithoutExtension(DataName)
    With Prs
    .StartInfo.WorkingDirectory = "Synch"
    .StartInfo.Arguments = String.Format("a SynDB_{0}.syn -df", DataName)
    .StartInfo.FileName = "Rar.exe"
    .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    End With
    Prs.Start()
    End Using

    این کد باعث میشه فایل Rar.exe که در پوشه Synch در کنار فایل EXE برنامم قرار داره اجرا بشه .
    دستور a برای ایجاد آرشیو استفاده میشه
    سوئیچ df باعث میشه بعد از ایجاد ارشیو (عمل فشرده سازی) فایل اصلی پاک بشه
    این فایل برای Encrypt کردن فایلهای دیگه قابلیتهای زیادی داره مثلا با Switch -HP میتونید دیتا رو انکریپت کنید یا با Switch -P برای دیتا رمز بزارید .
    جهت اطلاعات بیشتر به راهنمای برنامه قسمت command Line Mode مراجعه کنید .

  10. #10
    کاربر دائمی آواتار mohammad-gh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    باغ شهر آذربايجان (مراغه)
    پست
    671
    من از کد و کلاس زیر برای فشرده سازی و رمز دار کردن فایل backup استفاده کردم امیدوارم مفید واقع شود.

    '-----------------compress file and code -----------
    Dim filename AsString
    filename = sfd.FileName + ".bak"
    Try
    _ZipUtility.CompressFile(filename, sfd.FileName)

    Catch ex As Exception
    MessageBox.Show(
    "There was an error compressing the file" & vbCrLf & ex.Message, "Compression Sample", MessageBoxButtons.OK, MessageBoxIcon.Error)
    EndTry

    که در آن sfd نام فایل بک آپ است که از savefiledialog خوانده می شود.
    البته در ادامه با این کد فایل اصلی را نیز حذف می کنیم.

    File.Delete(filename)

    این هم برای خارج گردن از حالت فشرده

    Dim filename AsString
    filename = ofd.FileName + ".bak"
    Try
    _ZipUtility.DecompressFile(ofd.FileName, filename)
    Catch ex As Exception
    MessageBox.Show(
    "There was an error compressing the file" & vbCrLf & ex.Message, "Compression Sample", MessageBoxButtons.OK, MessageBoxIcon.Error)
    EndTry
    که اینبار ofd نام فایل است که از openfiledialog خوانده می شود.
    فایل کلاس را هم ضمیمه کردم
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی آواتار elmira_63
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    40
    پست
    324

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    این رفرنس هایی که گفته بودید به برنامه اضافه کنم رو توی قسمت add refrence رفتم ولی نداشتم ؟؟؟؟؟
    sql هم درست نصب کردم !!!!!
    این رفرنس هارو از کجا باید بیارم؟؟

  12. #12
    کاربر دائمی آواتار touraj
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    341

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط elmira_63 مشاهده تاپیک
    این رفرنس هایی که گفته بودید به برنامه اضافه کنم رو توی قسمت add refrence رفتم ولی نداشتم ؟؟؟؟؟
    sql هم درست نصب کردم !!!!!
    این رفرنس هارو از کجا باید بیارم؟؟
    برو به این فولدر:
    C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies folder

    dll های زیر رو به برنامه اضافه کن:

    Microsoft.SqlServer.ConnectionInfo.dll
    Microsoft.SqlServer.Smo.dll
    Microsoft.SqlServer.SqlEnum.dll
    Microsoft.SqlServer.SmoEnum.dll

  13. #13
    کاربر دائمی آواتار elmira_63
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    40
    پست
    324

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    ممنون از راهنماییتون ولی توی این آدرسی که گفتید من فولدر assembelies folder رو ندارم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    یعنی sql رو درست نصب نکردم ؟؟؟

  14. #14
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط elmira_63 مشاهده تاپیک
    ممنون از راهنماییتون ولی توی این آدرسی که گفتید من فولدر assembelies folder رو ندارم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    یعنی sql رو درست نصب نکردم ؟؟؟
    C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies

    folder آخرش نيست

  15. #15
    کاربر دائمی آواتار elmira_63
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    40
    پست
    324

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    خب همون assembelies هم نیست توی فلدر sdk یه فلدر به نام include و یه فلدر به نام lib

  16. #16
    کاربر دائمی آواتار touraj
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    341

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط elmira_63 مشاهده تاپیک
    خب همون assembelies هم نیست توی فلدر sdk یه فلدر به نام include و یه فلدر به نام lib
    از کدوم ورژن SQL استفاده می کنی؟

  17. #17

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    تنها چیز عجیبی که در این مورد باهاش مواجه شدم این بود که اگر مسیر ماشین پشتیبان گیری (BackupDeviceItem) یه کم طولانی میشد پیغام Failed Backup یا Failed Restore میداد . البته این مشکل فقط در کامپیوتر شرکت که به شبکه وصل بود پیش می یومد . توی کامپیوتر خونه همچین مشکلی نبود . شما هم تست کنید و نتیجه رو به من اطلاع بدید .
    درسته...
    این پیغامشه:
    Restore failed for Server '...'.

  18. #18
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام. ببخشید من نتونستم Microsoft.SqlServer.Management.Common رو Add کنم ، توی لیست NET. و Common پنجره Add Reference هم نبود . چیکار کنم؟؟

  19. #19
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام جناب SubZero
    من پروسه Backup و Restore شما رو توی VS2005 اجرا کردم و مشکلم حل شد، اما یه نرم افزار هم روی VS2003 دارم که می خوام این کد ها رو به اون هم اضافه کنم ، اما موقع Add Reference فایل های DLL ای که گفتین ، این Error رو نمایش میده و میگه نمی شه Add کنم. چرا؟
    عکس های ضمیمه عکس های ضمیمه

  20. #20
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    کسی نیست این سوال من رو جواب بده؟

  21. #21
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نمی تونم جواب قطعی بدم اما احتمال میدم به این خاطر باشه که رفرنسهایی که میخواید اضافه کنید تنها با .Net Framwork 2 به بالا سازگاری داره . مثل این میمونه که شما بخواید یه برنامه که با 2005 نوشتید رو با 2003 باز کنید .
    پیشنهاد : متن کامل خطا رو در گوگل سرچ کنید.

  22. #22
    کاربر دائمی آواتار parsavb
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    جلوي کامپيوتر
    پست
    210

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    ببخشید فضولی من گل کرده ، چرا از این dll استفاده نمی کنید هم راحت تره و هم اینکه با نسخه های مختلف مشکلی نداره
    Microsoft SQLDMO Object Library 8.5
    یه نمونه از کار با اون رو تو اینجا گذاشتم
    https://barnamenevis.org/showthread.php?t=110043

  23. #23

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    بهترین روش از نظر هر کسی یه چیزیه .روشی که من ازش استفاده میکنم به این شکله :
    اگه برنامه WinRar رو نصب کرده باشید در محل نصب برنامه فایلی با نام Rar.exe وجود داره این فایل دارای قابلیتهای زیادیه . من این فایل رو در کنار برنامم کپی میکنم و با استفاده از سویچهای این فایل عمل فشرده سازی رو انجام میدم . مثال :
    Using Prs As New Process
    Dim SynName As String = Path.GetFileNameWithoutExtension(DataName)
    With Prs
    .StartInfo.WorkingDirectory = "Synch"
    .StartInfo.Arguments = String.Format("a SynDB_{0}.syn -df", DataName)
    .StartInfo.FileName = "Rar.exe"
    .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    End With
    Prs.Start()
    End Using

    این کد باعث میشه فایل Rar.exe که در پوشه Synch در کنار فایل EXE برنامم قرار داره اجرا بشه .
    دستور a برای ایجاد آرشیو استفاده میشه
    سوئیچ df باعث میشه بعد از ایجاد ارشیو (عمل فشرده سازی) فایل اصلی پاک بشه
    این فایل برای Encrypt کردن فایلهای دیگه قابلیتهای زیادی داره مثلا با Switch -HP میتونید دیتا رو انکریپت کنید یا با Switch -P برای دیتا رمز بزارید .
    جهت اطلاعات بیشتر به راهنمای برنامه قسمت command Line Mode مراجعه کنید .
    سلام
    آقا این کد شما درست کار نمی کنه خطا هم نمی ده؟!
    چند تا مشکل :
    آدرس مبدا و منبا رو قید نکردی نام فایل رو در یک متغیر ریختی اما ازش استفاده نکردی؟!
    در کل کد بالا کامل نیست؟
    help رو هم خوندم اما دقیقا سر در نیاوردم
    ببینید من فشرده سازی را با متد های دات نت انجام داددم از 1.6m اورد به 224k و همونو با winrar در ویندوز انجام دادم اومد 127k بخاطر همین می خوام با winrar فشرده کنم و...

  24. #24
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

     Shared Sub Compress()
    Using Prs As New Process
    Dim SynName As String = Path.GetFileNameWithoutExtension(DataName)
    With Prs
    .StartInfo.WorkingDirectory = "Synch"
    .StartInfo.Arguments = String.Format("a SynDB_{0}.syn {1} -df", SynName, DataName)
    .StartInfo.FileName = "Compress.exe"
    .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    End With
    Prs.Start()
    End Using
    End Sub

    اینم کد درستش .
    منظور از SynDB_{0}.syn نام فایلی که در مقصد ایجاد میشه که من به دلخواه خودم پسوند اونو Syn گذاشتم تا توسط ویندوز شناخته نشه DataName هم نام و مسیر فایل مبدا هست .

  25. #25

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    ممنون
    این فکر کنم که مشکل رو حل کنه

  26. #26

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    با سلام
    من از کد شما استفاده کردم و کمی با تغییر اون همونی شد که من می خواستم و کلا حالا برای فشرده کردن هر کاری بخوام با این کد ها می کنم که خیلی عالی هستش
    اما حالا می مونه خارج کردن فایل ها از حالت فشرده توسط کد یعنی می خوام وقتی طرف فایلی رو انتخاب می کنه اگه فشرده باشه خودم از اون حالت خارج کنم و بعد بازیابی رو انجام بدم
    نتونسم سوئیچ هایی رو که مربوط به unzip هست رو پیدا کنم؟
    ممنون می شم که راهنمایی کنید
    آخرین ویرایش به وسیله rezaei manesh : سه شنبه 18 تیر 1387 در 11:15 صبح

  27. #27
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    با عرض معذرت به خاطر تاخیر چند روزه .
    از کد زیر برای UnZip استفاده کردم .:
    Using Prs As New Process
    Dim SynName As String = Path.GetFileName(PathZip)
    With Prs
    .StartInfo.WorkingDirectory = Path.GetDirectoryName(PathZip)
    .StartInfo.Arguments = String.Format("X {0} *.bak Dest", SynName)
    .StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    .StartInfo.FileName = String.Format("{0}\Synch\Compress.exe", My.Application.Info.DirectoryPath)
    End With
    Prs.Start()
    End Using

    فکر کنم همه چی مشخص باشه فقط PathDB كه مسير فايل فشرده رو مشخص میکنه . و اینکه bak.* مشخص ميكنه فقط فایلهای با این پسوند ازفایل استخراج بشن
    آخرین ویرایش به وسیله Sub Zero : دوشنبه 07 مرداد 1387 در 14:28 عصر

  28. #28

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    آقا دستت درد نکنه
    فقیط یه سوال Compress.exe چیه که قبلا هم نوشته بودی که من winrar.exeنوشتم چرا از این استفاده می کنی شما؟

  29. #29
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    فقیط یه سوال Compress.exe چیه که قبلا هم نوشته بودی که من winrar.exeنوشتم چرا از این استفاده می کنی شما؟
    فايليه كه در محل نصب برنامه Winrar با نام Rar.exe وجود داره و فقط به صورت CommandLine میشه باهاش کار کرد.

  30. #30

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط hamed-p مشاهده تاپیک
    درسته...
    این پیغامشه:
    Restore failed for Server '...'.
    من هم این مشکل را دارم (توی کامپیوتر خونه) . راه حل ؟

  31. #31

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    آقا مصطفی من هنوز نتونستم unzipکنم
    کد شما خطا داد و جای Compress من rar.exe نوشتم اما دیگه خطا نداد اما هیچ کاری هم انجام نمی شه؟
    چرا فکر می کنید مشکل از کجاست
    شما این کد رو تست کردید؟
    اگه می شه کد بالا رو با ادرس دهی مستقیم بنویسید تا من ببینم مشکل از پارامترهای ورودی من نباشه
    ممنون

  32. #32
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    من که گفتم از این کد بارها استفاده کردم .راهنماش هم اینو نوشته :
    ---------------------
    Command X - extract files from an archive with full paths


    --------------------------------------------------------------------------------


    Extract files and folder with full paths. The folder structure, saved in the archive, is completely restored. This is the command line equivalent of the archive management command Extract.

    In a similar manner as command e this command can extract files both to the current folder and to a specified folder.

    For example, command:

    WinRAR x Fonts *.ttf

    will extract *.ttf files from the archive Fonts to the current folder, but the command:

    WinRAR x Fonts *.ttf NewFonts\

    will extract *.ttf files from the archive Fonts to the folder NewFonts

    You need to use the trailing backslash as in the example above for denoting the destination folder

  33. #33

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    تمام مشکلات Restore سر این یه خطه کده :

    SqlConnection.ClearAllPools()


    اینم نمونه کد

    Dim strSourcePath As String = Txt_SourcePath.Text + "\myDbBackUp.bak"
    Dim strData As String = txt_desPath.Text.Trim + "\myDb_Data.mdf"
    Dim strLog As String = txt_desPath.Text.Trim + "\myDb_Data.ldf"
    Dim strsql As String = "RESTORE DATABASE TaxiService FROM DISK = '" & strSourcePath & "' " & _
    " With Move 'myDbData_Data' TO '" & strData & "', " & _
    " Move'myDBData_log' TO '" & strLog & "'"

    'Exit Sub
    Dim servername As String = "."
    Dim db_UserName As String = "sa"
    Dim db_Userpass As String = "123456"

    Dim StrConn As String = "Server=" & servername & ";Database=Master;User ID=" & db_UserName & " ; Password=" & db_Userpass & ";"
    Dim cnn As New SqlConnection(StrConn)

    Dim cmdDetach As New SqlCommand("EXEC sp_detach_db 'myDb', 'true'", cnn)
    Dim cmdRestore As New SqlCommand(strsql, cnn)

    Try
    SqlConnection.ClearAllPools()

    cnn.Open()

    cmdDetach.ExecuteNonQuery()
    cmdRestore.ExecuteNonQuery()


    Catch ex As Exception


    MsgBox(ex.Message)

    Finally
    If (Not cmdRestore Is Nothing) Then cmdRestore.Dispose()
    If (Not cmdDetach Is Nothing) Then cmdDetach.Dispose()
    If cnn.State <> ConnectionState.Closed Then cnn.Dispose()
    End Try


    مشکل من که حل شد امیدوارم مشکل شما هم بااین کد حل بشه .
    نیازی هم به dll هایی که دوستان گفتند نداره.

    موفق باشید

  34. #34

    Question نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط hamed-p مشاهده تاپیک
    درسته...
    این پیغامشه:
    Restore failed for Server '...'.
    سلام دوستان یه چیز جالب ربطی به طولانی بودن مسیر نداره مشکل باید جایه دیگه باشه
    من همین کد رو در یک برنامه با sql2000 تست کردم مشکلی نبود اما همون کد رو با اس کیو ال2005 تست کردم در بعضی از مسیر ها همین خطا رو می داد مثل مسیر دسکتاپ من (C:\Documents and Settings\Hamed\Desktop\) ویا مسیر ریشه یک درایو مثل(c:/) هم همین مشکل رو دارد اما در مسیر زیر کار می کند c:\bk
    فکر کنم یک اشکالی در sql2005 باشه نسخه 2005 من استاندارد ادیشن هست
    آخرین ویرایش به وسیله rezaei manesh : پنج شنبه 31 مرداد 1387 در 12:20 عصر

  35. #35
    کاربر دائمی آواتار jas1387
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مرکز ایران
    پست
    326

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام

    من یک فرم دارم که بر روی آن یک datagridview قرار دارد که در رویداد فرم لود از دیتابیس مقدار می

    گیرد

    قسمت Backup گیری نیز در این فرم قرار دارد که وقتی می خواهم backup بگیرم پیغام می دهد که

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

    datagridview را پاک می کنم جواب می دهد )






    Dim server As New SQLDMO.SQLServer2


    Dim database As SQLDMO.Database2

    Dim backup As New SQLDMO.Backup2

    Dim restor As New SQLDMO.Restore2
    Private Sub restore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles restore.Click

    Dim openfiledialog1 As New OpenFileDialog


    Dim path As String

    server = New SQLDMO.SQLServer2

    server.LoginSecure = True

    openfiledialog1.Filter = "(*.bak)|*.bak"

    openfiledialog1.Title = "تعیین فایل برای بازیابی"
    If openfiledialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


    server.Connect(My.Computer.Name)

    database = server.Databases.Item("phone")

    restor.Database = database.Name

    path = openfiledialog1.FileName

    restor.Files = path

    restor.ReplaceDatabase = True

    restor.SQLRestore(server)

    server.DisConnect()

    restor = Nothing

    server = Nothing

    MsgBox("restor انجام شد")

    End If
    End Sub

    لطفا به من کمک کنید متشکرم

  36. #36

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    مشکلی که بعضی ها گفته بودن پیام Restore failed for Server '...'. میده علتش یه بخش اشتباه در کد restore که sub zero نوشته.
    باید به جای .Database = DataBaseName.bak بنویسیم .Database = DBName

  37. #37
    کاربر دائمی آواتار elmira_63
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    40
    پست
    324

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    من تو برتامم هم backup می گیرم هم restore انجام میدم
    حالا میخوام یه قسمتی بهش اضافه کنم با عنوان backup گیری اتوماتیک که بشه فاصله زمانی و ساعت backup گیری رو اپراتور مشخص کنه
    البته میدونم که توی اسکیوال به راحتی میشه اینکارو انجام داد ولی من نمی تونم به کاربرم بگم باید حتما اسکیوال رو بلد باشی و میخوام توی برنامه این کارو انجام بدم اگه امکانش باشه
    به نظر خودم گفتم شاید بشه اینکارو توی اسکیوال انجام داد بعد کدش رو از اسکیوال استخراج کرد و تو وی بی ازش استفاده کرد

  38. #38
    کاربر دائمی آواتار mohammad-gh
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    باغ شهر آذربايجان (مراغه)
    پست
    671

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    با سلام
    وقتی از برنامه و روی شبکه می خواهم پشتیبان بگیرم پیغام خطا رو میده.
    بانک در روی یک کامپیوتر دیگر است و من از طریق شبکه این کار را می کنم.
    Backup failed for Server

    تمامی موارد بالا را هم چک کردم.
    sql من 2000 است.

  39. #39
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    نقل قول نوشته شده توسط rezaei manesh مشاهده تاپیک
    سلام دوستان یه چیز جالب ربطی به طولانی بودن مسیر نداره مشکل باید جایه دیگه باشه
    من همین کد رو در یک برنامه با sql2000 تست کردم مشکلی نبود اما همون کد رو با اس کیو ال2005 تست کردم در بعضی از مسیر ها همین خطا رو می داد مثل مسیر دسکتاپ من (C:\Documents and Settings\Hamed\Desktop\) ویا مسیر ریشه یک درایو مثل(c:/) هم همین مشکل رو دارد اما در مسیر زیر کار می کند c:\bk
    فکر کنم یک اشکالی در sql2005 باشه نسخه 2005 من استاندارد ادیشن هست
    جناب رضایی منش بالاخره فهمیدم منشا این مشکل کجاست . ببینید در حالت پیش فرض Logon Type سرور به صورت Network Services ست شده برای همین وقتی میخواد به درایو ویندوز دسترسی داشته باشه این خطا رو میده ( فقط درایو ویندوز) برای حل این مشکل باید Logon Type رو روی Local System ست کنید مشکل حل میشه .(از طریق برنامه SQL Server Configuration Manager )
    اگر هم قصد دارید تحت شبکه پشتبان گیری و بازگردانی رو انجام بدید سعی کنید برنامه رو توی درایوی غیر از درایو ویندوز نصب کنید چرا که دسترسی به درایو ویندوز ، تحت شبکه یه سری محدودیتها داره
    برای اینکه دقیقا متوجه شید چه چیزی باعث بروز مشکل میشه از کد زیر در قسمت Catch استفاده کنید.:
    Catch ex As Exception
    MsgBox( ex.InnerException.InnerException.Message, 48, "پیغام")
    End Try
    آخرین ویرایش به وسیله Sub Zero : دوشنبه 04 شهریور 1387 در 10:54 صبح

  40. #40

    نقل قول: حل مشکل پشتیبان گیری و بازیابی برای همیشه

    سلام
    خیلی خوب می شه اگه حل بشه من امشب تست می کنم بهت می گم
    ممنون از اینکه گیر و گور کار رو در می یاری حقیقتش من خیلی گشتم نشد

صفحه 1 از 2 12 آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •