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

عمل backup لل sql database

مغلق
بدأه عماد خلف في 23 يوليو 2007 · 8 رد · 2,345 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا حاجز hosting مع sql server2000 في موقع عالمي

فهل من الضروري ان اعمل backup لل database عندي وأخذها واضعها في جهازي

ام اعتمد على الموقع فقط في حفظها

انا كنت افكر في آلية لعمل backup وهي نقل محتويات كل ال tables الموجودة في قاعدة البيانات sql server2000

ووضعها في tables في مجلد access

فهل هذه الطريق مناسبة ام هناك طريقة عملية اخرى

مع العلم ان الموقع المستضيف قد اعطاني two sql server 2000 يعني واحدة لا استخدمها حاليا

وشكرا لكم

#2

قم بعمل نسخ احتياطية (بشكل ملفات)

الآن قم بتحميل هذه الملفات واترك نسختين واحدة على مجلد Backup في السيرفر والأخرى عندك في مكان ما

هنالك الكثير الكثير من طرق حفظ نسخ من البيانات وأنا شخصيا أفضل هذه الطريقة

#3

شكرا على الرد

ولكن هل تقصد ملفات مثل xml او excel

حيث يوفر الموقع سحب الملفات لل table بواسطتهم

ولكن عند عمل سحب لل table بواسطة خيار xml تظهر اللغة العربية سليمة

اما سحب ال table عن طريق خيار excel تظهر اللغة العربية على شكل ??????????

#4

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

وبالنسبة لافضل طريقة لعمل نسخة احتياطية ان تعملها من داخل SQL SERVER على مجلد على السيرفر لكن ان لم تتوفر مثل هذه الخدمة في موقع الاستضافة فعليك بملف اكسس فهو افضل من الحلول الاخرى .

واذا كان حجم الملف كبير يمكنك عمل ضغط له وتنزيله حيث يمكنك عمل ذلك من خلال برامج FTP او موقع مثل

http://www.net2ftp.com

#5
TareqVB كتب:
هل هذا الامر ضروري ؟ هذا الامر يرجع الى شركة الاستضافة حيث ان شركات الاستضافة تعمل نسخ احتياطية بشكل يومي في حالة صار مشكلة عندهم لكن لا اعلم اذا حصلت مشكلة بسبب عيب في برنامجك او اختراق لموقعك كيف يتم التعامل في مثل هذه الحالة.

وبالنسبة لافضل طريقة لعمل نسخة احتياطية ان تعملها من داخل SQL SERVER على مجلد على السيرفر لكن ان لم تتوفر مثل هذه الخدمة في موقع الاستضافة فعليك بملف اكسس فهو افضل من الحلول الاخرى .

واذا كان حجم الملف كبير يمكنك عمل ضغط له وتنزيله حيث يمكنك عمل ذلك من خلال برامج FTP او موقع مثل

http://www.net2ftp.com

السلام عليكم

يا ليت توضح طريقة نسخ قاعدة البيانات كاملة ( أو بعض الجداول ) إلى اكسيس لاني وجدت موقع يقوم بنسخها الى اكسس ثم القيام بضغط القاعدة إلى ملف zip

460.gif

#6

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

للنقل من اكسس الى SQl server يمكن استخدام SQLBulkcopy في Asp.net وهذا الحل هنا

لكن ساحاول ان افكر في حل للنقل من SQL الى اكسس

#8

نعم

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

460.gif

#9

توجد حلول في قسم SQL server لكن معظمها تعتمد على xp_CmdShell وهو ما لا يمكن استخدامه في وضع الاسضافة لكن وصلت الى الحل التالي بالشروط التالية :

1- موقع ملف الاكسس و sql server على نفس الجهاز

2-يجب ان يكون في ملف الاكسس جداول مطابقة لبنية جداول Sql server لعمل هذا الامر يمكن عمل قاعدة بيانات على Sql server فارغة من البيانات ثم عمل تصدير لها الى ملف الاكسس عن طريق import/export (طبعا محليا)

3- الخطوة الثانية يمكن عملها برمجيا اي انشاء الجداول برمجيا لكن لن اخوض في هذا الامر هنا

الامر الذي ينفذ التعليمات هو

insert  into OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db3.mdb')...mytable select *  from mytable

وهذا اجراء مخزن يقوم بنقل كل الجداول ما عليك الا طلبه في asp.net وتغيير مكان قاعدة الاكسس بداخله

Create procedure uSP_ExportToAccess
--@accessFile as nvarchar(200)

as declare  @sql as nvarchar(2000)


set @sql ='insert  into OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',''Data Source=%2'')...%1  select * from %1 '

declare @accessFile as nvarchar(200)
set @accessFile ='C:\db3.mdb' -- <- - - - - change file name 

set @sql = replace(@sql,'%2',@accessFile)


DECLARE test_cursor CURSOR
READ_ONLY
FOR SELECT name FROM sysobjects where type ='U'

DECLARE @name varchar(40)
OPEN test_cursor

FETCH NEXT FROM test_cursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN IF (@@fetch_status <> -2)
	BEGIN DECLARE @message nvarchar(1000)
		SELECT @message = replace(@sql ,'%1', @name)
		--PRINT @message

		exec(@message)
	END
	FETCH NEXT FROM test_cursor INTO @name
END

CLOSE test_cursor
DEALLOCATE test_cursor

هذا الموضوع مغلق.

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