# 致远协同管理软件服务器环境准备

# 前言

本手册对V9.0SP1版本协同管理系统的服务器环境准备相关事宜进行说明,本手册适用于非信创环境。

如对本手册中相关内容存在疑问,请与致远互联的客户服务人员联系。

# 名词解释

名词 解释
协同服务 协同服务,指运行在 V5 平台上的核心协同办公应用程序,包含组织数据、协同、工作流等核心功能
扩展服务 协同服务之外的其它辅助性服务,需要单独部署,如全文检索、文档通在线编辑服务等
协同扩展服务 特指协同自研、自封装的扩展服务,如全文检索、音视频服务、OCIP等
三方扩展服务 特指集成第三方应用产品为己用,知识产权归第三方厂商所有的扩展服务,如文档通在线编辑、数科在线预览等
集中部署 指两个或多个服务部署在一台服务器的模式,如协同服务、数据库、全文检索部署在一台服务
分离部署 指一台服务器一个服务的部署模式,协同服务、数据库、全文检索分三台服务器分别部署
开放平台 致远技术开放平台网站,站点包含协同应用技术、运维等手册和解决方案,地址 https://open.seeyoncloud.com

名词解释中未提及的名词,可以通过AI提问获取答案。

# 环境准备

# 标准产品适配范围

协同标准产品支持的环境如下:

分类 标准适配范围 备注
协同产品版本 A6、A8+、G6+ 9.0SP1
服务器CPU X86芯片
服务器操作系统 Windows Server 2008及以上
RedHat 7及以上
CentOS 7、8及以上
Rocky Linux 9.1
Alma Linux 9.1
openEuler 20.03LTS、22.03LTS、24.03LTS
Ubuntu 22.0.4LTS
操作系统需要图形化组件
服务器中间件 Tomcat9 安装程序已内置Tomcat
服务器缓存服务 Redis5以上 仅集群需要,用于集中式缓存管理
服务器代理服务 Nginx、F5硬负载等 集群负载均衡、反向代理、SSL场景需要
服务器数据库 PostgreSQL 13.3(仅支持A6)
MySQL 5.7、8.0
SQLServer 2005/2008/2012/2016/2019
Oracle 11g、12c、18c、19c、21c(Oracle不支持A6)
用于存储结构化数据
Oracle11g版本推荐11.2.0.4
Oracle12c版本推荐12.2.0.1
文件存储 本地磁盘、NFS共享存储(集群需要)、华为OBS对象存储(可选) 用于存储附件等非结构化文件

说明:

  • 必须使用 64位操作系统 及软件;
  • 支持中文和英文,英文操作系统需安装中文字库;
  • 不推荐和其它三方产品部署在同一操作系统下,避免服务间冲突;
  • 不支持和其它产品部署在同一中间件下;
  • 集群环境下,Nginx需要集成编译Sticky模块,其它负载服务需要开启基于cookie的会话保持策略
  • 支持实体机、虚拟机、云平台环境;
  • 推荐数据库 独立部署 ,避免与其它服务集中部署时引发资源争抢;
  • 以上配置适用于非信创环境 ,信创环境适配范围参考信创部署手册;
  • 如使用本地磁盘文件存储,则无需华为OBS对象存储;

# 环境资源准备清单

进行协同服务部署时,需要准备如下物料:

物料名称 备注 提供方
SeeyonInstall安装包 协同服务安装程序,通过商务公布的产品下载地址下载 致远
协同服务授权 从商务获取协同服务授权文件Lic 致远
中间件 SeeyonInstall程序默认安装Tomcat 致远
JDK SeeyonInstall程序默认安装openjdk8 致远
服务器 准备满足服务运行的服务器(配置可见后续章节说明) 客户
操作系统 准备与标准产品适配的操作系统并安装在服务器内 客户
数据库 准备与标准产品适配的数据库 客户
客户端 准备客户端电脑及浏览器
浏览器兼容性见商务公布的产品下载地址-文档-产品功能清单.xlsx
客户
代理服务 Nginx+Sticky+SSL或F5之类硬负载(集群、代理、SSL场景需要) 客户或授权致远建设
缓存服务 Redis单机或三主三从高可用(仅集群环境需要) 客户或授权致远建设
文件存储 单机可本机磁盘存储,集群需要NFS存储,支持华为OBS对象存储 客户或授权致远建设

# 部署结构

产品支持多种部署模式,不同模式所需资源不同,可以根据用户需求自由选择对应的方案。

# 简单部署模式

单机部署,即常规单服务部署模式,保证基本功能可用,适合在线用户不多的客户。

  • 面向中小型客户(同时在线1000人以下)
  • 资源成本需求低(服务器台数和硬件配置都要求较小)
  • 运维操作门槛低

1736332813412.png

# 集群部署模式

集群部署模式,为了提升高并发用户在线体验,将协同服务部署成集群,通过负载来实现请求分发,分担服务器压力。集群模式下,为保证缓存一致性,需要部署Redis服务。

  • 面向中大型客户(同时在线1000人以上)
  • 满足高性能、协同服务高可用部署要求,资源成本可控
  • 易于运维维护

1736332970880.png

# 高可用集群部署模式

如果客户有完全高可用要求,产品也提供了高可用部署方案,协同应用、Redis、全文检索、音视频等都有对应的高可用解决方案。

  • 面向可用性要求高的客户
  • 满足高性能、高可用部署要求
  • 对服务器资源有一定要求,服务运维数量较多

共享存储和数据库的高可用不在本产品支持范围,需要寻找专业厂商的方案支持。

1736333370192.png

# 服务器注意事项

  • 服务器配置通常是8C16G500G这样的格式,对应8核心CPU、16G内存、500G硬盘,需要根据日常在线人数及部署模式(单机或集群)来测算所需的服务器数量和硬件配置;
  • 推荐只取服务器总内存的50%~70%的给协同主服务使用,剩余内存需要用来支撑操作系统正常运行;
  • 网络要求:服务与服务之间一般要求在同一局域网内,避免网络波动。商务公布的产品下载地址-文档-产品功能清单.xlsx有对服务器带宽的推荐;
  • 推荐分离部署模式,即每个服务都单独部署到独立的服务器上,避免多个服务部署在同一服务器引发资源争抢;
  • 如两个服务一定要在一台服务器集中部署,则硬件资源必须是两个服务所需资源之和;
  • 部署架构图只是示例,图上的节点数量不代表真正服务器数量,需要结合用户实际场景准备资源;
  • 做好服务器间的时钟同步,如NTP、Chrony;
  • 建议使用Linux操作系统;
  • 建议使用备份软件对数据、程序备份;
  • 建议架设网络信息安全保护措施,如防火墙;
  • 公网访问建议搭建虚拟专用网,如VPN;
  • 建议使用ORACLE、ORACLE 集群RAC;
  • 建议配备UPS不间断电源;
  • 建议使用监控软件进行监控,建立预警机制;
  • 不支持安腾(ITANIUM)处理器;
  • 数据库必须是关系型数据库,不支持分布式分片存储,不支持读写分离

# 服务器阶梯资源配置

如下是根据系统在线人数的硬件阶梯资源配置参考,配置不是绝对,不同客户的使用场景不同,可根据生产实际运行状况来做增、降配操作。

通用资源配置:

  • 如使用Nginx服务做负载均衡、反向代理、SSL管理,需要至少准备1台2C4G100G(或4C8G100G)服务器
  • 如使用NFS共享存储,可以先准备200G的存储空间,后续根据实际情况扩大

阶梯资源配置:

在线人数 推荐模式 X86协同服务器配置参考 协同服务器数量 数据库配置参考(1台) Redis服务器参考(单机)
200以下 单机 CPU8核以上/内存16G以上/硬盘320G以上 1 CPU8核以上/内存8G以上/硬盘500G以上 不涉及
200~500 单机 CPU8核以上/内存32G以上/硬盘320G以上 1 CPU8核以上/内存16G以上/硬盘500G以上 不涉及
500~1000 单机 CPU16核以上/内存48G以上/硬盘320G以上 1 CPU16核以上/内存32G以上/硬盘500G以上 不涉及
1000~2000 1主1从 CPU16核以上/内存64G以上/硬盘320G以上 2 CPU16核以上/内存48G以上/硬盘500G以上 CPU4核/内存12G
2000~3000 1主2从 CPU16核以上/内存64G以上/硬盘320G以上 3 CPU24核以上/内存64G以上/硬盘500G以上 CPU4核/内存16G
3000~5000 1主2从 CPU16核以上/内存96G以上/硬盘320G以上 3 CPU24核以上/内存80G以上/硬盘500G以上 CPU8核/内存24G
5000~10000 1主3从 CPU24核以上/内存128G以上/硬盘320G以上 4 CPU32核以上/内存96G以上/硬盘500G以上 CPU8核/内存24G

在线人数计算公式:总在线人数=PC在线人数+移动在线人数。

注意:

  • 单机个人非正式环境(主服务+数据库)最低资源要求:4核心/8G内存/50G硬盘
  • 1000以下在线人数也支持集群部署,集群每台机器配置与单机保持一致才能实现高可用性
  • 1000以上在线人数也支持单机部署,建议3000以上在线人数必须使用集群
  • 当前配置仅包含协同应用主服务及相关依赖,不包含扩展服务
  • 扩展服务,如全文检索、在线编辑、在线预览参考对应手册的阶梯资源要求准备
  • Redis支持三主三从高可用部署:三台服务器配置按照每台Redis单机推荐配置×2÷3准备,六台服务器配置按照每台Redis单机推荐配置÷3准备

# 服务默认端口

请将对其他服务或客户端开放的端口,添加到操作系统的防火墙规则中。

系统常见端口如下表:

服务 默认端口 用途 端口开放规则 备注
主服务(Tomcat) 80 Tomcat Http默认端口 对所有客户端开放 可修改,SeeyonConfig中配置
数据库Oracle 1521 Oracle默认监听端口 对协同主服务开放 netca中配置
数据库MySQL 3306 MySQL默认端口 对协同主服务开放 my.ini中配置
数据库SQLServer 1433 SQLServer默认端口 对协同主服务开放 SQLServer应用配置器中配置
数据库Postgresql 5432 Postgresql默认端口 对协同主服务开放 postgresql.conf中配置
缓存服务Redis 6379 Redis默认端口 对协同主服务开放 redis.conf

若系统使用电子邮件功能,请将服务器设置正确的DNS,且保证可以与电子邮件服务的端口通信(常见的电子邮件端口:25、110)。

自定义端口建议:

协同服务访问端口不推荐设置为公认端口(WellKnownPorts,从0到1023)除了80以外的其它端口;

各服务端口推荐设置为注册端口(RegisteredPorts,从1024到49151)除了以下非安全端口以外的其它端口:

2049, // nfs

3659, // apple-sasl / PasswordServer

4045, // lockd

6000, // X11

6665, // Alternate IRC [Apple addition]

6666, // Alternate IRC [Apple addition]

6667, // Standard IRC [Apple addition]

6668, // Alternate IRC [Apple addition]

6669, // Alternate IRC [Apple addition]

各服务端口不推荐设置为动态/私有端口(Dynamicand/orPrivatePorts,从49152到65535)范围内的端口。

# 网络环境要求

支持:局域网、广域网、VPN、WAPPush Modem

# 服务器带宽要求

不同环境推荐带宽方案不同,假设10%用户使用公网,90%用户使用局域网,推荐接入带宽建议如下:

在线人数 广域网接入带宽(10%用户量) 局域网接入带宽(90%用户量)
0-500在线人数 >4M带宽 >100M
500-1000在线人数 >8M带宽 >1G
1000-2000在线人数 >15M带宽 >1G
2000-3000在线人数 >25M带宽 >1G
3000-5000在线人数 >40M带宽 >1G

带宽要求与上传、下载附件大小有密切关系,若客户存在大量广域网使用场景,在线人数高或者涉及大量的附件上传下载,请根据实际情况增加带宽。

# 客户端带宽要求

客户端接入协同服务所需带宽建议如下:

类型 广域网接入带宽 局域网接入带宽
最低带宽 5M 50M
推荐带宽 10M 100M

# 数据库准备

# 数据库通用要求

必须安装64位数据库;

数据库名称请以英文字母开头,不建议使用数字或其他符号作为数据库名称的首字符;

名称禁止使用系统数据库关键字,比如mysql、temp,推荐字母开头,纯字母或者字母加数字的数据库名称,如seeyonoa、seeyondb、oav8x

数据库类型为Oracle,用户名禁止使用sys、system等系统数据库用户名

数据库名称中请不要使用特殊符号,如#、$、@、小数点等特殊字符;

数据库的密码不能小于6位,建议字符数字混合;

做好数据库安全管理,不要将数据库连接信息暴露在广域网。

# MySQL数据库注意事项

1、不支持读写分离,高可用可以用主备模式

2、数据引擎要求为InnoDB:确保MySQL配置文件[mysqld]项包含default-storage-engine=INNODB参数配置

3、MySQL5.7或以上版本支持使用utf8mb4字符集,也支持沿用早期的utf8字符集,确保MySQL配置文件的[client]、[mysql]、[mysqld]都包含字符集配置:

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4

4、要求不区分表/字段大小写:确保MySQL配置文件[mysqld]项包含lower_case_table_names=1配置

5、全新安装部署项目,不用提前创建空库,安装程序部署过程中支持自动创建新库并导入协同SQL数据。

如人工创建空库,确保字符集对应:

  • 通过数据库工具创建新库,字符集设置utf8mb4,排序规则可默认utf8mb4_general_ci(utf8排序规则可默认utf8_general_ci)
  • 通过SQL命令创建新库,执行CREATE DATABASE 数据库名 DEFAULT CHARACTER SET UTF8MB4;

6、确保数据库最大连接数>=600:确保MySQL配置文件[mysqld]项中包含max_connections=600配置,数字600可以调大

7、确保数据库事务隔离级别为READ-COMMITTED:确保MySQL配置文件[mysqld]项中包含transaction-isolation = READ-COMMITTED配置

8、MySQL8系列时区默认为美国时区,中国用户若要正常使用,需修改mysql配置文件在[mysqld]段增加内容:default-time-zone='+8:00'

9、生产环境提高客户端和服务器之间允许的最大数据包大小,确保MySQL配置文件[mysqld]项中包含max_allowed_packet=64M配置

10、非常重要:给数据库申请足够的内存资源,MySQL配置文件[mysqld]项中包含innodb_buffer_pool_size=8G配置,其中8G是数据库最大占用内存,建议将服务器50%~70%的内存分配给MySQL数据库

11、原则数据库由客户提供并维护,如需要自主部署MySQL可参考如下部署手册:

  • MySQL8.0数据库部署-Windows: https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI4OA==

  • MySQL8.0数据库安装部署-Linux系统: https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI4Nw==

# Oracle数据库注意事项

原则数据库由客户提供并维护,如项目组承担数据库基础维护工作,注意参考章节注意事项进行相关操作。

# Oracle数据库准备事项

1、若使用Oracle11g推荐安装11.2.0.4版本;切勿使用Oracle 11.2.0.3及更早版本,该版本在进行流式批量更新操作LOB数据存在BUG。

2、若使用Oracle12c推荐安装12.2.0.1版本;切勿使用Oracle 12.1.0.2数据库版本,该版本在进行流式批量更新操作LOB数据存在BUG。

已收录于Oracle Bug 19703301 ORA-22275 "invalid lob locator specified" if fix for bug 1404426 (opens new window)

3、协同管理软件要求Oracle数据库实例的字符集必须选择Unicode(AL32UTF8)编码方式,连接模式"专用服务器":

4、Oracle11G及后续版本需调整参数aq_tm_processes1,调整示例:

-- 执行SQL
alter system set aq_tm_processes=1 scope=both;

5、Oracle11G R2及后续版本需调整参数deferred_segment_creationfalse,调整示例:

-- 执行SQL
alter system set deferred_segment_creation=false scope=spfile;

6、创建数据库实例后,再创建存储协同数据的表空间。参考SQL脚本(其中V3XSPACE为表空间名,加粗示例内容可修改):

CREATE SMALLFILE TABLESPACE V3XSPACE DATAFILE 'D:\V3XSPACE.DBF' SIZE 30720M AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

7、Oracle单个数据文件默认最大为32G,若数据量增长超过32G,需为表空间增加数据文件。参考SQL脚本(其中V3XSPACE为表空间名,加粗示例内容可修改):

alter tablespace V3XSPACE add datafile 'D:\V3XSPACE01.DBF' size 30720M AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED;

8、新建数据库用户,参考SQL脚本(加粗示例内容可修改):

CREATE USER V3XUSER PROFILE DEFAULT IDENTIFIED BY Seeyon123456 DEFAULT TABLESPACE V3XSPACE TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK ;

-- 上一条执行完成,再执行下一条

GRANT CREATE VIEW,ALTER SESSION,CONNECT,RESOURCE,UNLIMITED TABLESPACE TO V3XUSER;

# 协同安装部署后检查事项(Oracle)

在完成Oracle部署、创建表空间、用户、授权之后,才能进行协同的安装部署,安装程序会自动向数据库写入SQL,自动向中间件放置Oracle所依赖的驱动jar。

在完成协同服务安装部署之后,做如下的配置检查:

1、检查ApacheJetspeed/lib目录下Oracle数据库驱动,需要匹配Oracle数据库版本

  • Oracle Database 10g、11g数据库,驱动文件使用11.2.0.4.0版本的ojdbc6.jar
  • Oracle Database 12c数据库,驱动文件使用12.2.0.1.0版本的ojdbc8.jar、ucp.jar、oraclepki.jar、osdt_cert.jar、osdt_core.jar、ons.jar、simplefan.jar
  • Oracle Database 18c数据库,驱动文件使用18.3版本的ojdbc8.jar、ucp.jar、oraclepki.jar、osdt_cert.jar、osdt_core.jar、ons.jar、simplefan.jar
  • Oracle Database 19c数据库,驱动文件使用19.3~19.10对应版本的ojdbc8.jar、ucp.jar、oraclepki.jar、osdt_cert.jar、osdt_core.jar、ons.jar、simplefan.jar
  • ApacheJetspeed/lib下不可同时存放classes12.jar、ojdbc5.jar、ojdbc6.jar、ojdbc7.jar、ojdbc8.jar、ojdbc14.jar,仅保留匹配数据库版本的驱动文件

2、针对Oracle数据库12c以及以上版本,需在协同服务部署后的ApacheJetspeed/bin/catalina_custom.bat以及catalina_custom.sh脚本中增加以下两项jvm参数-Doracle.jdbc.useNio=false -Doracle.jdbc.javaNetNio=false

检查相关脚本文件,如不存在相关配置则增加,存在配置则忽略:

3、性能调优:调整游标数(open_cursors)、进程数(process)(推荐dba管理数据库并完成参数配置优化)

以下为单机部署11g以及以上版本参数调整举例,不适用于rac部署环境:

show parameter memory_max_target

-- 查询值推荐为0

alter system set memory_max_target=0 scope=spfile;

show parameter memory_target

-- 查询值推荐为0

alter system set memory_target=0 scope=spfile;

show parameter sga_max_size

-- 根据以上公式设置sga的值,以下举例16G

alter system set sga_max_size=16g scope=spfile;

show parameter sga_target

-- 根据以上公式设置sga的值,以下举例16G

alter system set sga_target=16g scope=spfile;

show parameter pga_aggregate_target

-- 根据以上公式设置pga的值,以下举例4G

alter system set pga_aggregate_target=4g scope=spfile;

查看各参数:

show parameter processes;
show parameter sessions;
show parameter open_cursors;

配置初始值参考:

alter system set processes=1000 scope=spfile;
alter system set open_cursors=1000 scope=spfile;
alter system set undo_retention=10800 scope=both;
-- 建议redo日志6组,单个日志由默认50M调整为2048M

img

重启数据库服务,并重新检查游标数、连接数和进程数生效情况。

shutdown immediate
-- 正常停止服务以后再启动
startup 

参数调整指标参考:

在线人数 物理内存 Process sessions SGA(MAX) PGA 系统临时表空间TEMP
200以下 >=8G 150 170 >=4.4G 800M~2G 6G
200~500 >=16G 300 335 >=8.8G 2G~3G >=8G
500~1000 >=32G 800 885 >=16G 3G~4G >=10G
1000~2000 >=48G 1000 1105 >=30G 7G~8G >=20G
2000~3000 >=64G 1500 1655 >=40G 10G~20G >=30G

指标说明:

  • SGA自动调整参数有 : DB_*K_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE

  • PGA大小配置为专属服务器物理内存80%*20%

  • SGA大小配置为专属服务器物理内存80%*80%

  • sessions=1.1*process+5

  • 注意同步在产品应用配置器中修改产品连接池参数

# SQLServer数据库注意事项

原则数据库由客户提供并维护,如项目组承担数据库基础维护工作,注意参考章节注意事项进行相关操作。

# SQLServer数据库准备事项

1、Sqlserver数据库按服务器方式安装,选择"服务器组件、工具、联机丛书和示例(C)"。

2、安装后,如启用了Windows身份验证,可选择“Windows身份验证”登录数据库:

1722309861963.png

如未启动,可选择“SQL Server 身份验证”,通过输入sa用户的密码登录数据库:

1722309846978.png

3、登录SQLServer后,需要新建一个数据库空库给协同使用:

  • 数据库排序规则必须选择Chinese_PRC_90_CI_AI

  • 恢复模式推荐设置为简单,避免数据库日志文件增长过大增长过快的问题; 但是注意此设置导致数据库无法自动从故障恢复到最近可用时间点,可以配合sqlserver代理服务设置数据库每天定时备份,以此保证数据可从故障恢复(最近一次备份)

  • 系统数据库tempdb数据库文件初始大小在1024M以上,自动增长增量设置64M;

  • 协同数据库的数据文件、日志文件设置自动增长,增量为固定值( 比如64M ),不能是百分比;文件存储路径所在磁盘分区建议保留10G左右磁盘空间被其它文件占用,若出现日志文件耗尽磁盘空间可以剪切这部分文件,做日志收缩处理

4、以上完成后,将协同数据库的READ_COMMITTED_SNAPSHOT参数开启(启用乐观读提交事务隔离级别):

确保无其它用户连接协同数据库的情况下,在master数据库中执行以下SQL:

ALTER DATABASE 协同数据库名称 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

ALTER DATABASE 协同数据库名称 SET READ_COMMITTED_SNAPSHOT ON;

ALTER DATABASE 协同数据库名称 SET MULTI_USER;

通过如下SQL检查设置是否生效: 查出来的值1为开启生效,0为未开启。

select is_read_committed_snapshot_on from sys.databases where name='协同数据库名称';

# SQLServer数据库调优事项

1、 数据库内存调优(建议在初始安装部署时配置): 设置数据库最大服务器内存,SQLServer独占服务器场景下,建议配置物理服务器60%~80%的内存

以下图为例,4096MB表示占用4096÷1024=4G内存:

2、 数据库调优:数据库索引碎片处理(日常维护阶段使用)。 系统持续使用过程中,索引碎片率会逐渐上升,到达一定阈值会导致数据库性能降低,建议定期观察高频使用表的索引碎片占用,并及时进行重建。

SQL Server Management Studio (SSMS) 连接数据库以后,展开数据库,展开ctp_affair表的索引,右键某条索引属性可查看其碎片:若ctp_affair表索引碎片超过90%,需要备份数据库之后重建整个数据库所有索引:索引右键重新生成或者执行重建索引存储过程。

存储过程sql如下(也可以将重建索引设置成定时任务,每隔2个月在最低在线用户时间段进行自动重建):

IF OBJECT_ID('REBUILD_ALL_INDEX_FOR_MSSQL') IS NOT NULL DROP PROC REBUILD_ALL_INDEX_FOR_MSSQL;

go

CREATE PROCEDURE [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL]
AS
  DECLARE @tablename varchar(100);
  DECLARE @indexname varchar(300);
BEGIN
  print 'REBUILD_ALL_INDEX_FOR_MSSQL - 20190427.1'
  print ' '
  declare _table cursor for select name from sysobjects where xtype='U' order by name
  OPEN _table
  fetch next from _table into @tablename
  while (@@fetch_status=0)
  begin

    declare _index cursor for select i.name from sysindexes i JOIN sysobjects c ON i.id = c.id WHERE i.indid NOT IN ( 0, 255 ) and i.root is not null AND c.name = @tablename ORDER BY i.name
    open _index
    fetch next from _index into @indexname
    while (@@fetch_status=0)
    begin

      print convert(varchar(20),getdate(),120)+' exec -> ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD'
      exec('ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD')
      print convert(varchar(20),getdate(),120)
      print ' '

    fetch next from _index into @indexname
    end
    close _index
    deallocate _index

  fetch next from _table into @tablename
  end
  close _table
  deallocate _table
END

go

EXEC [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL];

go

3、 数据库调优:数据库日志收缩(日常维护阶段使用)。 SQL Server 数据库日志收缩(Log Shrinking)是指减少事务日志文件的大小的过程。事务日志文件用于记录数据库的所有事务操作,包括插入、更新、删除等。日志收缩的主要目的是释放未使用的日志空间,从而节省磁盘空间。

SQL Server Management Studio (SSMS) 连接数据库以后,查看数据库属性,如果日志文件占用磁盘空间很大,如50G或者以上,需要进行日志收缩。详细步骤如下:

  • 停止V5各项服务,备份数据库,重启数据库服务,这时不启动V5各项服务;

  • SQL Server Management Studio,展开数据库,V5数据库右键属性,选项,恢复模式,由完整更改为简单;

  • V5数据库右键,任务,收缩,文件,文件类型由数据更改为日志,点击确定进行日志收缩;

  • SQL Server Management Studio,展开数据库,V5数据库右键属性,选项,恢复模式,由简单更改为完整。

# SQLServer修改排序规则为Chinese_PRC_90_CI_AI

标准产品需要使用Chinese_PRC_90_CI_AI排序规则,如V5老版本未采用要求的排序规则会被拒绝升级,项目上需要手动调整为Chinese_PRC_90_CI_AI排序规则。

img

修改排序规则详细操作见“修改SqlServer数据库排序规则为Chinese_PRC_90_CI_AI”在线文档 https://open.seeyoncloud.com/#/faq/faq/v1/share?url=Z2JySmU+Nzgz

# PostgreSQL数据库注意事项

PostgreSQL是轻量级开源数据库,A6安装程序默认内置了PostgreSQL数据库安装包,(如选择使用PostgreSQL)在进行协同服务部署过程中会自动安装PostgreSQL。

# PostgreSQL安装前准备事项

在进行自动安装前,需要做如下准备:

1、如果选用Windows操作系统,选用A6产品PostgreSQL数据库,请更新Windows Server 2012 R2(或者更高版本微软操作系统)的所有补丁,重启服务器以后再部署最新的 Microsoft Visual C++组件(下载地址https://support.microsoft.com/zh-cn/topic/最新支持的-visual-c-下载-2647da03-1eea-4433-9aff-95f26a218cc0)。

img

2、如果选用Linux操作系统,选用A6产品PostgreSQL数据库,请升级glibc版本至2.17再进行协同管理系统安装部署。

ldd --version命令来看glibc版本

# PostgreSQL安装后日常维护

1、PostgreSQL数据库在产品安装时将自动安装,安装后Windows下在产品根目录的pgsql13.3文件夹中,Linux在用户选择的自定义文件夹中,如/usr/local/pgsql13.3。

默认安装的PostgreSQL服务信息如下:

数据库名:seeyon

用户名:postgres

密码:postgres

安装时,可以在数据库设置面板设置密码,安装后将自动修改。

安装后,也可以在PostgreSQL数据库的系统库(postgres)中执行以下sql对预置用户的密码进行修改:alter user postgres with password '新的密码';

注意:

  • 修改密码后,需要通过协同系统配置工具,修改产品连接数据库的密码;S1中也需要同步修改数据库连接密码避免账号被锁定!

2、Windows下产品安装后将注册SeeyonPostgreSQL13.3服务,可以通过此服务项启动/停止服务,如图:

img

3、Linux下可以使用pgsql13.3/bin下的zz_start.sh(启动)、zz_shutdown.sh(停止)。

# PostgreSQL远程连接配置

PostgreSQL安装后默认仅允许本地连接,若需远程连接,则需对PostgreSQL的配置文件做如下修改:

修改【PostgreSQL主目录】\data\pg_hba.conf文件,修改或者增加如下内容:

1664273621729.png

修改【PostgreSQL主目录】\data\postgresql.conf:

listen_addresses = '*'

配置文件修改后,重启数据库服务以使配置文件生效,即可允许PostgreSQL远程连接。

# PostgreSQL参数调优

PostgreSQL配置参数位于【PostgreSQL主目录】\data\postgresql.conf文件中。对于性能优化,建议调整shared_buffers的值,取消此参数行首的注释符号#。

若配置文件中无此参数,则追加此参数:

# 建议此值设置为4G或者以上
shared_buffers = 4096MB

# 最大连接数建议设置为600
max_connections = 600
编撰人:tenghc、het