2009-05-29 21 views
9

Belirli bir şemanın içeriğini bir IBM DB2 UDB sunucusunda bir sql metin dosyasına (mysqldump işlevinin mysqldump işlevi gibi) dökmeye çalışıyorum.DB2'den SQL Dökümü

db2look'a rastladım, ancak yalnızca şemanın yapısını (yalnızca ddl, no dml) döker.

Peki, işimi nasıl yapabilirim?

jrh.

cevap

5

Bunu yapmak için Java'da uygulanan bir SQL İstemcisi olan SQquirreL kullanabilirsiniz. "Nesneleri" nde - İstediğiniz tüm tabloları seçip, bağlam menüsünden "Komut Dosyaları> Veri Komut Dosyası Oluştur" u seçersiniz.

+0

Peki, ben .. oldukça iyi çalıştı bunu Aqua Veri Studio kullanılan teşekkür ederim :) – jrharshath

+1

Nice, bellekte sığmayacak kadar büyük bir veri kümesi hariç, sadece bir seçenek değil. Ancak daha küçük tablolar için kullanılabilir. – egbokul

2

Hedef, veriyi başka bir DB2 veritabanına aktarmaksa,ve ilgili IMPORT veya LOAD komutlarını kullanabilirsiniz.

Aslında,, İHRACAT

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 

İTHALAT

gerçek ekleme komut istiyorsanız

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 
SYSCAT.TABLES

meta verilere dayalı özeti alabilirler o zaman üçüncü taraf bir araçla gitmeniz gerekebilir (I

10

Ne aradığınız db2move komutudur. Belirli bir şema için "sn" anahtarını kullanmalısınız.

db2move [your_db_name] EXPORT -sn [your_schema_name] 

birçok seçenek ve yapmak istediğiniz tam olarak ne bağlı db2move için kullanılabilir anahtarlar vardır: örnek verileri dışa Yani için

.

Eğer db2move tam olarak ihtiyaç duymuyorsa, Data Movement Options available in DB2 tablosunu gözden geçirebilirsiniz.

+0

db2move'nin veri konteyneri formatı olarak PC/IXL kullandığını ve bir SQL dökümü üretmediğini unutmamak gerekir. Soru soranın bir SQL dökümü sorup sormadığından emin değilim, çünkü aşina olduğu ya da bir nedenden dolayı INSERT'lerle gerçek bir SQL dökümüne ihtiyacı var. İkincisi, db2move ona yardımcı olmaz. –

+0

Haklısınız, doktor ... o kadar iyi bir bağlantı olmadığından emin değilsiniz, bu yüzden db2 –

+0

+1 için tüm veri hareket seçeneklerine mükemmel bağlantı! – jrharshath

0

İthalat için, yükü kullanmak için biraz ayar yapmak, satırların reddedilmesini önlemeye yardımcı olur. || tabname/usr/veri/şema/DAN yükü 'SELECT -X"

DB2 || 'IXF N .ixf LOBS identityoverride CFEXT INSERT INTO İLE DEĞİŞTİRİLMİŞ/usr/veri/şema/DAN.' || TABNAME || ';' tüm DDL Yedekleme ile> /tmp/db2cfeimport.sql

0

Db2 Şeması "TABNAME TARAFINDAN TABSCHEMA = 'CFEXT' SİPARİŞ syscat.tables:

Ben komuta altında kullanımı var o Tüm DDL'yi ihraç etmek için çalıştım.

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

dizimi: db2look -d dbname -x -e -z SchemaName -o OutputFile_name

İlgili konular