معرفی Logical Standby

Logical Standby یک کپی از دیتابیس اصلی است، اما می تواند به یک ساختار جدید تغییر یابد. Logical Standby با اجرای دستورات SQL ی Update می گردد. انعطاف پذیری Logical Standby این امکان را به شما می دهد Oracle Database software (اعم از Patchها یا نسخه های جدید) را بروزرسانی کنید و یا روش های دیگر نگهداری و تغییر پایگاه داده اوراکل را بدون Down Time پیاده سازی کنید. از نسخه ۱۱g تغییر وضعیت به Logical Standby با استفاده از Physical Standby ممکن گردیده است.
Oracle Data Guard اطلاعات Archive Redolog File ها و یا Standby Redo Log File ها را با تبدیل کردن اطلاعات Log File ها به عبارات SQL ی در Logical Standby ، Apply می کند و سپس این عبارات SQL ی را بر روی سرورStandby LG اجرا می کند. به دلیل Update شدن سرور LG Standby با دستورات SQL ی، می بایستی همیشه open باشد. با وجود اینکه سرور LG Standby در وضعیت Read,Write به صورت open می باشد، جداول اصلی آن ( تصویر جداول دیتابیس Primary) برای اجرای مجدد دستورات SQL ی که از سمت سرور Primary آمده (SQL هایی که از Archive ها و یا Standby redolog ها generate شده است) می بایستی read only باشد. زمانی که این جداول update می شوند ممکن است همزمان برای گزارش گیری، تجمیع اطلاعات و query های دیگر نیز استفاده شوند.
Logical standby محدودیت هایی برای data type ها، نوع جداول و نوع دستورات DML و DDL دارد.


مزایای Logical Standby
LG Standby برای سناریوهای حداکثر پایداری یک راهکار ایده آل است، اما در مقایسه با Physical standby مزایای قابل توجه زیر را دارد:
• کمترین downtime در زمان ارتقا software
Logical Standby یک ارتقا مناسب ازOracle Data Guard است که به منظور استفاده بهتر از این سرویس تنظیم شده است. Logical Standby زمان downtime را به منظور apply نمودن patch ها و ارتقا software ها به طور محسوسی کاهش می دهد. Logical standby را می توان به نسخه جدید ارتقا داد و سپس با استفاده از امکان switchover وضعیت آن را به primary تغییر داد. این ویژگی حداکثر در دسترس بودن سرور Primary را در زمان apply نمودن patch ها تضمین می کند. Logical standby یک Platform زیر مجموعه از پکیج DBMS_ROLLING PL/SQL است، که در نسخه Oracle Database 12c Release 1 (12.1) در دسترس است. پکیج DBMS_ROLLING عملا استفاده از تنظیمات Data Guard را در زمان ارتقا و تغییرات storage با بیشترین سطح پایداری ( highly available) ممکن می سازد.

• پشتیبانی به منظور گزارش دهی و تصمیم گیری مورد نیاز پشتیبانی
نکته کلیدی در مفهوم Logical standby طراحی و بهینه سازی آن به منظور ساختارهای از نوع گزارش است، گزارش هایی که باعث کندی و تحمل فشار زیاد بر روی سرور Primary می شود. ساختار فیزیکی Logical Standby می تواند کاملا متفاوت از سرور Primary باشد، بطور مثال نوع partitioning جداول، Index ها، Materialized View ها به منظور ایجاد cube ها و View های از نوع OLAP می تواند متفاوت باشد. با این وجود Logical Standby قابلیت انتقال دیتا را ندارد (مانند انجام replication و یا اضافه کردن ستون ). جهت انجام تراکنش های دو طرفه از سرویس هایی مانند GoldenGate می بایستی استفاده گردد.

مواردی که قبل از راه اندازی Logical Standby به آن توجه شود:
قبل از این که Logical standby ساخته شود، بایستی از شرایط دیتابیس Primary جهت این ساختار چک کرد
• مشخص کنید چه Data Type هایی که قرار است با این سرویس منتقل شود:
Logical standby از یک سری دیتا پشتیبانی نمی کند، اگر جدولی شامل Data Type های زیر باشد، همه جدول توسط sql Apply نادیده گرفته می شود. Data Type های زیر پشتیبانی نمی شوند:

• BFILE
• ROWID, UROWID
• Collections (including VARRAYs and nested tables)
• Objects with nested tables and REFs
• The following Spatial types are not supported:
• MDSYS.SDO_GEORASTER
• MDSYS.SDO_TOPO_GEOMETRY
• Identity columns

• اطمینان از unique بودن ردیف های جداول

ساختار فیزیکی Logical Standby با با Primary Database متفاوت است، بنابراین ROWID هایی که در redo های ایجاد شده توسط سرور Primary ایجاد شده است، ردیف های متناظر خود را در Logical Standby پیدا نمی کنند.
اوراکل از Primary key یا unique-constraint با استفاده از supplemental logging می تواند ردیفی که تغییر یافته را تشخیص دهد. زمانی که شرط primary-key و unique-constraint/index برقرار باشد و supplemental logging فعال باشد، هر Update زمانی که مقادیر ستون ها را در redo می نویسد ردیفی که قرار است در Logical Standby تغییر یابد نیز در آن مشخص می گردد.

به دلیل read, write بدون وضعیت Logical standby نحوه و دسترسی تغییرات نیز نسبت به physical standby اهمیت بیشتری دارد با استفاده از دستور Alter Database guard می توان این وضعیت را تغییر داد، در ادامه وضعیت های مختلف Guard Status را تشریح می کنیم وضعیت پیش فرض آن ALL است:
• ALL
اگر Guard Status در این وضعیت باشد هیچ کاربری به غیر از کاربر sys نمی تواند تغییری در سرور Logical Standby بدهد.
• STANDBY
در وضعیت standby هیچ کاربری به غیر از sys نمی تواند تغییرات از نوع DML و DDL ی بر روی جداول و object هایی که از بوسیله Sql Apply ایجاد شده بر روی سرور Logical Standby بدهد.
• NONE
در این وضعیت هیچ نوع محدودیتی برای کاربران برای تغییرات بر روی سرور Logical standby در نظر گرفته نمی شود.

موارد استفاده Logical Standby
با توجه به توضیحات و قابلیت هایی که در مورد Logical Standby در این مستند آورده شد از سرویس Logical Standby جهت موارد زیر می توان استفاده نمود:

• به عنوان یک دیتابیس پشتیبان که اطلاعات به وسیله آن تا آخرین لحظه در دسترس است
• تغییر ساختار Index ها و تبدیل ساختار آن به Report Server
• استفاده از آن جهت Update نسخه و اعمال Patch ها و Switch to primary
• استفاده تیم software develop به عنوان دیتابیس تستی update شده

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *