مشاركة عبر


نسخ البيانات من Oracle وإليها باستخدامAzure Data Factory أو تحليلات Azure Synapse

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة كيفية استخدام نشاط النسخ في مصنع بيانات Azure لنسخ البيانات من وإلى قاعدة بيانات Oracle. وهو يعتمد على نظرة عامة على نشاط النسخ.

هام

يوفر الإصدار 2.0 من موصل Oracle دعما أصليا محسنا ل Oracle. إذا كنت تستخدم الإصدار 1.0 من موصل Oracle في الحل الخاص بك، فيرجى ترقية موصل Oracle لأن الإصدار 1.0 في مرحلة نهاية الدعم. سيفشل خط الأنابيب الخاص بك بعد 31 مارس 2026. راجع هذا القسم للحصول على تفاصيل حول الفرق بين الإصدار 2.0 والإصدار 1.0.

القدرات المدعومة

موصل Oracle هذا مدعوم للقدرات التالية:

القدرات المدعومة الاشعه تحت الحمراء
Copy activity (المصدر/المتلق) (1) (2)
نشاط البحث (1) (2)
نشاط البرنامج النصي (1) (2)

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

للحصول على قائمة مخازن البيانات المدعومة كمصادر أو أحواض بواسطة نشاط النسخ، راجع جدول مخازن البيانات المدعومة.

وبوجه خاص، يدعم موصل Oracle:

  • الإصدارات التالية من قاعدة بيانات Oracle للإصدار 2.0:
    • Oracle Database 19c وأعلى
    • Oracle Database 18c وأعلى
    • Oracle Database 12c وأعلى
    • Oracle Database 11g والإصدارات الأحدث
  • الإصدارات التالية من قاعدة بيانات Oracle للإصدار 1.0:
    • Oracle 19c R1 (19.1) وأعلى
    • Oracle 18c R1 (18.1) وأعلى
    • Oracle 12c R1 (12.1) وأعلى
    • Oracle 11g R1 (11.1) وأعلى
    • Oracle 10g R1 (10.1) وأعلى
    • Oracle 9i R2 (9.2) وأعلى
    • Oracle 8i R3 (8.1.7) وأعلى
    • خدمة Exadata لسحابة Oracle Database
  • النسخ المتوازي من مصدر Oracle. راجع قسم النسخ المتوازي من Oracle للحصول على التفاصيل.

إشعار

خادم وكيل Oracle غير مدعوم.

المتطلبات الأساسية

إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.

إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.

يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.

يوفر وقت تشغيل التكامل برنامج تشغيل Oracle مدمج. لذلك، لن تحتاج إلى تثبيت برنامج تشغيل يدوياً عند نسخ البيانات من وإلى Oracle.

الشروع في العمل

لتنفيذ نشاط النسخ باستخدام خط أنابيب ، يمكنك استخدام إحدى الأدوات أو مجموعات SDK التالية:

إنشاء خدمة مرتبطة بـ Oracle باستخدام واجهة المستخدم

استخدام الخطوات التالية لإنشاء خدمة مرتبطة بـ Oracle في واجهة مستخدم مدخل Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. البحث عن Oracle وتحديد موصل Oracle.

    لقطة شاشة لموصل Oracle.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    لقطة شاشة لتكوين الخدمة المرتبطة بـ Oracle.

تفاصيل تكوين الموصل

توفر المقاطع التالية تفاصيل حول الخصائص التي يتم استخدامها لتعريف الكيانات الخاصة بموصل Oracle.

خصائص الخدمة المرتبطة

يدعم إصدار موصل Oracle 2.0 TLS 1.3. راجع قسم هذا لترقية إصدار موصل Oracle من الإصدار 1.0. للحصول على تفاصيل الخاصية، راجع الأقسام المقابلة.

الإصدار 2.0

تدعم خدمة Oracle المرتبطة الخصائص التالية عند تطبيق الإصدار 2.0:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى Oracle. ‏‏نعم‬
الإصدار الإصدار الذي تحدده. القيمة هي 2.0. ‏‏نعم‬
ملقم موقع قاعدة بيانات Oracle التي تريد الاتصال بها. يمكنك الرجوع إلى تكوين خاصية خادم لتحديده. ‏‏نعم‬
نوع المصادقة نوع المصادقة للاتصال بقاعدة بيانات Oracle. يتم دعم مصادقة Basic فقط الآن. ‏‏نعم‬
اسم المستخدم اسم مستخدم قاعدة بيانات Oracle. ‏‏نعم‬
شعار كلمة مرور قاعدة بيانات Oracle. وضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن. أو يمكنك أيضًا الإشارة إلى سر مخزن في Azure Key Vault. ‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم التحديد، يتم استخدام وقت تشغيل تكامل Azure الافتراضي. لا

يمكنك تعيين خصائص الاتصال الإضافية التالية في الخدمة المرتبطة اعتمادا على حالتك.

الخاصية الوصف مطلوب القيمة الافتراضية
التشفيرعميل تحديد سلوك عميل التشفير. القيم المدعومة هي acceptedأو rejectedأو requestedأو required. النوع: سلسلة لا required
التشفيرالأنواععميل تحديد خوارزميات التشفير التي يمكن للعميل استخدامها. القيم المدعومة هي AES128AES192AES2563DES1123DES168. النوع: سلسلة لا (AES256)
cryptoChecksumClient تحديد سلوك تكامل البيانات المطلوب عند اتصال هذا العميل بخادم. القيم المدعومة هي acceptedأو rejectedأو requestedأو required. النوع: سلسلة لا required
cryptoChecksumTypesClient تحديد خوارزميات المجموع الاختباري للتشفير التي يمكن للعميل استخدامها. القيم المدعومة هي SHA1، SHA256، SHA384، SHA512. النوع: سلسلة لا (SHA512)
initialLobFetchSize تحديد المقدار الذي يجلبه المصدر في البداية لأعمدة LOB. النوع: int لا 1
إحضار الحجم يحدد عدد وحدات البايت التي يخصصها برنامج التشغيل لإحضار البيانات في قاعدة بيانات واحدة ذهابا وإيابا. النوع: int لا 10 ميغابايت
statementCacheSize يحدد عدد المؤشرات أو العبارات المراد تخزينها مؤقتا لكل اتصال قاعدة بيانات. النوع: int لا 1
سلسلة التهيئة تحديد أمر يتم إصداره مباشرة بعد الاتصال بقاعدة البيانات لإدارة إعدادات الجلسة. النوع: سلسلة لا صِفْر
تمكين التحميل يحدد ما إذا كان يجب استخدام النسخ المجمع أو إدراج الدفعة عند تحميل البيانات في قاعدة البيانات. النوع: منطقي لا صحيح
supportV1DataTypes يحدد ما إذا كان يجب استخدام تعيينات نوع البيانات الإصدار 1.0. لا تقم بتعيين هذا إلى صحيح إلا إذا كنت تريد الاحتفاظ بالتوافق مع الإصدارات السابقة مع تعيينات نوع البيانات للإصدار 1.0. النوع: منطقي لا، هذه الخاصية مخصصة لاستخدام التوافق مع الإصدارات السابقة فقط خطأ
fetchTswtzAsTimestamp يحدد ما إذا كان برنامج التشغيل يرجع قيمة العمود مع نوع بيانات TIMESTAMP WITH TIME ZONE ك DateTime أو سلسلة. يتم تجاهل هذا الإعداد إذا لم يكن supportV1DataTypes صحيحا. النوع: منطقي لا، هذه الخاصية مخصصة لاستخدام التوافق مع الإصدارات السابقة فقط صحيح

مثال:

{
    "name": "OracleLinkedService",
    "properties": {
        "type": "Oracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "password": "<password>", 
            "authenticationType": "<authentication type>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: تخزين كلمة المرور في Azure Key Vault

{
    "name": "OracleLinkedService",
    "properties": {
        "type": "Oracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "authenticationType": "<authentication type>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

تكوين خاصية server

بالنسبة للخاصية server، يمكنك تحديدها بأحد التنسيقات الثلاثة التالية:

تنسيق مثال
Connect Descriptor (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))
تسمية Easy Connect (Plus) salesserver1:1521/sales.us.example.com
اسم خدمات Oracle Net (الاسم المستعار ل TNS) (فقط لوقت تشغيل التكامل المستضاف ذاتيا) مبيعات

تعرض القائمة التالية المعلمات المدعومة المستخدمة في server. إذا كنت تستخدم معلمات غير موجودة في القائمة التالية، يفشل الاتصال.

  • عند استخدام وقت تشغيل تكامل Azure:

    مضيف
    ميناء
    بروتوكول
    SERVICE_NAME
    معرف الأمان (SID)
    INSTANCE_NAME
    ملقم
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    SSL_VERSION
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN

  • عند استخدام وقت تشغيل التكامل المستضاف ذاتيا:

    مضيف
    ميناء
    بروتوكول
    تمكين
    EXPIRE_TIME
    تجاوز الفشل
    LOAD_BALANCE
    RECV_BUF_SIZE
    SDU
    SEND_BUF_SIZE
    SOURCE_ROUTE
    TYPE_OF_SERVICE
    COLOCATION_TAG
    CONNECTION_ID_PREFIX
    FAILOVER_MODE
    GLOBAL_NAME
    النظام المنسق
    INSTANCE_NAME
    POOL_BOUNDARY
    POOL_CONNECTION_CLASS
    POOL_NAME
    POOL_PURITY
    RDB_DATABASE
    SHARDING_KEY
    SHARDING_KEY_ID
    SUPER_SHARDING_KEY
    ملقم
    SERVICE_NAME
    معرف الأمان (SID)
    TUNNEL_SERVICE_NAME
    SSL_CLIENT_AUTHENTICATION
    SSL_CERTIFICATE_ALIAS
    SSL_CERTIFICATE_THUMBPRINT
    SSL_VERSION
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN
    WALLET_LOCATION
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    TRANSPORT_CONNECT_TIMEOUT
    RECV_TIMEOUT
    ضغط
    COMPRESSION_LEVELS

الإصدار 1.0

تدعم خدمة Oracle المرتبطة الخصائص التالية عند تطبيق الإصدار 1.0:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى Oracle. ‏‏نعم‬
سلسلة الاتصال تحديد المعلومات المطلوبة للاتصال بمثيلOracle Database.
يمكنك أيضاً وضع كلمة مرور في Azure Key Vault وسحبpassword التكوين من سلسلة الاتصال. راجع العينات التالية وبيانات اعتماد المخزن في Azure Key Vault لمزيد من التفاصيل.

نوع الاتصال المدعوم:يمكنك استخدام معرف أمان Oracle أواسم Oracle Service لتحديد قاعدة البيانات:
- إذا كنت تستخدم معرف الأمان: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- إذا كنت تستخدم اسم الخدمة: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
للحصول على خيارات اتصال أصلية متقدمة من Oracle، يمكنك اختيار إضافة إدخال في TNSNAMES. ملف ORA على الجهاز حيث يتم تثبيت وقت تشغيل التكامل المستضاف ذاتيا، وفي خدمة Oracle المرتبطة، اختر استخدام نوع اتصال اسم خدمة Oracle وتكوين اسم الخدمة المقابل.
‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم التحديد، يتم استخدام وقت تشغيل تكامل Azure الافتراضي. لا

تلميح

إذا وجدت خطأ، "ORA-01025": معلمة UPI خارج النطاق، وكان إصدار Oracle هو 8i، يمكنك الإضافة WireProtocolMode=1 إلى سلسلة الاتصال. ثم حاول مرة أخرى.

إذا كان لديك مثيلات Oracle متعددة لسيناريو تجاوز الفشل، يمكنك إنشاء خدمة Oracle المرتبطة وملء المضيف الأساسي والمنفذ واسم المستخدم وكلمة المرور وما إلى ذلك، وإضافة"خصائص اتصال إضافية جديدة" مع اسم الخاصية مثل AlternateServers والقيمة مثل (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) - لا تفوت الأقواس وانتبه إلى النقطتين(:) كفاصل. على سبيل المثال، القيمة التالية من خواتم بديلة تحدد تعريف اثنين من خوادم قاعدة بيانات بديلين لتجاوز فشل الاتصال: (HostName=AccountingOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

خصائص اتصال أكثر يمكنك تعيينها في سلسلة اتصال لكل حالة:

الخاصية الوصف القيم المسموح بها
حجم الصفائف عدد وحدات البايت التي يمكن للموصل جلبها في رحلة واحدة ذهابا وإيابا عبر الشبكة. على سبيل المثال، ArraySize=‭10485760‬.

تزيد القيم الأكبر معدل النقل عن طريق تقليل عدد المرات لإحضار البيانات عبر شبكة الاتصال. تزيد القيم الأصغر وقت الاستجابة، حيث إن هناك تأخيرا أقل في انتظار أن يقوم الخادم بإرسال البيانات.
عدد صحيح من 1 إلى 4294967296 (4 غيغابايت). القيمة الافتراضية هي 60000. لا تعرف القيمة 1 عدد وحدات البايت، ولكنها تشير بالتحديد إلى تخصيص مساحة لصف واحد من البيانات.

لتمكين التشفير على اتصال Oracle، لديك خياران:

  • لاستخدام تشفير Triple-DES (3DES) ومقاييس التشفير المتقدمة (AES)، على جانب خادم Oracle، انتقل إلى الأمن المتقدم لـ Oracle (OAS) وتكوين إعدادات التشفير. للحصول على تفاصيل، راجع وثائق Oracleهذه. موصل ملف تعريف التطبيق لـ Oracle تلقائياً يتفاوض على أسلوب التشفير لاستخدام الطريقة التي تقوم بتكوينها في OAS عند إنشاء اتصال بـ Oracle.

  • لاستخدام TLS، قم بإعداد truststore مصادقة خادم SSL عن طريق تطبيق إحدى الطرق الثلاث التالية:

    • الطريقة 1 (مستحسن):

      1. قم بتثبيت شهادة TLS/SSL عن طريق استيرادها إلى مخزن الشهادات المحلي. برنامج تشغيل Oracle المضمن قادر على تحميل الشهادة المطلوبة من مخزن الشهادات.

      2. في الخدمة، قم بتكوين سلسلة الاتصال Oracle باستخدام EncryptionMethod=1.

    • الطريقة 2:

      1. احصل على معلومات شهادة TLS/SSL. احصل على معلومات الشهادة المرمزة بقواعد الترميز المميزة (DER) أو معلومات الشهادة المرمزة بالبريد المحسن للخصوصية (PEM) لشهادة TLS/SSL.

        openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -text
        
      2. في الخدمة، قم بتكوين oracle سلسلة الاتصال مع EncryptionMethod=1 والقيمة المقابلةTrustStore. على سبيل المثال، Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----

        إشعار

        • يجب أن تكون قيمة TrustStore الحقل مسبوقة ب data://.
        • عند تحديد محتوى لشهادات متعددة، حدد محتوى كل شهادة بين -----BEGIN CERTIFICATE----- و -----END CERTIFICATE-----. يجب أن يكون عدد الشرطات (-----) هو نفسه قبل وبعد كل من BEGIN CERTIFICATE و END CERTIFICATE. على سبيل المثال:
          -----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
          -----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
          -----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE-----
        • TrustStore يدعم الحقل المحتوى الذي يصل طوله إلى 8192 حرفا.
    • الطريقة 3:

      1. قم بإنشاء الملف باستخدام truststore شفرات قوية مثل AES256.

        openssl pkcs12 -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -keypbe AES-256-CBC -certpbe AES-256-CBC -nokeys -export
        
      2. truststore ضع الملف على جهاز وقت تشغيل التكامل المستضاف ذاتيا. على سبيل المثال، ضع الملف في C:\MyTrustStoreFile.

      3. في الخدمة، قم بتكوين Oracle سلسلة الاتصال مع EncryptionMethod=1 والقيمة المقابلةTrustStore/TrustStorePassword. على سبيل المثال، Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>

مثال:

{
    "name": "OracleLinkedService",
    "properties": {
        "type": "Oracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: تخزين كلمة المرور في Azure Key Vault

{
    "name": "OracleLinkedService",
    "properties": {
        "type": "Oracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

خصائص مجموعة البيانات

يوفر هذا القسم قائمة خصائص معتمدة من مجموعة بيانات Oracle. للاطلاع على قائمة كاملة للأقسام والخصائص المتوفرة لتحديد مجموعات البيانات، راجع مجموعات البيانات.

لنسخ البيانات من وإلى Oracle، قم بتعيين خاصية نوع مجموعة البيانات إلى OracleTable. تدعم الخصائص التالية.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلىOracleTable. ‏‏نعم‬
Schema اسم المخطط. لا للمصدر، نعم للمتلقي
طاولتنا اسم الجدول/طريقة العرض. لا للمصدر، نعم للمتلقي
اسم الجدول اسم الجدول/طريقة العرض مع المخطط. هذه الخاصية مدعومة للتوافق مع الإصدارات السابقة. بالنسبة لحمل العمل الجديد، استخدم schema وtable. لا للمصدر، نعم للمتلقي

مثال:

{
    "name": "OracleDataset",
    "properties":
    {
        "type": "OracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

انسخ خصائص النشاط

يوفر هذا القسم قائمة بالخصائص التي يدعمها مصدر Oracle والمتلقي. للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع البنية الأساسية لبرنامج ربط العمليات التجارية.

Oracle كمصدر

تلميح

لتحميل البيانات من Oracle بكفاءة باستخدام تقسيم البيانات، وتعرف على المزيد من نسخة موازية من Oracle.

لنسخ البيانات من Oracle، قم بتعيين نوع المصدر في نشاط النسخ إلى OracleSource. يتم دعم الخصائص التالية في قسم المصدر لنشاط النسخ.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى OracleSource. ‏‏نعم‬
oracleReaderQuery استخدم استعلام SQL المخصص لقراءة البيانات. مثال على ذلك "SELECT * FROM MyTable" . لاحظ أنه يجب ألا ينتهي الاستعلام بفاصلة منقوطة (;).
عند تمكين التحميل المقسم، ستحتاج إلى ربط أي معلمات التقسيم المدرجة المقابلة في الاستعلام الخاص بك. على سبيل المثال، راجع قسم النسخ المتوازي من Oracle للحصول على التفاصيل.
لا
convertDecimalToInteger سيتم تحويل نوع Oracle NUMBER مع مقياس صفري أو غير محدد إلى عدد صحيح مطابق. القيم المسموح بها هي صوابو خطأ (افتراضياً).
إذا كنت تستخدم إصدار Oracle 2.0، فلن يسمح بتعيين هذه الخاصية إلا عندما يكون supportV1DataTypes صحيحا.
لا
خيارات التقسيم تحديد خيارات تقسيم البيانات المستخدمة لتحميل البيانات من Oracle.
القيم المسموح بها هي: None (افتراضي)، وPhysicalPartitionsOfTable، وDynamicRange.
عند تمكين خيار تقسيم (أي، ليس None)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من قاعدة بيانات Oracle عن طريق الإعداد parallelCopies في نشاط النسخ.
لا
إعدادات الأقسام حدد مجموعة الإعدادات الخاصة بتقسيم البيانات.
تطبيق عندما لا يكون خيار التقسيم None.
لا
أسماء أقسام قائمة الأقسام المادية التي يجب نسخها.
تُطبق عندما يكون خيار التقسيم هو PhysicalPartitionsOfTable. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfTabularPartitionName في عبارة WHERE. على سبيل المثال، راجع قسم النسخ المتوازي من Oracle.
لا
partitionColumnName حدد اسم عمود المصدر بنوع عدد صحيح الذي سيتم استخدامه عن طريق تقسيم النطاق للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف المفتاح الأساسي للجدول تلقائياً واستخدامه كعمود قسم.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionColumnName في عبارة WHERE. على سبيل المثال، راجع قسم النسخ المتوازي من Oracle.
لا
التقسيم الحد الأقصى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionUpbound في عبارة WHERE. على سبيل المثال، راجع قسم النسخ المتوازي من Oracle.
لا
partitionLowerBound الحد الأدنى لقيمة عمود القسم لنسخ البيانات.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?AdfRangePartitionLowbound في عبارة WHERE. على سبيل المثال، راجع قسم النسخ المتوازي من Oracle.
لا
عددالدقة حدد الحد الأقصى لعدد الأرقام العشرية المعنوية. تتراوح القيم المسموح بها من 1 إلى 256. يتم تعيينه افتراضيا إلى 256 إذا لم يتم تحديده.
هذه الخاصية مدعومة في الإصدار 2.0 من Oracle. ينطبق فقط على أنواع NUMBER التي لا تحتوي على دقة ومقياس محدد بشكل صريح في قاعدة بيانات Oracle. يمكن ضبطه عندما supportV1DataTypes لا trueيكون . إذا كنت تستخدم وقت تشغيل التكامل المستضاف ذاتيا، فيجب أن يكون إصداره 5.56 أو أعلى.
لا
العددمقياس حدد عدد الأرقام بعد الفاصلة العشرية. تتراوح القيم المسموح بها من 0 إلى 130 ويجب أن تكون أقل من أو تساوي الدقة. الإعدادات الافتراضية إلى 130 إذا لم يتم تحديدها.
هذه الخاصية مدعومة في الإصدار 2.0 من Oracle. ينطبق فقط على أنواع NUMBER التي لا تحتوي على دقة ومقياس محدد بشكل صريح في قاعدة بيانات Oracle. يمكن ضبطه عندما supportV1DataTypes لا trueيكون . إذا كنت تستخدم وقت تشغيل التكامل المستضاف ذاتيا، فيجب أن يكون إصداره 5.56 أو أعلى.
لا

مثال: نسخ البيانات باستخدام استعلام أساسي بدون قسم

"activities":[
    {
        "name": "CopyFromOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Oracle input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "OracleSource",
                "convertDecimalToInteger": false,
                "oracleReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Oracle كمتلقي

لنسخ البيانات إلى Oracle، قم بتعيين نوع المتلقي في نشاط النسخ إلى OracleSink. تُدعم الخصائص التالية في قسم متلقي نشاط النسخ.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع متلقي نشاط النسخ إلى OracleSink. ‏‏نعم‬
writeBatchSize إدراج البيانات في الجدول SQL عندما يصل حجم المخزن المؤقت writeBatchSize.
القيم المسموح بها هي: عدد صحيح (عدد الصفوف).
لا (الافتراضي هو 10,000)
writeBatchTimeout وقت الانتظار حتى تكتمل عملية إدراج الدُفعة قبل انتهاء مدتها.
القيم المسموح بها هي Timespan. مثال على ذلك هو 00:30:00 (30 دقيقة).
لا
ما قبل النسخ النصية تحديد استعلام SQL لنشاط النسخ للتشغيل قبل كتابة البيانات إلى Oracle في كل تشغيل. يمكنك استخدام هذه الخاصية لتنظيف البيانات المحملة مسبقاً. لا
 maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة.  لا

مثال:

"activities":[
    {
        "name": "CopyToOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Oracle output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "OracleSink"
            }
        }
    }
]

نسخة موازية من Oracle

يوفر موصل Oracle تقسيم البيانات المضمنة لنسخ البيانات من Oracle بالتوازي. يمكنك العثور على خيارات تقسيم البيانات في علامة التبويب Source لنشاط النسخ.

لقطة شاشة لخيارات التقسيم

عند تمكين نسخة مقسمة، تشغّل الخدمة استعلامات متوازية مقابل مصدر Oracle لتحميل البيانات عن طريق الأقسام. يتم التحكم في الدرجة المتوازية بواسطة parallelCopies الإعداد على نشاط النسخ. على سبيل المثال، إذا قمت بتعيين parallelCopies إلى أربعة، تقوم الخدمة بشكل متزامن بإنشاء وتشغيل أربعة استعلامات استناداً إلى خيار التقسيم المحدد والإعدادات، ويقوم كل استعلام باسترداد جزء من البيانات من قاعدة بيانات Oracle.

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

السيناريو الإعدادات المقترحة
تحميل كامل من جدول كبير بأقسام فعلية. خيار التقسيم: أقسام فعلية للجدول.

أثناء التنفيذ، تكتشف الخدمة تلقائياً الأقسام المادية ونسخ البيانات حسب الأقسام.
تحميل كامل من جدول كبير، دون أقسام فعلية، مع وجود عمود لعدد صحيح لتقسيم البيانات. خيارات التقسيم: تقسيم النطاق الديناميكي.
عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات. إذا لم يتم تحديده، فسيتم استخدام عمود المفتاح الأساسي.
قم بتحميل كمية كبيرة من البيانات باستخدام استعلام مخصص بأقسام فعلية. خيار التقسيم: أقسام فعلية للجدول.
استعلام: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
اسم القسم: حدد اسم (أسماء) القسم لنسخ البيانات منه. إذا لم يتم تحديد الخدمة تلقائياً بالكشف عن الأقسام الفعلية المذكورة بالجدول المحدد في مجموعة بيانات Oracle.

أثناء التنفيذ، يستبدل الخدمة ?AdfTabularPartitionName مع اسم القسم الفعلي ثم يرسل إلى Oracle.
يمكنك تحميل كمية كبيرة من البيانات باستخدام استعلام مخصص، بدون أقسام فعلية، أثناء استخدام عمود مخصص لعدد صحيح لتقسيم البيانات. خيارات التقسيم: تقسيم النطاق الديناميكي.
استعلام: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات. يمكنك التقسيم مقابل العمود بنوع بيانات عدد صحيح.
الحد الأعلى للتقسيموالحد الأدنى للتقسيم: تحديد إذا ما كنت تريد التصفية مقابل عمود التقسيم لاسترداد البيانات فقط بين النطاقين الأدنى والأعلى.

أثناء التنفيذ، تستبدل الخدمة ?AdfRangePartitionColumnName،?AdfRangePartitionUpbound و?AdfRangePartitionLowbound باسم العمود الفعلي ونطاقات القيمة لكل قسم، و ترسلها إلى Oracle.
على سبيل المثال، إذا تم تعيين "ID" عمود القسم الخاص بك مع الحد الأدنى كـ 1 والحد الأعلى كـ 80، مع تعيين النسخة المتوازية على 4، تقوم الخدمة باسترداد البيانات من خلال 4 أقسام. هوياتهم تتراوح بين [1،20]، [21، 40]، [41، 60]، [61، 80] على التوالي.

تلميح

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

مثال: الاستعلام مع القسم الفعلي

"source": {
    "type": "OracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

مثال: الاستعلام مع تقسيم النطاق الديناميكي

"source": {
    "type": "OracleSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

تعيين نوع البيانات لـ Oracle

عند نسخ البيانات من وإلى Oracle، يتم استخدام تعيينات نوع البيانات المؤقتة التالية داخل الخدمة. لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي، راجع تعيينات المخطط ونوع البيانات.

نوع بيانات Oracle نوع بيانات الخدمة المؤقتة (للإصدار 2.0) نوع بيانات الخدمة المؤقتة (للإصدار 1.0)
BFILE بايت [] بايت []
BINARY_FLOAT فردي فردي
BINARY_DOUBLE مزدوج مزدوج
النقطه بايت [] بايت []
شار السلسلة‬ السلسلة‬
CLOB السلسلة‬ السلسلة‬
التاريخ التاريخ والوقت التاريخ والوقت
تعويم (ص < 16) مزدوج مزدوج
تعويم (ص >= 16) عدد عشري مزدوج
الفاصل الزمني من سنة إلى شهر int64 السلسلة‬
الفاصل الزمني من يوم إلى ثانية الفترة الزمنية السلسلة‬
طويل السلسلة‬ السلسلة‬
الخام الطويل بايت [] بايت []
NCHAR السلسلة‬ السلسلة‬
NCLOB السلسلة‬ السلسلة‬
الرقم (p، s) Int16 و Int32 و Int64 و Single و Double و Decimal عشري، السلسلة (إذا كانت p > 28)
رقم بدون دقة ومقياس رقم عشري (256,130) مزدوج
NVARCHAR2 السلسلة‬ السلسلة‬
نيء بايت [] بايت []
الطابع الزمني التاريخ والوقت التاريخ والوقت
الطابع الزمني مع المنطقة الزمنية المحلية التاريخ والوقت التاريخ والوقت
الطابع الزمني مع المنطقة الزمنية DateTimeOffset التاريخ والوقت
VARCHAR2 السلسلة‬ السلسلة‬
XMLTYPE السلسلة‬ السلسلة‬

يتم تعيين NUMBER(p,s) إلى نوع بيانات الخدمة المؤقتة المناسب للإصدار 2.0 اعتمادا على الدقة (p) والمقياس (s):

نوع بيانات الخدمة المؤقتة الشرط
Int16 مقياس <= 0 و (دقة - مقياس) < 5
Int32 مقياس <= 0 و 5 <= (دقة - مقياس) < 10
int64 مقياس <= 0 و 10 <= (دقة - مقياس) < 19
فردي الدقة < 8 AND ((المقياس <= 0 و (الدقة - المقياس) <= 38) أو (المقياس > 0 والمقياس <= 44))
عدد عشري الدقة >= 16
مزدوج إذا لم يتم استيفاء أي من الشروط المذكورة أعلاه.

بحث عن خصائص النشاط

لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.

ترقية موصل Oracle

فيما يلي الخطوات التي تساعدك على ترقية موصل Oracle:

  1. في صفحة تحرير الخدمة المرتبطة ، حدد 2.0 ضمن الإصدار وقم بتكوين الخدمة المرتبطة بالإشارة إلى خصائص الخدمة المرتبطة الإصدار 2.0.

    بالنسبة للخصائص المتعلقة بالمصادقة بما في ذلك اسم المستخدم وكلمة المرور، حدد القيم الأصلية في الحقول المقابلة في الإصدار 2.0. تعد خصائص الاتصال الأخرى مثل المضيف والمنفذ واسم خدمة Oracle/Oracle SID في الإصدار 1.0 معلمات للخاصيةserver في الإصدار 2.0.

    على سبيل المثال، إذا قمت بتكوين الخدمة المرتبطة بالإصدار 1.0 كما هو موضح أدناه:

    لقطة شاشة لخدمة الإصدار 1.0 المرتبطة.

    { 
        "name": "OracleLinkedService", 
        "properties": { 
            "type": "Oracle", 
            "typeProperties": { 
                "connectionString": "host=oraclesample.com;port=1521;servicename=db1" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    }
    

    تكوين الخدمة المرتبطة بالإصدار 2.0 المتطابق باستخدام التسمية Easy Connect (Plus) هو:

    لقطة شاشة للخدمة المرتبطة باستخدام تسمية الموصل السهل (Plus).

    { 
        "name": "OracleLinkedService", 
        "properties": { 
            "type": "Oracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "oraclesample.com:1521/db1",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    تكوين الخدمة المرتبطة بالإصدار 2.0 المتطابق باستخدام واصف الموصل هو:

    لقطة شاشة للخدمة المرتبطة باستخدام واصف الموصل.

    { 
        "name": "OracleLinkedService", 
        "properties": { 
            "type": "Oracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    تلميح

    يتم دعم Azure Key Vault للخاصية server. يمكنك تحرير الخدمة المرتبطة JSON لإضافة مرجع Azure Key Vault، كما هو موضح أدناه:
    لقطة شاشة لاستخدام Azure Key Vault في الخادم.

    لاحظ ما يلي:

    • إذا كنت تستخدم Oracle Service Name في الإصدار 1.0، يمكنك استخدام تسمية Easy Connect (Plus) أو واصف الموصل بتنسيق الخادم في الإصدار 2.0.

    • إذا كنت تستخدم Oracle SID في الإصدار 1.0، فستحتاج إلى استخدام واصف الموصل بتنسيق الخادم في الإصدار 2.0.

    • بالنسبة لبعض خصائص الاتصال الإضافية في الإصدار 1.0، نقدم خصائص أو معلمات بديلة في الخاصية server في الإصدار 2.0. يمكنك الرجوع إلى الجدول أدناه لترقية خصائص الإصدار 1.0.

      الإصدار 1.0 الإصدار 2.0
      معرف التشفير PROTOCOL (معلمة في server)
      tnsnamesfile TNS_ADMIN (متغير البيئة المدعوم في وقت تشغيل التكامل المستضاف ذاتيا)
      اسم الخادم ملقم
      تمكين التحميل
      القيمة: 1، 0
      تمكين التحميل
      القيمة: صواب، خطأ
      الطابع الزمني ل fetchtswtzas
      القيمة: 1، 0
      fetchTswtzAsTimestamp
      القيمة: صواب، خطأ
      خوادم بديلة DESCRIPTION_LIST (المعلمة في server)
      حجم الصفائف إحضار الحجم
      مدة التخزين المؤقت statementCacheSize
      عدد بيانات الاتصال RETRY_COUNT (المعلمة في server)
      سلسلة التهيئة سلسلة التهيئة
      مهلة تسجيل الدخول CONNECT_TIMEOUT (المعلمة في server)
      تحويل التشفير SSL_VERSION (المعلمة في server)
      مخزن الثقة WALLET_LOCATION (المعلمة في server)

      على سبيل المثال، إذا كنت تستخدم alternateservers في الإصدار 1.0، يمكنك تعيين المعلمة DESCRIPTION_LIST في خاصية الخادم في الإصدار 2.0:

      الإصدار 1.0 من الخدمة المرتبطة باستخدام alternateservers:

      {
          "name": "OracleV1",
          "properties": {
              "type": "Oracle",
              "typeProperties": {
                  "connectionString": "host=oraclesample.com;port=1521;servicename=db1;alternateservers=(HostName= oraclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)"
              }
          }
      }
      

      خدمة مرتبطة بالإصدار 2.0 متطابقة باستخدام DESCRIPTION_LIST المعلمة في واصف الموصل:

      {
          "name": "OracleV2",
          "properties": {
              "type": "Oracle",
              "version": "2.0",
              "typeProperties": {
                  "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample2.com)(PORT=1521))(CONNECT_DATA=(SID=db2)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=255.201.11.24)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=db3))))",
                  "username": "<user name>",  
                  "password": "<password>",  
                  "authenticationType": "<authentication type>" 
              }
          }
      }
      
  2. يختلف تعيين نوع البيانات لإصدار الخدمة المرتبطة من Oracle 2.0 عن ذلك للإصدار 1.0. لمعرفة أحدث تعيين لنوع البيانات، راجع تعيين نوع البيانات ل Oracle.

    يمكن أن تقلل خاصية supportV1DataTypes اتصال إضافية في الإصدار 2.0 من صعوبات الترقية الناجمة عن تغييرات نوع البيانات. يضمن تعيين هذه الخاصية للتأكد true من أن نوع البيانات في الإصدار 2.0 يظل متسقا مع الإصدار 1.0.

الاختلافات بين Oracle الإصدار 2.0 والإصدار 1.0

يوفر الإصدار 2.0 من موصل Oracle وظائف جديدة ومتوافقا مع معظم ميزات الإصدار 1.0. يعرض الجدول التالي اختلافات الميزات بين الإصدار 2.0 والإصدار 1.0.

الإصدار 2.0 الإصدار 1.0
يتم استخدام التعيينات التالية من أنواع بيانات Oracle إلى أنواع بيانات الخدمة المؤقتة التي تستخدمها الخدمة داخليا.

NUMBER(p,s) -> Int16, Int32, Int64, فردي, مزدوج, عشري
FLOAT(p)-> مزدوج أو عشري استنادا إلى دقته
NUMBER -> عشري
الطابع الزمني مع المنطقة الزمنية -> DateTimeOffset
الفاصل الزمني من سنة إلى شهر -> Int64
الفاصل الزمني من يوم إلى ثاني -> TimeSpan
يتم استخدام التعيينات التالية من أنواع بيانات Oracle إلى أنواع بيانات الخدمة المؤقتة التي تستخدمها الخدمة داخليا.

NUMBER(p,s) -> عشرية أو سلسلة استنادا إلى دقتها
FLOAT(p)-> مزدوج
NUMBER -> مزدوج
الطابع الزمني مع المنطقة الزمنية -> DateTime
الفاصل الزمني من سنة إلى شهر - سلسلة>
الفاصل الزمني من يوم إلى ثاني - سلسلة>
دعم convertDecimalToInteger في مصدر النسخ عند تعيين supportV1DataTypes إلى true. دعم convertDecimalToInteger في مصدر النسخ. 
استخدام ? كعنصر نائب لمعلمات استعلام نشاط البرنامج النصي غير مدعوم. يمكنك استخدام المعلمة المسماة (مثل :paramA) أو المعلمة الموضعية (مثل :1) كبديل. دعم استخدام ? كعنصر نائب لمعلمات استعلام نشاط البرنامج النصي. 
دعم TLS 1.3. TLS 1.3 غير مدعوم.
يتم دعم TLS/SSL ثنائي الاتجاه مع محفظة Oracle SSO. للحصول على مزيد من المعلومات، اقرأ هذه المقالة TLS/SSL ثنائي الاتجاه مع محفظة Oracle غير مدعوم.