# GreatDB万里数据库项目化部署方案
北京致远互联软件股份有限公司
2024年11月
# 前言
GreatDB万里数据库标准产品未支持,目前可项目化支持适配,适配方案不保证所有功能绝对可用,并且OA版本后续升级的成本比其他标准支持的数据库要高。
项目化支持,意味着可能存在项目化适配成本,可能存在缺陷,并且后续产生的BUG可能需要额外项目化成本解决
项目化验证版本:OA V9.0SP1
万里数据库基础信息如下(从基础信息可以判断万里数据库基本等同于MySQL8.0数据库):
数据库url格式=jdbc:mysql://127.0.0.1:3306/v3x?autoReconnection=true
JDBC驱动名driverClassName=com.mysql.jdbc.Driver
JDBC连接获取数据库名DatabaseMetaData.getDatabaseProductName()=MySQL
驱动jar:使用MySQL标准驱动mysql-connector-j-8.0.33.jar
数据库版本:8.0.32-23-GreatDB6.0.2-GA-1
# 万里数据库安装部署
如果数据库由万里厂商操作,则告知厂商遵守如下约定即可:
1、数据引擎要求为InnoDB
2、MySQL8字符集要求为utf8mb4,早期MySQL版本可设置为utf8
3、要求不区分表/字段大小写
lower_case_table_names=1
4、MySQL8系列,时区默认为美国时区,中国用户若要正常使用,需修改mysql配置文件为
default-time-zone='+8:00'
5、MySQL5.7或者以上版本,需要设置数据库日志时间匹配系统时区
log_timestamps=system
如果是个人安装,可参考万里的《单机快速安装手册》进行操作:
1、按手册要求,做好环境准备,按要求调整系统的各种变量及参数,以确保系统达到数据库要求的最佳状态。
2、创建数据库的独立管理用户greatdb,解压部署包并建立软连接,部署方法与MySQL8基本相同:
yum -y install libaio perl perl-devel ncurses-devel
groupadd greatdb
useradd -g greatdb greatdb
# 设置用户密码
passwd greatdb
mkdir -p /greatdb/{conf,sh,svr,tool,logs/data3306,dbdata/data3306/{data,log,tmp}}
cd /greatdb/svr/
# 上传安装包并且给予可执行权限
chmod +x GreatDB-6.0.2-GA-1-6a5b5292-Linux-glibc2.17-x86_64.tar.xz
tar xvf /data/GreatDB-6.0.2-GA-1-6a5b5292-Linux-glibc2.17-x86_64.tar.xz
ln -s GreatDB-6.0.2-GA-1-6a5b5292-Linux-glibc2.17-x86_64 greatdb
chown -R greatdb:greatdb /greatdb
echo export PATH=/greatdb/svr/greatdb/bin/:$PATH >> /home/greatdb/.bash_profile
3、使用独立用户greatdb创建实例
# 切换到greatedb用户
su greatedb
# 创建greatedb的cnf配置
vim /greatdb/conf/greatdb3306.cnf
配置:
# For advice on how to change settings please see
# https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[client]
# mysql默认端口3306,出于安全性建议更改一个更安全的端口
port=3306
# 字符集编码
default-character-set=utf8mb4
[mysql]
# 字符集编码
default-character-set=utf8mb4
[mysqld]
# mysql默认端口3306,出于安全性建议更改一个更安全的端口
port=3306
# *mysql程序路径
basedir=/greatdb/svr/greatdb
# *mysql数据目录
datadir=/greatdb/data
# tmpdir=/data/mysql/temp/
# *套接字文件,用于连接使用
socket=/tmp/mysql.sock
# *进程路径
pid-file=/greatdb/data/seeyon.mysql.pid
# General and Slow logging.
log-output=FILE
general-log=0
# *通用查询日志存放位置,建议放数据目录下
general_log_file=/greatdb/data/seeyon-mysql-8.0-general.log
slow-query-log=1
# *慢查询日志存放位置,建议放数据目录下
slow_query_log_file=/greatdb/data/seeyon-mysql-8.0-slow.log
long_query_time=10
# *错误日志存放位置,建议放数据目录下
log-error=/greatdb/data/seeyon-mysql-8.0.err
# default_authentication_plugin=caching_sha2_password
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
character-set-server=utf8mb4
# 数据库开启的最大连接数
max_connections=600
# 同一客户端连接尝试失败次数,超出次数即被冻结
max_connect_errors=100
transaction_isolation=READ-COMMITTED
max_allowed_packet=64M
default-time-zone='+8:00'
log_timestamps=system
# 大小写不敏感
lower_case_table_names=1
table_open_cache=2000
tmp_table_size=512M
key_buffer_size=512M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16M
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# *极其重要的数据库内存参数,一般建议将服务器物理内存的 50% 到 70% 分配给 innodb_buffer_pool_size
# *本例4G仅适合于测试场景和低并发用户
innodb_buffer_pool_size=4G
innodb_log_file_size=1G
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_open_files=300
innodb_file_per_table=1
以上保存后,执行初始化数据库操作:
chown greatdb:greatdb /greatdb/conf/greatdb3306.cnf
cd /greatdb/svr/greatdb/
bin/greatdbd --defaults-file=/greatdb/conf/greatdb3306.cnf --initialize-insecure --user=greatdb
# 以上命令将创建一个无密码的数据库帐号,通过如下日志查看初始化状态
cat /greatdb/data/seeyon-mysql-8.0.err
手动启动实例:
cd /greatdb/svr/greatdb/bin
# 后台启动
./greatdbd_safe --defaults-file=/greatdb/conf/greatdb3306.cnf &
# 检查进程
ps -ef|grep greatdbd
# 登录检查(/tmp/mysql.sock文件来自greatdb3306.cnf的socket套接字配置)
./greatdb --socket=/tmp/mysql.sock
显示如下效果,则说明登录成功:
!
-- 在greatedb数据库中修改帐号密码,并新建root、appuser帐号:
alter user user() identified by 'greatdb@Seeyon123456';
create user 'root'@'%' identified by 'greatdb@Seeyon123456';
grant all on *.* to 'root'@'%' with grant option;
create user appuser@'%' identified by 'appuser@Seeyon123456';
grant all on *.* to appuser@'%' with grant option;
# 创建一个seeyon用户并自定义密码,后续用来做OA连接使用
create user 'seeyon'@'%' identified by 'Seeyon123456';
grant all privileges on *.* to 'seeyon'@'%';
flush privileges;
-- 查看用户信息
select user,host from mysql.user;
-- 给OA创建一个空的数据库
CREATE DATABASE V3X DEFAULT CHARACTER SET UTF8MB4;
# 从greatedb数据库exit之后,执行命令检查别的帐号是否可以登录
./greatdb -uroot -pgreatdb@Seeyon123456 -S /tmp/mysql.sock
./greatdb -useeyon -pSeeyon123456 -S /tmp/mysql.sock
启动数据库方法:
# 切换到greatedb用户
su greatedb
cd /greatdb/svr/greatdb/bin
# 后台启动
./greatdbd_safe --defaults-file=/greatdb/conf/greatdb3306.cnf &
使用MySQL数据库连接工具可正常连接到万里数据库:
通过数据库语句select version();
查看版本信息:
# V9.0SP1协同安装部署
准备JDK8:
通过java -version
命令检查当前系统是否已经安装openjdk8。如未安装,先自己安装或联系系统厂商准备合适的jdk8(小版本号推荐1.8.0_372),并配置JAVA_HOME、PATH、 CLASSPATH环境变量:
# 首先准备好jdk,比如放置到/usr/lib/jvm/openjdk8
# 再设置环境变量
vim /etc/profile
# vim编辑模式下,将以下四行代码放置到/etc/profile文本末尾
JAVA_HOME=/usr/lib/jvm/openjdk8/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
# 以上完成后,重新加载/etc/profile文件使其生效
source /etc/profile
# 最后再次检查java是否生效
java -version
准备XinChuang.zip包:
从致远商务公布的安装程序下载地址中,下载对应版本的XinChuang.zip部署包,并解压到系统中:
# 新建OA服务目录,后续OA在此目录下维护
mkdir - /data/Seeyon
# 将XinChuang.zip解压到/data/目录进行操作
unzip 2.V9.0SP1_XinChuang.zip
cd /data/2.V9.0SP1_XinChuang/deploytools/
# 系统有图形化就用图形化脚本
./deployGUI-for-V9.0SP1-A8N.sh
直接全新部署:
由于GreatDB万里兼容MySQL8,我们可以使用信创部署工具选择MySQL直接部署,部署过程中自动生成数据。
使用信创部署工具直接部署(图形、无图形均可以),详细使用方法可见信创部署手册:
如下示例是X86 Linux系统,信创工具自动安装Tomcat中间件
检查部署结果:
信创部署工具操作完成后,可以通过数据库工具检查数据已经安装完成:
然后回到服务器/data/Seeyon/V5
目录,可以看到就是标准的Tomcat A8程序,(图形化前提下)SeeyonConfig也能运行,查看数据库也正常:
cd /data/Seeyon/V5/ApacheJetspeed/conf
./SeeyonConfig.sh
启动OA:
最后就是将A8-N加密授权放置到/data/Seeyon/V5/base/license
,再到/data/Seeyon/V5/ApacheJetspeed/bin
目录执行./startup.sh
启动OA即可。
访问OA:
根据SeeyonConfig配置,默认端口是80,通过访问http://OA服务器IP:80/seeyon
来检查是否能访问登录页,首次安装用户通过帐号密码init-admin/123456
登录系统,进行初始化操作。
# 总结
GreatDB万里数据库可以当做MySQL8.0数据库来看待,可以尝试用协同标准产品的部署工具进行安装部署和升级(选择MySQL模式即可),这是MySQL用户转信创最简单的路线之一。