1、 文档编号XX_3_SYS_数据库部署运维手册版 本 号V1.2密 级秘密数据库部署运维手册XXX信息技术有限公司第 11 页 共 11 页版本控制编号修订人修订时间版本号修订内容说明1 2 3 目录第 I 条 DB2数据库服务器安装4第 II 条 DB2数据库客户端安装流程6第 III 条 企业数据备份机制备份7第 IV 条 数据库归档策略:101. 交易数据库归档102. 日志数据库归档11第 I 条 DB2数据库服务器安装 一、 安装平台及版本信息系统平台:SUSE Linux 64DB2版本:Version 9.5 Fixpack4 实例信息:64位实例二、 安装DB2软件:以下操作需
2、要在ROOT用户下进行解压安装包:tar xvf v9.5fp4_linuxx64_server.tarcd至解压后的文件夹,运行db2_install文件./ db2_install默认安装至/opt/ibm/db2/V9.5/目录下(DB2 V9版本以后也可以更换安装目录),输入“no”不变更安装目录;输入“ESE”,安装企业版。三、 建立管理用户组及用户:以下操作需要在ROOT用户下进行groupadd dasadm1 (添加DAS管理组)groupadd db2fadm1 (添加fence用户组)groupadd db2iadm1 (添加实例管理用户组)useradd -g dasad
3、m1 -m dasusr1 (添加DAS管理用户)useradd -g db2fadm1 -m db2fenc1 (添加fence用户)useradd -g db2iadm1 -m db2inst1 (添加实例管理用户)注:请给此三个用户设置密码四、 创建DAS管理服务器和数据库实例:以下操作需要在ROOT用户下进行创建DAS管理服务器:/opt/ibm/db2/V9.5/instance/dascrt -u dasusr1数据库实例:/opt/ibm/db2/V9.5/instance/db2icrt -u db2fenc1 db2inst1五、 配置数据库环境:以下操作需要在实例用户db2
4、inst1下进行注入DB2授权许可文件:db2licm -a db2ese_c.lic (可以通过db2licm -l 查看DB2授权许可信息)设置DB2 注册表变量:db2set DB2AUTOSTART=YES (设置DB2实例自动随系统启动)db2set DB2COMM= TCPIP (设置DB2支持通信协议为TCP/IP)db2set DB2TERRITORY=86 (设置DB2区域或地域代码)db2set DB2CODEPAGE=1386 (设置DB2 数据的代码页)设置DB2 实例配置信息:db2 update dbm cfg using SVCENAME 50001(设置实例的服
5、务端口)db2 update dbm cfg using DFTDBPATH /data (设置数据库的默认安装目录)六、 创建数据库并进行配置:以下操作需要在实例用户db2inst1下进行1. 启动数据实例:db2start2. 创建数据库DEV_3G,采用GBK编码、区域为CN:db2 create db dev_3g USING CODESET GBK TERRITORY CN3. 创建缓冲池连接至数据库db2 connect to dev_3g缓冲池根据页大小分为4K、8K、16K和32K四种。创建数据库时会创建一个页大小为4K、名为IBMDEFAULTBP的默认缓冲池。创建页大小为8
6、K、25000页大小的缓冲池db2 create bufferpool BUFFER8K SIZE 25000 AUTOMATIC pagesize 8K创建页大小为16K、10000页大小的缓冲池db2 create bufferpool BUFFER16K SIZE 10000 AUTOMATIC pagesize 16K创建页大小为32K、5000页大小的缓冲池db2 create bufferpool BUFFER32K SIZE 5000 AUTOMATIC pagesize 32K4. 创建表空间表空间根据页大小分为4K、8K、16K和32K四种。创建表空间时必须指定其使用的与之同
7、等页大小的缓冲池。创建数据库时会创建一个页大小为4K、名为USERSPACE1、类型为DMS的用户表空间,可以根据使用情况考虑保留与否。创建页大小为8K、大小为20G、可自增的DMS表空间,其使用同等页大小的缓冲池BUFFER8K:db2 create tablespace SPACE8K pagesize 8K managed by database using(file /data/space/space8k.dat 20G) autoresize yes bufferpool BUFFER8K创建页大小为16K、大小为10G、可自增的DMS表空间,其使用同等页大小的缓冲池BUFFER16
8、K:db2 create tablespace SPACE16K pagesize 16K managed by database using(file /data/space/space16k.dat 10G) autoresize yes bufferpool BUFFER16K创建页大小为32K的系统临时表空间,以提供SQL查询中的表连接使用,其使用同等页大小的缓冲池BUFFER32K:db2 create system temporary tablespace TEMP32K pagesize 32K managed by system using( /data/space/TEMP3
9、2K) bufferpool BUFFER32K 5. 更改数据库配置参数配置数据库的日志文件大小为10000(*4KB)、主日志文件数为15、辅日志文件数为30、归档日志目录为/data/archlog/、打开TRACKMODdb2 update db cfg using LOGFILSIZ 10000 LOGPRIMARY 15 LOGSECOND 30 LOGARCHMETH1 DISK:/data/archlog/ TRACKMOD ON注:LOGARCHMETH1参数设置后,数据库处于备份暂挂状态,需要进行离线全备:db2 backup db dev_3g to /data/dbba
10、ck/6. 默认权限的修改从public收回数据库的连接数据库、创建表、隐式创建模式权限:db2 revoke CONNECT,CREATETAB,IMPLICIT_SCHEMA on database from public七、 建立数据库用户并赋予权限:以下操作需要在root用户下进行建立系统用户MOBILEBE:useradd -m mobilebe为新建用户设置密码:passwd mobilebe以下操作需要在实例用户db2inst1下进行赋予MOBILEBE用户连接数据库、创建表、隐式创建模式的权限:db2 grant CONNECT,CREATETAB,IMPLICIT_SCHEM
11、A on database to user mobilebe将表空间space8K、space16K的使用权限赋予MOBILEBE用户:db2 grant use of tablespace space8K to user mobilebedb2 grant use of tablespace space16K to user mobilebe可在space8K中创建TEST表,进行测试:db2 connect to dev_3g user mobilebedb2 “create table test(A int) in space8k”第 II 条 DB2数据库客户端安装流程一、 安装平台及
12、版本信息系统平台:SUSE Linux 64DB2版本:Version 9.5 Fixpack4 实例信息:64位实例二、 安装DB2软件:以下操作需要在ROOT用户下进行解压安装包:tar -xvf v9.5fp4_linuxx64_server.tarcd至解压后的文件夹,运行db2_install文件./ db2_install默认安装至/opt/ibm/db2/V9.5/目录下(DB2 V9版本以后也可以更换安装目录),输入“no”不变更安装目录;输入“CLIENT”,安装客户端。建立管理用户组及用户:以下操作需要在ROOT用户下进行groupadd db2fadm1 (添加fence
13、用户组)groupadd db2iadm1 (添加实例管理用户组)useradd -g db2fadm1 -m db2fenc1 (添加fence用户)useradd -g db2iadm1 -m db2inst1 (添加实例管理用户)注:请给此两个用户设置密码三、 创建数据库实例:以下操作需要在ROOT用户下进行数据库实例:/opt/ibm/db2/V9.5/instance/db2icrt -u db2fenc1 db2inst1四、 编目远端数据库服务器以下操作需要在实例用户db2inst1下进行编目节点(节点名:DEV166、服务器IP:192.0.0.166、实例端口:50001):
14、db2 catalog tcpip node DEV166 remote 192.0.0.166 server 50001编目数据库(数据库名:dev_3g、节点名:DEV166):db2 catalog db dev_3g at node DEV166注:可以通过db2 list node directory 命令来查看节点编目信息;通过db2 list db directory 命令来查看数据库编目信息;通过db2 connect to dev_3g user mobilebe 命令来连接已编目数据库,确认编目是否正确。第 III 条 企业数据备份机制备份 通过凌晨定时脚本对交易库和慢充库
15、进行备份:n 交易库:每月初进行全备,每天进行增量备份n 慢充库:每周六进行全备,每天进行增量备份 通过凌晨定时脚本对交易库和慢充库的恢复日志进行归档:n 交易库:每天将前一天的恢复日志进行打包归档n 慢充库:每天将前一天的恢复日志进行打包归档n POS数据库 每天将前一天的恢复日志进行打包归档 交易库和慢充库的备份文件和日志文件,通过凌晨定时脚本传到elephant服务器,并保存到移动硬盘中,都保存两份数据。一、 运输 移动硬盘数据满后,运输员和监督员去现场将移动硬盘放入保管箱并上锁 将钥匙交由运输员保管,保管箱由监督员保管,两人将保管箱运回公司二、 保管 运回公司后,贴上标签,标明备份文件
16、的日期 在监督员的监督下,保管员将备份文件放入部门保险箱,其中保险箱的钥匙由保管员保管,密码由部门主管保管三、 表格系统备份记录表记录日期: 执行部分操作人员所在部门操作时间操作目标操作结果授权人传递部分运输员运输员操作监督员备注保管部分监督员签收保管员保管员备注第 IV 条 数据库归档策略:提供一个归档文档辅助系统人员进行记录并且更新维护的文档,目的为开发人员能够了解现有的归档策略,根据现有归档策略指导开发。以下提供对POS业务的数据库归档策略。一、 归档方案:1. 交易数据库归档目前只对trxorder, payment, accounthistory,publishedtrx四个表进行归
17、档。trxOrder,payment,publishedtrx的归档策略:先按时间查询出需要归档的trxorder.id,把ID存入临时表中,然后根据trxorder.id查询关联的payment记录,把payment.id也存入临时表,最后根据临时表中的数据归档trxorder,payment,publishedtrx(先导出后删除)。SQL语句示例 (归档语句中排除了航空线大商户):1.insert into temp_orderid select id from trxorder where closeDateonly? and status in(CANCELED,SUCCESS) a
18、nd receiver_id not in (979827,1083821,1052654,702239,490705,1161705,1160001723,1155504,794316,1080255,1069892,1004838,523351);2.insert into temp_payid select id from payment where trxorder_id in (select id from temp_orderid);3.db2 export to publishedtrx.ixf of ixf select * from PublishedTrx where id
19、 in(select id from temp_payid);4.db2 export to payment.ixf of ixf select * from payment where id in(select id from temp_payid);5.db2 export to trxorder.ixf of ixf select * from Trxorder where id in(select id from temp_orderid);accounthistory的归档策略:按时间查询accounthistory表,把ID存入临时表中,然后根据临时表中的数据归档accounthi
20、story (先导出后删除)SQL语句(归档语句中排除了航空线大商户):1.insert into temp_acthis select id from accounthistory where createDate? and settleFlag=1 and account_id not in (select id from account where classtype=LocalAccount and customer_id in (979827,1083821,1052654,702239,490705,1161705,1160001723,1155504,794316,1080255
21、,1069892,1004838,523351);2. db2 export to accounthis.ixf of ixf select * from accounthistory where id in(select id from temp_acthis);2. 日志数据库归档对frprequest,customerrequestlog,notifyrecord进行归档 归档策略:不定期(最快两周一次)归档,归档时直接修改表名,并重建新的空表,后续的数据写入新表,对改名后的表进行归档二、 归档中存在的问题:交易表和账务历史表的数据归档不完全同步,可能某一笔交易数据已经删除了,而账务历史数据还没有归档。退款的payment记录删不干净,把ID号存入临时表后,可能又发生了一笔退款,这笔退款不会被归档。三、 归档时间:生产数据库至少保留前2个月(不包括当前月)的历史数据,具体归档时间不确定。四、 建议: 由于归档的时间不确定,可以在每次归档完成的时候记录一下归档完成最新的记录的时间,代表应用在这个时间之前需要到历史数据库查,这样能将程序做成自动判断,避免归档后更新应用上线。