PDA

View Full Version : ???? Microsoft SQL Server, Error: 3205



مرضيه ميرزايي
سه شنبه 13 اسفند 1387, 18:38 عصر
سلام دوستان:
من يك فايل 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
پنج شنبه 15 اسفند 1387, 17:07 عصر
براي 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
دوشنبه 30 فروردین 1389, 14:48 عصر
با سلام. ببخشید من هم مشکل خطای بالا را دارم. میشه لطفا بگین که این کد ها رو کجا باید وارد کرد؟ منظورم توی کد اصلی با کد دیتا بیس؟ کدوم یکی؟ ممنونم

saied_genius
دوشنبه 30 فروردین 1389, 15:20 عصر
سلام

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

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

موفق باشيد.

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

saied_genius
دوشنبه 30 فروردین 1389, 20:40 عصر
سلام

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

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

saied_genius
سه شنبه 31 فروردین 1389, 10:10 صبح
سلام

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

موفق باشيد.

ERIKA
شنبه 14 اسفند 1389, 17:37 عصر
[QUOTE=saied_genius;957287][RIGHT]سلام

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

موفق باشيد.

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

حمیدرضاصادقیان
چهارشنبه 18 اسفند 1389, 07:35 صبح
سلام.
شما نمیتوانید دو Instance مختلف رو با یک نام داشته باشید.
اگر نسخه 2005 نصب هست میتوانید به SQL Server Configuration Manager رفته و در قسمت سرویس ها ببینید نام Instance 2000 و 2005 شما چی هست.

padeshah59
جمعه 09 دی 1390, 16:40 عصر
سلام
با اسکریپتهای فوق که مشکل من حل نشد
مرتب پیغام خطا میده