PDA

View Full Version : attach نکردن database



Look in future
پنج شنبه 28 خرداد 1383, 11:37 صبح
با سلام
من یک database ایجاد کردم که شامل 2 , filegroup است و هر filegroup شامل 2 , datafile است . یک filegroup در یک درایو و دیگری در درایو دیگر است . بنا به دلایلی سیستم تمام اطلاعات خود را از دست داد وال من از بانکم backup گرفته بودم .
مجبور شدم ویندوز و sqlرا دوباره نصب کنم بعد از نصب sql وقتی می خواهم بانک را attach کنم با این پیغام خطا روبرو شدم .


create database database_morakhasi
ON PRIMARY
( NAME = Fg1_F1,
FILENAME = 'E:\Project\Morakhasi\Morakhasi_database\morakhsi. mdb',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
( NAME = Fg1_F2,
FILENAME = 'E:\Project\Morakhasi\Morakhasi_database\morakhsi. ndb',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
FILEGROUP Secondary
( NAME = Fg2_F1,
FILENAME ='D:\Program Files\Microsoft SQL Server\MSSQL\Data\morakhasi1.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = Fg2_f2,
FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\morakhasi2.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'File_log',
FILENAME = 'E:\Project\Morakhasi\Morakhasi_database\morakhsi. ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO

Mohammad S
پنج شنبه 28 خرداد 1383, 14:41 عصر
FILENAME = 'E:\Project\Morakhasi\Morakhasi_database\morakhsi. ndb'
هر چی ما یادمون میاد پسوند فایلهای SQL، یا mdf بوده یا ldf :shock:
ndf دیگه چه صیغه ایه؟ :?:

sh
پنج شنبه 28 خرداد 1383, 15:41 عصر
هر چی ما یادمون میاد پسوند فایلهای SQL، یا mdf بوده یا ldf
ndf دیگه چه صیغه ایه؟
_________________

فکر کنم دوستان میخواسته بنویسه mdb یعنی پسوند فایل اکسس

ali_bagheri34
پنج شنبه 26 شهریور 1383, 12:52 عصر
دوست عزیز شما فایل اسکیوال را باید attach کنید نه فایل مربوط به اکسس

AminSobati
پنج شنبه 26 شهریور 1383, 15:17 عصر
سلام به همه دوستان،
قبل از اینکه در مورد اصل topic صحبتی کنم، فایل NDF دقیقا ساختار فایل MDF رو داره و جنس اونها Data File هستش و اطلاعات و Objectها داخلشون میتونه قرار بگیره. در حالیکه فایل LDF، به اصطلاح ماهیت Log File داره. اگر بخواهیم خلاصه کنیم بحث وجود انواع این فایلها در دیتابیس رو:
MDF - وجود یکی الزامی، بیشتر از یکی غیر ممکن
NDF - وجودش غیر الزامی، تا حدود 32000 فایل NDF میتوان برای DB داشت
LDF - وجود یکی الزامی، تا حدود 32000 فایل LDF میتوان برای DB داشت

متاسفانه حتی بعضی شرکتهایی که نرم افزارهای اتوماسیون اونها در سطح کشور مطرحه، در طراحی فیزیکیه دیتابیسشون، از MDF برای نگهداری اطلاعات استفاده میکنند.
توصیه مایکروسافت اینه که همیشه یک MDF با حجم نهایتا (حتی برای DBهای بزرگ) 5 مگابایت بسازیم و استفاده از این فایل رو به عهده SQL Server بگذاریم تا تمام اطلاعات سیستمی مربوط به DB در این فایل نگهداری و ویرایش بشن. فایل MDF در حقیقت تمام هویت و شناسنامه دیتابیس ما هست و به همین دلیل موقع Attach کردن دیتابیس، آدرس MDF رو میدیم.
اگر User Data یا همون اطلاعاتی که ما وارد میکنیم در MDF قرار بگیره، بین رکوردها و اطلاعات سیستمی، عدم پیوستگی یا Fragmentation ایجاد میکنه. در این حالت، روند دسترسی SQL Server به اطلاعات حساس دیتابیس ما قدری کند میشه.
لذا از فایل NDF برای ذخیره User Data استفاده میکنیم. همچنین میتونیم محل نگهداری رکوردها رو از ایندکسها جدا کنیم تا Performance افزایش و Fragmentation کاهش پیدا کنه.
اما در مورد سوال اصلی این topic، از یک طرف دوستمون آقای باقری درست اشاره کردند، چون شما فایل mdb که فایل Access هست رو دارید attach میکنید، از طرف دیگه اگر شما backup گرفتین، چرا attach میکنین؟ باید عمل Restore انجام بشه.
موفق باشید
امین ثباتی MCSD

Mohammad S
پنج شنبه 26 شهریور 1383, 22:00 عصر
مرسی واقعا جالب بود :تشویق: :)