ترحيل البيانات

يمكنك ترحيل البيانات بإحدى طريقتين: متصل أو غير متصل.
  • نقل البيانات عبر الإنترنت: يمكنك تكوين اتصال من داخل Oracle SQL Developer إلى قاعدة بيانات Microsoft SQL Server المصدر وترحيل البيانات.
  • نقل البيانات دون اتصال: يمكنك تصدير البيانات من Microsoft SQL Server. سيقوم SQL Developer بتكوين سلسلة من ملفات خطة استمرارية العمل وملفات sqlldr التي يمكنك تشغيلها من ملف دفعة.

عمليات نقل البيانات عبر الإنترنت مناسبة لمجموعات البيانات الصغيرة، في حين أن عمليات نقل البيانات دون اتصال مفيدة لنقل كميات كبيرة من البيانات. علاوة على ذلك، في حالة وجود كميات كبيرة من البيانات، يوصى باستخدام Oracle Cloud Infrastructure File Storage للمساعدة في الأداء العام لحركة البيانات أثناء عملية الترحيل.

ترحيل البيانات دون اتصال

أثناء عملية الالتقاط، كان سيتم إنشاء اسكربت نقل البيانات دون اتصال وكان سيتم استخراج البيانات في دليل مخرجات المشروع المسمى datamove. تنفيذ هذه السكريبتات هو ما يقوم بترحيل البيانات من جهاز مضيف نوافذ الخادم sql إلى Oracle Autonomous Database.

يجب أن يبدو دليل datamove كما يلي:
Wkdir
	projectName
		datamove
			YYYY-MM-DD_HH-MI-SS
				AdventureWorks

داخل دليل AdventureWorks، يجب أن ترى ستة مجلدات فرعية تتوافق مع جميع المستخدمين ضمن قاعدة بيانات SQL Server AdventureWorks.

يجب رؤية الأدلة التالية في مجلد AdventureWorks:

  • مغامرات
  • SALES_ADVENTUREWORKS
  • PERSON_ADVENTUREWORKS
  • PURCHASING_ADVENTUREWORKS
  • HUMANRESOURCES_ADVENTUREWORKS
  • PRODUCTION_ADVENTUREWORKS

يجب رؤية الملفات التالية في مجلد AdventureWorks:

  • MicrosoftSQLServer_data.bat
  • MicrosoftSQLServer_data.sh
  • oracle_external.bat
  • oracle_external.sh
  • oracle_loader.bat
  • oracle_loader.sh

السكريبت MicrosoftSqlServer_data.bat هو سكريبت مجموعة المعالجة لنظام Windows الرئيسي الذي يقوم باستدعاء سكريبتات مجموعة المعالجة الأخرى التي تم إنشاؤها في كل دليل من أدلة المخطط. فيما يلي عينة من التنفيذ:

  1. قم بتشغيل اسكربت MicrosoftSqlServer_data.bat في موجه نظام Windows المصدر. في الموجه، قم بالتغيير إلى الدليل وأدخل اسم مضيف خادم Windows وحساب مسئول نظام Windows (عادةً SA) وكلمة سر اتفاقية الخدمة.
    prompt> cd "C:\_rkd\_OCI\DB-Migration\Non-Oracle\MS-SQL\wkdir\Capture\sqladvworks4\datamove\YYYY-MM-DD_HH-MI-SS\AdventureWorks\“
    prompt> MicrosoftSQLServer_data.bat sql-server-hostname sa sa-password

    أثناء التنفيذ أعلاه، يتم إنشاء السجلات ذات الصلة لكل جدول قاعدة بيانات حسب مخطط قاعدة البيانات ويتم تخزينها في كل مجلد من مجلدات مخطط قاعدة البيانات ضمن سجل الدليل الفرعي.

  2. (اختياري) مراجعة هذه السجلات إما أثناء ترحيل البيانات أو بعد إتمامها، والتحقق من حركة البيانات.
    يوصى بشدة بمراجعة السجلات والتحقق من ترحيل البيانات. فيما يلي عينة للسجل، مع ملخص التحميل بخط عريض.
    SQL*Loader: Release 19.0.0.0.0 - Production on Thu Mar 4 07:39:44 2021
    Version 19.10.0.0.0
    
    Copyright (c) 1982, 2021, Oracle and/or its affiliates.  All rights reserved.
    
    Control File:   control\AdventureWorks.DatabaseLog.ctl
    Data File:      data/AdventureWorks.DatabaseLog.dat
      File processing option string: "str '<EORD>'"
      Bad File:     control\AdventureWorks.DatabaseLog.bad
      Discard File:  none specified
     
     (Allow all discards)
    
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     250 rows, maximum of 1048576 bytes
    Continuation:    none specified
    Path used:      Conventional
    
    Table ADVENTUREWORKS.DATABASELOG, loaded from every logical record.
    Insert option in effect for this table: INSERT
    TRAILING NULLCOLS option in effect
    
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    DATABASELOGID                       FIRST     *           CHARACTER            
        Terminator string : '<EOFD>'
    POSTTIME                             NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "TO_TIMESTAMP(:PostTime, 'yyyy-mm-dd HH24:mi:ss.ff3')"
    DATABASEUSER                         NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:DatabaseUser, CHR(00), ' ', :DatabaseUser)"
    EVENT                                NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Event, CHR(00), ' ', :Event)"
    SCHEMA                               NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Schema, CHR(00), ' ', :Schema)"
    OBJECT                               NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Object, CHR(00), ' ', :Object)"
    TSQL                                 NEXT *****           CHARACTER            
        Maximum field length is 2000000
        Terminator string : '<EOFD>'
    XMLEVENT                             NEXT *****           CHARACTER            
        Maximum field length is 2000000
        Terminator string : '<EOFD>'
    value used for ROWS parameter changed from 250 to 1
    
    Table ADVENTUREWORKS.DATABASELOG:
      1596 Rows successfully loaded.
      0 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    
    
    Space allocated for bind array:                4001572 bytes(1 rows)
    Read   buffer bytes: 1048576
    
    Total logical records skipped:          0
    Total logical records read:          1596
    Total logical records rejected:         0
    Total logical records discarded:        0
    
    Run began on Thu Mar 04 07:39:44 2021
    Run ended on Thu Mar 04 07:39:56 2021
    
    Elapsed time was:     00:00:12.44
    CPU time was:         00:00:01.79
    

اختبار الترحيل

وتبعًا لتعقيد قاعدة البيانات الجاري ترحيلها، قد يكون جزء كبير من مشروع الترحيل قيد الاختبار.

لا يوفر Oracle أية أدوات يمكن أن تتحقق تلقائيًا من قاعدة بيانات تم ترحيلها لك. وينبغي تخطيط هذه المرحلة من الهجرة وأخذها في الاعتبار قبل بدء الهجرة. يجب أن يكون ما يلي جزءًا من خطة المشروع:

  1. تحقق من هيكل قاعدة البيانات.
  2. تحقق من تأمين قاعدة البيانات.
  3. التحقق من البيانات.
  4. تحقق من صحة طرق العرض المنطقية.
  5. قم باختبار التطبيقات.