3

db2 db2look/db2move导入和导出

 1 year ago
source link: https://blog.51cto.com/u_13236892/5749227
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

db2 db2look/db2move导入和导出

精选 原创

哭泣的馒头 2022-10-12 10:57:22 博主文章分类:db2随笔 ©著作权

文章标签 sql 数据 表空间 文章分类 Linux 系统/运维 yyds干货盘点 阅读数204

使用db2look提取数据库结构DDL
使用db2move export导出全部数据

使用db2 -tvf test.sql导入表结构
使用db2move import导入全部数据
1)创建备份目录,必须是db2inst1创建
su - db2inst1
mkdir /tmp/backup && cd /tmp/backup
2)首先连接到要导出的数据库上,如本例导出数据库zhangsan :
db2 connect to zhangsan user zhangsan using zhangsan
其中的参数user 后面跟指定用户, using 后面指定用户的密码,不指定时会使用默认用户进行登录;
3)使用 db2look 导出数据库表空间、表结构、索引、视图
db2look -d zhangsan -e -o zhangsan.sql -i zhangsan -w zhangsan
(-e 表结构 ,-l 表空间 ,-o 文件格式)
-d 指定导出的数据库实例名
-z 指定导出数据库的模式名
-l –e 固定参数1l-
-o 指定导出的文件名和文件格式
-i 指定导出的用户名
-w 指定导出的用户密码
命令中的参数 – o 意思是将数据对象的定义导出到指定的文件中;
其中的参数-i 后面跟指定用户, -w 后面指定用户的密码,不指定时会使用默认用户进行登录;
4)使用db2move 命令导出数据库对象的数据
db2move zhangsan export -u zhangsan -p zhangsan
这将会把数据库zhangsan中的全部数据提取到当前目录中。每个表的内容都存储在一个.ixf文件中,每个.ixf文件都有一个与之相对应的.msg文件,
.msg文件是描述从表中导出数据时的信息的。另外还有两个文件,
db2move.lst用来记录.ixf文件、.msg文件与表的一一对应关系,
EXPORT.out记录的是导出数据时的屏幕输出。
5)备份完会有三个特殊的文件
zhangsan.sql: 创建数据对象的脚本;
export.out: 数据库导出日志;
db2move.lst: 包括导出的对象名称和各个对象所属的模式

2、数据处理

1、数据库结构处理
将zhangsan.sql使用vi打开,将开头一行connect to给注释掉,默认是连接备份的那个库
-- connect to
2、查看表结构中使用到的表空间
cat zhangsan.sql|grep IN ##会显示每张表需要的表空间,如果新库没有就得导入之前提前创建
3、表结构外键汇总
将zhangsan.sql脚本中创建外键的语句剪切到另一个脚本中 (create_foreign.sql);
如果导入数据时,在没有导入主表数据之前,导入对应外键表数据时会出现错误,所以需要在成功导入外数据后,在进行外键的创建
4、如果新建表名和备份表名不一致,修改db2move.lst
将文件中的ZHANGSAN集体替换为新库名

3、创建用户

db2的库名和管理用户尽量使用同一个名字
1、创建用户并设置密码
groupadd wangwu
useradd -g wangwu -d /home/wangwu -m wangwu
passwd wangwu
2、创建数据库
db2 create database wangwu
3、创建表空间,此处只创建一个作为演示
db2可能会将业务数据和索引放到不同的表空间,在原库使用db2 list tablespaces和新库进行对比
创建buffer pool
db2 connect to wangwu #此处只能这样子连接创建buffer pool,如果使用wangwu用户都会报错,即使将权限授予wangwu了
db2 create BUFFERPOOL bigbuffer SIZE 4000 PAGESIZE 32K
创建表空间
db2 "create tablespace newtbs04 pagesize 32k managed by system using
('/home/db2inst1/db2inst1/NODE0000/SAMPLE/T0000001/test.TMP') BUFFERPOOL bigbuffer"
newtbs04----代表表空间名
pagesize 32k 32可以指定为8k 16k 32k
bigbuffer---代表buffer pool名
扩展表空间
db2 alter tabblespace newtbs04 extend(all 1024M)
4、授权wangwu用户
db2 grant dbadm on database to user wangwu
1、使用业务用户连接
db2 connect to wangwu user wangwu using wangwu
2、恢复表结构
db2 -tvf zhangsan.sql
3、导入数据
db2move wangwu import -io insert -u wangwu -p wangwu
4、如果有外键sql倒入
db2 -tvf create_foreign.sql
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK