本文介绍在银河麒麟 V11 Server 版上安装系统运行环境的完整步骤,包括 JDK 1.8、东方通 TongWeb、TiDB 和 Nginx。请先完成系统安装和磁盘挂载(参见 [麒麟 V11 Server 版安装教程](/2026/05/11/麒麟 V11 Server 版安装教程))。

1. 创建安装目录

如果已挂载独立数据盘,使用 /data 路径;否则使用 /opt 路径。以下以 /data 为例。

1
2
3
mkdir -p /data/install
mkdir -p /data/software
cd /data/install

2. 上传安装包

将以下安装包上传至 /data/install 目录:

软件 文件名示例 说明
JDK 1.8 jdk-8u281-linux-aarch64.tar.gzjdk-8u281-linux-x64.tar.gz 根据 CPU 架构选择 arm64 或 x64 版本
东方通 TongWeb TongWeb7.0.4.9_M10_Enterprise_Linux.tar.gz 国产应用服务器,需提前获取授权和 license 文件
TiDB 在线安装 分布式 HTAP 数据库,PingCAP 出品
Nginx 在线安装 Web 服务器 / 反向代理

3. 确认系统架构

1
uname -m
  • aarch64 → ARM 架构(如飞腾、鲲鹏处理器)
  • x86_64 → x64 架构(如 Intel、AMD 处理器)

一、安装 JDK 1.8

1. 解压安装

1
2
cd /data/install
tar -zxvf jdk-8u281-linux-x64.tar.gz -C /data/software/

2. 配置环境变量

1
vi /etc/profile

写入以下内容:

1
2
3
4
export JAVA_HOME=/data/software/jdk1.8.0_281
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

3. 生效并验证

1
2
source /etc/profile
java -version

如果系统之前已安装 OpenJDK,需要替换默认 java:

1
2
3
4
alternatives --install /usr/bin/java java /data/software/jdk1.8/bin/java 2000
alternatives --install /usr/bin/javac javac /data/software/jdk1.8/bin/javac 2000
alternatives --set java /data/software/jdk1.8/bin/java
alternatives --set javac /data/software/jdk1.8/bin/javac

在线安装 JDK 1.8(如系统源中有):

1
yum install java-1.8.0-openjdk -y

二、安装东方通 TongWeb

1. 解压安装

TongWeb 7.0.4.9 为绿色压缩包,直接解压即可:

1
2
cd /data/software
tar -zxvf TongWeb7.0.4.9_M10_Enterprise_Linux.tar.gz

解压后目录通常名为 TongWeb7.0.4.9_M10_Enterprise_Linux,为方便后续管理,可以建立软链接或重命名:

1
2
cd /data/software
mv TongWeb7.0.4.9_M10_Enterprise_Linux tongweb

2. 安装 License

将官方提供的 license.dat 文件放置到 tongweb 跟目录下
license

3. 配置环境变量

1
vi /etc/profile

在文件末尾追加:

1
2
export TONGWEB_HOME=/data/software/tongweb
export PATH=$TONGWEB_HOME/bin:$PATH

生效配置:

1
source /etc/profile

4. 调整 JVM 参数(可选)

编辑 TongWeb 启动脚本,根据服务器实际内存调整 JVM 参数:

1
vi $TONGWEB_HOME/bin/startserver.sh

找到 JAVA_OPTS 相关配置,建议设置:

1
JAVA_OPTS="-Xms512m -Xmx2048m -XX:+UseG1GC"

生产环境建议 -Xmx 设置为服务器可用内存的 50%~70%。

5. 启动 TongWeb

1
2
cd $TONGWEB_HOME/bin
./startserver.sh &

或使用 nohup 后台运行:

1
nohup ./startserver.sh > tongweb.log 2>&1 &

start
启动成功后,TongWeb 管理控制台默认地址:

1
http://192.168.40.18:9060/console

可以看下文档安装包里的/data/software/tongweb/doc/TongWeb_doc.zip,了解更多管理功能和配置项。
默认管理端口为 9060,应用访问端口为 8088。首次登录使用安装时设置的账号密码或默认账号 thanos/thanos123.com

首次登录,需要修改密码。用户名:thanos,密码:Thanos147.com
console

5.1 修改应用端口(可选)

TongWeb 默认应用访问端口为 8088,如需修改,编辑 conf/tongweb.xml

1
vi $TONGWEB_HOME/conf/tongweb.xml

找到 <http-listener> 节点,修改 port 属性(例如改为 8088):

1
2
3
4
5
<!-- 修改前 -->
<http-listener name="tong-http-listener" port="8088" .../>

<!-- 修改后 -->
<http-listener name="tong-http-listener" port="18080" .../>

将所有GBK编码的文件改为UTF-8编码,避免中文乱码问题一共5个:

1
2
3
4
5
6
7
8
<web-container jsp-development="true" parameter-encoding="UTF-8" response-encoding="UTF-8" hung-thread-threshold="0" hostnameVerifier="NullHostnameVerifier">

<http-listener name="system-http-listener" port="9060" status="started" address="0.0.0.0" io-mode="nio" http2-enabled="false" ssl-enabled="false" redirect-port="443" uri-encoding="UTF-8" use-body-encoding-for-uri="false" max-parameter-count="10000" max-post-size="2097152" parse-body-methods="POST,PUT,DELETE" default-virtual-host="admin" create-time="2019-10-29 10:54:11">

<http-listener name="tong-http-listener" port="18080" io-mode="nio" redirect-port="8443" uri-encoding="UTF-8" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:11">

<http-listener name="ejb-server-listener" port="5100" status="stopped" io-mode="nio" http2-enabled="false" ssl-enabled="false" redirect-port="443" uri-encoding="UTF-8" use-body-encoding-for-uri="false" max-parameter-count="10000" max-post-size="2097152" max-swallow-size="2097152" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:12">

保存后重启 TongWeb 生效:

1
systemctl restart tongweb

需要重新启动服务。

6. 配置开机自启

1
vi /etc/systemd/system/tongweb.service

写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=TongWeb Application Server
After=network.target

[Service]
Type=simple
User=root
Group=root
Environment=JAVA_HOME=/data/software/jdk1.8.0_281
ExecStart=/data/software/tongweb/bin/startserver.sh
ExecStop=/data/software/tongweb/bin/stopserver.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

启用并启动服务:

1
2
3
4
5
systemctl daemon-reload
systemctl enable tongweb
systemctl start tongweb
systemctl restart tongweb
systemctl status tongweb

7. 部署应用

将应用 WAR 包上传到服务器,使用 TongWeb 管理控制台部署:
部署


三、安装 TiDB

TiDB 是 PingCAP 开源的分布式 HTAP 数据库,兼容 MySQL 和 PostgreSQL 协议。推荐使用官方工具 TiUP 进行部署,支持单机测试和集群生产两种模式。

TiUP 部署

1. 安装 TiUP

1
2
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source ~/.bash_profile

2. 安装 TiDB 组件

1
tiup cluster

首次运行会自动下载 cluster 组件及相关依赖。

3. 单机测试部署(开发/验证环境)

1
tiup playground --host 0.0.0.0

默认会启动一个包含 TiDB、TiKV、PD、TiFlash 等组件的单机集群。TiDB 默认监听 4000 端口。

后台运行方式:

1
tiup playground --host 0.0.0.0 --mode tikv-slim &

4. 集群生产部署

创建集群拓扑配置文件:

1
2
3
cd /data
mkdir -p /data/install
vi /data/install/topology.yaml

单机精简版拓扑(开发/验证环境,不可用于生产):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
global:
user: "root"
ssh_port: 22
deploy_dir: "/data/software/tidb-deploy"
data_dir: "/data/software/tidb-data"

pd_servers:
- host: 192.168.40.18

tidb_servers:
- host: 192.168.40.18

tikv_servers:
- host: 192.168.40.18

单机生产版拓扑(推荐):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
global:
user: "root"
ssh_port: 22
deploy_dir: "/data/software/tidb-deploy"
data_dir: "/data/software/tidb-data"

# 监控组件端口
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115

# 组件调优参数
server_configs:
tidb:
instance.tidb_slow_log_threshold: 300
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
replication.enable-placement-rules: true
replication.location-labels: ["host"]

pd_servers:
- host: 192.168.40.18

tidb_servers:
- host: 192.168.40.18

# 单机至少跑 3 个 TiKV 实例,满足 PD 副本数要求
tikv_servers:
- host: 192.168.40.18
port: 20160
status_port: 20180
config:
server.labels: { host: "logic-host-1" }
- host: 192.168.40.18
port: 20161
status_port: 20181
config:
server.labels: { host: "logic-host-2" }
- host: 192.168.40.18
port: 20162
status_port: 20182
config:
server.labels: { host: "logic-host-3" }

# Prometheus 监控
monitoring_servers:
- host: 192.168.40.18

# Grafana 可视化面板
grafana_servers:
- host: 192.168.40.18

所有 IP 替换为实际服务器地址。3 个 TiKV 实例用不同端口区分,通过 labels 标记为独立逻辑节点,满足 PD 至少 3 副本的要求。

执行部署(输入服务器密码):

1
tiup cluster deploy tidb-test v8.1.0 /data/install/topology.yaml --user root -p

启动集群:

1
2
3
tiup cluster start tidb-test
# 这个命令更多是用于部署时初始化密码,对已运行集群效果不直接
tiup cluster init-password --cluster tidb-test --password '你的新密码'

查看集群状态:

1
tiup cluster display tidb-test

5. 验证连接

1
2
3
4
5
6
7
yum install mysql -y
# 或者
yum install mariadb-server -y
# 通过 MySQL 客户端连接 TiDB
mysql -h192.168.40.18 -P4000 -u root
# 有密码
mysql -h192.168.40.18 -P4000 -u root -p

6. 管理界面访问

部署完成后,可通过浏览器访问以下管理界面:

界面 地址 默认用户名 默认密码
TiDB Dashboard http://<服务器IP>:2379/dashboard root 数据库密码
Prometheus http://<服务器IP>:9090
Grafana http://<服务器IP>:3000 admin admin

如果 TiDB 部署在远程服务器,建议通过 SSH 端口转发访问:

1
ssh -L 2379:192.168.40.18:2379 -L 9090:192.168.40.18:9090 -L 3000:192.168.40.18:3000 root@<服务器IP>

然后在本地浏览器访问 http://192.168.40.18:2379/dashboardhttp://192.168.40.18:9090http://192.168.40.18:3000


7. 配置开机自启(集群模式)

使用 TiUP 部署的集群默认已自动创建 systemd 服务,各组件会随系统启动:

1
2
3
4
# 启用 TiDB 服务
systemctl enable tidb-4000
systemctl enable tikv-20160
systemctl enable pd-2379

常用 TiUP 命令

1
2
3
4
5
6
7
8
9
10
11
12
# 查看集群列表
tiup cluster list

# 启动/停止集群
tiup cluster start tidb-test
tiup cluster stop tidb-test

# 重启集群
tiup cluster restart tidb-test

# 销毁集群
tiup cluster destroy tidb-test

新建数据库

1
2
mysql -h192.168.40.18 -P4000 -u root 
mysql -h192.168.40.18 -P4000 -u root -p
1
2
3
-- 创建数据库
CREATE DATABASE lenglian;
CREATE DATABASE db_ccoms;

导入表结构

1
2
3
4
5
6
7
8
9
10
11
use lenglian;
source /data/software/sql_init/lenglian.sql;
source /data/software/sql_init/base_setting.sql;
source /data/software/sql_init/insert.sql;
# 或者
mysql -h192.168.40.18 -P4000 -u root lenglian < /data/software/sql_init/lenglian.sql
mysql -h192.168.40.18 -P4000 -u root lenglian < /data/software/sql_init/base_setting.sql
mysql -h192.168.40.18 -P4000 -u root lenglian < /data/software/sql_init/insert.sql

use db_ccoms;
source /data/software/sql_init/db_ccoms.sql;

修改密码

1
2
3
4
5
-- 设置一个复杂点的密码,例如 'MyNewPass123!'
ALTER USER 'root'@'%' IDENTIFIED BY '你的新密码';

-- 刷新权限,使修改立即生效
FLUSH PRIVILEGES;

BR 备份与恢复

BR(Backup & Restore)是 TiDB 官方提供的物理备份恢复工具,基于 SST 文件进行备份,速度快、支持增量备份。BR 通过 TiUP 安装,支持本地目录和 S3/兼容存储作为备份目标。

1. 安装 BR

1
tiup install br

版本信息:

1
tiup br --version

2. 全量备份

备份整个集群到本地目录:

1
2
3
4
5
tiup br backup full \
--pd "192.168.40.18:2379" \
--storage "local:///data/backup/tidb-full" \
--ratelimit 128 \
--log-file backup-full.log

备份单个数据库:

1
2
3
4
5
tiup br backup db \
--pd "192.168.40.18:2379" \
--db "lenglian" \
--storage "local:///data/backup/tidb-lenglian" \
--log-file backup-lenglian.log

备份到 S3 兼容存储(如 MinIO):

1
2
3
4
5
6
7
8
tiup br backup full \
--pd "192.168.40.18:2379" \
--storage "s3://backup-bucket/tidb-full" \
--send-credentials-to-tikv=true \
--s3.endpoint "http://192.168.40.18:9000" \
--s3.access-key "minioadmin" \
--s3.secret-key "minioadmin-secret" \
--log-file backup-full-s3.log

3. 增量备份

先做一次全量备份,之后可基于上次备份的 snapshot 做增量:

1
2
3
4
5
6
7
# 获取上次全量备份的 snapshot(从日志中查看,如 2026-05-21 10:00:00)
# 然后用 --lastbackupts 指定增量起点
tiup br backup full \
--pd "192.168.40.18:2379" \
--storage "local:///data/backup/tidb-incremental" \
--lastbackupts "2026-05-21 10:00:00" \
--log-file backup-incremental.log

4. 查看备份元信息

1
2
3
tiup br validate decode \
--field="start-version" \
--storage "local:///data/backup/tidb-full"

5. 全量恢复

恢复整个集群:

1
2
3
4
5
tiup br restore full \
--pd "192.168.40.18:2379" \
--storage "local:///data/backup/tidb-full" \
--ratelimit 128 \
--log-file restore-full.log

恢复单个数据库(TiDB v5.0+):

1
2
3
4
5
tiup br restore db \
--pd "192.168.40.18:2379" \
--db "lenglian" \
--storage "local:///data/backup/tidb-lenglian" \
--log-file restore-lenglian.log

从 S3 恢复:

1
2
3
4
5
6
7
8
tiup br restore full \
--pd "192.168.40.18:2379" \
--storage "s3://backup-bucket/tidb-full" \
--send-credentials-to-tikv=true \
--s3.endpoint "http://192.168.40.18:9000" \
--s3.access-key "minioadmin" \
--s3.secret-key "minioadmin-secret" \
--log-file restore-full-s3.log

6. 恢复时过滤 / 表映射

按表恢复:

1
2
3
4
5
6
tiup br restore table \
--pd "192.168.40.18:2379" \
--db "lenglian" \
--table "sys_user" \
--storage "local:///data/backup/tidb-lenglian" \
--log-file restore-table.log

恢复时重命名表 / 库(--filter 配合 --rules):

1
2
3
4
5
6
7
8
# 将备份中的 lenglian 库恢复为 lenglian_bak 库
tiup br restore db \
--pd "192.168.40.18:2379" \
--db "lenglian" \
--storage "local:///data/backup/tidb-lenglian" \
--filter "lenglian.*" \
--rules "lenglian.*:lenglian_bak.*" \
--log-file restore-remap.log

7. 定时备份脚本示例

1
2
mkdir -p /data/scripts
vi /data/scripts/tidb-backup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
BACKUP_DIR="/data/backup/tidb-full"
DATE=$(date +%Y%m%d_%H%M%S)
LOG="/data/backup/backup-${DATE}.log"

# 创建按日期命名的子目录
mkdir -p "${BACKUP_DIR}/${DATE}"

# 执行全量备份
tiup br backup full \
--pd "192.168.40.18:2379" \
--storage "local://${BACKUP_DIR}/${DATE}" \
--ratelimit 128 \
--log-file "${LOG}"

# 保留最近 7 天的备份,删除更早的
find "${BACKUP_DIR}" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;

echo "[$(date)] Backup ${DATE} completed" >> /data/backup/backup-history.log

赋予执行权限并加入 crontab 每日凌晨 2 点执行:

1
2
chmod +x /data/scripts/tidb-backup.sh
crontab -e

添加:

1
0 2 * * * /data/scripts/tidb-backup.sh >> /data/backup/cron-backup.log 2>&1

8. 常见问题

问题 解决
storage permission denied 确保 TiKV 进程有权限读写备份目录,使用 chown 或放在 /data/backup 等目录
GC life time is shorter than transaction duration 备份前调整 GC:mysql -h192.168.40.18 -P4000 -u root -e "UPDATE mysql.tidb SET VARIABLE_VALUE='72h' WHERE VARIABLE_NAME='tikv_gc_life_time';"
备份/恢复速度慢 提高 --ratelimit 值(单位 MB/s),确保磁盘 IO 充足
增量备份找不到上次 snapshot 使用 br validate decode 查看备份元数据,确认 start-version

注意:BR 是物理备份工具,恢复时会覆盖目标库已有数据。生产环境建议定期备份到独立的存储设备或 S3 兼容存储,并定期检查备份的可用性(在测试环境做一次恢复验证)。


四、安装 Nginx

1. 在线安装 Nginx

1
yum install nginx -y

启用并启动:

1
2
3
4
5
systemctl enable nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx

五、验证所有服务

安装完成后,检查所有服务状态:

1
2
3
4
5
6
7
8
9
10
11
12
# 检查 Java
java -version

# 检查 TongWeb
systemctl status tongweb

# 检查 TiDB
tiup cluster display tidb-test

# 检查 Nginx
systemctl status nginx
nginx -t

查看各服务端口:

1
netstat -tlnp | grep -E '(80|443|9060|18080|4000)'
服务 默认端口 说明
Nginx 80 HTTP 服务
TongWeb 管理 9060 管理控制台
TongWeb 应用 18080 应用访问端口
TiDB 4000 分布式 HTAP 数据库(MySQL 协议兼容)
TiDB Dashboard 2379 PD 管理接口 / Dashboard
Prometheus 9090 监控数据查询
Grafana 3000 可视化监控面板