سؤال

أحاول تفريغ محتويات مخطط معين في خادم IBM DB2 UDB واحد في ملف نصي SQL (مثل وظيفة MySqldump في MySQL).

جئت عبر DB2Look، لكنها مقفز فقط هيكل المخطط (فقط DDL، لا DML).

فكيف يمكنني الحصول على شيء القيام به؟

JRH.

هل كانت مفيدة؟

المحلول

يمكنك استخدام Sqquirrel., ، عميل SQL ينفذ في جافا، لإنجاز هذا. في "كائنات" الخاص بها، يمكنك تحديد جميع الجداول المطلوبة وحدد "البرامج النصية> إنشاء نص بيانات" من قائمة السياق.

نصائح أخرى

ما كنت تبحث عن هو DB2MOVE. أمر. للحصول على مخطط معين، يجب عليك استخدام مفتاح "SN".

لذلك على سبيل المثال لتصدير البيانات:

db2move [your_db_name] EXPORT -sn [your_schema_name]

هناك العديد من الخيارات والمفاتيح المتاحة ل DB2MOVE اعتمادا على ما تريد بالضبط.

إذا كان DB2MOVE ليس بالضبط ما تحتاجه، فيمكنك مراجعة جدول خيارات حركة البيانات المتاحة في DB2.

يمكنك استخدام EXPORT, ، وما يتصل بها IMPORT أو LOAD أوامر إذا كان الهدف هو نقل البيانات مرة أخرى إلى قاعدة بيانات DB2 أخرى.

في الواقع، يمكنك إنشاء البيانات القائمة على البيانات الوصفية من SYSCAT.TABLES

يصدر

   SELECT 'EXPORT TO /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS TO /usr/data/SCHEMA/lbos/ MODIFIED BY LOBSINFILE SELECT * FROM SCHEMA.' || TABNAME || ';'
     FROM SYSCAT.TABLES
    WHERE TABSCHEMA = 'SCHEMA'
 ORDER BY TABNAME

يستورد

   SELECT 'IMPORT FROM /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS FROM /usr/data/SCHEMA/lobs/ MODIFIED BY LOBSINFILE INSERT INTO SCHEMA.' || TABNAME || ';'
     FROM SYSCAT.TABLES
    WHERE TABSCHEMA = 'SCHEMA'
 ORDER BY TABNAME

إذا كنت ترغب في إدراج البرامج النصية الموجودة الفعلية، فقد تحتاج إلى الذهاب مع أداة تابعة لجهة خارجية (لا أدرك واحدة مقدمة من DB2، على الرغم من أنني قد أكون مخطئا.)

مخطط DB2 مع جميع النسخ الاحتياطي DDL:

لقد استخدمت أمر أدناه عملت لي لتصدير جميع DDL.

db2look -d CusDb -x -e -z CusSchema -o OutputFile

بناء الجملة : DB2Look -D DBNAM -X -E -Z Schemaname -o Outputfile_name

بالنسبة للاستيراد، يتم ضبط ضبط قليلا لاستخدام الحمل على تجنب تم رفض الصفوف.

DB2 -X "حدد" تحميل من / USR / البيانات / المخطط / "|| TabName ||" .IXF من Lobs IXF من / USR / البيانات / المخطط / المعدل حسب IdentityOverride إدراج في CFEXT. ' || tabname ||'| '؛' من syscat.tables حيث tabschema = طلب "cfext" بواسطة tabname "> /tmp/db2cfeimport.sql

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top