# 致远协同管理软件服务器环境准备
# 前言
本手册对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人以下)
- 资源成本需求低(服务器台数和硬件配置都要求较小)
- 运维操作门槛低
# 集群部署模式
集群部署模式,为了提升高并发用户在线体验,将协同服务部署成集群,通过负载来实现请求分发,分担服务器压力。集群模式下,为保证缓存一致性,需要部署Redis服务。
- 面向中大型客户(同时在线1000人以上)
- 满足高性能、协同服务高可用部署要求,资源成本可控
- 易于运维维护
# 高可用集群部署模式
如果客户有完全高可用要求,产品也提供了高可用部署方案,协同应用、Redis、全文检索、音视频等都有对应的高可用解决方案。
- 面向可用性要求高的客户
- 满足高性能、高可用部署要求
- 对服务器资源有一定要求,服务运维数量较多
共享存储和数据库的高可用不在本产品支持范围,需要寻找专业厂商的方案支持。
# 服务器注意事项
- 服务器配置通常是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_processes为1,调整示例:
-- 执行SQL
alter system set aq_tm_processes=1 scope=both;
5、Oracle11G R2及后续版本需调整参数deferred_segment_creation为false,调整示例:
-- 执行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
重启数据库服务,并重新检查游标数、连接数和进程数生效情况。
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身份验证”登录数据库:
如未启动,可选择“SQL Server 身份验证”,通过输入sa用户的密码登录数据库:
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排序规则。
修改排序规则详细操作见“修改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
)。
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服务,可以通过此服务项启动/停止服务,如图:
3、Linux下可以使用pgsql13.3/bin下的zz_start.sh(启动)、zz_shutdown.sh(停止)。
# PostgreSQL远程连接配置
PostgreSQL安装后默认仅允许本地连接,若需远程连接,则需对PostgreSQL的配置文件做如下修改:
修改【PostgreSQL主目录】\data\pg_hba.conf文件,修改或者增加如下内容:
修改【PostgreSQL主目录】\data\postgresql.conf:
listen_addresses = '*'
配置文件修改后,重启数据库服务以使配置文件生效,即可允许PostgreSQL远程连接。
# PostgreSQL参数调优
PostgreSQL配置参数位于【PostgreSQL主目录】\data\postgresql.conf文件中。对于性能优化,建议调整shared_buffers的值,取消此参数行首的注释符号#。
若配置文件中无此参数,则追加此参数:
# 建议此值设置为4G或者以上
shared_buffers = 4096MB
# 最大连接数建议设置为600
max_connections = 600
