PDA

View Full Version : گرفتن backup از SQL Server در Delphi



E_Alikhani
چهارشنبه 26 مرداد 1384, 16:16 عصر
سلام
این مشکل برای وجود داره که چگونه میتوان از داخل delphi یک دیسک پشتیبان تهیه کرد
البته اینرو هم بگم که برنامه من از connectionهای ADO استفاده کردم
ضمنا چطوری میشود backupهارو Restoe کرد
باتشکر از کلیه دوستان

Ali Najafian
چهارشنبه 26 مرداد 1384, 17:12 عصر
با همان دستورات sql میشه از برنامه backup گرفت و انها را restore کرد
مانند زیر
-- Create a logical backup device for the full MyNwind backup.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_1',
DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'

-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_1

یاسر احسانی
جمعه 28 مرداد 1384, 23:02 عصر
اگر مشکلت حل نشده بگو تا یه روشه دیگه که میشه از تو خود دلفی به راحتی این کار رو انجام داد رو برات بگم .
تو روش من امکان داری حتی Table های مختلف رو از هم جدا کنی ! یعنی مثلا از Table 1 ذخیره بگیری و یا اونو Restore کنی بدون اینکه به Table 2 کاری داشته باشی !...

ehsane
شنبه 29 مرداد 1384, 12:37 عصر
اگه بگی که خیلی آقایی کردی من هم منتظرم

m-khorsandi
شنبه 29 مرداد 1384, 16:50 عصر
درود
این لینکها هم ممکنه کمکت کنه:
http://www.barnamenevis.org/forum/showthread.php?t=19276&highlight=backup
http://www.barnamenevis.org/forum/showthread.php?t=18017&highlight=backup
http://www.barnamenevis.org/forum/showthread.php?t=8631&highlight=backup

DataMaster
یک شنبه 30 مرداد 1384, 21:16 عصر
اقا یاسر مشتاقیم روش شما رو هم بدونیم

حرفه ای
سه شنبه 01 شهریور 1384, 14:44 عصر
دستور Create backup برای بانکهای کوچک مناسبه اما

برای بانکهای بزرگ افتضاح ...

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

اگه خواستین در خدمتیم .

NOROOZY
سه شنبه 01 شهریور 1384, 15:47 عصر
آقا یاسر روشت رو بگو که مکن هم مشتاق شدم

mahdi_mft
چهارشنبه 02 شهریور 1384, 23:39 عصر
::نوشتن::
سلام
این مشکل برای وجود داره که چگونه میتوان از داخل delphi یک دیسک پشتیبان تهیه کرد
البته اینرو هم بگم که برنامه من از connectionهای ADO استفاده کردم
ضمنا چطوری میشود backupهارو Restoe کرد
باتشکر از کلیه دوستان ::نوشتن:: :kaf: :oops: :cry: :) :) :mad:

xmazdak
شنبه 16 مهر 1384, 17:16 عصر
آقا یاسر همه گفتن بگو , خوب بگو دیگه !

Touska
یک شنبه 17 مهر 1384, 06:56 صبح
آقا یاسر ما هم منتظریم.

aram_k
دوشنبه 30 مرداد 1385, 07:24 صبح
آقا یاسر اگه بگی به خیلی از دوستان کمک کردی

Mahdi_S_T
دوشنبه 30 مرداد 1385, 16:23 عصر
دوست من آن زمان 17 مهر 84 بوده و ظاهرا هنوز آقا یاسر تصمیمی نگرفته !

davoodmz
پنج شنبه 02 شهریور 1385, 07:28 صبح
با سلام

من از کدهایی که در همین سایت آقایان محترم گذاشته بودند استفاده کردم ولی مشکلی دارد اینکه هر بار که بک آپ می گیری حجم فایل بک آپ زیاد می شود . و من گفتم دوستان اصلاح کنند اما نشد

با تشکر
داود

object
جمعه 03 شهریور 1385, 10:25 صبح
آقایون میتونید SQLProfiler رو بازکنید کار مورد نظر رو در SQLServer انجام بدید
یک مشت دستور توی پروفایلر نمایش داده میشه میتونید همه اون دستورها رو استفاده کنید
داود جان شما هم با انجام اینکار میتونید مشکل خودتون رو حل کنید

devil00x
شنبه 04 شهریور 1385, 00:25 صبح
آقا برای Backup گرفتن من یه پروسجر تو خود sql server نوشتم و فقط پارامتر اسم و آدرس فایل رو بهش می فرستم که سورسش به صورت زیر هستش :

CREATE PROCEDURE [BackUpDataBase]
@FileName NVarChar(200)
AS
BACKUP DATABASE [Storage]
TO DISK =@FileName
WITH INIT , NOUNLOAD , NAME = 'Storage backup',
NOSKIP , STATS = 10, NOFORMAT

و برای restore کردن :
ابتدا شما باید کانکشن تون رو به یه دیتابیس دیگه بدین یعنی یکی دیگه مثل Master رو Uses کنین بعدش این دستورات sql رو اجرا کنین

Execute('ALTER DATABASE [Storage] SET OFFLINE WITH ROLLBACK IMMEDIATE');
Execute('RESTORE DATABASE [Storage] FROM disk = '''+Edit1.Text+''' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY ');
Execute('ALTER DATABASE [Storage] SET ONLINE WITH ROLLBACK IMMEDIATE');

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

storage که نوشتم اسم دیتابسم هستش شما اسم دیتابیسی رو که میخواین restore شه رو بنویسن .