أكثر

كيف يمكنني تحميل ملف sqlite في oracle 11g؟

كيف يمكنني تحميل ملف sqlite في oracle 11g؟


لدي ملف SQLite الذي أخذته من Sptialite DB. أحتاج إلى تحويل هذا الملف إلى SDO. بلز مساعدتي


يمكنك استخدام OGR2OGR للقيام بذلك ، الكتابة إلى Oracle من خلال برنامج تشغيل OCI ؛ القراءة من SpatialLite تتم من خلال برنامج تشغيل SQLite ، لذلك هناك شيء مثل:

ogr2ogr -f OCI OCI: warmerda/[email protected] db.sqlite

يجب القيام به.


الاستخدامات المناسبة لـ SQLite

لا يمكن مقارنة SQLite مباشرة بمحركات قاعدة بيانات SQL للعميل / الخادم مثل MySQL أو Oracle أو PostgreSQL أو SQL Server نظرًا لأن SQLite تحاول حل مشكلة مختلفة.

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

لا تتنافس SQLite مع قواعد بيانات العميل / الخادم. يتنافس SQLite مع fopen ().


1.1 تحفظات

& sup1 رقم 35٪ أعلاه تقريبي. تختلف التوقيتات الفعلية اعتمادًا على الأجهزة ونظام التشغيل وتفاصيل التجربة وبسبب تقلبات الأداء العشوائية على الأجهزة الموجودة في العالم الحقيقي. انظر النص أدناه لمزيد من التفاصيل. جرب التجارب بنفسك. الإبلاغ عن انحرافات كبيرة في منتدى SQLite.

يعتمد الرقم 35٪ على إجراء الاختبارات على كل جهاز في متناول يد المؤلف. أفاد بعض المراجعين لهذه المقالة أن SQLite لديها زمن انتقال أعلى من I / O المباشر على أنظمتهم. نحن لا نفهم الفرق بعد. نرى أيضًا مؤشرات على أن SQLite لا تعمل بشكل جيد مثل الإدخال / الإخراج المباشر عند تشغيل التجارب باستخدام ذاكرة التخزين المؤقت لنظام الملفات البارد.

لذا دع الأمر يأخذك على النحو التالي: زمن انتقال القراءة / الكتابة لـ SQLite تنافسي مع زمن انتقال القراءة / الكتابة للملفات الفردية على القرص. غالبًا ما يكون SQLite أسرع. في بعض الأحيان يكون SQLite بنفس السرعة تقريبًا. في كلتا الحالتين ، تدحض هذه المقالة الافتراض الشائع بأن قاعدة البيانات العلائقية يجب أن تكون أبطأ من إدخال / إخراج نظام الملفات المباشر.


3. تجميع ملحق قابل للتحميل

الامتدادات القابلة للتحميل هي كود ج. لتجميعها على معظم أنظمة التشغيل التي تشبه يونكس ، فإن الأمر المعتاد هو شيء من هذا القبيل:

أجهزة Mac تشبه يونكس ، لكنها لا تتبع اصطلاحات المكتبة المشتركة المعتادة. لتجميع مكتبة مشتركة على جهاز Mac ، استخدم أمرًا مثل هذا:

إذا حاولت تحميل مكتبتك ، فستتلقى رسالة خطأ مفادها "Mach-o ، لكن بنية خاطئة" ، فقد تحتاج إلى إضافة خيارات سطر الأوامر "-arch i386" أو "arch x86_64" إلى دول مجلس التعاون الخليجي ، اعتمادًا على كيف تم بناء التطبيق الخاص بك.

للترجمة على Windows باستخدام MSVC ، عادةً ما يعمل أمر مشابه لما يلي:

للترجمة لنظام التشغيل Windows باستخدام MinGW ، يكون سطر الأوامر كما هو الحال مع نظام التشغيل Unix فيما عدا أنه تم تغيير لاحقة ملف الإخراج إلى ".dll" وتم حذف الوسيطة -fPIC:


كيف يمكنني تحميل ملف sqlite في oracle 11g؟ - نظم المعلومات الجغرافية

SQLite هي مكتبة بلغة C تقوم بتنفيذ محرك قاعدة بيانات SQL صغير وسريع وقائم بذاته وعالي الموثوقية وكامل الميزات. SQLite هو محرك قواعد البيانات الأكثر استخدامًا في العالم. تم دمج SQLite في جميع الهواتف المحمولة ومعظم أجهزة الكمبيوتر وتأتي مجمعة داخل عدد لا يحصى من التطبيقات الأخرى التي يستخدمها الأشخاص كل يوم. معلومات اكثر.

تنسيق ملف SQLite مستقر ومتوافق مع الأنظمة الأساسية ومتوافق مع الإصدارات السابقة ويتعهد المطورون بالحفاظ عليه على هذا النحو حتى عام 2050. تُستخدم ملفات قاعدة بيانات SQLite بشكل شائع كحاويات لنقل المحتوى الغني بين الأنظمة & # 911 & # 93 & # 912 & # 93 & # 913 & # 93 وكتنسيق أرشفة طويل الأجل للبيانات & # 914 & # 93. هناك أكثر من 1 تريليون (1e12) قاعدة بيانات SQLite قيد الاستخدام النشط & # 915 & # 93.

شفرة المصدر SQLite موجودة في المجال العام وهي مجانية للجميع لاستخدامها لأي غرض من الأغراض.

أحدث إصدار

روابط مشتركة

  • سمات
  • متى تستخدم سكليتي
  • ابدء
  • الإصدارات السابقة
  • بناء جملة SQL
    • براغماس
    • وظائف SQL
    • وظائف التاريخ والوقت أمبير
    • وظائف مجمعة
    • وظائف النافذة
    • وظائف الرياضيات
    • وظائف JSON
    • مقدمة
    • قائمة واجهات برمجة تطبيقات لغة C.

    أصبح التطوير المستمر ودعم SQLite ممكنًا جزئيًا بواسطة أعضاء اتحاد SQLite ، بما في ذلك:


    كيف يمكنني تحميل ملف sqlite في oracle 11g؟ - نظم المعلومات الجغرافية

    يوفر هذا الفصل إرشادات إرشادية للحفاظ على Enterprise Manager آمنًا.

    إرشادات للبنية التحتية الآمنة والمنشآت

    يتضمن تأمين نشر Oracle Enterprise Manager تأمين جميع طبقات المكدس بدءًا من نظام التشغيل الأساسي (OS) الذي يوجد عليه OMS والمستودع وصولاً إلى مكونات Enterprise Manager نفسها. ستعمل هذه التوصيات على زيادة الأمن العام بالإضافة إلى منع بعض هجمات DoS.

    تأمين البنية التحتية ونظام التشغيل

    قم بتقوية الأجهزة نفسها عن طريق إزالة جميع الخدمات غير الآمنة مثل rsh و rlogin و telnet و rexec على نظام Linux (للحصول على قائمة الخدمات غير الآمنة وكيفية إزالتها على منصات مختلفة ، يرجى الرجوع إلى معايير CIS). يوصى أيضًا بإيقاف الخدمات غير الأساسية ، وهذا يقلل من "أثر الهجوم" للمضيف ويقلل من استهلاك الموارد من خلال الخدمات غير المطلوبة ، مما يحرر موارد النظام لتقديم أفضل أداء من نظام إدارة العمليات.

    تقييد الوصول إلى نظام التشغيل من خلال دعم الوصول غير المباشر أو المستند إلى الانتحال فقط إلى جميع Oracle Homes باستخدام الأدوات المساعدة مثل sudo أو PowerBroker. حماية دليل WebLogic Server Home ، وخاصة دليل المجال الذي يحتوي على ملفات التكوين وملفات الأمان وملفات السجل وموارد Java EE الأخرى لمجال WebLogic. امنح مستخدم نظام تشغيل واحدًا فقط يقوم بتشغيل خادم WebLogic امتياز الوصول إلى الدليل.

    تأكد من أن جميع Oracle Homes مصححة بأحدث وحدة المعالجة المركزية (تحديث التصحيح الحرج). هذه هي أفضل ممارسة موصى بها لتأمين Oracle Management Service والمستودع والوكلاء والأهداف المُدارة. قم بإعداد بيانات اعتماد My Oracle Support لاكتشاف تنبيهات الأمان ووحدات المعالجة المركزية الجديدة من مرشد التصحيح. مع توصيات الأمان الافتراضية لمعيار توافق منتجات Oracle ، عندما يفتقد الهدف أحدث تصحيحات الأمان ، سيتم تشغيل انتهاك معيار الامتثال. بالإضافة إلى ذلك ، يجب ربط التكوين الآمن للمضيف بمضيفي OMS والمستودع. هناك معايير امتثال إضافية لقاعدة البيانات و WLS يمكن تطبيقها بناءً على مستوى الأمان لديك. راجع قسم Oracle Enterprise Manager Cloud Control Administrator's Guide الخاص بالامتثال للحصول على مزيد من المعلومات حول معايير الامتثال المتاحة وكيفية إقران الأهداف.

    يعمل OMS أعلى خادم Oracle WebLogic. معظم أفضل الممارسات لتأمين خادم Oracle WebLogic قابلة للتطبيق لتأمين OMS أيضًا. راجع قسم Oracle Fusion Middleware تأمين بيئة إنتاج لخادم Oracle WebLogic تأمين Oracle WebLogic Server للحصول على معلومات إضافية.

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

    أفضل الممارسات لتأمين البنية التحتية ونظام التشغيل

    قم بإزالة الخدمات غير الآمنة وإيقاف الخدمات غير الأساسية على جميع مكونات البنية التحتية

    تقييد الوصول إلى نظام التشغيل وحماية الملفات والأدلة الهامة

    قم بتطبيق أحدث تصحيحات أمان نظام التشغيل

    الالتزام بمعايير الامتثال الأمني ​​وتطبيق أحدث تصحيحات Oracle CPU على جميع المكونات (OMS والمستودع والوكيل)

    مراقبة مساحة نظام الملفات لـ OMS والمستودع والوكيل

    تأمين مستودع إدارة أوراكل

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

    يغطي المستند أعلاه أيضًا خطوات معينة على مستوى نظام التشغيل يجب إجراؤها لتأمين قاعدة البيانات. فيما يلي توصيات إضافية ليتم تنفيذها في نشر Enterprise Manager.

    تمكين خيار الأمان المتقدم

    قم بتمكين خيار الأمان المتقدم (ASO) بين OMS والمستودع لضمان أن البيانات بين OMS والمستودع آمنة من منظور السرية والنزاهة. بالإضافة إلى تكوين ASO المطلوب في قاعدة بيانات المستودع ، ستحتاج إلى تكوين OMS والوكيل للاتصال بقاعدة بيانات مستودع آمنة. يمكن العثور على الإرشادات التفصيلية لتنفيذ ASO for Enterprise Manager في قسم Enterprise Manager Security في Oracle Enterprise Manager Cloud Control Administrator's Guide.

    يرجى الرجوع إلى دليل مسؤول أمان Oracle Database Advanced Security للحصول على معلومات مفصلة حول ASO.

    تقييد الوصول إلى الشبكة

    قم بتقييد وصول الشبكة إلى النظام الرئيسي الذي يوجد عليه المستودع عن طريق وضع قاعدة بيانات المستودع خلف جدار حماية والتحقق من عناوين IP للشبكة. يجب تكوين المستمع لقبول الطلبات من عقد OMS فقط عن طريق إضافة المعلمات التالية إلى ملف TNS_ADMIN / protocol.ora:

    tcp.excluded_nodes = (قائمة عناوين IP)

    tcp.invited_nodes = (قائمة عناوين IP) ، قم بإدراج جميع عقد OMS هنا)

    تقوم المعلمة الأولى بتشغيل الميزة بينما ترفض المعلمات الأخيرة على التوالي وتسمح لعناوين IP للعميل المحدد من إجراء اتصالات بمستمع Oracle. يرجى الرجوع إلى قسم Secure the Network Connection في Oracle Database Security Guide للحصول على مزيد من المعلومات.

    تدوين إجراءات SYS

    قم بتدقيق جميع عمليات SYS (المخطط) على مستوى قاعدة البيانات عن طريق تحديد AUDIT_SYS_OPERATIONS = TRUE.

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

    بالنسبة إلى 10gR2 DB ، راجع وثائق التدقيق للحصول على مزيد من المعلومات حول مسار تدقيق سجل النظام.

    بالنسبة لـ 11g DB ، قم بتعيين معامل تهيئة AUDIT_SYS_LEVEL بشكل مناسب لاستخدام مسار تدقيق سجل النظام. راجع وثائق 11g للحصول على التفاصيل.

    تأمين حسابات المستخدمين

    يجب على المستخدمين تسجيل الدخول إلى وحدة التحكم بحساباتهم الفردية ، وعدم استخدام مستخدم SYSMAN. SYSMAN هو مالك المخطط وهو أكثر امتيازًا من المسؤولين المتميزين في Enterprise Manager. يجب منح العديد من المستخدمين مشرفًا متميزًا لتقليل الحاجة إلى وصول SYSMAN. أحد الأسباب القوية لإنشاء حسابات متعددة للمسؤول المتميز هو ضمان احتفاظ مستخدم واحد بإمكانية الوصول إلى الحساب في حالة حظر مستخدم آخر من خلال هجوم بالقاموس / القوة الغاشمة. يجب أن يقتصر امتياز المشرف المتميز على المستخدمين الذين يحتاجون حقًا إلى جميع الأذونات التي يمنحها لهم المشرف المتميز.

    في بعض الحالات ، قد ترغب في منع SYSMAN من تسجيل الدخول إلى وحدة التحكم عن طريق تنفيذ جملة SQL التالية على قاعدة بيانات المستودع كمستخدم SYSMAN:

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

    استخدم ملفات تعريف كلمة المرور لفرض التحكم في كلمة المرور لمسؤولي Enterprise Manager أثناء استخدام المصادقة المستندة إلى المستودع. يوجد ملف تعريف كلمة مرور جاهز MGMT_ADMIN_USER_PROFILE مع إعدادات المعلمات التالية لمسؤولي Enterprise Manager:

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

    قم بتغيير كلمة مرور مستخدمي SYSMAN و MGMT_VIEW بشكل منتظم باستخدام الطريقة الموثقة فقط في قسم الأمان في دليل مسؤول Oracle Enterprise Manager Cloud Control. يساعدك الأمر الموثق (update_db_password ()) في تغيير كلمات المرور المتعلقة بـ SYSMAN في OMS وفي قاعدة بيانات المستودع. إذا لم تقم بتنفيذ هذا الأمر بشكل صحيح ، فقد يفشل OMS في البدء بسبب كلمات المرور غير المتسقة لأحد الحسابات العديدة. ستتم مطالبتك بكلمات مرور SYSMAN القديمة والجديدة.

    عند تغيير كلمة مرور MGMT_VIEW ، يمكنك تحديد "-Auto_generate" لإنشاء كلمة مرور عشوائية لن يعرفها أحد. يتم استخدام كلمة مرور MGMT_VIEW فقط بواسطة نظام الإبلاغ ولا يجب استخدامها لتسجيل الدخول ، وبالتالي يمكن أن تضمن علامة الإنشاء التلقائي كلمة المرور ليس معروفا.

    لتجنب انقطاع الخدمة بسبب إغلاق المستخدمين الداخليين ، يرتبط مستخدمو SYSMAN و MGMT_VIEW بـ MGMT_INTERNAL_USER_PROFILE عند التثبيت. تم تعيين جميع معلمات كلمة المرور على UNLIMITED. بالإضافة إلى ذلك ، لتجنب توقف الجلسات أو استغراق وقت طويل بسبب حد استهلاك الموارد ، تم تعيين معلمات نواة MGMT_INTERNAL_USER_PROFILE على الإعداد الافتراضي ، وهو أمر غير محدود أيضًا.

    تأمين مفتاح التشفير ونسخه احتياطيًا

    مفتاح التشفير هو المفتاح الرئيسي المستخدم لتشفير / فك تشفير البيانات الحساسة ، مثل كلمات المرور وبيانات الاعتماد المفضلة المخزنة في المستودع. يتم تخزين المفتاح نفسه في الأصل في المستودع وإزالته تلقائيًا بمجرد الانتهاء من التثبيت. يجب أن يكون في المستودع فقط أثناء الترقية. من خلال تخزين المفتاح بشكل منفصل عن مخطط Enterprise Manager ، نضمن أن البيانات الحساسة مثل بيانات الاعتماد المفضلة تظل غير قابلة للوصول إلى مالك المخطط ومستخدمي SYSDBA الآخرين (المستخدمون المتميزون الذين يمكنهم أداء مهام الصيانة على قاعدة البيانات). سيضمن الاحتفاظ بالمفتاح خارج مخطط Enterprise Manager أن تظل البيانات الحساسة غير قابلة للوصول أثناء الوصول إلى النسخ الاحتياطية للمستودع. علاوة على ذلك ، لا ينبغي أن يكون لمالك مخطط Enterprise Manager (SYSMAN) حق الوصول إلى OMS Oracle Homes لمنع قراءة أو الكتابة فوق emkey. راجع دليل مسؤول Oracle Enterprise Manager Cloud Control للحصول على معلومات أكثر تفصيلاً حول دعم تشفير Enterprise Manager ومفتاح emkey. اتبع العملية الموضحة أدناه لتأمين مفتاح التشفير.

    قم بنسخ مفتاح التشفير احتياطيًا إلى ملف عن طريق تشغيل الأمر التالي واحتفظ بملف التشفير على جهاز منفصل بشكل آمن ، وقم بتقييد الوصول إلى مالك برنامج OMS فقط. في حالة فقدان مفتاح التشفير أو تلفه ، تكون البيانات المشفرة في المستودع غير قابلة للاستخدام.

    emctl config emkey $ & # x2013copy_to_file_from_credstore & # x2013emkey_file emkey.ora

    يجب أن يكون مفتاح التشفير في المستودع لبعض العمليات مثل ترقيات وترقيات Enterprise Manager.

    قم بإزالة المفتاح من المستودع بمجرد الانتهاء من العملية.

    emctl config emkey $ & # x2013remove_from_repos

    أفضل الممارسات لتأمين مستودع Oracle Management

    قم بتمكين خيار الأمان المتقدم في قاعدة بيانات المستودع وقم بتكوين OMS والوكيل

    تقييد الوصول إلى الشبكة لأهداف معروفة

    امنح امتياز المشرف المتميز لتحديد المسؤولين ولا تقم بتسجيل الدخول باستخدام حساب SYSMAN

    قم بتمكين ملفات تعريف كلمات المرور القوية وتغيير كلمات مرور الحساب المتعلقة بالتطبيقات بانتظام

    تأمين مفتاح التشفير ونسخه احتياطيًا

    تأمين وكيل إدارة أوراكل

    للحصول على أمان أفضل أثناء تثبيت الوكيل ، يجب نشر الوكلاء باستخدام نشر وكيل Enterprise Manager Enterprise Manager الذي يستخدم بروتوكول SSH الآمن. عند نشر الوكلاء يدويًا ، للحماية من إمكانية قيام المستخدمين بتثبيت وكلاء غير مصرح لهم ، استخدم كلمات مرور التسجيل لمرة واحدة والتي لها تاريخ انتهاء صلاحية معقول بدلاً من كلمات مرور التسجيل الدائمة. يمكن إنشاء كلمات مرور التسجيل في وحدة التحكم أو باستخدام الأمر emctl secure setpwd.

    قم بتثبيت الوكيل كمستخدم منفصل عن تثبيت OMS ودعم الوصول المستند إلى انتحال الهوية فقط إلى هذا الحساب مثل sudo أو PowerBroker post Installation لمنع التغييرات غير المصرح بها.

    اتصال آمن

    هناك عدة طرق لتأمين الاتصال بين OMS والوكيل ، بما في ذلك جدران الحماية ، وميزة القفل الآمن لـ OMS ، وتمكين TLSv1 ، وتمكين مجموعات وشهادات تشفير قوية. ينظر القسم التالي في هذه بمزيد من التفصيل.

    أفضل الممارسات لتأمين وكيل إدارة أوراكل

    استخدم طريقة نشر وكيل Enterprise Manager لعمليات تثبيت العامل.

    استخدم كلمات مرور التسجيل لمرة واحدة مع تواريخ انتهاء الصلاحية

    قم بتثبيت Agent كمستخدم منفصل عن OMS أو Targets

    يجب تثبيت الوكلاء على الخوادم البعيدة كمستخدم نظام تشغيل منفصل للأهداف الموجودة على هذا الخادم ، ومع ذلك ، لا ينطبق هذا على الوكلاء المتسلسلون. لا يمكن تثبيت الوكيل المتسلسل كمستخدم منفصل لأنه يتم تثبيته مع OMS.

    تمكين ICMP

    يستخدم Enterprise Manager طلب ارتداد بروتوكول رسائل التحكم في الإنترنت (ICMP) المتوافق مع معايير الصناعة للتحقق من حالة الأجهزة المضيفة المستهدفة إذا لم يقم الوكيل بالتحميل أو الاستجابة في الوقت المناسب أو على فترات زمنية متوقعة. إذا تم تعطيل ICMP ، سيظهر الهدف متوقفًا. يجب تكوين جدار الحماية للسماح لـ ICMP بمنع تنبيهات الهدف الخاطئة.

    الإشارة التنبيهية هي هدف يسمح لوكيل الإدارة بمراقبة الخدمات عن بُعد. يمكن لجهاز التوجيه مراقبة خدمة واحدة أو أكثر في أي وقت. يتم أيضًا استخدام ICMP وبروتوكول مخطط بيانات المستخدم (UDP) لنقل البيانات بين أهداف منارة التي تسمح للوكيل بمراقبة الخدمات ومكونات الشبكة التي تراقبها. إذا كان هناك جدار حماية أو ACL بين مكونات تطبيق الويب والإشارات التي تستخدمها لمراقبة تلك المكونات ، فيجب عليك تكوينها للسماح بحركة مرور ICMP و UDP و HTTP.

    تكوين Oracle Management Agent لجدران الحماية

    عندما يكون المضيف الذي يوجد فيه الوكيل محميًا بجدار حماية ، فأنت بحاجة إلى تكوين الوكيل لاستخدام وكيل ، أو تكوين جدار الحماية للسماح بالاتصالات الواردة من OMS. لتكوين جدار الحماية ، يجب عليك تحديد المنفذ المعين للوكيل وما إذا كان الاتصال هو HTTP أو HTPS. يمكنك العثور على هذه المعلومات عن طريق تشغيل وكيل الحالة emctl.

    لتكوين الوكيل ، قم بتعيين الخصائص التالية باستخدام Enterprise Manager Console لتحرير خصائص الوكيل أو وكيل تعيين الخاصية emctl وإعادة تشغيل الوكيل. قد لا يكون مجال الوكيل والمستخدم وكلمة المرور مطلوبين في جميع البيئات.

    تكوين Oracle Management Service للجدران النارية

    في الحالات التي تكون فيها Oracle Management Service وراء جدار حماية ، ستكون التكوينات ضرورية للسماح باتصالات الوكيل إلى الوكلاء أو الاتصالات الواردة من خلال جدار الحماية.

    إذا كان الوكلاء الذين يقفون وراء جدار الحماية في مجالات مختلفة ، فيمكنك تكوين الوكيل للسماح بالاتصال لهؤلاء الوكلاء واستخدام المعلمة dontProxyFor لتحديد الوكلاء داخل جدار الحماية. لتكوين الوكيل في خدمة الإدارة ، قم بتعيين الخصائص التالية باستخدام خاصية مجموعة emctl. قد لا يكون مجال الوكيل والمستخدم وكلمة المرور مطلوبين في جميع البيئات.

    لتكوين جدار الحماية للسماح بالاتصالات الواردة من الوكلاء لعمليات التحميل المترية ، يجب تكوين جدار الحماية لقبول حركة مرور HTTP / HTTPS على منافذ التحميل. المنافذ الافتراضية هي 4889 (HTTP) و 1159 (HTTPS). إذا تم تخصيص المنافذ الخاصة بك ، فستحتاج إلى استخدام هذه المنافذ.

    إذا كان هناك جدار حماية بين المستعرض الخاص بك و Enterprise Manager Console ، فيجب عليك تكوين جدار الحماية للسماح لوحدة التحكم بتلقي حركة مرور HTTP / HTTPS عبر المنفذ 7788/7799 (الإعدادات الافتراضية). يمكنك التحقق من صحة المنفذ الخاص بك من خلال النظر إلى عنوان URL الذي تقوم بالوصول إلى وحدة التحكم به.

    تشتمل عمليات تثبيت المكونات الإضافية مثل JVMD و APD و BI على متطلبات منفذ إضافية. على سبيل المثال ، إذا تم تثبيت BI Publisher ، فقد تكون هناك حاجة إلى منافذ إضافية للوصول إلى وحدة تحكم التقارير. المنافذ الافتراضية هي 9702/9703 (http / https). لمزيد من المعلومات يرجى الاطلاع على الوثائق الخاصة بالمكون.

    لإدارة أهداف قاعدة البيانات التي تم تكوينها خلف جدران الحماية ، يجب أن تسمح بحركة مرور Oracle Net على منافذ المستمع (عادةً 1521 ولكن غالبًا ما تكون مخصصة). لمزيد من المعلومات حول تكوين قواعد بيانات Oracle لجدران الحماية ، راجع Oracle Database 2 Day + Security Guide.

    وحدة التحكم الأمنية

    تتوفر وحدة التحكم في الأمان للمسؤولين المتميزين فقط وتوفر جميع معلومات التكوين المتعلقة بالأمان في مكان واحد ، مما يسمح لك بعرض الأمان وتحليله وتحسينه لبيئتك المدارة. للوصول إلى Security Console ، من قائمة Setup ، حدد Security ، ثم Security Console.

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

    تحتوي وحدة التحكم في الأمان على معلومات ثابتة (نصية) وديناميكية. النص هو توفير سياق سريع وعالي المستوى للبيانات ، وليس المقصود منه أن يكون بديلاً لوثائقك.


    كيف يمكنني تحميل ملف sqlite في oracle 11g؟ - نظم المعلومات الجغرافية

    (1) كيف أقوم بإنشاء حقل AUTOINCREMENT؟

    إجابة مختصرة: العمود المُعلن عنه INTEGER PRIMARY KEY سوف يتزايد تلقائيًا.

    إجابة أطول: إذا أعلنت أن عمودًا في الجدول هو مفتاح INTEGER PRIMARY KEY ، فعندما تقوم بإدراج NULL في هذا العمود من الجدول ، يتم تحويل NULL تلقائيًا إلى عدد صحيح يزيد بمقدار واحد عن أكبر قيمة لهذا العمود كل الصفوف الأخرى في الجدول ، أو 1 إذا كان الجدول فارغًا. أو ، إذا كان أكبر مفتاح رقم صحيح موجود 9223372036854775807 قيد الاستخدام ، فسيتم اختيار قيمة مفتاح غير مستخدمة عشوائيًا. على سبيل المثال ، افترض أن لديك جدولًا مثل هذا:

    مع هذا الجدول البيان

    يكافئ منطقيًا قول:

    هناك وظيفة تسمى sqlite3_last_insert_rowid () والتي ستعيد مفتاح العدد الصحيح لعملية الإدراج الأخيرة.

    لاحظ أن مفتاح العدد الصحيح أكبر بمقدار واحد من أكبر مفتاح كان موجودًا في الجدول قبل الإدخال مباشرةً. سيكون المفتاح الجديد فريدًا على جميع المفاتيح الموجودة حاليًا في الجدول ، ولكنه قد يتداخل مع المفاتيح التي تم حذفها مسبقًا من الجدول. لإنشاء مفاتيح فريدة على مدار عمر الجدول ، أضف الكلمة الأساسية AUTOINCREMENT إلى إعلان INTEGER PRIMARY KEY. ثم سيكون المفتاح المختار واحدًا أكثر من أكبر مفتاح موجود في هذا الجدول على الإطلاق. إذا كان أكبر مفتاح ممكن موجودًا مسبقًا في هذا الجدول ، فسيفشل INSERT مع رمز خطأ SQLITE_FULL.

    (2) ما هي أنواع البيانات التي يدعمها SQLite؟

    (3) يتيح لي SQLite إدخال سلسلة في عمود قاعدة بيانات من النوع الصحيح!

    هذه ميزه، ليس خطأ. يستخدم SQLite الكتابة الديناميكية. لا يفرض قيود نوع البيانات. يمكن (عادة) إدراج البيانات من أي نوع في أي عمود. يمكنك وضع سلاسل طول عشوائية في أعمدة عدد صحيح ، أو أرقام فاصلة عائمة في أعمدة منطقية ، أو تواريخ في أعمدة الأحرف. نوع البيانات الذي تقوم بتعيينه لعمود في الأمر CREATE TABLE لا يقيد البيانات التي يمكن وضعها في هذا العمود. كل عمود قادر على الاحتفاظ بسلسلة طولية عشوائية. (هناك استثناء واحد: الأعمدة من النوع INTEGER PRIMARY KEY قد تحتوي فقط على عدد صحيح موقّع 64 بت. سيحدث خطأ إذا حاولت وضع أي شيء آخر غير العدد الصحيح في عمود INTEGER PRIMARY KEY.)

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

    (4) لماذا لا يسمح لي SQLite باستخدام "0" و "0.0" كمفتاح أساسي في صفين مختلفين من نفس الجدول؟

    تحدث هذه المشكلة عندما يكون المفتاح الأساسي من نوع رقمي. قم بتغيير نوع بيانات مفتاحك الأساسي إلى TEXT ويجب أن يعمل.

    يجب أن يحتوي كل صف على مفتاح أساسي فريد. بالنسبة للعمود ذي النوع الرقمي ، يعتقد SQLite ذلك '0' و '0.0' هي نفس القيمة لأنها تتساوى عدديًا. (راجع السؤال السابق). ومن ثم فإن القيم ليست فريدة.

    (5) هل يمكن لتطبيقات متعددة أو مثيلات متعددة لنفس التطبيق الوصول إلى ملف قاعدة بيانات واحد في نفس الوقت؟

    يمكن أن يكون للعمليات المتعددة نفس قاعدة البيانات مفتوحة في نفس الوقت. يمكن أن تقوم عمليات متعددة بإجراء SELECT في نفس الوقت. ولكن هناك عملية واحدة فقط يمكنها إجراء تغييرات على قاعدة البيانات في أي وقت من الأوقات.

    يستخدم SQLite أقفال القارئ / الكاتب للتحكم في الوصول إلى قاعدة البيانات. (تحت Win95 / 98 / ME الذي يفتقر إلى دعم أقفال القارئ / الكاتب ، يتم استخدام محاكاة احتمالية بدلاً من ذلك.) ولكن كن حذرًا: قد لا تعمل آلية القفل هذه بشكل صحيح إذا تم الاحتفاظ بملف قاعدة البيانات على نظام ملفات NFS. هذا لأن تأمين ملف fcntl () معطل في العديد من تطبيقات NFS. يجب تجنب وضع ملفات قاعدة بيانات SQLite على NFS إذا حاولت عمليات متعددة الوصول إلى الملف في نفس الوقت. في نظام Windows ، تشير وثائق Microsoft إلى أن القفل قد لا يعمل ضمن أنظمة ملفات FAT إذا لم تكن تقوم بتشغيل البرنامج الخفي Share.exe. يخبرني الأشخاص الذين لديهم الكثير من الخبرة مع Windows أن تأمين الملفات لملفات الشبكة هو عربات التي تجرها الدواب ولا يمكن الاعتماد عليها. إذا كان ما يقولونه صحيحًا ، فقد تتسبب مشاركة قاعدة بيانات SQLite بين جهازي Windows أو أكثر في حدوث مشكلات غير متوقعة.

    نحن لا ندرك أي شيء آخر مغروس محرك قاعدة بيانات SQL يدعم قدر التزامن مثل SQLite. يسمح SQLite للعمليات المتعددة بفتح ملف قاعدة البيانات في وقت واحد ، ولعمليات متعددة لقراءة قاعدة البيانات في وقت واحد. عندما تريد أي عملية الكتابة ، يجب أن تقفل ملف قاعدة البيانات بالكامل طوال مدة تحديثها. لكن هذا عادة ما يستغرق بضعة أجزاء من الألف من الثانية. تنتظر العمليات الأخرى الكاتب حتى ينتهي ثم يواصل عمله. عادةً ما تسمح محركات قاعدة بيانات SQL المضمنة الأخرى لعملية واحدة فقط بالاتصال بقاعدة البيانات في وقت واحد.

    ومع ذلك ، فإن محركات قاعدة بيانات العميل / الخادم (مثل PostgreSQL أو MySQL أو Oracle) تدعم عادةً مستوى أعلى من التزامن وتسمح لعمليات متعددة بالكتابة إلى نفس قاعدة البيانات في نفس الوقت. هذا ممكن في قاعدة بيانات العميل / الخادم لأنه توجد دائمًا عملية خادم واحدة يتم التحكم فيها جيدًا لتنسيق الوصول. إذا كان التطبيق الخاص بك يحتاج إلى الكثير من التزامن ، فعليك التفكير في استخدام قاعدة بيانات العميل / الخادم. لكن التجربة تشير إلى أن معظم التطبيقات تحتاج إلى التزامن أقل بكثير مما يتخيله مصمموها.

    عندما يحاول SQLite الوصول إلى ملف مؤمن بواسطة عملية أخرى ، يكون السلوك الافتراضي هو إرجاع SQLITE_BUSY. يمكنك ضبط هذا السلوك من كود C باستخدام دالات API sqlite3_busy_handler () أو sqlite3_busy_timeout ().

    (6) هل سكليتي المواضيع آمنة؟

    الخيوط شريرة. تجنبهم.

    سكليتي هو موضوع آمن. نقدم هذا التنازل لأن العديد من المستخدمين يختارون تجاهل النصيحة الواردة في الفقرة السابقة. ولكن لكي تكون SQLite آمنة ، يجب أن يتم تجميعها باستخدام ماكرو معالج SQLITE_THREADSAFE المحدد إلى 1. يتم تجميع كل من الثنائيات المترجمة مسبقًا لنظامي التشغيل Windows و Linux في التوزيع بهذه الطريقة. إذا لم تكن متأكدًا مما إذا كانت مكتبة SQLite التي تقوم بالارتباط بها قد تم تجميعها لتكون خيطًا آمنًا ، فيمكنك استدعاء واجهة sqlite3_threadsafe () لمعرفة ذلك.

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

    ضمن Unix ، يجب ألا تحمل قاعدة بيانات SQLite مفتوحة عبر استدعاء نظام fork () في العملية التابعة.

    (7) كيف أقوم بإدراج جميع الجداول / المؤشرات الموجودة في قاعدة بيانات SQLite

    إذا كنت تقوم بتشغيل سكلايت 3 برنامج الوصول إلى سطر الأوامر الذي يمكنك كتابته ".الجداول"للحصول على قائمة بجميع الجداول. أو يمكنك كتابة".مخطط"لمشاهدة مخطط قاعدة البيانات الكامل بما في ذلك جميع الجداول والفهارس. يمكن اتباع أي من هذين الأمرين بنمط LIKE الذي سيقيد الجداول المعروضة.

    من داخل برنامج C / C ++ (أو برنامج نصي يستخدم روابط Tcl / Ruby / Perl / Python) ، يمكنك الوصول إلى أسماء الجداول والفهرس عن طريق إجراء SELECT في جدول خاص باسم "SQLITE_SCHEMAتحتوي كل قاعدة بيانات SQLite على جدول SQLITE_SCHEMA يحدد مخطط قاعدة البيانات. يبدو جدول SQLITE_SCHEMA كما يلي:

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

    بالنسبة للمؤشرات ، اكتب يساوي 'فهرس', اسم هو اسم الفهرس و tbl_name هو اسم الجدول الذي ينتمي إليه الفهرس. لكل من الجداول والمؤشرات ، فإن sql الحقل هو نص عبارة CREATE TABLE أو CREATE INDEX الأصلية التي أنشأت الجدول أو الفهرس. بالنسبة للفهارس التي تم إنشاؤها تلقائيًا (المستخدمة لتنفيذ قيود المفتاح الأساسي أو قيود فريدة) ، فإن sql الحقل فارغ.

    لا يمكن تعديل جدول SQLITE_SCHEMA باستخدام UPDATE أو INSERT أو DELETE (إلا في ظل ظروف استثنائية). يتم تحديث جدول SQLITE_SCHEMA تلقائيًا بواسطة أوامر مثل CREATE TABLE و CREATE INDEX و DROP TABLE و DROP INDEX.

    لا تظهر الجداول المؤقتة في جدول SQLITE_SCHEMA. تحدث الجداول المؤقتة والفهارس والمشغلات الخاصة بها في جدول خاص آخر يسمى SQLITE_TEMP_SCHEMA. يعمل SQLITE_TEMP_SCHEMA تمامًا مثل SQLITE_SCHEMA فيما عدا أنه مرئي فقط للتطبيق الذي أنشأ الجداول المؤقتة. للحصول على قائمة بجميع الجداول ، الدائمة والمؤقتة ، يمكن للمرء استخدام أمر مشابه لما يلي:

    (8) هل هناك حدود حجم معروفة لقواعد بيانات SQLite؟

    راجع limits.html للحصول على مناقشة كاملة حول حدود SQLite.

    (9) ما هو الحد الأقصى لحجم VARCHAR في SQLite؟

    لا يفرض SQLite طول VARCHAR. يمكنك إعلان VARCHAR (10) وسيسعد SQLite بتخزين سلسلة من 500 مليون حرف هناك. وسيحافظ على جميع الأحرف البالغ عددها 500 مليون شخصية سليمة. لا يتم اقتطاع المحتوى الخاص بك. يفهم SQLite نوع عمود "VARCHAR (ن) "ليكون هو نفسه" TEXT "، بغض النظر عن قيمة ن.

    (10) هل يدعم SQLite نوع BLOB؟

    يسمح لك SQLite بتخزين بيانات BLOB في أي عمود ، حتى الأعمدة المعلنة أنها تحتوي على نوع آخر. يمكن استخدام BLOBs حتى كمفاتيح أولية.

    (11) كيف يمكنني إضافة أو حذف أعمدة من جدول موجود في SQLite.

    يحتوي SQLite على دعم ALTER TABLE محدود يمكنك استخدامه لإضافة عمود إلى نهاية الجدول أو لتغيير اسم الجدول. إذا كنت تريد إجراء تغييرات أكثر تعقيدًا في هيكل الجدول ، فسيتعين عليك إعادة إنشاء الجدول. يمكنك حفظ البيانات الموجودة في جدول مؤقت ، وإسقاط الجدول القديم ، وإنشاء جدول جديد ، ثم نسخ البيانات مرة أخرى من الجدول المؤقت.

    على سبيل المثال ، افترض أن لديك جدولًا يسمى "t1" بأسماء الأعمدة "أ" و "ب" و "ج" وأنك تريد حذف العمود "ج" من هذا الجدول. توضح الخطوات التالية كيف يمكن القيام بذلك:

    (12) لقد حذفت الكثير من البيانات لكن ملف قاعدة البيانات لم يقل حجمه. هذا الخلل؟

    لا. عند حذف معلومات من قاعدة بيانات SQLite ، تتم إضافة مساحة القرص غير المستخدمة إلى "قائمة حرة" داخلية ويتم إعادة استخدامها في المرة التالية التي تقوم فيها بإدراج البيانات. لا تضيع مساحة القرص. لكن لم يتم إرجاعها إلى نظام التشغيل.

    If you delete a lot of data and want to shrink the database file, run the VACUUM command. VACUUM will reconstruct the database from scratch. This will leave the database with an empty free-list and a file that is minimal in size. Note, however, that the VACUUM can take some time to run and it can use up to twice as much temporary disk space as the original file while it is running.

    An alternative to using the VACUUM command is auto-vacuum mode, enabled using the auto_vacuum pragma.

    (13) Can I use SQLite in my commercial product without paying royalties?

    نعم فعلا. SQLite is in the public domain. No claim of ownership is made to any part of the code. You can do anything you want with it.

    (14) How do I use a string literal that contains an embedded single-quote (') character?

    The SQL standard specifies that single-quotes in strings are escaped by putting two single quotes in a row. SQL works like the Pascal programming language in this regard. Example:

    (15) What is an SQLITE_SCHEMA error, and why am I getting one?

    An SQLITE_SCHEMA error is returned when a prepared SQL statement is no longer valid and cannot be executed. When this occurs, the statement must be recompiled from SQL using the sqlite3_prepare() API. An SQLITE_SCHEMA error can only occur when using the sqlite3_prepare(), and sqlite3_step() interfaces to run SQL. You will never receive an SQLITE_SCHEMA error from sqlite3_exec(). Nor will you receive an error if you prepare statements using sqlite3_prepare_v2() instead of sqlite3_prepare().

    The sqlite3_prepare_v2() interface creates a prepared statement that will automatically recompile itself if the schema changes. The easiest way to deal with SQLITE_SCHEMA errors is to always use sqlite3_prepare_v2() instead of sqlite3_prepare().

    (17) I get some compiler warnings when I compile SQLite. Isn't this a problem? Doesn't it indicate poor code quality?

    Quality assurance in SQLite is done using full-coverage testing, not by compiler warnings or other static code analysis tools. In other words, we verify that SQLite actually gets the correct answer, not that it merely satisfies stylistic constraints. Most of the SQLite code base is devoted purely to testing. The SQLite test suite runs tens of thousands of separate test cases and many of those test cases are parameterized so that hundreds of millions of tests involving billions of SQL statements are run and evaluated for correctness prior to every release. The developers use code coverage tools to verify that all paths through the code are tested. Whenever a bug is found in SQLite, new test cases are written to exhibit the bug so that the bug cannot recur undetected in the future.

    During testing, the SQLite library is compiled with special instrumentation that allows the test scripts to simulate a wide variety of failures in order to verify that SQLite recovers correctly. Memory allocation is carefully tracked and no memory leaks occur, even following memory allocation failures. A custom VFS layer is used to simulate operating system crashes and power failures in order to ensure that transactions are atomic across these events. A mechanism for deliberately injecting I/O errors shows that SQLite is resilient to such malfunctions. (As an experiment, try inducing these kinds of errors on other SQL database engines and see what happens!)

    We also run SQLite using Valgrind on Linux and verify that it detects no problems.

    Some people say that we should eliminate all warnings because benign warnings mask real warnings that might arise in future changes. This is true enough. But in reply, the developers observe that all warnings have already been fixed in the builds used for SQLite development (various versions of GCC, MSVC, and clang). Compiler warnings usually only arise from compilers or compile-time options that the SQLite developers do not use themselves.

    (18) Case-insensitive matching of Unicode characters does not work.

    The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters. The reason for this is that doing full Unicode case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library. The SQLite developers reason that any application that needs full Unicode case support probably already has the necessary tables and functions and so SQLite should not take up space to duplicate this ability.

    Instead of providing full Unicode case support by default, SQLite provides the ability to link against external Unicode comparison and conversion routines. The application can overload the built-in NOCASE collating sequence (using sqlite3_create_collation()) and the built-in like(), upper(), and lower() functions (using sqlite3_create_function()). The SQLite source code includes an "ICU" extension that does these overloads. Or, developers can write their own overloads based on their own Unicode-aware comparison routines already contained within their project.

    (19) INSERT is really slow - I can only do few dozen INSERTs per second

    Actually, SQLite will easily do 50,000 or more INSERT statements per second on an average desktop computer. But it will only do a few dozen transactions per second. Transaction speed is limited by the rotational speed of your disk drive. A transaction normally requires two complete rotations of the disk platter, which on a 7200RPM disk drive limits you to about 60 transactions per second.

    Transaction speed is limited by disk drive speed because (by default) SQLite actually waits until the data really is safely stored on the disk surface before the transaction is complete. That way, if you suddenly lose power or if your OS crashes, your data is still safe. For details, read about atomic commit in SQLite..

    By default, each INSERT statement is its own transaction. But if you surround multiple INSERT statements with BEGIN. COMMIT then all the inserts are grouped into a single transaction. The time needed to commit the transaction is amortized over all the enclosed insert statements and so the time per insert statement is greatly reduced.

    Another option is to run PRAGMA synchronous=OFF. This command will cause SQLite to not wait on data to reach the disk surface, which will make write operations appear to be much faster. But if you lose power in the middle of a transaction, your database file might go corrupt.

    (20) I accidentally deleted some important information from my SQLite database. How can I recover it?

    If you have a backup copy of your database file, recover the information from your backup.

    If you do not have a backup, recovery is very difficult. You might be able to find partial string data in a binary dump of the raw database file. Recovering numeric data might also be possible given special tools, though to our knowledge no such tools exist. SQLite is sometimes compiled with the SQLITE_SECURE_DELETE option which overwrites all deleted content with zeros. If that is the case then recovery is clearly impossible. Recovery is also impossible if you have run VACUUM since the data was deleted. If SQLITE_SECURE_DELETE is not used and VACUUM has not been run, then some of the deleted content might still be in the database file, in areas marked for reuse. But, again, there exist no procedures or tools that we know of to help you recover that data.

    (21) What is an SQLITE_CORRUPT error? What does it mean for the database to be "malformed"? Why am I getting this error?

    An SQLITE_CORRUPT error is returned when SQLite detects an error in the structure, format, or other control elements of the database file.

    SQLite does not corrupt database files without external help. If your application crashes in the middle of an update, your data is safe. The database is safe even if your OS crashes or takes a power loss. The crash-resistance of SQLite has been extensively studied and tested and is attested by years of real-world experience by billions of users.

    That said, there are a number of things that external programs or bugs in your hardware or OS can do to corrupt a database file. See How To Corrupt An SQLite Database File for further information.

    You can use PRAGMA integrity_check to do a thorough but time intensive test of the database integrity.

    You can use PRAGMA quick_check to do a faster but less thorough test of the database integrity.

    Depending how badly your database is corrupted, you may be able to recover some of the data by using the CLI to dump the schema and contents to a file and then recreate. Unfortunately, once humpty-dumpty falls off the wall, it is generally not possible to put him back together again.

    (22) Does SQLite support foreign keys?

    As of version 3.6.19 (2009-10-14), SQLite supports foreign key constraints. But enforcement of foreign key constraints is turned off by default (for backwards compatibility). To enable foreign key constraint enforcement, run PRAGMA foreign_keys=ON or compile with -DSQLITE_DEFAULT_FOREIGN_KEYS=1.

    (23) I get a compiler error if I use the SQLITE_OMIT_. compile-time options when building SQLite.

    The SQLITE_OMIT_. compile-time options only work when building from canonical source files. They do ليس work when you build from the SQLite amalgamation or from the pre-processed source files.

    It is possible to build a special amalgamation that will work with a predetermined set of SQLITE_OMIT_. والخيارات. Instructions for doing so can be found with the SQLITE_OMIT_. documentation.

    (24) My WHERE clause expression column1="column1" does not work. It causes every row of the table to be returned, not just the rows where column1 has the value "column1".

    Use single-quotes, not double-quotes, around string literals in SQL. This is what the SQL standard requires. Your WHERE clause expression should read: column1='column1'

    SQL uses double-quotes around identifiers (column or table names) that contains special characters or which are keywords. So double-quotes are a way of escaping identifier names. Hence, when you say column1="column1" that is equivalent to column1=column1 which is obviously always true.

    (25) How are the syntax diagrams (a.k.a. "railroad" diagrams) for SQLite generated?

    Each diagram is hand-written using the Pikchr diagramming language. These hand-written specifications are converted into SVG and inserted inline in the HTML files as part of the documentation build process.

    Many historical versions of the SQLite documentation used a different process for generating the syntax diagrams. The historical process was based on Tcl/Tk and is described at http://wiki.tcl-lang.org/21708. The newer Pikchr-based syntax diagrams first landed on trunk on 2020-09-26.

    (26) The SQL standard requires that a UNIQUE constraint be enforced even if one or more of the columns in the constraint are NULL, but SQLite does not do this. Isn't that a bug?

    1. A unique constraint is satisfied if and only if no two rows in a table have the same values and have non-null values in the unique columns.
    2. A unique constraint is satisfied if and only if no two rows in a table have the same values in the subset of unique columns that are not null.

    (27) What is the Export Control Classification Number (ECCN) for SQLite?

    After careful review of the Commerce Control List (CCL), we are convinced that the core public-domain SQLite source code is not described by any ECCN, hence the ECCN should be reported as EAR99.

    The above is true for the core public-domain SQLite. If you extend SQLite by adding new code, or if you statically link SQLite with your application, that might change the ECCN in your particular case.

    (28) My query does not return the column name that I expect. هذا الخلل؟


    How Can I Modify the TNSNAMES.ORA File?

    You can modify the file in a simple text editor. You can change an existing entry or create a new one.

    To add an entry into the file, you can either copy the format from above, or copy and paste an existing entry from the file.

    Then, make changes to it as needed.

    Change the net_service_name, or the name you want to give to the connection. Change the host to the server name or IP address you want to connect to. Finally, change the service_name to the name of the database you want to connect to.

    Save the file, and your changes will be saved.


    4.3 Installing Oracle Database Mobile Server

    Oracle Database Mobile Server consists of two main components: the Oracle Database Mobile Server and Mobile Development Kit. Each is installed separately from the Oracle Database Mobile Server installer package. The following sections describe all your installation options:

    4.3.1 GUI Install of the Mobile Server and MDK Components

    Once the Oracle Universal Installer is initiated, perform the following steps to install Oracle Database Mobile Server:

    On the "Welcome" screen, click "Next".

    On the "Installation Types" screen, choose the type of installation to execute. Your options are as follows:

    Each of these Install options is discussed in the following sections:

    4.3.1.1 Installation of the Mobile Server

    Install the Oracle Database Mobile Server from the Installation Types screen, as follows:

    Choose "Mobile Server" and click "Next" (see, Figure 4-1). On Solaris, AIX and HP-UX platforms, only the "Mobile Server" installation type is available, so the "Select Installation Type" screen is not displayed.

    Figure 4-1 Select Mobile Server

    On the "Specify Home" screen, as seen in Figure 4-2, enter the name for your mobile server installation and path where you want to install Oracle Database Mobile Server. Both fields cannot include any spaces. The path you specified is known as Oracle Home.

    Figure 4-2 Specify Home Details

    Choose an empty directory to install Mobile Server. If the installation location you specified is not empty, you will get the warning as shown in Figure 4-3, you can ignore this warning.

    Click "Yes" to install the mobile server repository. Click "Yes" to launch Repository Wizard to install and configure mobile server repository during the installation process. Cick "No" to postpone the installing and configuring of mobile server repository to after the installation process. Click "Next".

    Figure 4-4 Mobile Server Repository Configuration

    Click "Yes" or "No" to indicate if you want the demo applications installed on the server. Click "Next".

    Figure 4-5 Mobile Server Demo Application Configuration

    Select the installation directory of your application server (on the "Specify Application Server Home" screen).

    If you choose WebLogic as application server, specify WL_HOME as Application Server Home, where WL_HOME is the top-level installation directory for WebLogic Server.

    If you choose Oracle GlassFish server or GlassFish server Open Source Edition as application server, specify as-install as Application Server Home, where as-install is the base installation directory for GlassFish Server.

    If you choose TomEE as application server, specify CATALINA_HOME as Application Server Home, where CATALINA_HOME is the installation directory of TomEE Server.

    Figure 4-6 Specify Application Server Home

    Select a JDK installed on your machine (on the "Specify JDK Home" screen). For more information, refer to Section 3.3.2, "JDK Platform Support". If your application server is WebLogic server, choose the same JDK you use for the WebLogic server. The JDK should be the version as described in Table 3-1, otherwise, Mobile server will use the JDK for your WebLogic server, and not the one you specify in this screen.

    Figure 4-7 Specify JDK Home

    On the "Summary" page, click "Install" to start the installation of mobile server which is installed in your Oracle Home.

    If you previously clicked Yes to install the mobile server repository, then the Repository Wizard is now launched to create and populate the repository with the Mobile Server schema.

    Figure 4-8 Installation of Mobile Server

    Provide the URL for the back-end Oracle database for the mobile server repository, as follows:

    If you are connecting to a single Oracle database, provide the host name, port and SID or service name. This is shown in Figure 4-9.

    Figure 4-9 Provide Repository Database Information

    If you are connecting to a single Oracle 12c Pluggable database (PDB), provide the host name, port number and service name. This is shown in Figure 4-10.

    Figure 4-10 Provide Repository Database information with Oracle Database 12c

    If you are connecting to an Oracle RAC database, select the "Enter Custom JDBC URL" checkbox and enter the JDBC URL for this database. For an example of using Oracle Database Express Edition, see Figure 4-11.

    An Oracle RAC database URL takes the following format:

    Figure 4-11 Enter JDBC URL for Back-End Database in Repository Wizard

    The mobile server installs its meta-data in the back-end database. If you are not sure of the values to enter for the URL, then you can query the data dictionary to obtain these values.

    For Oracle 10g and 11g Database, connect as SYSTEM user and run the following queries to retrieve the SID:

    For Oracle 12c, connect as the administrator user of your Pluggable database and run the following queries to retrieve the service name:

    If you need to retrieve the port number, check the listener.ora file on the machine where the Oracle Database is installed.

    The Database Administrator account:

    for Oracle database 10g or 11g, it is a master account to create the mobile server repository schema/user

    for Oracle database 12c, it is a master account of your pluggable database to create the mobile server repository schema/user in that pluggable database

    The Mobile Server Repository account: Used to access all the database objects used by the mobile server.

    The Mobile Server Administrator account: Used to log into the Mobile Manager.

    The Repository Wizard asks for a user name and password for the Database Administrator account, which will be used to connect to the back-end database, create the schema and assign database privileges for the mobile server.

    Figure 4-12 Specify Username/Password

    Before you provide the user name, this user has to have the following privileges to create the mobile server repository in the back-end database:

    CREATE TABLESPACE, CREATE USER

    The following privileges are required with the Admin option:

    ALTER ANY TABLE, ALTER SESSION, ALTER SYSTEM, ANALYZE ANY, CREATE SESSION, CREATE ANY SEQUENCE, CREATE ANY VIEW, CREATE ANY TRIGGER, CREATE ANY INDEX, CREATE ANY TABLE, CREATE ANY SYNONYM, CREATE ANY PROCEDURE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE VIEW, CREATE INDEXTYPE, DELETE ANY TABLE, DROP ANY SEQUENCE, DROP ANY PROCEDURE, DROP ANY VIEW, DROP ANY SYNONYM, DROP ANY TRIGGER, DROP ANY INDEX, DROP ANY TABLE, INSERT ANY TABLE, SELECT ANY TABLE, SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE, UPDATE ANY TABLE

    You can set the mobile server privileges independently through an API. See Section 3.7, "Set DBA or Operational Privileges for the Mobile Server" in the Oracle Database Mobile Server Developer's Guide .

    If this is a new repository, the following message is displayed:

    Otherwise, the following message is displayed (shown in Figure 4-13):

    Select the schema you wish to upgrade or enable the "Create New Repository" check box.

    Figure 4-13 Create a New Repository or Upgrade an Existing Repository

    Enter the user name and password for the Mobile Server Repository account. The default name is MOBILEADMIN . This schema contains all database objects used by the mobile server. When the mobile server accesses the repository, it uses the Mobile Server Repository user name/password. Also, check whether you want to install sample applications or not. Click "Next".

    You should install the samples only on a development system you should NEVER install the samples on a production mobile server. Doing so creates a security risk on your production environment.

    Figure 4-14 Enter Password for Mobile Server Repository

    Enter the user name and password for the Mobile Server Repository account that you will use to log into the Mobile Manager.

    Figure 4-15 Mobile Server Administrator

    Enter the Schema Name and Password for the schema where the demo applications are installed. When the user accesses the user data in the Mobile Server repository, the Mobile Server authenticates the schema user name and password before access is provided to the user data. Enter the Password for the sample users.

    If you choose to install the samples, then the following mobile user accounts will be created: S11U1, JOHN, JANE, JACK, and JUNE. The password of the users is the one you specified in "Samples Clients Password".

    Figure 4-16 Enter Username and Password for the Demo Schema

    Complete the required information to deploy the Mobile Server on a WebLogic, GlassFish or TomEE Server.

    To deploy the Mobile Server on a WebLogic Server or GlassFish Server in a new domain, follow the instructions below:

    Choose "Yes" for "Create a New Domain for the Mobile Server" option.

    Choose "Yes" if you want to install iOS MDM support for the "Create an HTTPS listener for MDM" option, otherwise choose "No".

    Specify a "Domain Name" for the new domain.

    Select "Administration Server" (in Server Type) if deploying the Mobile Server on a WebLogic Administration Server, or select Managed Server if deploying the Mobile Server on a WebLogic Managed Server. The "Server Type" is only required if you are deploying the Mobile Server on a WebLogic Server.

    Specify a name for the WebLogic Managed Server in "Managed Server Name". The "Managed Server Name" is only required if you are deploying the Mobile Server on a WebLogic Managed Server.

    Specify an "Administrative Server" port for WebLogic. This is required for both - that is, if you are deploying the Mobile Server on a WebLogic Administration Server or on a Managed Server.

    Specify an "Administration Port" for GlassFish.

    Ensure the port you specified is available.

    Specify a "Managed Server" port for WebLogic. The "Server Port" is only required if you are deploying the Mobile Server on a WebLogic Managed Server.

    Specify a "Server Port" for GlassFish.

    Ensure the port you specified is available.

    Specify a port number for WebLogic or GlassFish HTTPS listener in MDM Port if you specify to install iOS MDM support. This listener will be configured with two-way SSL.

    Specify a name for the domain administrator in Admin Username. If you are deploying the Mobile Server on a WebLogic Server, the administrator name is set to weblogic.

    Specify a password for the domain administrator in Admin Password. The WebLogic Server requires that the password is at least eight characters in length and contains at least one non-alphabetic character otherwise, you will receive the following error: " The value for Admin Password is not valid ."

    The WebLogic domain directory is created by default as %APP_SERVER_HOME%..user_projectsdomains\%Domain Name% the GlassFish domain directory is created as %APP_SERVER_HOME%domains\%Domain Name%. فمثلا:

    If WebLogic is installed at C:OracleMiddlewarewlserver_10.3, and you specify "mobileserver" as the new domain name, then C:OracleMiddlewareuser_projectsdomainsmobileserver will be created and domain configuration files are stored at that directory.

    If GlassFish is installed at C:glassfish3glassfish, and you specify "mobileserver" as the new domain name, then C:glassfish3glassfishdomainsmobileserver will be created and domain configuration files are stored at that directory.

    Figure 4-17 Deploy the Mobile Server on a New WebLogic Server Domain

    Figure 4-18 Deploy the Mobile Server on a New GlassFish Server Domain

    To deploy the mobile server on an existing domain under Weblogic and Glassfish, follow the instructions:

    Choose "No" for the "Create a new domain for the Mobile Server" option.

    Choose "Yes" if you want to install iOS MDM support for the "Create an HTTPS listener for MDM" option, otherwise choose "No".

    Specify a name for the existing domain in Domain Name. The "Domain Name" is only required if you are deploying the Mobile Server on a GlassFish Server.

    Specify the "Domain Directory" for the existing domain.

    For WebLogic, set the domain directory to the folder where your domain configuration files are stored for GlassFish, set the domain directory to the parent of the folder where your domain configuration files are stored. فمثلا:

    If you want to deploy mobile server on an existing WebLogic domain called "msDomain", and the domain configuration files are stored at C:OracleMiddlewareuser_projectsdomainsmsDomain, then you should specify "C:OracleMiddlewareuser_projectsdomainsmsDomain" as the Domain Directory.

    If you want to deploy mobile server on an existing GlassFish domain called "msDomain", and the domain configuration files are stored at C:glassfish3glassfishdomainsmsDomain, then you should specify "C:glassfish3glassfishdomains" as the Domain Directory.

    Select "Administration Server" (in Server Type) if you are deploying the Mobile Server on a WebLogic Administration Server, or select Managed Server if you are deploying the Mobile Server on a WebLogic Managed Server. The "Server Type" is only required if deploying the Mobile Server on a WebLogic Server.

    Specify the "Administration Port" (in Admin Port) of the existing GlassFish Server domain. The "Admin Port" is only required if you are deploying the Mobile Server on a GlassFish Server.

    Specify the "Server Port" of the existing GlassFish Server domain. The "Server Port" is only required if you are deploying the Mobile Server on a GlassFish Server.

    Specify a port number for WebLogic or GlassFish HTTPS listener in MDM Port if you specify to install iOS MDM support. This listener will be configured with two-way SSL.

    Specify the administrator name of the existing domain (in Admin Username).

    Specify the password of the domain administrator (in Admin Password).

    Figure 4-19 Deploy the Mobile Server on an Existing WebLogic Server Domain

    Figure 4-20 Deploy the Mobile Server on an Existing GlassFish Server Domain

    To deploy the mobile server under TomEE, follow the instructions:

    Specify the "Server Port" value with HTTP connector port value in default Service named "Catalina" of TomEE server.

    Ensure the port you specified is available.

    You can look for the HTTP connector port value in %CATALINA_HOME%confserver.xml, where CATALINA_HOME is the installation directory of TomEE server.

    For example, the following is part of a content from %CATALINA_HOME%confserver.xml. In this example, the HTTP connector port value in default Service named "Catalina" is 8080.

    <Connector port="8080" protocol="HTTP/1.1"

    A summary screen appears informing you if a repository is installed or not. Click "Next".

    The installation screen appears. Wait until the install is completed. Click "Next".

    Once the repository wizard is finished, click "Finish" to leave the wizard.

    Click "Exit" to complete the installation.

    Review the installation log files repository.log or popolate.log for any errors, which are located in ORACLE_HOME mobileserver . The repository.log file contains all general installation information on a successful installation, and installation errors on a failed installation. Sometimes, if an unexpected exception occurred and was not caught by OUI, a file named popolate.log is created and contains the exception stack.

    When you configure multiple mobile servers against a single repository, this is known as a farm. You must enable the Device Manager, Mobile Manager and mobile client to work properly in a farm environment. For information on configuring all mobile servers to act properly in a farm, see Section 1.2, "Manage Mobile Server Farms" in the Oracle Database Mobile Server Administration and Deployment Guide .

    When installation is completed, launch script runmobileserver on Linux or runmobileserver.bat on Windows to start the Mobile Server.

    4.3.1.2 Installation of Mobile Development Kit

    Install Mobile Development Kit from the Installation Types screen by performing the following:

    Choose the "Mobile Development Kit" and clicking "Next".

    Figure 4-21 Select Mobile Development Kit

    On the "Specify Home Details" screen, enter the name and path where you want to install Mobile Development Kit, which cannot include any spaces.

    Figure 4-22 Specify Home Details

    On the "Summary" screen, click Install. Click "Exit" to return to the installation screen.

    You have now installed the Mobile Development Kit.

    4.3.2 Silent Install of the Mobile Server and MDK Components

    You can execute a command-line tool that runs the installer in silent mode. That is, it installs either the Mobile Development Kit or the mobile server for you without having to use the Installation GUI. The following sections describe how to silently install these components on either the Windows or UNIX platforms:

    4.3.2.1 Silent Install for Mobile Server or Mobile Development Kit on Windows

    The setup.exe command can be executed to run the installer in silent mode for Windows, as follows:

    There are two response files that contain variables that define how the mobile server or the MDK are installed. The following sections describe the response files:

    4.3.2.1.1 Response File for Mobile Server Install

    Variables to be filled for silent install in the response file oracle.mobile.install_type_2.rsp to install Oracle Database Mobile Server are as follows:

    Define the ORACLE_HOME destination directory, as follows:

    Define the name for your Oracle Home, as follows:

    Provide the hostname, port, and user for the back-end database, where the repository is to be installed, as follows:

    Specify true or false if the repository is to be created on the back-end database, as follows:

    Provide the database system user name and password, as follows:

    Provide the mobile server schema name and password, as follows:

    Provide the demo schema user name and password, as follows:

    Provide the demo client password, as follows:

    Provide the mobile server administrator user name and password, as follows:

    Specify true or false to indicate whether the samples are to be installed, as follows:

    Specify application server home, as follows:

    Refer to Step 7 in Section 4.3.1.1, "Installation of the Mobile Server" for how to set application server home.

    Specify the configuration file for mobile server deploy. For more information, refer to Section 4.3.2.3, "Configuration File for Deploying Mobile Serve". Note that b_repository must set to true if you want to deploy mobile server:

    Specify JDK home, as follows:

    4.3.2.1.2 Response File for MDK Install

    Variables in the oracle.mobile.install_type_1.rsp response file to install MDK, are as follows:

    Define the ORACLE_HOME destination directory, as follows:

    Define the name for your Oracle Home, as follows:

    Specify JDK home, as follows:

    4.3.2.2 Silent Install Mobile Server or the Mobile Development Kit on UNIX

    You can install the mobile server and/or the Mobile Development Kit by using the runInstaller command, which is on the top level of the CD or the downloaded ZIP file for the product.

    There are two response files that contain variables that define how the mobile server or the MDK are installed, which are located in the stage/Response folder of the CD or ZIP file.

    4.3.2.2.1 Response File for Mobile Server Install

    The response file for installing the mobile server is oracle.mobile.install_type_2.rsp . The variables that you can modify in this file for defining your install are as follows:

    Define the ORACLE_HOME destination directory, as follows:

    Define the name for your Oracle Home, as follows:

    Provide the hostname, port, and user for the back-end database, where the repository is to be installed, as follows:

    Specify true or false if the repository is to be created on the back-end database, as follows:

    Provide the database SYSTEM user name and password, as follows:

    Provide the mobile server schema name and password, as follows:

    Provide the mobile server demo schema user name and password, as follows:

    Provide the demo client password, as follows:

    Provide the mobile server admin user name and password, as follows:

    Specify true or false to indicate whether the samples are to be installed, as follows:

    Specify application server home, as follows:

    Refer to Step 7 in Section 4.3.1.1, "Installation of the Mobile Server" for how to set application server home.

    Specify the configuration file for mobile server deploy. Refer to Section 4.3.2.3, "Configuration File for Deploying Mobile Serve" for more information.

    b_repository must set to true if you want to deploy mobile server.

    Specify JDK home, as follows:

    4.3.2.2.2 Response File for MDK Install

    The response file for installing the MDK is oracle.mobile.install_type_1.rsp . You can define the variables in this file for your install as follows:

    Define the ORACLE_HOME destination directory, as follows:

    Define the name for your Oracle Home, as follows:

    Specify JDK home, as follows:

    4.3.2.2.3 Execute Silent Install of Mobile Server and MDK on UNIX

    After modifying the response files, if you want to install both the mobile server and the MDK, then execute the runInstaller command twice. Each execution is provided a different response file. The following installs the mobile server, as follows:

    where the options for this command are as follows:

    Table 4-3 The runInstaller Command Options

    Provide the path and name of the response file for the component that you are installing. There are two response files: one for installing the mobile server and one for installing the MDK.

    Always use this option, as it defines that this is a silent installation.

    Stops the GUI from displaying.

    4.3.2.3 Configuration File for Deploying Mobile Serve

    The configuration file specified in s_dep_conf_file variable is used to specify the required information to deploy mobile server. The file must be an INI format file. You can find the sample configuration file at %ORACLE_HOME%MobileServeradminmobileserver_config.ini.

    Table 4-4 Configuration File for Deploying Mobile Server on WebLogic, GlassFish and and TomEE Servers

    String type, required for WebLogic and GlassFish. Name of the WebLogic Server domain or GlassFish Server domain. If deploying the Mobile Server on a WebLogic Server and 'create_new_domain=false', this parameter is not required.

    String type, required for WebLogic and GlassFish. Domain directory. Refer to Step 16 in Section 4.3.1.1, "Installation of the Mobile Server" for how to set the domain directory.

    String type, required for WebLogic and GlassFish. Name of the domain administrator.Note: Use 'weblogic' as the administrator user name if you are creating a new domain for WebLogic Server.

    String type, required for WebLogic and GlassFish. Password of the domain administrator, please change the password after deployment.

    Note: WebLogic Server requires that the password is at least eight characters in length and contains at least one non-alphabetic character.

    Integer type, required for GlassFish, TomEE and WebLogic Managed Server.

    Set it to the server port for GlassFish and TomEE.

    If deploying the Mobile Server on a WebLogic Managed Server and 'create_new_domain=true', this parameter is required, set it to the Managed Server port

    Integer type, required for WebLogic and GlassFish.

    Set it to domain administration port for GlassFish.

    If deploying the Mobile Server on either a WebLogic Administration Server or a Managed Server, and 'create_new_domain=true', this parameter is required. Set it to Administration Server port for WebLogic.

    Boolean type, optional. Set to 'true' to create a new domain, or set to 'false' to use an existing domain, default value is 'true'.

    Boolean type, optional. If set to 'true', redeploy the Mobile Server even if it has already been deployed or already exists, default value is 'false'.

    String type, required for WebLogic if deploying the Mobile Server on a WebLogic Managed Server. Managed Server name.

    String type, required for WebLogic.

    Set to 'A' if deploying the Mobile Server on a WebLogic Administration Server.

    Set to 'M' if deploying the Mobile Server on a WebLogic Managed Server.

    Table 4-5 Sample Configuration File

    WebLogic Server configuration

    Specify the configuration parameters in [WLS] section[WLS]domain_name=mobileserver_wlsdomain_dir=C:OracleMiddlewareuser_projectsdomainsmobileserver_wlsadmin_user=weblogicadmin_password=welcome1admin_port=7001server_port=7009managed_server_name=ManagedServertarget_server_type=Mcreate_new_domain=trueforce_deploy=true

    GlassFish Server configuration

    Specify the configuration parameters in [GFS] section[GFS]domain_name=mobileserver_gfsdomain_dir=C:glassfish3glassfishdomainsadmin_user=adminadmin_password=welcome1server_port=8090admin_port=8089create_new_domain=trueforce_deploy=true

    TomEE Server configuration

    Specify the configuration parameters in [TOMEE] section[TOMEE]server_port=8080force_deploy=true

    4.3.3 Providing High Availability with a Farm of Multiple Mobile Servers

    In some cases, you may want to have multiple mobile servers using the same mobile server repository on an Oracle database or an Oracle RAC database. For example, as Figure 4-23 shows, if you wanted to load balance your mobile clients across multiple mobile servers, you could add a load balancer&mdashsuch as Oracle Web Cache&mdashbefore the shared mobile servers, and then your clients would be balanced across these mobile servers, of which each accesses the same data in the shared repository.

    This is the type of configuration that entails an Oracle Database Mobile Server Farm.

    Figure 4-23 Multiple Mobile Servers Sharing a Repository

    You can install multiple mobile servers, each on its own host, that use the same mobile server repository, as follows:

    Install the load balancer. Refer to Section 9.6 "Using a Load Balancer" in Administration and Deployment Guide for instructions about how to install a load balancer. Oracle Database Mobile Server certifies Oracle Web Cache as a load balancer. You can use any load balancer as long as the JSESSIONID is used.

    Install the first mobile server and the mobile server repository following the instructions in Section 4.3.1.1, "Installation of the Mobile Server".

    Install additional mobile servers. For each subsequent mobile server, follow the instructions in Section 4.3.1.1, "Installation of the Mobile Server", supplying the same JDBC URL for the back-end Oracle database where the mobile server repository exists. Select Yes for creating the repository, which registers the shared mobile server with the repository.

    Configure mobile servers with the load balancer URL. Because the mobile client accesses any of these mobile servers through a load balancer, you need to configure each mobile server with the load balancer URL. This ensures that when the setup.exe is downloaded by the client, the executable automatically includes the load balancer URL, instead of the mobile server URL.

    This process is similar to how the mobile server is configured to use with a reverse proxy. Configure both the reverse_proxy and DM_AUTO_SYNC_CACHE parameters in the mobile.ora configuration file, as follows:

    In a configuration with multiple mobile servers and a load balancer, you must ensure that the load balancer is configured to route HTTP requests within the same HTTP session to the same mobile server. To do this, configure the load balancer to honor the JSESSIONID cookie. When a user logs into a mobile server, an HTTP session is created for that user. An HTTP cookie with the name JSESSIONID is sent back to the mobile client. Subsequent HTTP requests from the mobile client will contain the HTTP cookie, which allows the mobile server to identify the session for that user. Refer to Section 9.6 "Using a Load Balancer" in Administration and Deployment Guide for more instructions about how to configure the load balancer to use with a mobile server farm.

    If the load balancer uses a different algorithm to distribute HTTP requests, such as round-robin or server-load based, then the mobile server will not work correctly.

    Perform additional configuration for device management and data synchronization for all mobile servers in the farm as described in Section 1.2, "Manage Mobile Server Farms" in the Oracle Database Mobile Server Administration and Deployment Guide .

    4.3.4 Install Oracle Database Mobile Server on Linux

    The following sections provide considerations when installing Oracle Database Mobile Server on a Linux platform:

    4.3.4.1 Patch Required if Using Linux Redhat 3.0

    If you install Oracle Database Mobile Server on Linux Redhat 3.0 and the following error occurs, apply the 3006854 patch and start the installation again.

    Error occurred during initialization of VM Unable to load native library: /tmp/myhost/jre/lib/i386/libjava.so: symbol __libc_wait , version GLIBC_2.0 not defined in file libc.so.6 with link time reference.

    4.3.4.2 Providing Enough Swap Space on the Linux Platform

    If the swap space is not sufficient on your Linux machine, then modify the value for the SWAP_SPACE variable in the install/linux/oraparam.ini file. The default value is set to SWAP_SPACE=1536 . For example, if your machine is not as powerful, decrease the swap space for example, SWAP_SPACE=1024 .

    4.3.5 Mobile Client Install

    The mobile client can use either Berkeley DB, SQLite or JavaDB database. For instructions on how to install the mobile client, see Chapter 2, "Installing the Mobile Client" in the Oracle Database Mobile Server Mobile Client Guide .


    2 Answers 2

    By I/O I mean this line with the redirect and append:

    Spawning a lot of subshells for the pipelines would also really slow down your code, as ceving's answer has shown. If you must set up a pipeline, I suggest you consider the faster, Bash-only alternative: process substitution.

    So I turned to some awk magic one-liner that does both the extract and clean functions at once:

    I don't think I need to explain the grep part. -F sets the field delimeter to " . If NF , the number of fields, is greater than 10, we're parsing the RecordStart tag so we save the values for ConnectionName and ConnectorType . If NF is not greater than 10, we're parsing the Telegram tag so we print the needed columns, including the two previously saved values, and display the last two columns in hex format and the rest as string.

    This will be the single change that will make your program fly in high speed lane. That's pretty much it. No command substitutions, almost no pipelines, not even Bash builtins which are still slow, and most importantly, no while read loop.


    شاهد الفيديو: SQLite Tutorial For Beginners - Make A Database In No Time - 2020