PDA

View Full Version : سوال: Restore کردن بانک SQL



dr_csharp
سه شنبه 04 تیر 1387, 10:12 صبح
سلام
من یه فایل backup روی سرورم دارم.چطور میتونم این بانک رو در WebApplication مربوطه Restore کنم ؟ ( فایل backup در اصل یک پشتیبان از بانک WebApplication مذکور هست)

mohsen_metn
سه شنبه 04 تیر 1387, 10:30 صبح
برای بازیابی بکاپ باید از دستور زیر استفاده کنی
البته برای بدست آورن ادرس بکاپ بر روی سرور باید از دستور Server.MapPath استفاده کنی و در قسمت FROM


RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]

dr_csharp
سه شنبه 04 تیر 1387, 10:45 صبح
برای بازیابی بکاپ باید از دستور زیر استفاده کنی
البته برای بدست آورن ادرس بکاپ بر روی سرور باید از دستور Server.MapPath استفاده کنی و در قسمت FROM


RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]

دوست عزیز من بصورت زیر عمل میکنم،ظاهرا مشابه چیزی هست که شما میگین، ولی گاها مشکلاتی پدید میاد :(ضمنا برای run کردن از master استفاده میکنم)


Alter Database RAHYAFTco_Company SET SINGLE_USER With ROLLBACK IMMEDIATE
DROP DATABASE RAHYAFTco_Company
RESTORE DATABASE RAHYAFTco_Company
FROM DISK = 'c:\1.bak'

mohsen_metn
سه شنبه 04 تیر 1387, 11:22 صبح
دوست عزیز من بصورت زیر عمل میکنم،ظاهرا مشابه چیزی هست که شما میگین، ولی گاها مشکلاتی پدید میاد :(ضمنا برای run کردن از master استفاده میکنم)


Alter Database RAHYAFTco_Company SET SINGLE_USER With ROLLBACK IMMEDIATE
DROP DATABASE RAHYAFTco_Company
RESTORE DATABASE RAHYAFTco_Company
FROM DISK = 'c:\1.bak'

شما نمی تونید بصورت زیر ادرس دهی کنید :


FROM DISK = 'c:\1.bak'

چون غیر معتبر ست. باید ادرس بکاپ رو روی سرور بدست بیاوری

dr_csharp
سه شنبه 04 تیر 1387, 11:38 صبح
شما نمی تونید بصورت زیر ادرس دهی کنید :


FROM DISK = 'c:\1.bak'


چون غیر معتبر ست. باید ادرس بکاپ رو روی سرور بدست بیاوری


دوست عزیز مشکلی تو آدرس دهی نیست !فایل روی سرور قرار داره و TSQL روی سرور run میشه ؛پس آدرسی مثل C:\1.bak کاملا معتبره.

hesam_a110
سه شنبه 04 تیر 1387, 11:44 صبح
درود بر شما
برای restore کردن یک فایل بک آپ به دلیل داشتن کانکشن به db نمی توانید مستقیما آن را restore کنید باید در ابتدا کانکشن های موجود را از بین ببرید و بعد restore کنید
برای آدرس هم مسیر فایل را نسبت به جایی که فایل aspx اتون داره اجرامیشه را ادرس دهید با استفاده از server.mappath
پیروز و نیک باشید

dr_csharp
سه شنبه 04 تیر 1387, 13:49 عصر
درود بر شما
برای restore کردن یک فایل بک آپ به دلیل داشتن کانکشن به db نمی توانید مستقیما آن را restore کنید باید در ابتدا کانکشن های موجود را از بین ببرید و بعد restore کنید
برای آدرس هم مسیر فایل را نسبت به جایی که فایل aspx اتون داره اجرامیشه را ادرس دهید با استفاده از server.mappath
پیروز و نیک باشید
مشکلی در آدرس دهی نیست،ضمنا فکر میکنم در اون لحظه تمام Connection ها Close باشند ولی برای اطمینان آیا دستوری هست که خودکار هرچی connection با بانک مذکور وجود داره رو Close کنه ؟

dr_csharp
پنج شنبه 06 تیر 1387, 08:02 صبح
یعنی دوستان تا به حال با همچین مسئله ای مواجه نبودن !؟

hesam_a110
یک شنبه 16 تیر 1387, 08:33 صبح
درود بر شماراهی که بنده پیشنهاد می دهم برای از بین بردن تمام کانکشن ها استفاده از دستور Kill می باشد البته دستور Kill یک کانکشن را از بین می برد برای ستفاده آن را در یک ForEach قرار دهیدنکته دیگه اینکه شاخه را که بر روی سرور قرار می دهید باید خاصیت نوشتن هم داشته باشدپیروز و نیک باشید