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

شرح ل Database snapshots

بدأه TareqVB في 25 مايو 2010 · 8 رد · 4,859 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كنت احاول اعداد مادة تدريبية متقدمة ل Sql server فبحثت عن Snasphot فلم اجد اي شيء يتعلق بها في هذا المنتدى لذا قررت ان اضع الشرح عنها للافادة .

احدى الاضافات التي جاءت مع Sql server 2005 كانت Databse Snasphot والتي هي عبارة عن اخذ نسخة من قاعدة البيانات في وقت محدد بحيث تكون هذه النسخة للقراءة فقط .

الاستخدامات :

• حماية من خطأ قد يقوم به المستخدم او مدير النظام

• كنسخة تاريخية لوقت محدد .

• مصدر للقراءة مثل التقارير .

• للتجريب والمقارنة اثناء القيام بتعديل معين .

• كنسخة احتياطية لاسترجاع البيانات

• وغيرها

طريقة عملها:

عند الانشاء يتم حجز مساحة بسيطة على القرص الصلب ( اي لا يتم حجز مساحة مساوية للقاعدة الاصلية) وذلك باستخدام تقنية تسمى sparse files .

بعد ذلك عند حصول تعديل على قاعدة البيانات الاصلية وقبل حصول ذلك التعديل يتم نقل الصفحة Page التي تحتوي على هذه البيانات الى ال sparse files وبعد ذلك تتم عملية التعديل (يتم العمل في هذه التقنية على مستوى ال page ) وهذه العملية تسمى copy-on-write.

عند القراءة من هذه القاعدة اي عمل استعلام عليها يتم قراءة البيانات او بالاصح الصفحات التي لم تتعدل من القاعدة الاصلية والبيانات التي تعدلت من هذه القاعدة اي من ال Sparse files .

صورة توضح هذه الالية

post-112904-12748088788226_thumb.png

طريقة الانشاء والاستخدام :

لايوجد طريقة في SSMS لانشاء مثل هذه القاعدة لذا نحتاج الى استخدام الكود (يوجد قالب لكيفية الانشاء في Template explorer تحت بند Database)

هذا هو الكود

CREATE DATABASE snapTest_snapA ON
( NAME = snapTest, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\snapTest_snapA.ss' )
AS SNAPSHOT OF snapTest;

حيث ان :

snapTest_snapA : هو اسم القاعدة الجديدة.

snapTest : هو اسم القاعدة الاصلية.

NAME : هو اسم ملف قاعدة البيانات الاصلية logical name

FILENAME : مسار واسم الملف الذي سيتم انشاؤه وليس مسار الملف الاصلي .

.ss : يمكن استخدام اي امتداد للملف وليس اجباريا ان يكون ss.

لحذف القاعدة :

DROP DATABASE snapTest_snapA

لاسترجاع القاعدة الاصلية من ال Snapshot :

Restore database snapTest from database_snapshot = 'snapTest_snapA'

ملاحظات :

يمكن انشاء اي عدد من ال Snapshots مادام هناك متسع على القرص الصلب لكن لايفضل ذلك لان كثرة التعديل تؤثرعلى السرعة.

يمكن انشاء ال Snapshots على نفس سيرفر القاعدة الاصلية فقط .

ال Snapshots متوفرة في نسخة الانتربرايز والديفيلوببر فقط .

عند استرجاع القاعدة الاصلية من Snapshot يجب ان تكون القاعدة الاصلية موجودة وفعالة ويجب بعد الاسترجاع حذف جميع ال Snapshots .

لايمكن عمل حفظ ولااسترجاع لهذه القاعدة.

الصلاحيات يتم وراثتها من القاعدة الاصلية وقت الانشاء.

وقبل الختام صورة توضح عمل نفس الاستعلام على قاعدة البيانات الاصلية وقاعدتا Snapshots اخذتا في اوقات مخلتفة حيث يتبين اختلاف بيانات كل استعلام .

post-112904-12748088876365_thumb.png

وفي النهاية ارجو لكم الاستفادة

اقتباس

Sparse files are a feature of the NTFS file system. As data is written to a sparse file, NTFS allocates the disk space to hold that data.

3
#2

أولاً : بارك الله هذا الجهد ..

ثانياً : كنت من فترة منهمك بنفس الموضوع و لكن من مصادر و كتب أجنبية و كنت على وشك أن أترجم بعضها لولا إنشغالي الشديد ..

الآن صار عندنا بداية جيدة في هذا الموضوع .. :)

و من عندي 5 نجوم

تم تعديل هذه المشاركة بواسطة imadouzoun في 25 مايو 2010 في 22:21

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#3

+1

تقييم الموضوع 5

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

[#10345] لا تملك صلاحيات كافية

لم اتمكن من التقييم

ربنا يجزيك كل خير يارب

ويوفقك وان شاء الله يمد بعمرك

In bad state

#6

جزاك الله خيرا

#7

موضوع جامد وحلو ويااااارب المنتدى ينتعش أكثر بمثل هذه المواضيع :)

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#8

موضوع مهم جزاك الله خيرا

تقيمي خمس نجوم - لم اتمكن من التقييم

#9

اكرمك الله

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