الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

النسخ الاحتياطي لقاعدة البيانات

بدأه mamababadada في 21 أغسطس 2011 · 5 رد · 1,202 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

عندي قاعدة بيانات ابحث عن طريقه لنسخها احتياطيا سكربت او ملف باتش بس المهم اتاكد ان موضوع النسخه الاحتياطيه ماشي وضعه اتركم مع الكود الذي وجدته مع مشكلة ظهرت معي ولكن لم اتمكن من حلها :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.IO;
using Microsoft.SqlServer.Management.Smo;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string MachineName = @"SERVER\SQLEXPRESS";

            string DBName = "manidata";

            string backupName = "tempBackup201";

            Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(MachineName);

            Database db = server.Databases[DBName];

            //To Avoid TimeOut Exception

            server.ConnectionContext.StatementTimeout = 60 * 60;

            RecoveryModel recoverymodel = db.DatabaseOptions.RecoveryModel;

            //Define a Backup object variable.

            Backup backup = new Backup();

            //backup.Co.CompressionOption = BackupCompressionOptions.On;

            //Specify the type of backup, the description, the name, and the database to be backed up.

            backup.Action = BackupActionType.Database;

            backup.BackupSetDescription = "Full backup of " + DBName + ".";

            backup.BackupSetName = backupName;

            backup.Database = DBName;

            //Declare a BackupDeviceItem

            BackupDeviceItem bdi = default(BackupDeviceItem);

            bdi = new BackupDeviceItem(@"C:\ " + backupName + ".bak", DeviceType.File);

            //Add the device to the Backup object.

            backup.Devices.Add(bdi);

            //Set the Incremental property to False to specify that this is a full database backup.

            backup.Incremental = false;

            //Set the expiration date.

            System.DateTime backupdate = new System.DateTime();

            backupdate = new System.DateTime(2011, 10, 11);

            backup.ExpirationDate = backupdate;

            //Specify that the log must be truncated after the backup is complete.

            backup.LogTruncation = BackupTruncateLogType.Truncate;

            //Run SqlBackup to perform the full database backup on the instance of SQL Server.

            backup.SqlBackup(server); // (Backup failed for Server 'SERVER\SQLEXPRESS'.) هنا يظهر الخطأ 

            //Remove the backup device from the Backup object.

            backup.Devices.Remove(bdi);


        }
    }
}

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

#2
SqlCommand Cmd = new SqlCommand("backup database mydatabase to disk = 'D:\\mydatabase.bak'", conn);
conn.Open();
Cmd.ExecuteNonQuery();
conn.Close();

تم تعديل هذه المشاركة بواسطة محمدvb في 21 أغسطس 2011 في 10:03

#3

اشكرك عزيزي محمد vb يوجد لدي سؤال وهو هل ممكن انشاء ملف log كما في قواعد البيانات اوراكل اثناء النسخ الاحتياطي تستطيع ضم ملف log يوضح حالة النسخه الاحتياطيه لتاكد من صحتها .

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

#4
اقتباس
حالة النسخه الاحتياطيه لتاكد من صحتها .

ما هي الحالة التي تريد ان تتأكد من صحة النسخة الاحتياطية ؟؟

هل تريد ان يخبرك البرنامج بشيء بعد النجاح في اخذ نسخة احتياطية من قاعده البيانات مثلاً ؟

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

السلام عليكم

يمكن استخدام try..catch و الكتابة إلى ملف الـ log في حال حدوث خطأ (أو حتى في حال نجاح التنفيذ إن أردت)

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#6
اقتباس

هل تريد ان يخبرك البرنامج بشيء بعد النجاح في اخذ نسخة احتياطية من قاعده البيانات مثلاً ؟

بعد النجاح في اخذ نسخه احتياطية ؟؟؟؟؟؟؟؟؟؟؟؟ كيف لي ان اتاكد من ان النسخة الاحتياطية التي تمت نااااااااااااااجحه ؟!

مثلا في قواعد البيانات اوراكل يتم عمل نسخه احتياطيه وانشاء ملف نصي يوضح حالة ملف النسخه الاحتياطيه الذي تم ويحتوي على التالي :

اسماء الجداول وعدد السجلات بكل جدول وفي نهاية الملف يوضح هل كان هناك اخطاء اثناء عمل النسخه الاحتياطيه او ان العملية ناجحه .. وبالتالي بواسطة هذا الملف نستطيع معرفة ان ملف النسخه الاحتياطيه والذي هو عبارة عن Binary Mode لن نعرف اذا كان سليم او لا الا بواسطة الملف النصي log الله يخليه لنا .. وبصراحه انا استخدمت sql server بسبب مشاريع تطلبت مني وضعها على الويب وزي ما نتو عارفين موفر خدمة اوراكل غالي جدا مقارنة باسكيوال سيرفر .... واخيرا لدي موضوع هنــا عن فرز تكرار البيانات Distinct وكانت صدمه . المشكله ليس لها حل . هذا غير الاداء الفرق يشعر به من عمل على قواعد بيانات مثل اوراكل واضطر للعمل على sql server مقلب .. مقلب . وابغى اقول كلمة خانقتني ( صدق الذي قال الغالي سعره فيه ) .

لا احد يزعل مني انا اقول رأي وواقع من باب تجربة .. وشكرا للجيمع على المشاركة بالموضوع . :sleep:

تم تعديل هذه المشاركة بواسطة mamababadada في 30 أغسطس 2011 في 07:19

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

مواضيع مشابهة