بتاريخ: 20 مارس 200619 سنة comment_63636 تنقسم عملية تحويل أو ترقية أو ترحيل Migration قاعدة بيانات أوراكل تعمل بترميز Charset الى اخر الى قسمين :1- عمل مسح للبيانات Data Scanning ونقصد به عملية تحديد نوع الترميز الذى سيتم الانتقال اليه والمشاكل التى يمكن أن تحدث وكيفية معالجتها بالأضافة لحل مشكلة الحذف لبعض الحروف التى يمكن أن تحدث Character Truncation.2- عمل ترحيل للبيانات Database Migrationوهى عملية تطبيق الأوامر على البيانات لأجراء التحويل.وتتم عملية تحويل البيانات بطريقتين ( لكن يجب ان يتم التأكد من عدم وجود هذه الحالات القادمة قبل تطبيق احدى خطوات التحويل).تنبيه :حالات يجب الحذر لها :1- عملية تحويل الحروف التى نتجت عن عملية تصدير او استيرادتعتبر أداة التصدير والأستيراد Export and import من الأدوات التى تستخدم أحيانا لتحويل ترميز بيانات من قاعدة بيانات الى اخرى لكن يجب الأنتباه الى أن هذه العملية يمكن أن تسبب عملية تخريب للبيانات أو حذف غير منتظم لمعظمها أو جزء منها ولذلك يجب التأكد من أن الترميز الهدف هو ترميز متكامل من الترميز المصدر Superset أى انه يحتوى على كل الحروف التى يحتويها الترميز المصدر . مثلاً : لنقل ان هناك قاعدة بيانات A وهى تحتوى البيانات المراد تحويلها الى قاعدة بيانات بترميز مختلف وهى B , هنا يشترط أن يحوى ترميز قاعدة بيانات B كل حروف قاعدة بينات A لأن اى حرف غير موجود سيتم عرضه أو تحويله الى ? أو ¿ وهذا ببساطه معناه حدوث تخريب للبيانات وأستحالة تحويلها أو ارجاعها الى حالتهاالأولى .A ----------------AB------------------BC------------------CD-------------------¿لاحظ ان المجموعة باليمين لاتحتوى الحرف D لذلك تم استبداله بالحرف ¿ وهذا مايحدث فى عملية التحويل.مثلا لايمكن تحويل بيانات قاعدة بينات تعمل على الترميز AMERICAN_AMERICA.WE8MSWIN1252 وهو الترميز الأساسى لجهاز وندوز بضبط اللغة الأنجليزية كلغة أساسية بغض النظر عن وجود العربية ام لاء. الى الترميز ARABIC_SUDAN.AR8MSWIN1256 لان الترميز الأخير لايحتوى جميع الحروف التى هى بالترميز الأول . يمكن أستخدام ترميز أقوى وشامل مثل UTF-8 فهو يحتوى جميع اللغات تقريباً.2- البيانات المتضررة الناتجة من ضبط غير صحيح لأحد الأجهزة على الشبكة Clientطريقة أخرى يمكن أن تحدث ضياع أو تخريب للبيانات وهى تصدير بيانات غير معلومة بقاعدة البيانات والذى السبب الرئيسى فى حدوثه هو الضبط الخاطى لجهاز على الشبكة يتم أدخال البيانات منه الى السيرفرالذى يحتوى قاعدة البيانات .ونقصد بالضبط هو ضبط قيمة ال NLS_LANG على الريجسترى الخاص بالجهاز.بوضوح أكثر نعلم ال Code page لأى نظام وندوز يعمل بالأنجليزية كلغة أساسية هو AMERICAN_AMERICA.WE8MSWIN1252 فاذا تم ضبط القيمة بالريجسترى ظبطاً صحيحا فان السيرفر سيتمكن من تخزين البيانات عليه بالشكل الصحيح أما اذا تم ضبط ملف ال NLS_LANG بطريقة تخالف ضبط ال Code page فان البيانات لن يتم تخزينها على السيرفر بالطريقة الصحيحة مامن شأنه ان يؤدى الى تلفها .مثال أذا كان ضبط قاعدة البيانات هو UTF8 وضبط قيمة الريجسترى لجهاز وندوز يستخدم اللغة الأنجليزية هى UTF8 فى حين يفترض ان يتم ضبط ال NLS_LANG ب American_america.we8mswin1252 كما ذكرنا وبالتالى فانه عندما يتم ارسال اى بيانات من ال Client الى السيرفرفان السيرفر لن يقوم بتحويل ترميز البيانات وسيخزنها كما هى استنادا الى ضبط ال NLS_LANG الذى يشير ال UTF8 اى ان ضبط قاعدة البيانات تماثل ضبط جهاز الأدخال وبالتالى سيتم تخزين البيانات بطريقة خاطئة .الان بعد ان علمنا هاتان الحالتان نعد الى طرق تحويل البيانات Data Migration .الطريقة الأولى :1- تحويل ترميز البيانات عن طريق أداة التصدير والأستيراد Export and import utilityطبعا بعد وضع ماتم ذكره فى الحسبان عن مخاطر عدم الأهتمام بالتوافق بين الترميزين.بالأضافة للأنتباه لبعض الحقول التى تحمل نوع البيانات Character حيث ربما تحتاج الى توسيع قبل انتقالها الى ترميز اخر واهمال هذا الموضوع يؤدى الى حذف فى بعض البيانات.الطريقة الثانية:2- تحويل ترميز البيانات عن طريق الأمر ALTER DATABASE CHARSETتعتبر هذه الطريقة أسرع طريقة لتحويل الترميز وليس البيانات ( الترميز وليس البيانات) انتبه !!!لذا فهى تستخدم فقط اذا تأكدنا من أن الترميز الثانى المراد الأنتقال اليه يحتوى كل الحروف الموجودة فى الترميز المصدر الأول ويسمى Superset , بالأضافة لأن هذه الطريقة لاتستخدم فى حالة تحويل الترميز من لغة تعل على Single byte الى اخرى تستخدم Double byte جملة التحويل : ALTER DATABASE [db_name] CHARACTER SET new_character_set;ولعملية التحويل نتبع: 1- أغلاق قاعدة البيانات Shutdown immediate 2- قم بعمل نسخ كامل لقاعدة البيانات لأن عملية التحويل لايمكن التراجع عنها. 3- طبق الجمل التاليةSTARTUP MOUNT;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;ALTER DATABASE CHARACTER SET new_character_set; SHUTDOWN IMMEDIATE; -- or SHUTDOWN NORMAL; STARTUP; يتبع ملف التحقق من امكانية تحويل الترميز قبل البدء وكيفية استخدام الأداة Scanner لتحقيق ذلك.يمكن تحميل الملف المرفق لشرح أوفى...لاتنسونا من الدعاءمجتبى الطيب عبد اللّطيف التومإدارة قواعد بيانات أوراكل 9iهيئة الموانىء البحرية migration.doc تم تعديل 20 مارس 200619 سنة بواسطة mojtaba تقديم بلاغ
بتاريخ: 20 مارس 200619 سنة comment_63666 جزاك الله خيرا أخي مجتبى وجعله في ميزان حسناتك وفي انتظار المزيد ...تحياتي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.