备注:
整理自2016年的学习笔记,时间较久,仅供参考。
主要有以下内容:
包括DB2 V10.1安装、新增表空间、数据迁移、统计信息等步骤。
**一:DB2数据库安装
二:DB2数据库适配NC65
三:DB2数据库连接驱动
四:DB2备份与恢复
五:相关脚本
**
一:DB2数据库安装
express-c是DB2数据库系列的一个免费版本,相比企业版比他少了很多组件,但是db2数据库的主要功能它都具备,做测试可以安装这个版本;
—Windows下DB2数据库卸载可以使用db2unins -f命令
二:DB2数据库适配NC65
对于表空间的管理建议如下:
1. NNC_DATA01 表空间页大小选"16K",使用页大小为"16K"的缓冲池
2.1 运行脚本1.SQL
创建临时表;
脚本见最后。
2.2运行脚本2.SQL
配置数据库参数
2.3运行脚本3.SQL
创建analyze_tb存储过程
3.sql脚本运行结束后会生成收集统计信息的存储过程analyze_tb,可以通过job定时收集统计信息;
Windows系统:
控制面板\所有控制面板项\管理工具\任务计划程序
Linux系统:
写一个runstats.sh脚本,脚本内容如下:
date
然后在db2inst1用户下建立一crontab,引用此脚本
0 0 * * * /data2/db2home/db2inst1/runstats.sh >> /data2/db2home/db2inst1/runstats.log
每天晚上00:00:00开始收集统计信息
三:DB2数据库连接驱动
Yonyou NC 6.5 在访问DB2数据库时,默认推荐使用JCC方式(即DB2 Universal JDBC Driver)访问数据库。这种协议不需要应用服务器安装其他驱动或连接。在产品的安装盘中已经预置了连接DB2的驱动,版本是"10.1"。更新DB2驱动程序时,需要更新"db2jcc.jar"和"db2jcc_license_cu.jar"。数据库驱动存放在"sqllib\java"下,直接将上述文件覆盖到"nchome\lib"下即可(假设NC_HOME为NC65)。下面以Linux 为例,更新驱动方法如下:
#cp home/db2inst1/sqllib/java/db2jcc.jar home/ufsoft/newcentory/nc65/driver/db2_10/db2jcc.jar
四:DB2备份与恢复
4.1 db2 backup/restore备份和恢复
4.1.1 备份
db2 backup/restore备份与恢复只适用于相同操作系统平台的数据库;
命令格式:db2 backup db <数据库名> to <目录名>
注:在备份前需断开所有与数据库的连接,断开连接后再备份,目录名是备份后的文件的存放目录.
例:
db2 backup database sample to d:\backup
如果数据库正在被使用,可能回报错“SQL1035N
The database is currently in use. SQLSTATE=57019”需要停掉服务,用命令:
db2 force application all
4.1.2恢复
命令格式:db2 restore db <数据库名> from <目录名>
例:
db2 restore db sample from d:\backup
—删除原有的sample数据库(模拟数据库恢复)
恢复数据库sample
db2 restore db sample from D:\DB2\backup
查看数据库
4.2 db2move备份和恢复
4.2.1 备份
-
首先连接到要导出的数据库上,如本例导出数据库nctest:
db2 connect to nctest user db2inst1 using db2inst1
其中的参数user后面跟指定用户,using后面指定用户的密码,不指定时会使用默认用户进行登录;
-
使用db2look 导出数据对象的定义语句
db2look –d nctest –e –o ncdb.sql –i db2inst1 –w db2inst1
命令中的参数 –o 意思是将数据对象的定义导出到指定的文件中;
其中的参数-i后面跟指定用户,-w后面指定用户的密码,不指定时会使用默认用户进行登录;
3)使用db2move 命令导出数据库对象的数据
db2move nctest export –u db2inst1 –p db2inst1
连接数据库sample
通过db2look导出sample数据库创建对象的脚本sample.sql
db2look -d sample -e -o sample.sql -i 用户名 -w 用户密码
通过db2look导出sample数据库创建对象的脚本sample.sql
db2look -d sample -e -o sample.sql -i 用户名 -w 用户密码
db2move sample export -u 用户名 -p 用户密码
sample.sql:创建数据对象的脚本;
4.2.2 恢复
将SAMPLE数据库数据导入到test数据库中
db2 create database test
通过db2move恢复NC数据库时,可以根据建库脚本1.sql,先进行创建数据库和表空间等操作;
db2 connect to test user 用户名 using 用户密码
a.sql---create_table.sql
修改sample.sql脚本,将脚本中数据库名称,表空间名称更改为实际的名称;
将sample.sql脚本中创建外键的语句剪切到另一个脚本中(create_foreign.sql);
如果导入数据时,在没有导入主表数据之前,导入对应外键表数据时会出现错误,所以需要在成功导入外数据后,在进行外键的创建;
db2 -tvf a.sql
…
db2 test import -io insert -u 用户名 -p 用户密码
db2 -tvf b.sql
…
五:脚本
1.sql
###chenjuchao 20240423###
欢迎关注我的公众号《IT小Chen》