# 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

1732898703064.png

手动启动实例:

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

显示如下效果,则说明登录成功:

1732898717815.png!

-- 在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数据库连接工具可正常连接到万里数据库:

1732898769880.png

通过数据库语句select version();查看版本信息:

1732898786524.png

# 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中间件

1732898844386.png

检查部署结果:

信创部署工具操作完成后,可以通过数据库工具检查数据已经安装完成:

1732898878346.png

然后回到服务器/data/Seeyon/V5目录,可以看到就是标准的Tomcat A8程序,(图形化前提下)SeeyonConfig也能运行,查看数据库也正常:

cd /data/Seeyon/V5/ApacheJetspeed/conf
./SeeyonConfig.sh

1732898891011.png

启动OA:

最后就是将A8-N加密授权放置到/data/Seeyon/V5/base/license,再到/data/Seeyon/V5/ApacheJetspeed/bin目录执行./startup.sh启动OA即可。

1732898911470.png

访问OA:

根据SeeyonConfig配置,默认端口是80,通过访问http://OA服务器IP:80/seeyon来检查是否能访问登录页,首次安装用户通过帐号密码init-admin/123456登录系统,进行初始化操作。

1732898920757.png

# 总结

GreatDB万里数据库可以当做MySQL8.0数据库来看待,可以尝试用协同标准产品的部署工具进行安装部署和升级(选择MySQL模式即可),这是MySQL用户转信创最简单的路线之一。

创建人:het
修改人:het