PDA

View Full Version : backup & restor



ghulam yahya ayobi
پنج شنبه 20 اردیبهشت 1386, 06:02 صبح
من با adocommand تونیستم بکاپ و ریستور بگیرم و لی مشکل این جا است در صورت که یک adoconection در برنامه اضافه شود و در بانک اطلاعاتی وصل شود در این صورت ریستور کردن ایرور میدهد . دوستان اگر محبت کنند روش کاملا در ست بکاپ گیری را با کد به من میل کند ممنون میشود در صورت که برنامه تک کاربره است نه روی شبکه تشکر
yahya_inlucky2006@yahoo.com
yahyadelphi2006@gmail.com

AminSobati
پنج شنبه 20 اردیبهشت 1386, 13:22 عصر
موقع Restore کردن یک دیتابیس هیچ کاربری (حتی خود Restore کننده) نباید به دیتابیس Connect باشن. قبلا از Restore از دیتابیس خارج بشین:
USE Master

mjdeveloper
جمعه 21 اردیبهشت 1386, 02:21 صبح
برای Backup گرفتن مشکلی در کانکشن وجود نداره و با استفاده از این Stored Proc می تونی Backup بگیری

CREATE PROCEDURE Backup_DB
@disk nvarchar(100),
@filename nvarchar(20)
AS
exec('
BACKUP DATABASE [yourDBName] TO DISK = N'''+
@disk+'\'+@filename+'.bak'+''' WITH INIT ,
NOUNLOAD , NAME = N''yourDBName_backup'''+
', NOSKIP , STATS = 10, NOFORMAT')
GOولی برای Restore باید کانکشن اکتیو رو ببندی و یه Store Proc روی بانک Master بسازی
و از توی برنامه خودتون به یانک Master وصل بشی و اون Stored Proc رو Run کنی
این هم کد ساختنه این Stored Proc
بهتره فرآیند ساختن این Stored Proc در initialize برنامتون باشه


CREATE PROCEDURE Create_Restore_Proc
AS
exec ('use master
if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[restore_yourDBname]'')
and OBJECTPROPERTY(id, N''IsProcedure'') = 1)
drop procedure [dbo].[restore_yourDBname]'+
'exec(''CREATE PROCEDURE restore_yourDBname
@disk varchar(100)
AS
RESTORE DATABASE yourDBname FROM DISK =@disk'')')
GOدر این کد ها نام فایل Backup و مسیر ذخیره سازی رو من به صورت پارامتر به پروسیجر می فرستم
-----------------------
امیدوارم تونسته باشم کمک کوچیکی بهتون کنم