一、数据库创建
注:“<>”括起来的为自定义名称
1、创建组:
mkgroup <GROUP_NAME>
2、创建实例用户
useradd -m -g <GROUP_NAME> -d /home/<INSTANCE_NAME> <INSTANCE_NAME>
#修改密码
passwd <INSTANCE_NAME>
3、创建名数据库用户
useradd -m -g db2admin -d /home/<USER_NAME> <USER_NAME>
#修改密码
passwd <USER_NAME>
4、创建实例
/usr/opt/IBM/db2/V10.5/instance/db2icrt -a server -u <INSTANCE_NAME> <INSTANCE_NAME>
5、切换至实例用户下创建数据库
#切换用户
su – <INSTANCE_NAME>
#启动数据库
db2start
#创建数据库目录
mkdir dbdir
#创建数据库
db2 CREATE DATABASE <DATABASE_NAME> ON /home/<INSTANCE_NAME>/dbdir/ USING CODESET GBK TERRITORY CN
6、连接数据库
db2 terminate
db2 connect to <DATABASE_NAME>
7、建缓冲池(可能会报错:需重启数据库,缓冲池才成生效,命令db2stop force):
db2 CREATE BUFFERPOOL <DBBUFF_NAME> IMMEDIATE SIZE 51200 PAGESIZE 16K
8、建表空间和索引表空间
#建表空间
db2 "CREATE TABLESPACE DBSPACE IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY DATABASE USING (FILE '/home/<INSTANCE_NAME>/dbdir/dbspace' 4096m) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL <DBBUFF_NAME> OVERHEAD 12.67 TRANSFERRATE 0.18 DROPPED TABLE RECOVERY OFF";
#建索引空间
db2 "CREATE TABLESPACE DBIDX IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY DATABASE USING(FILE '/home/<INSTANCE_NAME>/dbdir/dbidx' 1024m) EXTENTSIZE 32 PREFETCHSIZE 32 BUFFERPOOL <DBBUFF_NAME> OVERHEAD 12.67 TRANSFERRATE 0.18 DROPPED TABLE RECOVERY OFF";
1、数据库环境设置
db2set DB2COMM=tcpip
db2set DB2CODEPAGE=1386
db2set DB2AUTOSTART=TRUE
查看端口号:
grep <INSTANCE_NAME> /etc/services
#通过上一句命令找到端口号DB2_<INSTANCE_NAME> ******/tcp
更新配置:
db2 update dbm config using SVCENAME DB2_<INSTANCE_NAME>
重启DB2:
db2stop
db2start
关联db2user数据库用户并授权:
db2 "GRANT DBADM ON DATABASE TO USER <USER_NAME>"
db2 "GRANT CREATETAB ON DATABASE TO USER <USER_NAME>"
db2 "GRANT BINDADD ON DATABASE TO USER <USER_NAME>"
db2 "GRANT CONNECT ON DATABASE TO USER <USER_NAME>"
db2 "GRANT CREATE_NOT_FENCED_ROUTINE ON DATABASE TO USER <USER_NAME>"
db2 "GRANT IMPLICIT_SCHEMA ON DATABASE TO USER <USER_NAME>"
db2 "GRANT LOAD ON DATABASE TO USER <USER_NAME>"
db2 "GRANT CREATE_EXTERNAL_ROUTINE ON DATABASE TO USER <USER_NAME>"
db2 "GRANT QUIESCE_CONNECT ON DATABASE TO USER <USER_NAME>"
二、数据库备份和恢复
1、导出表结构
db2look -d <DB_NAME> -u <USER_NAME> -e -o ./EXPORT.sql
2、导出表数据
db2 "select 'db2 "export to '|| '<FILE_PATTH>' || tabname ||'.ixf of ixf select * from '||'<SCHEMA>.'||tabname|| '"' from syscat.tables where TABSCHEMA='<SCHEMA>'"
将运行结果打印出的命令运行即可导出数据
3、导入表结构
db2 -tvf EXPORT.sql
4、导入数据
db2 "select 'db2 "load from '|| '<FILE_PATTH>' || tabname ||'.ixf of ixf modified by identityoverride replace to '||'<SCHEMA>.'||tabname|| '"' from syscat.tables where TABSCHEMA='<SCHEMA>'"
将运行结果打印出的命令运行即可导入数据
注:数据表暂挂状态解决办法
数据表导入时可能会出现暂挂的状态。
不允许对表 “” 执行操作,原因码为 “1”。. SQLCODE=-668, SQLSTATE=57016,
#查看表是否暂挂
db2 load query TABLE <TABLE_NAME>
db2 set integrity for <TABLE_NAME> immediate checked
参考文章:https://blog.youkuaiyun.com/weixin_38319645/article/details/91406254
若有错误欢迎指出,谢谢!