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