# 致远协同管理软件数据库部署准备

北京致远互联软件股份有限公司 2023年11月

前言

本手册对V8.2SP1版本协同管理系统的数据库部署准备相关事宜进行说明。

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

数据库部署配置说明

  • 必须安装64位数据库;

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

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

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

  • 在安装协同管理软件产品前,请先完成数据库服务的安装及配置;

  • 数据库服务器硬件要求参考《服务器环境准备》手册中并发在线对应硬件配置要求;

  • 并发用户数小于200,单台服务器集中部署协同服务、数据库服务、音视频服务、全文检索服务、OfficeTrans在线转换服务、S1Agent服务、nginx服务场景下,服务器配置参考:

1664273086864.png

注:除非数据库版本特殊要求,服务器要求参考如上表格。

# 1.1 MySQL数据库安装及参数配置要点

# 1.1.1 注意事项

MySQL服务要求主要有以下几点(可以在MySQL配置文件中对其进行设置):

  • MySQL的配置文件

Windows下为my.ini文件,Linux系统为my.cnf文件。

  • 数据引擎要求为InnoDB

检查MySQL配置文件的[mysqld]项中default-storage-engine值,检查是否为InnoDB,若不是则调整为InnoDB;

  • 字符集要求为utf8

检查MySQL配置文件的[client]、[mysql]项中default-character-set值,以及[mysqld]项中character-set-server值是否为utf8,若不是则调整为utf8;

若MySQL配置文件不存在[client]、[mysql]项,请在配置文件最开始添加,如图:

1623567637(1)

若使用utf8mb4字符集,请使用mysql5.7或以上版本。

  • 要求不区分表/字段大小写

检查MySQL配置文件[mysqld]项中是否包含lower_case_table_names=1,不包含则添加,包含则保证其值为1;

  • 安装程序自动创建数据库

可在产品安装的数据库设置界面指定数据库名,将自动创建对应名称的数据库;

# 1.1.2 Windows下安装MySQL8.0

  • 如果选用Windows操作系统,选用MySQL8.0版本数据库,请更新Windows Server 2012 R2(或者更高版本微软操作系统)的所有补丁,重启服务器以后再部署Microsoft Visual C++ 2015-2019组件。

https://support.microsoft.com/zh-cn/topic/最新支持的-visual-c-下载-2647da03-1eea-4433-9aff-95f26a218cc0 (opens new window)

1)下载最新版本MySQL Community Server数据库zip文件,以8.0.26版本举例:

https://dev.mysql.com/downloads/mysql/ (opens new window)

解压下载的mysql-8.0.26-winx64.zip文件至E盘,解压后目录结构如图:

QQ截图20210911223109

2)新建E:\mysql-8.0.26-winx64\my.ini文件,文件内容如下:

[client]

# 不推荐使用默认端口3306

port=3308

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 不推荐使用默认端口3306

port=3308

# 绝对路径依据实际情况修改

basedir="E:/mysql-8.0.26-winx64/"

datadir="E:/mysql-8.0.26-winx64/data/"

log-output=FILE

general-log=0

general_log_file="seeyon-mysql-8.0-general.log"

slow-query-log=1

slow_query_log_file="seeyon-mysql-8.0-slow.log"

long_query_time=10

# Error Logging.

log-error="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

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

注意:如果使用记事本编辑保存,请另存为,设置编码ANSI。

QQ截图20210911224002

3)开始菜单,找到命令提示符,以管理员身份运行,执行命令cd /d E:\mysql-8.0.26-winx64\bin切换路径

初始化数据库,执行命令mysqld --initialize --console,记住生成的随机密码

注册Windows服务,执行命令

mysqld.exe --install MySQL8.0 --defaults-file="E:\mysql-8.0.26-winx64\my.ini"

成功则提示Service successfully installed.

4)创建E:\mysql-8.0.26-winx64\data\temp目录,修改my.ini文件解除注释(去掉行首的#)

tmpdir="E:/mysql-8.0.26-winx64/data/temp/"

5)启动MySQL8.0服务

6)使用mysql命令行登录数据库修改root密码(需要初始化数据库生成的随机密码,以下举例供参考,以实际密码为准)

cd /d E:\mysql-8.0.26-winx64\bin

mysql -uroot -P3308 -p

root新密码设置为newpwd654321

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpwd654321';

flush privileges;

创建seeyon账号设置密码为oapwd654321,允许协同服务器10.3.4.239远程访问数据库

create user 'seeyon'@'10.3.4.239' identified by 'oapwd654321';
flush privileges;
grant all privileges on *.* to 'seeyon'@'10.3.4.239';
flush privileges;

如果允许所有服务器通过seeyon账号远程访问数据库,则执行

create user 'seeyon'@'%' identified by 'oapwd654321';

flush privileges;

grant all privileges on *.* to 'seeyon'@'%';

flush privileges;

7)创建V8X数据库命令示例:CREATE DATABASE V8X DEFAULT CHARACTER SET UTF8MB4;

8)操作系统防火墙中添加数据库端口(本例中是3308)允许访问策略。

# 1.1.3 Linux下安装MySQL8.0

说明:本文档是在CentOS7.6操作系统上安装MySQL8.0.26,适用于但不限于以下操作系统Redhat7.x、CentOS7.x。

https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html (opens new window)

软件下载,以mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz举例。

https://dev.mysql.com/downloads/mysql/ (opens new window)

Select Operating System:

Linux - Generic

Select OS Version:

Linux - Generic (glibc 2.12) (x86, 64-bit)

1)环境检查

  • 检查操作系统版本,64位CentOS7

[root@localhost ~]# cat /etc/system-release

CentOS Linux release 7.6.1810 (Core)

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

[root@localhost ~]# getconf LONG_BIT

64

[root@localhost ~]# uname -a

Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

  • 检查glibc版本,至少为2.12版本

[root@localhost ~]# ldd --version

ldd (GNU libc) 2.17

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

由 Roland McGrath 和 Ulrich Drepper 编写。

  • 安装依赖yum -y install libaio perl perl-devel

MySQL has a dependency on the libaio library. Data directory initialization and subsequent server startup steps fail if this library is not installed locally. If necessary, install it using the appropriate package manager. For example, on Yum-based systems:

  • 卸载已安装的MySQL、mariadb

    注意:操作之前一定得到确认,是否数据库在用,是否存在数据

rpm -qa | grep -i mysql

systemctl stop mariadb

rpm -qa | grep -i mariadb

卸载查询结果出现的包,举例:

rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64

rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64

rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

You should also check for configuration files such as /etc/my.cnf or the /etc/mysql directory and delete them.

  • 检查/etc/my.cnf文件以及/etc/mysql目录是否已存在,备份后删除

    注意:操作之前一定得到确认,是否数据库在用,是否存在数据

  • 检查可用内存,swap分区、磁盘空间(后续步骤将数据目录配置在磁盘空间较大的分区或者挂载)

[root@localhost app]# free -g

total used free shared buff/cache available

Mem: 4 0 3 0 0 4

Swap: 1 0 1

[root@localhost app]# df -Th

文件系统 类型 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root xfs 37G 6.4G 31G 18% /

devtmpfs devtmpfs 2.4G 0 2.4G 0% /dev

tmpfs tmpfs 2.4G 0 2.4G 0% /dev/shm

tmpfs tmpfs 2.4G 12M 2.4G 1% /run

tmpfs tmpfs 2.4G 0 2.4G 0% /sys/fs/cgroup

/dev/sda1 xfs 1014M 146M 869M 15% /boot

tmpfs tmpfs 478M 0 478M 0% /run/user/0

2)安装配置

  • 创建/mysql/data目录,上传mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz至/mysql目录下

mkdir -p /mysql/data mkdir -p /mysql/log

  • 创建组以及用户

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

查看用户

id mysql

  • 解压tar.xz包至/usr/local目录下
cd /usr/local/
tar -xvf /mysql/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql /mysql
chown -R mysql:mysql /usr/local/mysql

  • 创建/etc/my.cnf文件,内容如下

# For advice on how to change settings please see

# https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[client]

# 不推荐使用默认端口3306

port=3308

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 不推荐使用默认端口3306

port=3308
# 绝对路径依据实际情况修改

basedir=/usr/local/mysql/

datadir=/mysql/data/

tmpdir=/mysql/log/temp/

socket=/tmp/mysql.sock

pid-file=/mysql/log/seeyon.mysql.pid

# General and Slow logging.

log-output=FILE

general-log=0

general_log_file=/mysql/log/seeyon-mysql-8.0-general.log

slow-query-log=1

slow_query_log_file=/mysql/log/seeyon-mysql-8.0-slow.log

long_query_time=10

# Error Logging.

log-error=/mysql/log/seeyon-mysql-8.0.err

# Remove leading \# to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

# 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


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
  • 初始化数据库,记住生成的随机密码,本例中随机密码为nyLoYtdd2D.E
chown mysql:mysql /etc/my.cnf

cd /usr/local/mysql/bin

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/mysql/data/ --user=mysql --initialize

cat /mysql/log/seeyon-mysql-8.0.err

  • 配置mysqld服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld

编辑其中最开始的

basedir=

datadir=

修改为

basedir=/usr/local/mysql/

datadir=/mysql/data/

保存

  • 启动mysqld服务

[root@localhost bin]# service mysqld start

Starting MySQL... SUCCESS!

[root@localhost bin]#

  • 使用mysql命令行登录数据库修改root密码

需要初始化数据库生成的随机密码,以下举例供参考,以实际密码为准

cd /usr/local/mysql/bin/

./mysql -uroot -P3308 -p'nyLoYtdd2D.E'

root新密码设置为newpwd654321

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpwd654321';

flush privileges;

  • 创建seeyon账号用于协同管理软件数据库安装

创建seeyon账号设置密码为oapwd654321,允许协同服务器10.3.4.239远程访问数据库

create user 'seeyon'@'10.3.4.239' identified by 'oapwd654321';

flush privileges;

grant all privileges on *.* to 'seeyon'@'10.3.4.239';

flush privileges;

如果允许所有服务器通过seeyon账号远程访问数据库,则执行


create user 'seeyon'@'%' identified by 'oapwd654321';

flush privileges;

grant all privileges on *.* to 'seeyon'@'%';

flush privileges;

  • 创建V8X数据库用于协同管理软件数据库安装

CREATE DATABASE V8X DEFAULT CHARACTER SET UTF8MB4;

  • 操作系统防火墙中添加数据库端口(本例中是3308)允许访问策略。
systemctl start firewalld

firewall-cmd \--zone=public \--add-port=3308/tcp \--permanent

firewall-cmd \--reload

firewall-cmd \--list-all

  • 数据库服务启动命令以及停止命令分别为

service mysqld start

service mysqld stop

# 1.1.4 参数调优

  • MySQL数据库参数调优,主要为配置文件中参数的调整;MySQL的配置文件在Windows下为my.ini文件,在Linux下为my.cnf文件。

  • 修改MySQL事务隔离级别,在MySQL配置文件的[mysqld]段增加参数:

transaction-isolation = READ-COMMITTED

  • 以下说明InnoDB引擎的在内存优化方面的两个重要参数

    • innodb_buffer_pool_size:此参数主要为设置缓存InnoDB表的索引、数据、插入数据时的缓存大小。若MySQL为专用服务器,则此参数最大值可以设置为内存的70%~80%。此参数不会动态修改,在数据量较小的情况下,可以设置为数据大小+10%左右的值,如数据大小500M,则可以设置此值为550M;

    • innodb_additional_mem_pool_size:MySQL5.5或者以下版本需要设置此参数。此参数为控制除索引、数据外的InnoDB内部目录的大小,通常设置256M,根据表数量的增加(协同在运行期间随表单量的增加,表数量会增加),适当增大。

  • 参数配置中另一参数:max_connections为控制数据库连接数的参数,在调整协同应用配置器中数据库连接数时需要同步调整此参数。推荐max_connections=600

  • 在MySQL配置文件的[mysqld]段增加参数:max_allowed_packet=64M

# 1.1.5 其它配置

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

  • MySQL5.7或者以上版本,设置数据库日志时间匹配系统时区,在[mysqld]段增加内容:

    log_timestamps=system

# 1.2 Oracle数据库安装及参数配置要点

# 1.2.1 数据库安装

  • 支持Oracle10G的10.2.0.1.0版及以上版本;

  • 若使用Oracle10g推荐安装10.2.0.4、10.2.0.6;

  • 若使用Oracle11g推荐安装11.2.0.4版本;

  • 若使用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 14044260 present

    https://support.oracle.com/knowledge/Oracle Database Products/2015052_1.html (opens new window)

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

  • Oracle10G及后续版本需调整参数aq_tm_processes1,调整示例:

Sql> alter system set aq_tm_processes=1 scope=both;


  • Oracle11GR2及后续版本需调整参数deferred_segment_creationfalse,调整示例:

Sql> alter system set deferred_segment_creation=false scope=spfile;


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

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

**注:**Oracle单个数据文件默认最大为32G,若数据量增长超过32G,需为表空间增加数据文件。参考SQL脚本:

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

  • 新建协同数据库用户,参考SQL脚本:
Sql> CREATE USER V3XUSER PROFILE DEFAULT IDENTIFIED BY Seeyon123456 DEFAULT TABLESPACE V3XSPACE TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK ;
Sql> GRANT CREATE VIEW,ALTER SESSION,CONNECT,RESOURCE,UNLIMITED TABLESPACE TO V3XUSER;

# 1.2.2 客户端安装

协同服务连接Oracle数据库,可选择在应用服务器上安装Oracle客户端。配置过程:

  • 在Oracle客户端软件安装完成后,也可用netca命令打开配置窗口。

  • 【服务名】协同用户所在的数据库的全局数据库名,点击【下一步】。

  • 选择网络协议"TCP",点击【下一步】。

  • 【主机名】数据库服务器的IP地址,点击【下一步】。

  • 进行连接测试,选择:是,进行测试,点击【下一步】。

  • 如果连接不成功窗口,出现以下窗口,可通过【更改登录】修改正确的用户名和密码,重新进行连接测试。

  • 测试成功将显示"正在连接...测试成功"。

  • 最后出现如下页面,点击【完成】,客户端配置结束。

# 1.2.3 参数配置

  • Oracle数据库驱动配置

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

    • 移除不匹配的classes12.jar、ojdbc6.jar、ojdbc8.jar、ojdbc14.jar

    • 放入匹配Oracle数据库版本号的ojdbc6.jar、ojdbc8.jar、ucp.jar、oraclepki.jar、osdt_cert.jar、osdt_core.jar、ons.jar、simplefan.jar

    • 匹配规则:

    • 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,仅保留匹配数据库版本的驱动文件。

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


-Doracle.jdbc.useNio=false -Doracle.jdbc.javaNetNio=false


  • 调整游标数(open_cursors)、进程数(process)

  • 推荐dba管理数据库并完成参数配置优化

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

  • 查看各参数:

sql> show parameter processes;
sql> show parameter sessions;
sql> show parameter open_cursors;
  • 配置初始值参考:
sql> alter system set processes=1000 scope=spfile;
sql> alter system set open_cursors=1000 scope=spfile;

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

sql> shutdown immediate
#正常停止服务以后再启动
sql> startup 

参数调整指标参考 1664273517637.png

说明:

  • 8G+ 表示8G或者8G以上;

  • SGA自动调整参数有: DB_*K_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE。oracle9i在32位操作系统中最大可管理1.7G内存.oracle10G在32位操作系统最大可管理2.5G;

  • PGA约为每个用户约占用10%的物理内存;PGA总和约为物理内存的(16%-40%);

  • SGA_target = 物理服务器内存*(55%-75%);

  • sessions=(1.1*process+5);

  • 需要同步在产品应用配置器中修改产品连接池参数。

# 1.3 PostgreSQL数据库安装及参数配置要点

# 1.3.1 安装说明

  • 如果选用Windows操作系统,选用A6产品PostgreSQL数据库,请更新Windows Server 2012 R2(或者更高版本微软操作系统)的所有补丁,重启服务器以后再部署Microsoft Visual C++ 2015-2019组件。

https://support.microsoft.com/zh-cn/topic/最新支持的-visual-c-下载-2647da03-1eea-4433-9aff-95f26a218cc0 (opens new window)

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

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

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

数据库名:seeyon

用户名:postgres

密码:postgres

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

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

注意:

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

# 1.3.2 启动/停止说明

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

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

# 1.3.3 远程连接配置

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

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

1664273621729.png

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

listen_addresses = '*'

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

# 1.3.4 参数调优

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

若配置文件中无此参数,则追加此参数。建议此值设置为4G或者以上:

shared_buffers = 4096MB

最大连接数建议设置为600:

max_connections = 600

# 1.4 SQL Server数据库安装及参数配置要点

# 1.4.1 数据库安装

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

  • 服务账户选择:使用内置系统账户,本地系统。

【12】

  • 身份验证模式选择: 混合模式(Windows身份验证和SQL Server 身份验证)。

  • SA用户的密码必须设置:

【13】

# 1.4.2 参数配置

  • 新建数据库,数据库排序规则选择:Chinese_PRC_90_CI_AI

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

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

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

  • 将协同数据库的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;

**检查设置是否生效:**查出来的值1为开启生效,0为未开启。

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

  • 数据库最大服务器内存

如果SQLserver数据库和协同服务集中部署,必须设置数据库使用的最大内存:

最大内存 = 服务器物理内存*60% - 其它各项服务JVM配置内存总和

以下截图中4096为修改参考,具体值根据以上公式计算

  • 数据库索引碎片处理

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

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 'Challenge Your Won, Challengy Won'
  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
  • 数据库日志收缩

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

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

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

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

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

  • SQLServer的TCP/IP服务需启动、动态端口功能需关闭,图示:

启用动态端口将TCP Dynamic Ports设置为"0",设置为空,则停用动态端口功能;

创建人:zhangshuang
修改人:zhengkejie、zhangshuang