خانه SQL Server آشنایی با روشهای بکاپ گیری از OLAP دیتابیسها SQL Server SQL Server Backup نوشته شده توسط: فرهاد لطفی تاریخ انتشار: ۰۸ تیر ۱۳۹۹ آخرین بروزرسانی: 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 کرده و بگوییم که در ساعات مختلف از شبانه روز ابن کوئری اجرا شود. چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۱ اولین نفر باش معرفی نویسنده مقالات 1 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده فرهاد لطفی معرفی محصول مسعود طاهری دوره آموزشی نگهداری از بانکهای اطلاعاتی در SQL Server 1.180.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ