目 录
修订记录
编号 | 修订内容 | 修订时间 | 修订人 |
1 | 完成方案初稿 | 2019-9-03 | 何敏 |
2 | 添加数据库迁移、应用联调章节 | 2019-12-06 | 何敏 |
3 | 添加关键步骤的命令,调整文档格式 | 20200107 | 何敏 |
4 | 20200323 | 孟繁明 |
文档说明
每次实施项目执行时,严格按照本文档步骤进行,实施完成后,将本文档上传到SVN进行项目归档。
项目组长在SVN上获取本文档,检查实施结果,并填写检查情况,最后更新到SVN。
1 最终信息汇总
实施信息 | 信息 |
实施人员 | |
联系电话 | |
实施时间 | |
实施地点 |
1.1 项目信息
输出内容 | 信息 |
项目名称 | |
客户/集成商 | |
项目负责人 | |
实施时间 | |
Kingbase数据库版本 | |
单机/集群 | |
是否为保密机 | |
服务器信息 | IP、登录名和密码、Mac地址 |
项目状态 |
操作人签字:
1.2 安装信息
输出内容 | 信息 |
安装包目录 | |
安装目录 | |
数据目录 | |
是否大小写敏感 | |
数据库端口号 | |
用户名/密码 | |
是否兼容Oracle | |
是否专门挂载了盘阵(保密机) | |
是否需要定时备份 |
操作人签字:
2 安装前检查
2.1 硬件环境检查
检查内容 | 及格项 | 检查命令 | 实际结果 | 项目规划值 |
CPU | 主流的32位或64位CPU | lscpu | ||
内存 | 1GB以上 | free -g | ||
硬盘 | 1GB以上空闲空间 | df -h |
实际结果应>=项目规划值。
操作人签字:
2.2 软件依赖检查
检查内容 | 及格项 | 检查命令 | 实际结果 | 项目规划值 |
操作系统版本 | 主流的32位或64位Linux操作系统 | 1、# uname -a (Linux查看版本当前操作系统内核信息) |
操作人签字:
2.3 介质检查
检查内容 | 及格项 | 实际情况 |
数据库版本号 | 参考《版本获取手册》 | |
CPU情况 | X86/飞 腾 /龙芯 | |
操作系统情况 | Linux 位数 | |
服务器安装方式 | 光驱/USB/网络 |
2.4 License检查
检查内容 | 及格项 | 实际情况 |
商务确认 | 正式版/试用版 |
操作人签字:
3 安装步骤
3.1 确认安装参数
输出内容 | 实施记录 |
是否大小写敏感 | 是/否 |
用户名密码 | 已移交客户 |
是否兼容Oracle | 是/否 |
数据库端口号 | 54321 |
确认安装目录,保密机是否有盘阵 | 是/否 |
是否需要定时备份 | 是/否 |
操作人签字:
3.2 安装检查
与集成商确认,操作系统时间、防火墙状态及SELINUX是否可以自行修改,允许,执行下述操作;禁止,请集成商进行修改:
实施命令 | |
操作系统时间 | 查看时间:date 修改正确时间:date -s 正确时间 同步到硬件:/sbin/hwclock --systohc 能连接外网的话,可以通过ntp来同步 |
防火墙状态(右面方案二选一) | 方案一(以CentOS6举例) service iptables stop chkconfig iptables off iptables -L iptables -F |
方案二(以CentOS7举例) systemctl stop firewalld systemctl disable firewalld.service firewall-cmd –state iptables-save 或者只开放数据库端口: firewall-cmd --zone=public --add-port=54321/tcp --permanent | |
SELINUX(centos7需要改为disable) | vim /etc/selinux/config SELINUX=disabled // 禁用状态 |
操作人签字:
3.3 创建用户
输出内容 | 实施命令 |
数据库属主用户用户名/密码 | useradd -m -U kingbase passwd kingbase |
3.4 修改主机名
与集成商确认现场主机名称是否进行了统一规划,有规划,以集成商规划名称为准;
无规划,与集成商确认是否可以自行修改;可选,不强制。
输出内容 | 实施命令 |
修改后主机名称 | sudo vim /etc/hostname 修改为正确的主机名后,保存退出 注意:如果/etc/hosts中有主机名对应的IP,需要一并修改。 例如: 192.168.1.5 oldname 修改oldname到newname 最终样式为: 192.168.1.5 newname |
操作人签字:
3.5 文件目录规划
以下操作需要使用“root”帐户进行操作:
输出内容 | 执行命令 |
安装包存放目录:/kingbase/kdb_install | mkdir -p /kingbase/kdb_install |
解压数据库软件安装包(假定下载的安装包文档被放在“/home”目录下) | 检查md5 tar -xzf /home/ KingbaseES_V008R002C001B0424_Lin64_install.tar.gz –C /kingbase/kdb_install |
软件目录:/kingbase/app/kesv8 | mkdir -p /kingbase/app/kes/8.2/ |
数据目录:/kingbase/app/kesv8/data/ | mkdir -p /kingbase/app/kes/8.2/data/ |
备份目录:/kingbase/app/kes_backup/ | mkdir -p /kingbase/app/kes_backup/ |
脚本目录:/kingbase/app/kesv8/scripts/ | mkdir -p /kingbase/app/kes/8.2/scripts/ |
归档目录:/kingbase/app/archive/ | mkdir -p /kingbase/app/archive/ |
授予权限 | chown -R kingbase:kingbase /kingbase |
注意:如果客户未强制指定安装路径,应严格按此文档中目录规划实施。
操作人签字:
3.6 操作系统参数修改
与客户沟通,是否可以修改操作系统参数:
输出内容 | 实施命令 |
是否修改 | 1) 修改资源限制(以下操作需要root权限) vim /etc/security/limits.conf 增加如下内容: kingbase hard nofile 65536 kingbase soft nofile 65536 kingbase hard nproc 65536 kingbase soft nproc 65536 kingbase soft core unlimited kingbase hard core unlimited 如果limits.d目录下有文件,则它的优先级更高: vim /etc/security/limits.d/20-nproc.conf kingbase soft nproc 65536 2)修改内核参数:(以下操作需要root权限) vim /etc/sysctl.conf 增加或者如下内容(#号后面为注释内容): vm.dirty_background_ratio=1 #默认10,在数据库系统中最好设置小一点 kernel.sem = 5010 641280 5010 256 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.ipv4.tcp_fin_timeout = 30 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.core.somaxconn=1024 vm.swappiness=0 #不要走swap,100 vm.overcommit_memory = 2 vm.overcommit_ratio = 90 # mem/(mem+swap) vm.dirty_background_ratio=1 #要设低一点 vm.dirty_ratio = 2 #低一点 --关于kernel.shmmax的设置 32 位 linux 系统:可取最大值为 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建议值为多于内存的一半,所以如果是 32 为系统,一般可取值为 4294967295 。 64 位 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。 内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887 内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183 内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367 内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735 内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471 --关于kernel.shmall的设置 该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。 一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页), 当内存为 12G 时, kernel.shmall = 3145728 当内存为 16G 时, kernel.shmall = 4194304 当内次为 32G 时, kernel.shmall = 8388608 当内存为 64G 时, kernel.shmall = 16777216 当内存为 128G 时, kernel.shmall = 33554432 # TCP端口使用范围 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 6000 # 记录的那些尚未收到客户端确认信息的连接请求的最大值 net.ipv4.tcp_max_syn_backlog = 65536 # 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 net.core.netdev_max_backlog = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_wmem = 8192 436600 873200 net.ipv4.tcp_rmem = 32768 436600 873200 net.ipv4.tcp_mem = 94500000 91500000 92700000 net.ipv4.tcp_max_orphans = 3276800 重新加载生效 sysctl -p 3)修改磁盘IO调度策略,有些系统没有({DEVICE-NAME}为磁盘名,如“sda”): vim /etc/rc.d/rc.local echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler 4)修改IPC(cat redhat-release查看,7及以上的版本需要修改) vim /etc/systemd/logind.conf RemoveIPC=no(有的版本RemoveIPC=yes,正确的应该是no) systemctl daemon-reload systemctl restart systemd-logind.service |
3.7 执行安装
3.7.1 安装前的注意事项
1、如果在虚拟机中的Linux系统中安装KES,需要注意Linux必须安装了图形化界面,且虚拟机的硬件兼容性必须大于等于14.x版本,否则会导致图形化安装界面不可用,但命令行安装界面仍是可用的;

2、安装程序不能使用root执行,安装过程必须使用kingbase用户操作,并使用前面规划好的目录。
3.7.2 开始安装
切换到安装包解压路径,执行 setup.sh

默认会出现图形化安装界面,点击“下一步”:

查看许可协议,勾选“我接受许可协议条款”:

选择“完全安装”:

点击“选择授权文件”,选择准备好的许可文件:

选择好许可文件,点击“下一步”:

选择安装路径,并点击“下一步”:

这时系统会询问“目标目录非空,是否覆盖?”,我们点击“确定”:

点击“安装”:


确认数据目录位置,点击“下一步”:

这里依然是一个“目标目录非空,是否覆盖?”的询问,我们点击“OK”:

然后输入 SYSTEM 超级管理员的密码(如果是测试环境可以设置为“kingbase”),设置数据库编码格式(推荐设置为“UTF8”),最后如果希望数据库 不区分大小写 ,则勾选“CASE-INSENSITIVE”(推荐勾选),确认完毕点击“下一步”:

如果需要将KES注册为系统服务(推荐),则另开启一个终端,使用root 用户执行安装程序提供的脚本:/kingbase/app/kes/8.2/Scripts/root.sh,最后点击“完成”结束安装,至此KES v8 就安装完毕了。


使用 root 用户执行服务注册脚本:

提示:
1、使用命令行安装模式安装与图形化界面安装模式相比,需要的操作基本上没有差异,仅仅是操作界面上的不同。
2、“CASE-INSENSITIVE”(不区分大小写)选项的影响不仅局限于数据库名、模式名和表名等数据库对象,它还会影响用户名、数据字典等全局对象,因此除非有特殊要求,请尽量勾选“CASE-INSENSITIVE”,以避免使用上的不便。
3、如果需要另外新建数据目录,并初始化数据库实例,请阅读帮助手册中关于“initdb”或“sys_ctl”命令的相关内容。
4、安装结束时注册的系统服务的服务名为“kingbase8d”。
5、注册的系统服务仅能启动安装数据库系统时创建的数据库实例,如果需要启动另外新建的数据库实例,请阅读帮助文档中关于“sys_ctl”命令的相关内容。
输出内容 | 实施记录 |
安装是否完成 | 将安装包拷贝到对应目录,解压,执行安装 |
操作人签字:
3.7.3 测试登录数据库
提示:
1、KES默认会新建2个数据库用于测试,其数据库名为 SAMPLES 和 TEST。可使用KES自带的命令行客户端 ksql 登录数据库:
$ vi /home/kingbase/.bash_profile
export PATH=$PATH:/kingbase/app/kes/8.2/Server/bin
$ source /home/kingbase/.bash_profile
ksql命令格式:ksql <db_name> <user_name>

2、如果安装时未勾选“CASE-INSENSITIVE”,则登录时需要注意 数据库名 必须要使用大写。
3、有关ksql命令的更多用法请参看帮助手册中“kingbase客户端应用”之ksql的相关内容。
3.8 加载系统服务并启动数据库
输出内容 | 实施记录 |
启动系统服务 | service kingbase8d start |
查看服务状态 | service kingbase8d status |
停止系统服务 | service kingbase8d stop |
操作人签字:
4 数据库调优及测试
4.1 数据库参数调优
与集成商确认数据库端口、数据库最大连接数、应用是否从oracle迁移等,涉及到oracle兼容参数的调整。
流程内容 | 操作内容 | 实施记录 |
现场环境确认 | 与集成商确认: 数据库端口 数据库最大连接数 应用是否从oracle迁移 确认服务器内存大小 确认服务器CPU数量 | |
默认参数 | ############################################# listen_addresses='*' port = 54321 max_connections=1000 app_reserved_connections='JSQL,6' ############################################# shared_buffers=RAM*0.4 work_mem =10MB maintenance_work_mem=1GB effective_cache_size=RAM*0.5 wal_buffers=512 ############################################# compatible_level='mixed' ############################################# log_statement='ddl' log_duration=off lc_messages='C' log_line_prefix='[%m][%h][%d][%p][%u][%x]' ############################################# autovacuum_naptime=10min max_fsm_pages=10000000 max_fsm_relations=3000 ############################################# max_locks_per_transaction=1024 ############################################# checkpoint_timeout=10min ############################################# |
4.2 测试数据库起停
输出内容 | 实施命令及输出结果 |
手动停止启动数据库是否成功 | sys_ctl stop |
用服务起停数据库是否成功 | service kingbase8d [start|stop] |
命令行/客户端,登录数据库是否成功 | ksql -USYSTEM -W password test |
5 配置备份脚本
必须要做的,由于备份只能放到本地,为了安全可以要求将备份放到独立的磁盘。
输出内容 | 实施记录 |
确认备份目录 | 前面已经创建好了 |
拷贝备份脚本 | 将备份脚本 rman_full.sh、rman_page.sh 放到/kingbase/app/kesv8/scripts/下 |
配置备份参数 | 修改备份脚本里的参数 (1)修改rman_full.sh kdb_home="/kingbase/app/kesv8/Server/" ——安装目录 kdb_data="/kingbase/app/kesv8/data" ——数据目录路径 kdb_user="SYSTEM" ——备份用户 kdb_pass="123456" ——密码 kdb_port="54321" ——端口 kdb_host="127.0.0.1" ——ip kdbback_dest="/kingbase/app/kesv8/backup/" ——备份路径 keep_num="2" ——保留备份集 (2)修改rman_page.sh kdb_home="/kingbase/app/kesv8/Server/" ——安装目录 kdb_data="/kingbase/app/kesv8/data" ——数据目录路径 kdb_user="SYSTEM" ——备份用户 kdb_pass="123456" ——密码 kdb_port="54321" ——端口 kdb_host="127.0.0.1" ——ip kdbback_dest="/kingbase/app/kesv8/backup/" ——备份路径 |
测试备份脚本 | 测试脚本 sh -x /kingbase/app/kesv8/scripts/rman_full.sh sh -x /kingbase/app/kesv8/scripts/rman_page.sh |
配置自动备份策略 | 例如:每周日23点全量备份,周一至周六23点增量备份。 |
6 使用培训
培训内容 | 实施记录 |
数据库启动、停止等简单运维方法 | |
数据库管理工具、ksql命令行工具、迁移工具的使用 | |
应用连接数据库的方法 |
7 数据库迁移
如果遇到需要改造旧系统的实施工作,则需要记录数据库迁移工作记录;如果没有,则忽略。
7.1 迁移信息汇总
输出内容 | 信息 |
迁移原始库类型及版本 | |
迁移表数量 | |
迁移序列数量 | |
迁移视图数量 | |
迁移触发器数量 | |
迁移函数数量 | |
迁移存储过程数量 | |
迁移package数量 | |
是否有同义词 | |
是否有Dblink | |
迁移数据量大小 |
7.2 手动迁移记录
8 应用联调
内容 | 实施记录 |
应用类型 | OA、电子公文等 |
中间件 | 东方通V.X |
应用开发语言 | |
应用开发框架 |
9 实施结果检查
组长对实施结果进行review,从SVN项目管理目录下找到对应项目,下载本文档,添加检查结果,并上传SVN。
组长 | 实施人员 | 实施结果是否合格 |
10 支持记录
在ims上记录到对应项目即可。
11 巡检记录
巡检时间 | 巡检人员 | 巡检结果 |




