DB2數據導入導出sql
- 使用環境:linux服務器
- 準備語句:
su – db2inst1
db2start
db2 connect to database(數據庫名稱)
此時進入db2環境即可進行語句操作
- 導出表數據:
db2 'export to /home/data/1.del of del select * from dbs.cust'
需要注意的是文件的路徑存在權限問題,如果該路徑的權限,用戶db2inst1不能獲取,則無法執行該sql語句。
del也可以換成ixf
- 導入表數據:
db2 'load from /home/data/cust_pool.del of del insert into ecrm.cust_pool_bak nonrecoverable'
db2 'import from /home/data/cust_ pool.del of del insert into ecrm.cust_ pool_bak '
以上兩個語句都是可以的不過第一個加上了nonrecoverable效率更高
- 分隔符問題:需要在導入語句加入modified by coldel0x1d(並不是所有表都有分隔符的,語句只是舉例)
db2 'load from /home/data/cust_pool.del of del modified by coldel0x1d insert into ecrm.cust _pool_bak nonrecoverable'
- 編碼問題:codepage=1386
db2 'load from /home/data/cust_pool.del of del modified by codepage=1386 coldel0x1d insert into ecrm.cust_busi_pool_bak nonrecoverable'
數據庫備份
- 導出所有表結構,存儲過程(不包含表數據):
db2look -d db_name -e -a -x -o /home/data/test.sql
- 建庫
create database db_name on filesystem_location using codeset utf-8 territory cn
- 刪庫
db2 drop db db_name
- (若數據庫正在使用, 需要先執行以下命令關閉所有連接)
db2 force application all
- 導出表結構
db2look -d DB_NAME -e -a -x -o FILE_TO_EXPORT.sql
- 導入表結構
db2 -tvf FILE_TO_IMPORT.sql
- 導出表數據
db2move DB_NAME export
- 導入表數據
db2move DB_NAME import -u username -p password
- 替換表數據
db2move DB_NAME load -u username -p password
- (load完之後, 某些表可能需要執行以下命令才能正常使用)
set integrity for TABLE_NAME immediate checked