程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2數據庫的導出與導入(Windows客戶端)

DB2數據庫的導出與導入(Windows客戶端)

編輯:DB2教程


第一步:導出服務器上DB2的表結構(使用命令行,如已編目,可跳過3,4) 1.運行cmd 2.輸入db2cmd 3.創建節點 db2 catalog tcpip node mynode remote 192.168.1.90 server 50000 4.創建遠程數據庫實例 db2 catalog db dbname as mydb  at node mynode 5.連接數據庫  www.2cto.com   db2 CONNECT TO mydb user username using pssword 6.導出表結構 db2look -d dbname -e -a -x -i username -w password -o ddlfile.sql  導出過程截圖如下:  
  導出的文件是D:\out.sql   第二步:在待導入的DB2數據庫中執行DDL,創建表結構 用TOAD等客戶端連接待導入的DB2數據庫,復制D:\out.sql中的所有SQL到TOAD中,執行 (如2個數據庫中的用戶名不同,需手動替換out.sql中的用戶名)   第三步:准備批量導出導入的SQL腳本 語法如下: export to [path(例:D:"TABLE1.ixf)] of ixf select [字段(例: * or col1,col2,col3)] from TABLE1;   我沒找到支持批量導出的客戶端,所以自己寫一個java類,用循環生成導出導入所有表數據的SQL 代碼如下(運行時需引入db2jcc.jar): import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.sql.*;   www.2cto.com   public class ExportDB2 {       /** *//**      * @param args      */     public static void main(String[] args) {           String driver = "com.ibm.db2.jcc.DB2Driver" ;         String url = "jdbc:db2://ip:50000/dbname" ;         String userName = "user1" ;         String passWord = "psw1" ;                 Connection conn = null ;         Statement st = null ;         ResultSet rs = null ;         String sql = null ;         try {             Class. forName(driver).newInstance();             conn = DriverManager. getConnection(url, userName, passWord);             st = conn.createStatement();             sql = new String("SELECT name FROM sysibm.systables where creator = 'user1' order by name");             rs = st.executeQuery(sql);             String table = null ;             String exportCMD = null ;             String importCMD = null ;          // 文件路徑             File   file= new    File( "d:\\exportCMD.txt " );             File   file2 = new File("d:\\importCMD.txt" );             BufferedWriter   out= new    BufferedWriter(                     new    FileWriter(file, true));             BufferedWriter   out2= new    BufferedWriter(                     new    FileWriter(file2, true));             while (rs.next()){  www.2cto.com                     table = rs.getString(1);                   exportCMD = "export to D:\\db2-bak\\ixf\\" + table +".ixf of ixf select * from " +table+ ";";                 out.write(exportCMD);                 out.newLine();                 importCMD = "import from D:\\db2-bak\\ixf\\" + table +".ixf of ixf into " +table+ ";";                 out2.write(importCMD);                 out2.newLine();             }             out.close();             out= null ;             file= null ;             out2.close();             out2= null ;             file2= null ;             conn.close();             System. out .println("Finished!" );         } catch (Exception e){             System. out .println("error:" + e.getMessage() );             System. out .println(e.toString());         }     } }   www.2cto.com   運行後,在D盤生成這兩個文件,一個是導出所有表中數據的SQL,一個是導入所有表中數據的SQL     第四步:批量導出表中數據 用TOAD等客戶端連接服務器上的DB2數據庫,復制D:\exportCMD.txt中的所有SQL到TOAD中,執行 導出的全部ixf文件,存在於D:\bd2-bak\ixf\   第五步:批量導入表中數據 用TOAD等客戶端連接待導入的DB2數據庫,復制D:\importCMD.txt中的所有SQL到TOAD中,執行   大功告成。       摘自 雷明慶的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved