سؤال
أحاول تفريغ محتويات مخطط معين في خادم 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