PDA

View Full Version : کمک در مورد نوشتن دستور پشتیبان گیری و بازگردانی



oliya24
یک شنبه 17 اردیبهشت 1391, 19:07 عصر
سلام و خسته نباشید دوستان عزیز من میتونم با ویزارد هم پشتیبان و هم بازگردانی رو انجام بدم ولی این دو کار رو با کد نویسی بلد نیستم میخواستم خواهش کنم از دوستانی که این 2 کار رو با کد نویسی بلد هستن به من یاد بدن ممنون میشم:کف:

damanpak
یک شنبه 17 اردیبهشت 1391, 23:15 عصر
سلام و خسته نباشید دوستان عزیز من میتونم با ویزارد هم پشتیبان و هم بازگردانی رو انجام بدم ولی این دو کار رو با کد نویسی بلد نیستم میخواستم خواهش کنم از دوستانی که این 2 کار رو با کد نویسی بلد هستن به من یاد بدن ممنون میشم:کف:

ایجاد فایل پشتیبان

dim cmd as new sqlcommadn
With cmd
.CommandText = "BACKUP DATABASE نام دیتابیس TO DISK = N'مسیر ذخیره فایل پشتیبان' WITH NOFORMAT, NOINIT, NAME =N'نام دیتابیس" & "-Full Database Backup',SKIP, STATS = 10"
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
End With

فراخوانی فایل


dim cmd as new sqlcommadn
With cmd
.CommandText = "use master;ALTER DATABASE نام دیتابیس SET SINGLE_USER with ROLLBACK IMMEDIATE;RESTORE DATABASE نام دیتابیس FROM DISK= 'مسیر فراخوانی فایل پشتیبان' with REPLACE;ALTER DATABASE نام دیتابیس SET MULTI_USER"
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
End With

oliya24
یک شنبه 17 اردیبهشت 1391, 23:37 عصر
دوست عزیز ممنون ولی من این کار ها رو توی خود محیط اس کیو ال میخواستم با کد انجام بدم نه اینکه تو زبان برنامه نویسی ممنون میشم اگر توی خود محیط اس کیو ال سرور به من این دستورات رو بگید

damanpak
یک شنبه 17 اردیبهشت 1391, 23:46 عصر
دوست عزیز ممنون ولی من این کار ها رو توی خود محیط اس کیو ال میخواستم با کد انجام بدم نه اینکه تو زبان برنامه نویسی ممنون میشم اگر توی خود محیط اس کیو ال سرور به من این دستورات رو بگید
کافیه این دستورات رو توی محیط اس کیو ال اجرا کنی
ایجاد پشتیبان

BACKUP DATABASE نام دیتابیس TO DISK = N'مسیر ذخیره فایل پشتیبان' WITH NOFORMAT, NOINIT, NAME =N'نام دیتابیس" & -Full Database Backup',SKIP, STATS = 10"
فراخوانی پشتیبان

use master;ALTER DATABASE نام دیتابیس SET SINGLE_USER with ROLLBACK IMMEDIATE;RESTORE DATABASE نام دیتابیس FROM DISK= 'مسیر فراخوانی فایل پشتیبان' with REPLACE;ALTER DATABASE نام دیتابیس SET MULTI_USER

oliya24
دوشنبه 18 اردیبهشت 1391, 00:12 صبح
این دستورات خطا داره دوست عزیز

damanpak
دوشنبه 18 اردیبهشت 1391, 00:14 صبح
این دستورات خطا داره دوست عزیز
دقیقا عین دستوراتی که شما توی محیط اس کیو ال مینویسی و خطایی که داره رو کپی کن و بزار اینجا تا ببینم چه خطایی داره

oliya24
دوشنبه 18 اردیبهشت 1391, 00:17 صبح
BACKUP

DATABASE mar TO DISK = N'E:\ss' WITH NOFORMAT, NOINIT, NAME =N'mar" & -Full Database Backup',SKIP, STATS = 10

Msg 3201, Level 16, State 1, Line 1

Cannot open backup device 'E:\ss'. Operating system error 5(Access is denied.).

Msg 3013, Level 16, State 1, Line 1

BACKUP DATABASE is terminating abnormally.

damanpak
دوشنبه 18 اردیبهشت 1391, 00:25 صبح
BACKUP

DATABASE mar TODISK=N'E:\ss'WITHNOFORMAT,NOINIT, NAME =N'mar" & -Full Database Backup',SKIP,STATS= 10

Msg 3201, Level 16, State 1, Line 1

Cannot open backup device 'E:\ss'. Operating system error 5(Access is denied.).

Msg 3013, Level 16, State 1, Line 1

BACKUP DATABASE is terminating abnormally.



دوست عزیز علتش اینه که فاصله ها رو رعایت نکردی مثلا

TO DISK = N'مسیر ذخیره فایل پشتیبان' WITH NOFORMAT
رو به این حالت نوشتی

TODISK=N'E:\ss'WITHNOFORMAT
خب اینطوری معلومه که قبول نمیکنه طبق تصویر زیر اجرا کن تا جواب بگیری
86755
و این پیغام رو که دریافت کنی فایل پشتیبانت درست میشه

99 percent backed up.
Processed 104 pages for database 'mar', file 'mar' on file 1.
100 percent backed up.
Processed 1 pages for database 'mar', file 'mar_log' on file 1.
BACKUP DATABASE successfully processed 105 pages in 0.233 seconds (3.660 MB/sec).
ضمنا خطایی که واسه شما اومده داره میگه نمیتونه به محل ذخیره سازی فایل پشتیبان (درایو E ) دسترسی پیدا کنه و دسترسی ممکن نیست
توی یه درایو دیگه تستش کن

oliya24
دوشنبه 18 اردیبهشت 1391, 00:35 صبح
باز هم با مشکل مواجه شد میشه این کدی که خودت مینویسی رو زیپ کنی و یه جا اپلود کنی یه دیتابیس با یه جدول مثلا بساز و نمونه کد رو به من بده
ممنون میشم اگر این لطف رو در حق من بکنید

damanpak
دوشنبه 18 اردیبهشت 1391, 00:41 صبح
باز هم با مشکل مواجه شد میشه این کدی که خودت مینویسی رو زیپ کنی و یه جا اپلود کنی یه دیتابیس با یه جدول مثلا بساز و نمونه کد رو به من بده
ممنون میشم اگر این لطف رو در حق من بکنید

86756

اس کیو ال سرور 2000

oliya24
دوشنبه 18 اردیبهشت 1391, 00:55 صبح
دوست عزیز بازهم خطا مشکلش اینه که ما از نسخ متفاوتی استفاده میکنیم شما 2000 و من 2008 توی 2008 اول باید دستگاه پشتیبان رو بسازیم که انگار توی 2000 اصلا چیزی به این نام نیست به هر حال خیلی خیلی لطف کردید و ممنونم که تا این ساعت داشتید من رو همراهی میکردید

damanpak
دوشنبه 18 اردیبهشت 1391, 01:09 صبح
دوست عزیز بازهم خطا مشکلش اینه که ما از نسخ متفاوتی استفاده میکنیم شما 2000 و من 2008 توی 2008 اول باید دستگاه پشتیبان رو بسازیم که انگار توی 2000 اصلا چیزی به این نام نیست به هر حال خیلی خیلی لطف کردید و ممنونم که تا این ساعت داشتید من رو همراهی میکردید

دوست عزیز فرقی نمیکنه توی کدوم نسخه کار کنی
اتفاقا من همین الان توی نسخه 2008 هم تست کردم و درست جواب داد اینم نتیجه خروجیش

13 percent processed.
22 percent processed.
30 percent processed.
44 percent processed.
53 percent processed.
61 percent processed.
70 percent processed.
83 percent processed.
92 percent processed.
Processed 176 pages for database 'tst', file 'tst' on file 1.
100 percent processed.
Processed 5 pages for database 'tst', file 'tst_log' on file 1.
BACKUP DATABASE successfully processed 181 pages in 0.361 seconds (3.917 MB/sec).

baktash.n81@gmail.com
سه شنبه 19 اردیبهشت 1391, 17:01 عصر
سلام

می تونی در هنگام Back up گرفتن از کلید Script استفاده کنی تا کد کاری رو که داری انجام می دی برات ایجاد کنی ...

pashna
جمعه 22 اردیبهشت 1391, 04:39 صبح
USE Demo
GO
BACKUP DATABASE Demo TO DISK = 'H:\Test\Demo.bak'

oliya24
جمعه 22 اردیبهشت 1391, 15:10 عصر
USE Demo
GO
BACKUP DATABASE Demo TO DISK = 'H:\Test\Demo.bak'

سلام مرسی دوست عزیز دستورتون رو تست کردم درست بود حالا میشه بگید برای برگرداندن یعنی restore باید چه کار کنم ممنون میشم

pashna
جمعه 22 اردیبهشت 1391, 19:43 عصر
سلام، خواهش می‌کنم

USE master
GO
RESTORE DATABASE [Demo] FROM DISK = 'H:\Test\Demo.bak'

oliya24
شنبه 23 اردیبهشت 1391, 12:38 عصر
سلام دوست عزیز من این دستور رو اجرا کردم ولی با این پیغام مواجه شدم
Msg 3159, Level 16, State 1, Line 1

The tail of the log for the database "amooz" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.

Msg 3013, Level 16, State 1, Line 1

RESTORE DATABASE is terminating abnormally.

pashna
یک شنبه 24 اردیبهشت 1391, 21:59 عصر
سلام، فکر می‌کنم دیتابیس تون می‌خواد ریستور بشه روی قبلی‌، ولی‌ اسکیوال اجازه نمیده.
USE master
GO
RESTORE DATABASE [Demo] FROM DISK = 'H:\Test\Demo.bak' WITH REPLACE