بررسی انباره داده بخش بیست و دوم


کپی سازی غير همزمان معمولی ترين روش پياده سازي کپی سازیMultimaster است. ساير روشها شامل کپی سازی همزمان وکپی سازی رويه ای است كه در ادامه بحث در همين بحث شرح داده ميشود. وقتي شما از کپی سازی غير همزمان استفاده ميكنيد، اطلاعات هرتغيير DML روی يك جدول در صف تراكنشي ذخيره شده و به تعويق ميافتد تا زماني كه تغيير رخ دهد. اين تغييرات در اصطلاح تراكنشهاي معوقه گفته ميشود. تراكنشهاي معوقه در ساير سايتهاي Master دارای کپی مورد نظر در فواصل معين به داخل صف فرستاده می شوند. اين فاصله زماني قابل كنترل هستند.
استفاده ازکپی سازی غير همزمان به معني آن است كه ابهامات دادهاي ممكن رخ دهد، چرا كه اين احتمال وجود دارد که مقدار همان سطر در دو سايت Master مختلف در يك زمان به روز رساني شود. اگر چه ميتوان از تكنيكهاي استفاده كرد تا ابهامات را از بين برد و در صورت رخ دادن هرگونه ابهام ، Oracle مكانيزمهاي پيش ساختهاي را ايجاد ميكند كه ميتواند براي حل مشكلات پياده سازي مورد استفاده قرار گيرد. اطلاعات موارد ابهامات لاينحل در يك فايل Log ايرادات ذخيره ميشود.
- رکود درگروه Master
در يك لحظه بايد كليه فعاليتهاي کپی سازی در يك گروه Master متوقف شود تا بتوان اعمال مديريتي معيني را در يك گروه Master انجام داد. براي مثال، ميبايست كليه فعاليتهاي كپي سازي را براي يك گروه Master متوقف كرد تا يك گروه اصلي جديد را بتوان به گروهها اضافه كرد. متوقف سازي كليه فعاليتهاي كپي سازي براي يك گروه اصلي رکود گروه گفته ميشود زمانيكه روی گروه اصلي هيچ عملی انجام نميشود، كاربران نميتوانند دستورات DML را در هر شي اين گروه اصلي انجام دهند. همچنين كليه تراكنشهاي معوقه بايد قبل از رکود يك گروه منتشر شود. اما كاربران قادر به ادامه اخذ درخواست از جداول مقتضی در طي سكون گروه اصلي می باشند.
كپي سازي Materialized view
يك Materialized view حاوي يك كپي كامل يا جزئي يك شی بانک اطلاعاتی در يك لحظه از زمان است. اين شی هدف اصلي ميتواند يك جدول اصلي در يك سايت Master يا يك Materialized view در سايت Materialized view باشد. يك Materialized view اصلي Materialized view ای است كه به عنوان يك كپي اصلي براي ساير Materialized view ها عمل ميكند. يك Materialized view چند لايهاي درواقع پايه ای برای ساير Materialized view ها به جاي يك جدول اصلي می باشد.
Materialized view ها فوايد زير را در سيستم ايجاد ميكنند:
توانايي دسترسي محلي كه زمان و امکان پاسخگويي را افزايش می دهد.
امکان پرسجوهای برون بارگذاری را براي سايت Master يا سايتهای اصلی Materialized view ايجاد ميكنند، تا اينكه كاربران بتوانند برای پرسجوهای خود در عوض از Materialized view محلي استفاده كنند.با افزايش امنيت داده به شما امكان كپي يك زير مجموعه انتخابي از مجموعه داده هدف اصلي را می دهد.
يك Materialized view ميتواند به صورت فقط خواندني، قابل به روز رساني، يا قابل نوشتن باشد و اين انواع Materialized view ها به علاوه ليست سودمنديهاي قبلي، فوايد Materialized view را ايجاد ميكنند.
- Materialized view هاي فقط خواندني
Materialized view هاي قابل به روز رساني
Materialized view هاي قابل نوشتن
Refresh در Materialized view
براي اطمينان از اينكه يك Materialized view با جدول اصلي خود يا Materialized view اصلي از نظر اطلاعات سازگاري دارد، نياز به Refresh كردن Materialized view به صورت دورهاي داريم. Oracle سه روش را براي Refresh كردن Materialized view ها ارائه كرده است.
- Fast Refresh
از Log هاي Materialized view ها براي به روز رساني سطرهايي استفاده ميكند كه از آخرين Refresh تا به حال تغيير كردهاند.
- Complete Refresh
كليه Materialized view ها را كاملاً به روز رساني ميكند.
- Force Refresh
يك Fast Refresh را هرزمان امكان پذير باشد انجام ميدهد. وقتي Fast Refresh امكان پذير نباشد، يك Complete Refresh انجام ميدهد.
- گروههاي Refresh
وقتي براي Materialized view ها مهم است كه به صورت تراكنشي با سايرين سازگار باشند، ميتوان آنها را در يك گروه Refresh سازماندهي كرد. به وسيله Refresh كردن گروه Refresh، ميتوان مطمئن بود كه داده در كليه Materialized view ها در گروه Refresh داراي سازگاري کامل در لحظهاي از زمان خواهند بود.همه نوع Materialized view می تواند دريک گروه Refresh باشند. يك Materialized view در يك گروه Refresh ميتواند جداگانه Refresh شود ، اما انجام چنين اعمالی ممکن است به بروز "هيچ مقداري" در گروه Refresh شود چراکه ساير Materialized view در يک گروه Refresh نمی شوند.
Materialized view Log
يك Materialized view Log ، جدولی در سايت اصلي Materialized view يا سايت Master Materialized view است كه كليه تغييرات DML روي جدول اصلي يا Materialized view اصلي را نگهداری ميكند. يك Materialized view Log تنها با يك جدول اصلي يا Materialized view اصلي مرتبط است. و هر كدام از آنها فقط يك Materialized view Log دارند، علارغم اينكه چند Materialized view از جدول اصلی خود Refresh شوند. يك Fast Refresh روی Materialized view فقط زمانی ممكن است که نسخه اصل Materialized view يك log داشته باشد.