اضافه کردن File به دیتابیس عضو Always On Availability Group
نحوه اضافه کردن File به دیتابیس عضو Always On Availability Group و نکات مهم مربوط به مسیر فایل و Synchronization در SQL Server
05 شهریور 1405
لینک کوتاه
اضافه کردن File به دیتابیس عضو Always On Availability Group در SQL Server
در محیطهای سازمانی، SQL Server Always On Availability Group یکی از راهکارهای مهم برای افزایش دسترسپذیری، کاهش Downtime و محافظت از دیتابیسها در برابر خرابی سرور است.زمانی که یک دیتابیس در Availability Group قرار دارد، معمولاً یک Primary Replica و یک یا چند Secondary Replica از آن نگهداری میشود.
در چنین شرایطی، انجام تغییرات روی ساختار دیتابیس، از جمله اضافه کردن فایل جدید، باید با دقت بیشتری نسبت به یک دیتابیس معمولی انجام شود.
یکی از عملیاتهایی که مدیران دیتابیس ممکن است در طول زمان با آن مواجه شوند، اضافه کردن File به دیتابیس عضو Always On Availability Group است.
این فایل میتواند یک Data File با پسوند MDF یا NDF و در برخی سناریوها یک Log File با پسوند LDF باشد.
دلیل اضافه کردن فایل جدید میتواند افزایش حجم دیتابیس، مدیریت بهتر Storage، استفاده از Filegroupهای مختلف یا بهبود عملکرد I/O باشد.
چرا باید File جدید به دیتابیس اضافه کنیم؟
با افزایش حجم اطلاعات، ممکن است فایلهای فعلی دیتابیس دیگر برای نیازهای سازمان مناسب نباشند.در این شرایط، DBA میتواند با اضافه کردن فایل جدید، فضای بیشتری برای ذخیره اطلاعات در اختیار SQL Server قرار دهد.
برای مثال، اگر دیتابیس دارای یک فایل Data باشد و حجم اطلاعات به مرور افزایش پیدا کند، میتوان یک فایل NDF جدید به آن اضافه کرد.
همچنین در دیتابیسهای بزرگ، استفاده صحیح از چند فایل و Filegroup میتواند به مدیریت بهتر Storage کمک کند.
البته اضافه کردن File صرفاً برای افزایش فضای ذخیرهسازی نیست.
در برخی معماریها، فایلها روی Storageهای مختلف قرار میگیرند تا Workload مربوط به I/O بهتر مدیریت شود.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
نکته مهم در Always On Availability Group
در یک دیتابیس مستقل، اضافه کردن فایل بسیار ساده است؛ اما وقتی دیتابیس عضو Always On Availability Group باشد، باید وضعیت Replicaها نیز در نظر گرفته شود.تغییرات ساختاری دیتابیس باید روی Primary Replica انجام شوند.
بنابراین اگر قصد اضافه کردن فایل جدید به دیتابیسی را دارید که در Availability Group قرار دارد، ابتدا مطمئن شوید که روی Primary Replica متصل هستید.
برای مشاهده فایلهای فعلی دیتابیس میتوان از دستور زیر استفاده کرد:
USE [MyDatabase];
GO
SELECT
name,
physical_name,
type_desc,
size,
growth
FROM sys.database_files;
GO
این Query نام فایل، مسیر فیزیکی، نوع فایل، اندازه و مقدار رشد آن را نمایش میدهد.
اضافه کردن NDF به دیتابیس Always On
برای اضافه کردن یک Data File جدید میتوان از دستور ALTER DATABASE استفاده کرد.نمونه زیر یک فایل NDF جدید به دیتابیس اضافه میکند:
ALTER DATABASE [MyDatabase]
ADD FILE
(
NAME = N'MyDatabase_Data02',
FILENAME = 'D:\SQLData\MyDatabase_Data02.ndf',
SIZE = 1024MB,
FILEGROWTH = 256MB
);
GO
در این مثال، فایل جدید با نام MyDatabase_Data02 ایجاد شده و اندازه اولیه آن یک گیگابایت است.
مقدار FILEGROWTH نیز برابر با ۲۵۶ مگابایت در نظر گرفته شده است.
مقادیر Size و Filegrowth باید متناسب با حجم دیتابیس و Workload واقعی انتخاب شوند.
استفاده از مقادیر نامناسب میتواند باعث افزایش دفعات رشد فایل و ایجاد فشار اضافی روی Storage شود.
اهمیت File Path در Secondary Replica
یکی از مهمترین نکات هنگام اضافه کردن فایل به دیتابیس عضو Always On، مسیر فیزیکی فایل روی Replicaها است.فرض کنید روی Primary فایل جدید در مسیر زیر قرار دارد:
D:\SQLData\MyDatabase_Data02.ndf
باید بررسی شود که Secondary Replica نیز بتواند فایل مربوطه را در مسیر مناسب ایجاد کند.
اگر ساختار Drive و Directory در سرورهای مختلف یکسان نباشد، احتمال بروز مشکل در فرآیند ایجاد فایل وجود دارد.
به همین دلیل، قبل از انجام تغییرات در محیط Production، بهتر است Storage و مسیر فایلها در تمام Replicaها بررسی شوند.
آیا باید File را روی Secondary به صورت دستی ایجاد کنیم؟
به طور معمول، نباید فایل دیتابیس را به صورت مستقل و دستی روی Secondary Replica اضافه کنید.تغییر ساختار دیتابیس باید از Primary انجام شود و مکانیزم Always On وظیفه انتقال تغییرات را بر عهده دارد.
انجام تغییرات مستقل روی Secondary میتواند باعث ایجاد ناسازگاری یا مشکلات مدیریتی شود.
بنابراین DBA باید ابتدا Primary Replica را شناسایی کرده و عملیات را در همان Replica انجام دهد.
بررسی وضعیت Synchronization
بعد از اضافه کردن فایل، بهتر است وضعیت دیتابیس در Availability Group بررسی شود.برای بررسی وضعیت Synchronization میتوان از DMV زیر استفاده کرد:
SELECT
DB_NAME(database_id) AS DatabaseName,
synchronization_state_desc,
synchronization_health_desc
FROM sys.dm_hadr_database_replica_states;
اگر وضعیت دیتابیس مناسب باشد، معمولاً Replicaها در حالتهایی مانند SYNCHRONIZED یا SYNCHRONIZING قرار میگیرند؛ البته وضعیت دقیق به نوع Replica و شرایط محیط بستگی دارد.
در صورتی که بعد از اضافه کردن File، Secondary Replica دچار مشکل شود، باید Error Log مربوط به SQL Server و وضعیت Availability Group بررسی شود.
بررسی فضای دیسک قبل از اضافه کردن File به دیتابیس
یکی از مهمترین اقدامات قبل از اضافه کردن File، بررسی فضای آزاد Storage است.فرض کنید فایل جدید قرار است چند صد گیگابایت حجم داشته باشد.
اگر روی Secondary فضای کافی وجود نداشته باشد، ممکن است Synchronization با مشکل مواجه شود.
بنابراین قبل از اجرای دستور، موارد زیر را بررسی کنید:
-
فضای آزاد Drive روی Primary
-
فضای آزاد Drive روی Secondary
-
مسیر ذخیرهسازی فایل
-
دسترسی SQL Server Service Account
-
وضعیت Synchronization
-
ظرفیت رشد آینده دیتابیس
-
سیاستهای Backup و Recovery
اضافه کردن Log File در Always On
در صورت نیاز میتوان Log File جدید نیز اضافه کرد. برای مثال:ALTER DATABASE [MyDatabase]
ADD LOG FILE
(
NAME = N'MyDatabase_Log02',
FILENAME = 'E:\SQLLog\MyDatabase_Log02.ldf',
SIZE = 2048MB,
FILEGROWTH = 512MB
);
GO
با این حال، اضافه کردن Log File باید بر اساس نیاز واقعی انجام شود.
افزایش تعداد فایلهای Log الزاماً به معنای افزایش Performance نیست و طراحی Transaction Log باید متناسب با Workload و نیازهای Recovery انجام شود.
بهترین روش برای محیط Production
در محیط Production بهتر است عملیات اضافه کردن File در یک بازه زمانی مناسب انجام شود و قبل از آن وضعیت Backup و Availability Group بررسی شود.همچنین پیشنهاد میشود قبل از اجرای تغییر، مستندات مربوط به مسیرهای Storage و Fileهای دیتابیس بررسی شده و در صورت حساس بودن دیتابیس، ابتدا عملیات در محیط Test یا Staging آزمایش شود.
بعد از اجرای دستور نیز موارد زیر کنترل شوند:
-
فایل جدید در Primary ایجاد شده باشد.
-
فایل در ساختار دیتابیس قابل مشاهده باشد.
-
فضای دیسک به شکل صحیح مصرف شده باشد.
-
Secondary Replicaها وضعیت مناسبی داشته باشند.
-
Synchronization بدون خطا ادامه پیدا کند.
Error Log مربوط به SQL Server بررسی شود.

جمعبندی
اضافه کردن File به دیتابیس عضو Always On Availability Group عملیاتی رایج در مدیریت دیتابیسهای بزرگ SQL Server است، اما به دلیل وجود Primary و Secondary Replica باید با دقت انجام شود.مهمترین اصل این است که تغییرات ساختاری دیتابیس از Primary Replica انجام شوند و قبل از اجرای عملیات، مسیر فایل و فضای Storage در Replicaهای مختلف بررسی شود.
استفاده از دستور ALTER DATABASE ... ADD FILE روش استانداردی برای اضافه کردن Data File است.
پس از اجرای دستور نیز باید وضعیت فایلها و Synchronization مربوط به Availability Group بررسی شود.
در نهایت، مدیریت صحیح Fileها، انتخاب مناسب Filegrowth، بررسی فضای Storage و مانیتور کردن وضعیت Replicaها میتواند از بروز مشکلاتی مانند توقف Synchronization یا کاهش دسترسپذیری دیتابیس جلوگیری کند.
به همین دلیل، قبل از هرگونه تغییر در دیتابیسهای حساس Production، بهتر است عملیات در محیط آزمایشی بررسی و سپس با برنامهریزی مناسب اجرا شود.



کاربران ما
شما هم نظرتون با ما دریاره “اضافه کردن File به دیتابیس عضو Always On Availability Group” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید