# پایگاه‌های داده > SQL Server > مدیریت دیتابیس (Database Administration) > Maintenance Plan >  ???? Microsoft SQL Server, Error: 3205

## مرضيه ميرزايي

سلام دوستان:
من يك فايل backup تو sql server2005 گرفتم  وقتي مي خواهم تو sqlserver 2005 با كد زير restore كنم :
*use master
 IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'mydb')
 DROP DATABASE [mydb]  CREATE DATABASE [mydb] 
  ALTER DATABASE mydb SET SINGLE_USER WITH  ROLLBACK IMMEDIATE
 RESTORE DATABASE mydb  FROM DISK ='path' 
 ALTER DATABASE mydb SET MULTI_USER*
اين خطا را ميده:
*Too many backup devices specified for backup or restore; only 64 are allowed.
RESTORE HEADERONLY is terminating abnormally. (Microsoft SQL Server, Error: 3205*)
 
اگر دوستان لطف كنند من راهنمايي كنند 
ممنون مي شوم

----------


## saied_genius

براي RESTORE كرد ديتابيس SQL شما بايد ابتدا دسترسي به بانك را محدود به يك دسترسي نماييد. (كه آ ن هم دسترسي خود Restore است)

و سپس اقدام به RESOTRE نماييد.

براي دسترسي محدود :


ALTER DATABASE MyDatabase SET SINGLE_USER


و يا


EXEC sp_dboption 'MyDataBaseName','single user','TRUE'


**نكته: تنظيم ديتابيس به حالت تك كاربره پس از بازيابي اطلاعات به صورت اتوماتيك به حالت چند كاربره باز مي گردد.


و سپس از هر نوع RESTORE كه دوست داري استفاده كن.


::(يه مثال براي Backup و Restore) ::

 اسكريپت Backup كه يك Stored Procedure براي Backup مي سازد.
 

USE [نام ديتابيس]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BackupDB] 
@BackupPath varchar(max) 
AS 
backup database [نام ديتابيس] to disk =@BackupPath with INIT, SKIP, NOUNLOAD, STATS = 10 
RETURN


و

اسكريپت Restore كه يك Stored Procedure براي Restore مي سازد.

 

use [master]
GO 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[RestoreDB] 
@BackupPath varchar(max) 
AS 
RESTORE DATABASE [نام ديتابيس] 
FROM DISK = " + "'" + RestorePath + "'" + " WITH RECOVERY, REPLACE 
RETURN





موفق باشيد.

----------


## FCOFCO

با سلام. ببخشید من هم مشکل خطای بالا را دارم. میشه لطفا بگین که این کد ها رو کجا باید وارد کرد؟ منظورم توی کد اصلی با کد دیتا بیس؟ کدوم یکی؟  ممنونم

----------


## saied_genius

سلام

کدهاي فوق دستورات sql هستند.

فرقي نمي کند از کجا آنها را صدا کنيد (محيط برنامه نوبسي يا sql server) ، فقط مهم اين است که آنها را اجرا کنيد.

موفق باشيد.

----------


## FCOFCO

سلام آقا سعید.
ممنون که جواب دادی.اگه من کد 
EXEC sp_dboption 'MyDataBaseName','single user','TRUE'
رو مثلاً توی یکی از فرم ها مثل فرم main بنویسم درست میشه؟

----------


## saied_genius

سلام

با چه زباني برنامه نويسي مي کني؟

----------


## FCOFCO

با سی شارپ.
موضوع اینه که وقتی من sql 2005 developer رو نصب میکنم و بعدش دیتا بیس رو restor می کنم اونوقت برنامۀ exe که به این دیتا بیس نیاز داره بدون مشکل کار می کنه و بعد میخوام نرم افزار حسابداری رو که با sql 2000 نوشته شده رو نصب کنم error میده و نصب نمیشه.
و اگه بیام اول نرم افزار حسابداری رو نصب کنم و بعدش sql 2005 developer رو ، اونوقت موقع restor کردن دیتا بیس با error شمارۀ 3205 یا ،Too Many Backup devices  , ... برخورد می کنم.
اگه می شه لطفا منو راهنمایی کنید.
ممنون از لطف شما.

----------


## saied_genius

سلام

ببينيد ، مشکل شما احتمالاً از اين باشد که ، شما در محيط سي شارپ (اگر از آنجا داريد restore مي کنيد) ديتابيس 2005 را بر روي 2000 داريد restore مي کنيد ، هنگام restore مطمئن شويد که ديتابيس رو بر روي سرور درست restore کنيد.

موفق باشيد.

----------


## ERIKA

[QUOTE=saied_genius;957287][RIGHT]سلام

ببينيد ، مشکل شما احتمالاً از اين باشد که ، شما در محيط سي شارپ (اگر از آنجا داريد restore مي کنيد) ديتابيس 2005 را بر روي 2000 داريد restore مي کنيد ، هنگام restore مطمئن شويد که ديتابيس رو بر روي سرور درست restore کنيد.

موفق باشيد.

با سلام من چنین مشکلی که شما می فرماییید دارم ..همین پیغام 3205 برای ریستور کردن مواجه هستم..هم اسکیوال 2000 و هم اسکیوال 2005 با یک نام سرور وارد می شود ...چه جوری آن را روی 2005 بیارمش...در حالی که یک نام سرور بیشتر ندارم
آیا من باید پاکش کنم و با یک نامی متفاوت از نام 2000آن را ایجاد کنم؟؟.
ممنون

----------


## حمیدرضاصادقیان

سلام.
شما نمیتوانید دو Instance مختلف رو با یک نام داشته باشید.
اگر نسخه 2005 نصب هست میتوانید به SQL Server Configuration Manager رفته و در قسمت سرویس ها ببینید نام Instance 2000 و 2005 شما چی هست.

----------


## padeshah59

سلام
با اسکریپتهای فوق که مشکل من حل نشد
مرتب پیغام خطا میده

----------

