开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql

这篇具有很好参考价值的文章主要介绍了开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们已经完成了业务的开发工作.在开发过程中使用的是:O2OA平台的内置数据库,假设开发完成后,我们需要发布到生产系统,那么建议使用外部的数据库,如果用户很多,需要保障系统的高可用性,就需要考虑集群环境。

所以这节课,我们的目标内容是:如何将开发好的系统迁移到生产系统

那么接下来要做以下三件事情:

1.配置外部数据库

2.配置集群环境

3.开发机的数据迁移

注意:一开始配置的外部数据库是空的,所有的开发机的业务数据是在本地的H2数据库中,做第三步,才能将开发机数据导入到生产机中

数据库支持

我们先介绍一下,O2OA默认的是内置的H2数据库,H2数据库是一个开源的纯Java关系数据库.

默认情况下启动时将启动一个H2数据库服务作为数据源,实际数据存储位置。

o2server/local/repository/data/X.mv.db

下面这个表H2数据库和其他数据库的一个对比:

开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql

那么它的特点是轻量,纯Java,可嵌入,支持标准JDBC访问.

在正式生产环境中, 建议使用MySQL,PostgreSQL,Oracle等主流的数据库产品.

O2OA底层,是通过openjpa,实现Java对象到数据库的读写的.

下面这个地址是openjpa默认支持的数据库。

4.  Database Support

O2OA通过openjpa默认支持以下数据库:

Database Name

Database Version

JDBC Driver Name

JDBC Driver Version

Apache Derby

10.1.2.1

Apache Derby Embedded JDBC Driver

10.1.2.1

Borland Interbase

7.1.0.202

Interclient

4.5.1

Borland JDataStore

6.0

Borland JDataStore

6.0

DB2

8.1

IBM DB2 JDBC Universal Driver

1.0.581

Empress

8.62

Empress Category 2 JDBC Driver

8.62

Firebird

1.5

JayBird JCA/JDBC driver

1.0.1

H2 Database Engine

1.0

H2

1.0

Hypersonic Database Engine

1.8.0

Hypersonic

1.8.0

Informix Dynamic Server

9.30.UC10

Informix JDBC driver

2.21.JC2

InterSystems Cache

5.0

Cache JDBC Driver

5.0

Microsoft Access

9.0 (a.k.a. "2000")

DataDirect SequeLink

5.4.0038

Microsoft SQL Server

9.00.1399 (SQL Server 2005)

SQLServer

1.0.809.102

Microsoft Visual FoxPro

7.0

DataDirect SequeLink

5.4.0038

MySQL

3.23.43-log

MySQL Driver

3.0.14

MySQL

5.0.26

MySQL Driver

3.0.14

Oracle

8.1,9.2,10.1

Oracle JDBC driver

10.2.0.1.0

Pointbase

4.4

Pointbase JDBC driver

4.4 (4.4)

PostgreSQL

7.2.1

PostgreSQL Native Driver

8.1

PostgreSQL

8.1.5

PostgreSQL Native Driver

8.1

Sybase Adaptive Server Enterprise

12.5

jConnect

5.5 (5.5)

主流数据库是已经支持的,同时我们也支持一些国产数据库.

国产数据库支持

对与国产数据库的支持是对不同的数据库编写不同的适配方言来实现的.

也就是通过定制 DBDictionary来实现对接.

目前我们已经适配的国产数据库是:

数据库

方言

达梦

com.x.base.core.openjpa.jdbc.sql.DMDictionary

南大通用8s

com.x.base.core.openjpa.jdbc.sql.GBaseDictionary

南大通用华库(mysql5)

com.x.base.core.openjpa.jdbc.sql.GBaseMySQL5Dictionary

南大通用华库(mysql8)

com.x.base.core.openjpa.jdbc.sql.GBaseMySQLDictionary

人大金仓V7

com.x.base.core.openjpa.jdbc.sql.KingbaseDictionary

人大金仓V8

com.x.base.core.openjpa.jdbc.sql.Kingbase8Dictionary

人大金仓V8R6

com.x.base.core.openjpa.jdbc.sql.Kingbase8R6Dictionary

神通数据库

com.x.base.core.openjpa.jdbc.sql.OscarDictionary

各种PostgreSQL改造版本

org.apache.openjpa.jdbc.sql.PostgresDictionary

数据库配置步骤

配置步骤大体是一样的,主要是配置externalDataSources.json文件.

我们在o2server服务器目录下的configSample目录中已经创建了各个数据库连接的样例配置文件.

(打开看一下)

我们把externalDataSources_mysql.json配置文件复制到config目录下,去掉下划线后面的部分。

系统会到config目录下读取配置文件,如果没有配置文件,平台读取默认值。

MySQL配置步骤

下面我们就MySQL数据库连接配置进行操作.(打开数据库连接工具)

我们事先已经安装完成一个空的MySQL ,版本是MySQL 8.0.27,地址:traindb.o2oa.net

在安装好的MySQL中创建一个数据库,

数据库名任意,譬如:X

设置数据库字符集为:utf8mb4

排序规则:选择utf8mb4_0900_ai_ci

开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql

我们只要创建一个数据库就可以了,表,索引会自动创建。

(去本地电脑o2server上操作)

在o2server/config目录下,修改配置externalDataSources.json

[
  {
    "url":"jdbc:mysql://traindb.o2oa.net:3306/X?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8",      
    "username" : "root",
    "password" :"1234abcd",
    "includes": [],
    "excludes": [],
    "enable" : true
  }
]

1.修改其中的url , username , password字段.

2.重启服务器完成MySQL配置.

3.打开控制台看

从控制台看到默认的H2数据库还是启动了,原因是我们没有把默认的数据库给关闭掉,如果说希望服务器减少这样的资源开销,那么我们需要去修改一下配置文件,关闭掉H2数据库的使用。在哪里改?

先去config目录里 找一下node_127.0.0.json,如果有直接改参数,如果没有,configSample目录拷贝一个,

node_127.0.0.json,然后编辑文件,去找到data,把enable改成false。

验证数据库配置

登陆服务器http://live.o2oa.net

使用o2oa管理员登陆

点击左上角菜单->组织管理

新建用户

开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql

保存人员信息后,我们打开数据库可以看到数据已经存储到MySQL数据库中了.

人员信息存储表:"ORG_PERSON" 查看“数据”书签

开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql

验证完成.

配置文件详解

完成了验证了之后,我们回过来再来解释一下,

数据库连接的,配置文件里面的相关参数.(打开ppt第8页)

enable:是否启用.
url:jdbc连接地址.
username:数据库jdbc连接用户名.
password:数据库jdbc连接密码.
driverClassName:数据库驱动类名
dictionary:方言,我们国产数据库的支持就是通过编写不同的方言来实现的。
maxTotal:最大使用连接数,默认是50,系统的量很大的话,可以设置大一些。
maxIdle:最大空闲连接数
statEnable:启用统计,默认启用,我们使用的是德鲁伊的统计,可以对数据库和sql进行监控,有些国产数据库的语法树他是无法分析到的,所以需要关闭这个选项。
statFilter:统计方式配置,默认mergeStat
slowSqlMillis:执行缓慢sql毫秒数,默认2000毫秒,执行缓慢的sql将被单独记录.
includes:设置此数据库存储的类,默认情况下存储所有类型,如果需要对每个类进行单独的控制以达到高性能,可以将不同的类存储到不同的节点上提高性能.可以使用通配符*
excludes:在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符*
logLevel:默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完整的配置为DefaultLevel=WARN, Tool=TRACE, Enhance=TRACE, METADATA=TRACE, Runtime=TRACE, Query=TRACE, DataCache=TRACE, JDBC=TRACE, SQL=TRACE.
transactionIsolation:这个是数据库的事务隔离级别:我们系统默认的隔离级别是:read-uncommitted,我们系统使用队列来保持事务的一致性的,所以说一般情况下不需要提升隔离级别。其他的配置参数一般默认就好了。
testConnectionOnCheckin:测试入池连接,默认false.
testConnectionOnCheckout:测试出池连接,默认false.
maxIdleTime:空闲阈值,默认300秒.
autoCommit:自动提交,默认为false.

接着我们来看一下德鲁伊的统计功能,从哪里进去看呢

http://127.0.0.1:20030/x_program_center/

注意:这个需要管理员账户登陆

进去之后进到SQL监控,这里显示的就是所有执行过的SQL语句,每一条的sql语句的执行数和执行时间都有记录。具体就不再展开来说了。

在URI 监控页面可以看到所有接口访问的情况。文章来源地址https://www.toymoban.com/news/detail-488989.html

到了这里,关于开源OA:手把手教你搭建OA办公系统(18)系统上线之配置外部数据库Mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你搭建自己本地的ChatGLM

    如果能够本地自己搭建一个ChatGPT的话,训练一个属于自己知识库体系的人工智能AI对话系统,那么能够高效的处理应对所属领域的专业知识,甚至加入职业思维的意识,训练出能够结合行业领域知识高效产出的AI。这必定是十分高效的生产力工具,且本地部署能够保护个人数

    2024年02月03日
    浏览(73)
  • 【共建开源】手把手教你贡献一个 SeaTunnel PR,超级详细教程!

    Apache SeaTunnel是一个非常易于使用的、超高性能的分布式数据集成平台,支持海量数据的实时同步。每天可稳定高效同步数百亿数据,已被近百家企业投入生产使用。 现在的版本不支持通过jtds的方式链接sqlserver,我们来自己写代码来实现它,并把代码提交给apache seatunnel。 1

    2024年02月09日
    浏览(52)
  • 手把手教你搭建一个Minecraft 服务器

    这次,我们教大家如何搭建一个我的世界服务器 首先,我们来到这个网站 MCVersions.net - Minecraft Versions Download List MCVersions.net offers an archive of Minecraft Client and Server jars to download, for both current and old releases! https://mcversions.net/   在这里,我们点击对应的版本,从左到右依次是稳定版

    2024年02月09日
    浏览(58)
  • 手把手教你搭建ARM32 QEMU环境

    我们知道嵌入式开发调试就要和各种硬件打交道,所以学习就要专门购买各种开发版,浪费资金,开会演示效果还需要携带一大串的板子和电线,不胜其烦。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行的调试工作与外设无关,仅仅是内核方面的调试,Qemu模拟

    2024年02月19日
    浏览(58)
  • 手把手教你搭建 Webpack 5 + React 项目

    在平时工作中,为减少开发成本,一般都会使用脚手架来进行开发,比如 create-react-app 。脚手架都会帮我们配置好了 webpack,但如果想自己搭建 webpack 项目要怎么做呢?这边文章将介绍如何使用 webpack 5 来搭建 react 项目,项目地址在文末。 1.1 Webpack 的好处 试想在不使用任何打

    2024年02月08日
    浏览(44)
  • 手把手教你在Windows下搭建Vue开发环境

    最近有小伙伴不会Vue环境的部署,小孟亲自测试了下,大家有需要的可以按照下面的学习。 如果想看视频的,也可以看视频的教程: https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1vd_source=e64f225fc5daf048d2687502cb23bb3b 在Windows下搭建Vue开发环境: 官网https://n

    2024年02月08日
    浏览(64)
  • Pytorch:手把手教你搭建简单的全连接网络

     红色的点就是我在sinx函数上取的已知点作为网络的训练点。  训练过程如上,时间我这里设置的比较简单,除了分钟,之后的时间没有按照60进制规定。 可以看到收敛的还是比较好的。 这里红色的点为训练用的数据,蓝色为我们的预测曲线,可以看到整体上拟合的是比较好

    2024年02月07日
    浏览(54)
  • 手把手教你搭建内网穿透服务器

    有时候我们需要把外网可以访问自己的内网,比如在微信公众号开发调用接口时为了方便调试就需要配置回调地址或者是想把自己的nas可以在不在家就能访问,这时候就需要内网穿透。使用内网穿透主要有几种方式,1.使用内网穿透服务商提供的服务,但是这种需要付费,免

    2024年04月23日
    浏览(49)
  • 1. [手把手教你搭建] 之 在linux上搭建java环境

    当我们要在服务器上部署自己的java服务时,首先我们需要安装和配置好java环境,那么我们现需要在服务器上下载java1.8版本的安装包,之后再完成环境配置,服务部署这一套流程,本文会讲解java安装包的下载及环境配置,这里使用的是压缩包的安装方式: 首先创建package目录

    2023年04月11日
    浏览(46)
  • 手把手教你搭建VUE+VScode+elementUI开发环境

    1.安装node.js 按照VUE必须先要安装node.js (1)打开NodeJs官网:https://nodejs.org/en/download/ ,根据系统下载,Windows操作系统一般选择是64-bit。 (2)点击64-bit就开始下载了。 (3)双击安装,安装过程基本直接“NEXT”就可以了。(windows的安装msi文件在过程中会直接添加path的系统变

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包