آشنایی با روش‌های بکاپ گیری از  OLAP دیتابیس‌ها

آشنایی با روش‌های بکاپ گیری از OLAP دیتابیس‌ها

نوشته شده توسط: فرهاد لطفی
تاریخ انتشار: ۰۸ تیر ۱۳۹۹
آخرین بروزرسانی: 30 بهمن 1400
زمان مطالعه: 22 دقیقه
۵
(۱)

مقدمه

مطالبی که در این مقاله مطالعه خواهید کرد:

  • نحوه انجام backup گیری ازOLAPDatabase ها به صورت مقدماتی
  • نحوه انجام backup گیری ازOLAPDatabase ها به صورت داینامیک از طریق XMLA
  • نحوه انجام backup گیری ازOLAPDatabase ها به صورت داینامیک از طریق sqlserver

نحوه انجام backup گیری ازOLAPDatabaseها به صورت مقدماتی

هنگام بک اپ گیری از اولپ ابتدا از طریق SSMS به سرویس AnalysisServices متصل میشویم.
(اگر خطا داد به services مراجعه کرده و سرویس Analysis Services را onکنید)حال در تب Databases به دیتابیس‌های اولپ دسترسی دارید و با کیک راست روی هر کدام از آن‌ها و زدن گزینه Backup می‌توانید عملیات بک آپ را انجام دهید.
در پنجره باز شده
(نام دیتابیس) : Database
(میباشد abf محل ذخیره سازی فایل بک اپ که از نوع ) نکته: ترجیحا به مسیر فایل بک اپ دست نزنید و این مسیرها هنگام نصب SQLServer مشخص میشود)
و مسیر مربوط به فایل بک آپ را انتخاب میکنیم.

  • Allow the OverWrite: اگر در آن مسیر فایل بک اپ فایل هم نام با این فایل بک اپ از قبل وجود داشته باشد روی آن OverWrite می‌شود.
  • Allow The Compression: اگر این گزینه فعال باشد فایل بک اپ را SQL Server به طور اتوماتیک فشرده میکند و حجم کمتری اشفال می‌شود.

  • Encrypt Backup File: شما میتوانید روی فایل بک اپ پسورد انتخاب کنید و هنگام Restore کردن آن از شما پسوردی که قبلا در اینجا وارد کرده اید را می‌خواهد.
    سپس با زدن کلیک OK بک اپ شما انجام می‌شود.

برای Restore کردن فایل بک اپ هم کافی است که روی دیتابیس مورد نظرتون کلیک راست کنید و گزینه Restore را بزنید

  • BackupFile: مسیر فایل بک آپی که میخواهید آن را ری استور کنید.
  • RestoreDataBase:نام دیتابیس
  • StorageLocation: محل ذخیره سازی دیتابیس
  • OverWrite: بک اپ مورد نظر روی دیتابیس OverWrite شود.
  • PassWord: اگر از قبل پسوردی برای فایل بک اپ در نظر گرفته بودید در این قسمت می‌توانید آنرا وارد کنید.

این بک اپ به صورت کاملا HelloWord است و عملا در محیط‌های عملیاتی کمتر از این روش برای بک آپ گیری استفاه می‌شود.
زیرا در محیط‌های عملیاتی فایل بک اپ باید به صورت داینامیک گرفته شود و اتوماتیک برای مثال هر روز در ساعت‌های مشخصی بک اپ گرفته شود.

نحوه انجام Backup گیری ازOLAPDatabaseها به صورت داینامیک از طریقXMLA

گفتیم که در محیط‌های عملیاتی این گونه نیست که هر کسی بخواهد در طول روز روی گزینه بک اپ کلیک کند و در هر ساعتی بک اپ تهیه کند.
پس:
a) باید یه plan مناسب چید و جوری مشخص کنیم و کد بنویسیم که فایل بک اپ به صورت داینامیک در ساعت های مشخص SQl خودش عملیات بک اپ گیری را انجام دهد.
شاید با خودتان بگویید که خوب من یه job تعریف کرده و می‌گویم که از دیتابیس مد نظرم بک اپ تهیه کند.
اما تعریف job در قسمت Analysis Service امکان پذیر نیست و job زیر مجموعه سرویس SQL Agent است که آن هم در دل DataBase Engine قرار دارد.
(SQL Agent: یک سرویس می‌باشد که تعیین زمانبندی و تشریح کار در عوض اجرای خودکار را بر عهده دارد و مهمترین وظیفه آن اجرا کردن jobها می‌باشد)
(Job : job ها عملیاتی هستند که دارای یکسری دستورات هستند که در یک زمان خاص بصورت روزانه، هفتگی و یا ماهانه و یا حتی بصورت دستی اجرا خواهند شد.)
پس نمیتوان Job را براحتی تعریف کردراه حل:
۱- استخراج اسکریپت مربوط به بک اپ گیری
در صفحه بک اپ گیری اگر روی گزینه Script کلیک کنید اسکریپت مربوط به ساخت دیتابیس را تولید میکند.
اسکریپتی مشابه به این حالت تولید میشود که فرمت آن به شکل XMLA هست

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Object>
    <DatabaseID>MultidimensionalProject3</DatabaseID>
  </Object>
  <File>C:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\Backup\OlapTest For Process.abf</File>

  <AllowOverwrite>true</AllowOverwrite>
</Backup

۲- حال ما باید در Database Engine در قسمت SQL Agent یک JOB تعریف کنیم:
این جاب کارش باید این باشد که این اسکریپت XMLA را روی آنالیز سرویس در روزهای مختلف اجرا کند.اما همین وصل شدن به آنالیز سرویس ۳ مرحله دارد که باید به ترتیب آن هارا انجام دهیم:
a) ابتدا باید یک User ویندوزی تعریف کنید.

Computer Management – Local Users And Groups – Users – NewUser

برای مثال:
هنگام تعریف یوزر از این قسمت به صورت پیش فرض جزو گروه Adminstrator قرار می‌گیرد که می‌توانید برای مدیریت هر کدام از یوزرهایی که تعریف می‌کنید کلیک راست و Member of  Property رو تنظیم کنید.
برای انجام بک اپ هم این یوزر باید به سرویس‌های SQL Engine , SQL Analysis دسترسی داشته باشد.
b) تعریف Credential:
بعد از تعریف یوزر ویندوزی و دادن دسترسی‌های لازم به آن در مرجله بعد باید یه Credential (مجوز، اعتماد) در SQLServer بسازیم.

Security – Credential – New Credential :

در قسمت Identity باید یوزر ویندوزی که تعریف کرده بودید را بدهید.
و بعد اسم و پسورد Credential را وارد کنید.
نکته مهم : پسورد باید با پسوردی که هنگام تعریف یوزر ویندوزی وارد کرده بودید باید تطابق داشته باشد.
c) تعریف یکproxy:
پروکسی به سرور واسط بین دو سرویس در یک شبکه گفته می‌شود.

SQL Agent- Proxies – New Proxy

Credential Name: همان Credential که تعریف کردید را در این جا Assign کنید. و تیک مربوط SQL Server Analysis Service Command باید علامت خورده باشد چون قرار است که یک Command به طرف Analysis Service فرستاده شود.
خوب الان همه چیز آماده است برای تعریف Job:

SQL Agent – Jobs – New Job

img class=”aligncenter size-full wp-image-91533″ src=”http://nikamooz.com/wp-content/uploads/2020/06/backup-method-9.png” alt=”” width=”690″ height=”625″ />در Steps:

در قسمت Type ابتدا نوع کاری که این job انجام می‌دهد را مشخص کنید. که اینجا از نوع Server Analysis Services Commond SQL می‌باشد.
در قسمت Run as باید کسی که این job را اجرا می‌کند را مشخص کنیم که برای آن proxyی که تعریف کردیم را مشخص کنیم.
در قسمت Server اسم سرور آنالیز سرویس مقصد را مشخص می‌کنیم.
و در قسمت Commond اسکریپت مربوط به ساخت فایل بک آپ را کپی می‌کنیم.و بعد OK
 
در schedule Job
شما می‌توانید مشخص کنید به صورت دوره‌ای در چه زمان و چه تاریخ‌هایی بک آپ گرفته شود. حالا بک آپ به صورت داینامیک انجام میشود.
نحوه انجام backup گیری ازOLAPDatabase ها به صورت داینامیک از طریق sqlserver :
در روش قبل ما توانستیم بک اپ گیری را به صورت داینامیک انجام دهیم، اما ایرادی که این روش دارد این است که در محیط‌های عملیاتی اسم فایل بک آپ به همراه تاریخ و ساعت همان لحظه‌ای که بک اپ انجام می‌شود کنار اسم فایل نوشته می‌شود.
مثلا : OlapTestForProcess 20200423_131605 .abf
خوب برای این کار میتوانیم از تکنیک Linked Server استفاده کنیم

Linked Server:
لینک سرور در واقع امکان اتصال به داده‌های بانک‌های اطلاعاتی دیگر را برای ما فراهم می‌کند و می‌توانیم از طریق SQL Engine به ‌Engineهای دیگر متصل شویم و دیتا‌های آن‌ها را واکشی کنیم.
برای ایجاد لینک سرور باید دو تنظیم عمومی و امنیتی را برای آن مشخص کنیم.

  • انجام تنظیمات عمومی

  • انجام تنظیمات امنیتی:

اکنون لینک سروری که ایجاد کرده‌اید در این قسمت میتوانید مشاهده کنید:

Server Objects – Linked Server

تنظیم دیگری که باید برای Linked Serverانجام دهید تنظیم RFC OutPut میباشد که باید RFC Output باید True باشد.
خوب تنظیمات لینک سرور تمام شد و آماده است.
حال باید تاریخ و ساعت حال رو از SQL استخراج کنیم :
فرقی نمیکند مورد اول به صورت شمسی است و مورد دوم قمری:

select format(GetDate() , 'yyyyMMdd_HHmmss' ,'fa_IR')
 13990205_192227
select	CONVERT(NVARCHAR, GETDATE(), 112) + '_' + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '')
 20200424_192227

از طرفی اسکریپت XMLAمربوط به ایجاد فایل بک آپ را هم داریم

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Object>
    <DatabaseID>MultidimensionalProject3</DatabaseID>
  </Object>
  <File>C:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\Backup\OlapTest For Process.abf</File>
  <AllowOverwrite>true</AllowOverwrite>
</Backup

حال اسکریپتی که باید از SQL Engine به طرف OLAP بفرستیم این هستش

DECLARE @XMLA NVARCHAR(1000) , @Date NVARCHAR(35);
SET @Date = CONVERT(NVARCHAR, GETDATE(), 112) + '_' + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '');
SET @XMLA =
  N'<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Object>
    <DatabaseID>MultidimensionalProject3</DatabaseID>
  </Object>
<File>C:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\Backup\OlapTest For Process ' + @Date + ' .abf</File>
  <AllowOverwrite>true</AllowOverwrite>
  </Backup>';
EXEC (@XMLA) AT [OLAPServer]

ابتدا دو متغیر تعریف میکنیم یکی تاریخ حال باشد و دیگری متن XMLA.
این دو رو با + و ‘ بهم متصل می‌کنیم و در اخر می‌گوییم که از این لینک سرور این کوئری اجرا شود.
همچنین میتوانیم همین کوئری را Job کرده و بگوییم که در ساعات مختلف از شبانه روز ابن کوئری اجرا شود.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۱

اولین نفر باش

title sign
معرفی نویسنده
فرهاد لطفی
مقالات
1 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
فرهاد لطفی
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
close-image