UNIX系统下db2数据库创建、备份与恢复

本文详细介绍如何使用DB2创建数据库实例与用户、配置环境、创建数据库及表空间,并进行数据库备份与恢复的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据库创建

注:“<>”括起来的为自定义名称

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

若有错误欢迎指出,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值