PDA

View Full Version : Restore کردن فایل پشتیبان



m-khorsandi
شنبه 17 اردیبهشت 1384, 08:30 صبح
درود
بعد از اینکه یه فایل پشتیبان از DataBase ام از داخل برنامه تهیه میکنم، موقع Restore
کردن Procedure مربوطه اجرا میشود و هیچ خطایی هم بر نمیگرداند ولی واقعا عمل Restore رو انجام نمیده.
دستور زیر رو هم اجرا میکنم:


ADOConnection1.Execute(' USE Master RESTORE DATABASE DB_Sample FROM DISK=' + QuotedStr('C:\DB_SampleBackup.FBK') + ' WITH REPLACE');


ممنون میشم اگه راهنمائیم کنید.

AminSobati
یک شنبه 18 اردیبهشت 1384, 00:22 صبح
دوست عزیزم،
Path رو اصلاح کنین و در Query Analyzer همین دستور رو اجرا کنین. آیا پیغامی نمایش داده میشه؟

m-khorsandi
یک شنبه 18 اردیبهشت 1384, 09:23 صبح
آقای ثباتی،
ممنونم از راهنمائی ارزشمندتون. مشکل من Use بودن DB توسط کابران دیگه بود که البته با دستورات زیر
حل شد:



Declare @Var_spid Tinyint
Declare spid_List Cursor FORWARD_ONLY For
Select spid From sysprocesses
Where loginame = 'filerpro'

Open spid_List
Fetch Next From spid_List into @Var_spid

While @@Fetch_Status = 0
Begin
Execute(' Kill ' + @Var_spid)
Fetch Next From spid_List into @Var_spid
End

Close spid_List
Deallocate spid_List


باز هم از راهنمائی شما ممنونم.

AminSobati
یک شنبه 18 اردیبهشت 1384, 12:33 عصر
به نظر من جا داره که یک مقدار با Userها مهربون تر باشین :wink:
به این شکل Kill کردن باعث میشه Transactionهاشون Rollback بشه. مگر اینکه مطمئن باشین چیز مهمی نیست.

m-khorsandi
یک شنبه 18 اردیبهشت 1384, 13:15 عصر
شما درست میفرمائید آقای ثباتی،
ولی قبل از عمل Restore کردن فایل پشتیبان به کاربران پیغامی داده میشه مبنی بر اینکه "برای دقایقی از سیستم خارج شوند"، فکر کنم بعد از این پیغام بتونم User ها رو درب و داغون کنم؟ نه؟


البته خیلی علاقه مندم روش شما رو هم هنگام Use بودن DataBase و Restore کردن فایل پشتیبان بدونم.

سپاس.

AminSobati
یک شنبه 18 اردیبهشت 1384, 15:57 عصر
البته روش من روش خاصی نیست و معجزه هم بلد نیستم :)
مثلا میشه سرویس SQL Server رو Pause کرد تا کسی جدیدا نتونه وارد SQL Server بشه. کسانی هم که Log Out کنن مجددا نمیتونن وارد بشن. بعد از مدتی طبیعتا عده ای رفتن و برنمیگردن! برای تعدادی که باقی موندن همونطور که گفتین میشه پیغام فرستاد و اگر توجه نکردن دیگه دست شما بازه!....

m-khorsandi
دوشنبه 19 اردیبهشت 1384, 13:12 عصر
متشکرم آقای ثباتی :flower:

AminSobati
دوشنبه 19 اردیبهشت 1384, 23:08 عصر
موفق باشین :)

بهمن بهار
شنبه 05 آذر 1384, 21:25 عصر
به نظر من این روش که آقای Aminsobati ذکر کردند عالی است اما چطور میشه سرویس SQL Server رو Pause کرد تا کسی جدیدا نتونه وارد SQL Server بشه.
یعنی لطفا اگر دستورش را اضافه کنید ممنون میشم چون خیلی لازم دارم

M.kavyani
جمعه 25 آذر 1384, 23:05 عصر
با سلام
من وقتی این SP رو در Query Analyzer اجرا میکنم پیغام زیر رو میده . مشکل کجاست؟
Invalid object 'sysprocesses'
ممنون از راهنمایی هاتون :تشویق:

AminSobati
جمعه 25 آذر 1384, 23:54 عصر
به نظر من این روش که آقای Aminsobati ذکر کردند عالی است اما چطور میشه سرویس SQL Server رو Pause کرد تا کسی جدیدا نتونه وارد SQL Server بشه.
یعنی لطفا اگر دستورش را اضافه کنید ممنون میشم چون خیلی لازم دارم
دوست عزیزم،
در Service Manager کلید Pause رو باید کلیک کنید.
دستور NET PAUSE هم هست..

AminSobati
جمعه 25 آذر 1384, 23:54 عصر
با سلام
من وقتی این SP رو در Query Analyzer اجرا میکنم پیغام زیر رو میده . مشکل کجاست؟
Invalid object 'sysprocesses'
ممنون از راهنمایی هاتون :تشویق:
کدوم SP دوست عزیزم؟

M.kavyani
شنبه 26 آذر 1384, 08:33 صبح
آقای ثباتی،
ممنونم از راهنمائی ارزشمندتون. مشکل من Use بودن DB توسط کابران دیگه بود که البته با دستورات زیر
حل شد:



Declare @Var_spid Tinyint
Declare spid_List Cursor FORWARD_ONLY For
Select spid From sysprocesses
Where loginame = 'filerpro'

Open spid_List
Fetch Next From spid_List into @Var_spid

While @@Fetch_Status = 0
Begin
Execute(' Kill ' + @Var_spid)
Fetch Next From spid_List into @Var_spid
End

Close spid_List
Deallocate spid_List


باز هم از راهنمائی شما ممنونم.

با سلام خدمت استاد عزیز جناب آقای ثباتی
منظور من همین SP است که توسط آقای خرسندی نوشته شده و شما هم در موردش نظر داده اسد و کمکشان کرده اید. لطفا" به منم کمک کنید.
از زحمات شما کمال تشکر را دارم. :تشویق:

hghodsi
شنبه 26 آذر 1384, 15:15 عصر
با سلام بر دوستان گرامی

آقا من یک فایل پشتیبان رو که می خواهم restore کنم با پیغام خطای شماره 3132 مواجه می شوم. به نظر شما چطور این مشکل را برطرف کنم. اطلاعاتی هم که دارم خیلی مهم هستند یعنی اگه برنگرده بیچاره می شوم.

این هم پیغامی که میده :
The media set for database mydatabase has 2 family members but only 1 are provided. All members must be provided.

Milad
شنبه 26 آذر 1384, 17:23 عصر
آره واقعا کار دیونه واری هست ولی من که روشی دیگه ای پیدا نکردم !
واقعا جرواجر شدم تا تونستم این کار رو انجام بدم !

این هم کدش شاید به درد کسی بخوره :


'در اینجا یک اتصال به بانک باز می کند
StrCon = "DRIVER={SQL SERVER};SERVER=MMS;UID=sa;PWD="
Set AdoCon = Server.CreateObject("ADODB.Connection")
AdoCon.Open StrCon
AdoCon.CommandTimeout="3600000"
'در اینجا تمامی یوزر های که به بانک وصل هستند را مشخص می کند
set k = AdoCon.Execute("USE master EXEC sp_who ")

'در اینجا تمامی اتصال ها به بانک را می کشد
Do While Not k.EOF
on error resume next
IF k("dbname")="DBUserNAme" Then AdoCon.Execute("KILL " & k("spid"))
k.MoveNext
Loop
'در اینجا دستور بازیابی اجرا می شود
on error resume next
k=0
set k=AdoCon.Execute("RESTORE DATABASE morvaridclub FROM DISK = '" & Request.QueryString("file") & "'")

AminSobati
شنبه 26 آذر 1384, 21:30 عصر
با سلام خدمت استاد عزیز جناب آقای ثباتی
منظور من همین SP است که توسط آقای خرسندی نوشته شده و شما هم در موردش نظر داده اسد و کمکشان کرده اید. لطفا" به منم کمک کنید.
از زحمات شما کمال تشکر را دارم. :تشویق:
به این شکل عمل کنید:
Select * From master..sysprocesses

AminSobati
شنبه 26 آذر 1384, 21:32 عصر
با سلام بر دوستان گرامی

آقا من یک فایل پشتیبان رو که می خواهم restore کنم با پیغام خطای شماره 3132 مواجه می شوم. به نظر شما چطور این مشکل را برطرف کنم. اطلاعاتی هم که دارم خیلی مهم هستند یعنی اگه برنگرده بیچاره می شوم.

این هم پیغامی که میده :
The media set for database mydatabase has 2 family members but only 1 are provided. All members must be provided.
دوست عزیزم،
شما اشتباها موقعی که Backup میگرفتید، دو Device معرفی کردین و Backup شما روی دو تا فایل ایجاد شده. حالا موقع Restore هم باید هر دو فایل رو آدرس دهی کنید

M.kavyani
چهارشنبه 05 بهمن 1384, 00:17 صبح
آقای ثباتی،
ممنونم از راهنمائی ارزشمندتون. مشکل من Use بودن DB توسط کابران دیگه بود که البته با دستورات زیر
حل شد:






Declare @Var_spid Tinyint
Declare spid_List Cursor FORWARD_ONLY For
Select spid From sysprocesses
Where loginame = 'filerpro'

Open spid_List
Fetch Next From spid_List into @Var_spid

While @@Fetch_Status = 0
Begin
Execute(' Kill ' + @Var_spid)
Fetch Next From spid_List into @Var_spid
End

Close spid_List
Deallocate spid_List





با سلام خدمت دوستان و اساتید محترم
من میخواستم کمی در مورد این دستور که برجسته شده بیشتر بدونم
مخصوصا" اون filepro چیه؟

Hamedm
چهارشنبه 05 بهمن 1384, 19:23 عصر
با سلام خدمت دوستان و اساتید محترم
من میخواستم کمی در مورد این دستور که برجسته شده بیشتر بدونم
مخصوصا" اون filepro چیه؟

سلام

عزیز جان این شرط SELECT است دیگه. حواست کجاست....

در پناه حق موفق باشید و پرتوان

M.kavyani
چهارشنبه 05 بهمن 1384, 23:29 عصر
سلام

عزیز جان این شرط SELECT است دیگه. حواست کجاست....

در پناه حق موفق باشید و پرتوان
با سلام
دمت گرم اینقدر هم که... نیستیم
منظورم اینه که محتویات filepor چیه ؟

Hamedm
پنج شنبه 06 بهمن 1384, 15:04 عصر
با سلام
دمت گرم اینقدر هم که... نیستیم
منظورم اینه که محتویات filepor چیه ؟

سلام

من از اون حرفم قصد جسارت نداشتم.

این مقدار مهم نیست که چیه. ممکنه یک مقدار باشه که خود برنامه نویس در بانک برای کار خاصی قرار داده.
شما هم به چه چیزایی گیر میدیدا :لبخند:.

در پناه حق موفق باشید و پرتوان

M.kavyani
پنج شنبه 06 بهمن 1384, 22:28 عصر
سلام

من از اون حرفم قصد جسارت نداشتم.

این مقدار مهم نیست که چیه. ممکنه یک مقدار باشه که خود برنامه نویس در بانک برای کار خاصی قرار داده.
شما هم به چه چیزایی گیر میدیدا :لبخند:.

در پناه حق موفق باشید و پرتوان

باسلام
مطمئنا" آقای با شعور و با ادبی مثل شما هرگز جسارت نمی کنه و منم به شوخی گرفتم
ولی برام سواله که آخه اون چیه؟ کمی روش که کار کردم متوجه شدم که اطلاعات کاربران در SPID است . حالا این filepro چه که ذهنمو مشغول کرده
با تشکر