GoldenDB教程FG019-GoldenDB项目实施与验收
内容简介
本教程详细介绍GoldenDB数据库项目的实施与验收流程,帮助读者了解如何规范地进行数据库项目的部署和验收。风哥教程参考GoldenDB官方文档项目实施与验收相关内容。
学习交流加群风哥微信: itpux-com
目录大纲
Part01-基础概念与理论知识
1.1 项目实施概述
GoldenDB项目实施是指将GoldenDB数据库系统部署到生产环境,并完成相关配置和优化的过程。项目实施的成功与否直接影响到数据库系统的稳定运行和业务连续性。
更多视频教程www.fgedu.net.cn
1.2 项目实施流程
GoldenDB项目实施的流程包括:
- 项目准备阶段:包括需求分析、环境准备、资源规划等
- 系统部署阶段:包括软件安装、集群配置、参数优化等
- 数据迁移阶段:包括数据导出、数据导入、数据验证等
- 应用切换阶段:包括应用改造、切换演练、正式切换等
- 项目验收阶段:包括功能验收、性能验收、安全验收等
1.3 项目验收标准
GoldenDB项目验收的标准包括:
- 功能验收:所有功能模块正常运行,满足业务需求
- 性能验收:系统性能达到预期指标,满足业务负载要求
- 安全验收:系统安全配置正确,满足安全合规要求
- 稳定性验收:系统运行稳定,无重大故障
- 文档验收:项目文档完整,包括设计文档、操作手册、运维手册等
风哥提示:项目实施与验收是数据库项目成功的关键环节,需要严格按照流程执行,确保项目质量。
Part02-项目实施阶段
2.1 项目准备阶段
项目准备阶段的工作:
# 1. 需求分析
# 收集业务需求
# 确定数据量、并发量、性能要求等
# 制定项目计划
# 2. 环境准备
# 准备服务器资源
# 配置网络环境
# 安装操作系统
# 3. 资源规划
# 规划服务器配置
# 规划存储容量
# 规划网络带宽
# 4. 安装前检查
# 检查系统版本
cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”9.3″
ID=”ol”
ID_LIKE=”fedora”
VARIANT=”Server”
VARIANT_ID=”server”
VERSION_ID=”9.3″
PLATFORM_ID=”platform:el9″
PRETTY_NAME=”Oracle Linux Server 9.3″
ANSI_COLOR=”0;31″
CPE_NAME=”cpe:/o:oracle:linux:9:3:server”
HOME_URL=”https://linux.oracle.com/”
BUG_REPORT_URL=”https://bugzilla.oracle.com/”
ORACLE_BUGZILLA_PRODUCT=”Oracle Linux 9″
ORACLE_BUGZILLA_PRODUCT_VERSION=9.3
ORACLE_SUPPORT_PRODUCT=”Oracle Linux”
ORACLE_SUPPORT_PRODUCT_VERSION=9.3
# 检查系统资源
free -h
total used free shared buff/cache available
Mem: 128Gi 2.0Gi 120Gi 1.0Gi 6.0Gi 124Gi
Swap: 32Gi 0B 32Gi
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 64G 0 64G 0% /dev
tmpfs 64G 0 64G 0% /dev/shm
tmpfs 64G 18M 64G 1% /run
tmpfs 64G 0 64G 0% /sys/fs/cgroup
/dev/sda1 500G 50G 450G 10% /
/dev/sdb1 2.0T 100G 1.9T 5% /goldendb
2.2 系统部署阶段
系统部署阶段的工作:
# 1. 安装GoldenDB
# 解压安装包
tar -zxvf GoldenDB-8.0.0-linux-x86_64.tar.gz -C /goldendb/
# 执行安装
cd /goldendb/GoldenDB-8.0.0-linux-x86_64/
./setup.sh –install
# 2. 配置集群
# 编辑集群配置文件
vi /goldendb/app/conf/cluster.conf
[cluster]
name = fgedu_cluster
node_count = 3
[node1]
host = 192.168.1.10
port = 3306
role = master
[node2]
host = 192.168.1.11
port = 3306
role = slave
[node3]
host = 192.168.1.12
port = 3306
role = slave
# 3. 启动集群
/goldendb/app/bin/goldendb-cli cluster start
Starting cluster fgedu_cluster…
Node 192.168.1.10:3306 started successfully
Node 192.168.1.11:3306 started successfully
Node 192.168.1.12:3306 started successfully
Cluster fgedu_cluster started successfully
# 4. 验证集群状态
/goldendb/app/bin/goldendb-cli cluster status
Cluster: fgedu_cluster
Status: running
Nodes:
192.168.1.10:3306 [master] – online
192.168.1.11:3306 [slave] – online
192.168.1.12:3306 [slave] – online
2.3 数据迁移阶段
数据迁移阶段的工作:
# 1. 数据导出
# 从源数据库导出数据
mysqldump -h source_host -u fgedu -p fgedudb > /goldendb/backup/fgedudb_export.sql
# 2. 数据导入
# 导入数据到GoldenDB
mysql -h 192.168.1.10 -u fgedu -p fgedudb < /goldendb/backup/fgedudb_export.sql
# 3. 数据验证
# 验证数据完整性
mysql -h 192.168.1.10 -u fgedu -p -e “SELECT COUNT(*) FROM fgedudb.fgedu_user;”
+———-+
| COUNT(*) |
+———-+
| 1000000 |
+———-+
# 验证数据一致性
mysql -h 192.168.1.10 -u fgedu -p -e “CHECKSUM TABLE fgedudb.fgedu_user;”
+—————+————+
| Table | Checksum |
+—————+————+
| fgedudb.fgedu_user | 1234567890 |
+—————+————+
2.4 应用切换阶段
应用切换阶段的工作:
# 1. 应用改造
# 修改应用配置文件
vi /app/config/database.properties
# 原配置
# db.url=jdbc:mysql://old_host:3306/fgedudb
# db.username=fgedu
# db.password=old_password
# 新配置
db.url=jdbc:mysql://192.168.1.10:3306/fgedudb
db.username=fgedu
db.password=fgedu@123
# 2. 切换演练
# 在测试环境进行切换演练
# 验证应用功能正常
# 验证性能指标满足要求
# 3. 正式切换
# 选择低峰期进行切换
# 停止应用服务
systemctl stop app_service
# 切换数据库连接
# 启动应用服务
systemctl start app_service
# 验证应用正常运行
curl http://localhost:8080/health
{“status”:”UP”,”database”:”CONNECTED”}
学习交流加群风哥QQ113257174
Part03-项目验收阶段
3.1 功能验收
功能验收的内容:
# 1. 数据库功能测试
# 测试数据库连接
mysql -h 192.168.1.10 -u fgedu -p -e “SELECT 1;”
+—+
| 1 |
+—+
| 1 |
+—+
# 测试数据读写
mysql -h 192.168.1.10 -u fgedu -p -e “INSERT INTO fgedudb.fgedu_test (name) VALUES (‘test’);”
mysql -h 192.168.1.10 -u fgedu -p -e “SELECT * FROM fgedudb.fgedu_test WHERE name=’test’;”
# 测试事务功能
mysql -h 192.168.1.10 -u fgedu -p -e ”
START TRANSACTION;
INSERT INTO fgedudb.fgedu_test (name) VALUES (‘transaction_test’);
COMMIT;
SELECT * FROM fgedudb.fgedu_test WHERE name=’transaction_test’;”
# 2. 集群功能测试
# 测试故障转移
# 停止主节点
systemctl stop goldendb@10
# 检查故障转移
/goldendb/app/bin/goldendb-cli cluster status
Cluster: fgedu_cluster
Status: running
Nodes:
192.168.1.10:3306 [master] – offline
192.168.1.11:3306 [master] – online
192.168.1.12:3306 [slave] – online
# 测试读写分离
# 执行写操作
mysql -h 192.168.1.11 -u fgedu -p -e “INSERT INTO fgedudb.fgedu_test (name) VALUES (‘write_test’);”
# 执行读操作
mysql -h 192.168.1.12 -u fgedu -p -e “SELECT * FROM fgedudb.fgedu_test WHERE name=’write_test’;”
3.2 性能验收
性能验收的内容:
# 1. 性能测试
# 使用sysbench进行性能测试
sysbench –db-driver=mysql –mysql-host=192.168.1.10 –mysql-port=3306 \
–mysql-user=fgedu –mysql-password=fgedu@123 –mysql-db=fgedudb \
–tables=10 –table-size=100000 –threads=100 \
oltp_read_write prepare
sysbench –db-driver=mysql –mysql-host=192.168.1.10 –mysql-port=3306 \
–mysql-user=fgedu –mysql-password=fgedu@123 –mysql-db=fgedudb \
–tables=10 –table-size=100000 –threads=100 –time=60 \
oltp_read_write run
SQL statistics:
queries performed:
read: 1400000
write: 400000
other: 200000
total: 2000000
transactions: 100000 (1666.67 per sec.)
queries: 2000000 (33333.33 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
# 2. 性能指标验证
# 检查QPS
mysql -h 192.168.1.10 -u fgedu -p -e “SHOW GLOBAL STATUS LIKE ‘Queries’;”
+—————+———-+
| Variable_name | Value |
+—————+———-+
| Queries | 10000000 |
+—————+———-+
# 检查TPS
mysql -h 192.168.1.10 -u fgedu -p -e “SHOW GLOBAL STATUS LIKE ‘Com_commit’;”
+—————+——–+
| Variable_name | Value |
+—————+——–+
| Com_commit | 500000 |
+—————+——–+
# 检查响应时间
mysql -h 192.168.1.10 -u fgedu -p -e ”
SELECT
AVG(timer_wait)/1000000000 as avg_latency_ms,
MAX(timer_wait)/1000000000 as max_latency_ms
FROM performance_schema.events_statements_history_long;”
3.3 安全验收
安全验收的内容:
# 1. 用户权限检查
# 检查用户权限
mysql -h 192.168.1.10 -u fgedu -p -e “SHOW GRANTS FOR ‘fgedu’@’%’;”
+——————————————————————+
| Grants for fgedu@% |
+——————————————————————+
| GRANT SELECT, INSERT, UPDATE, DELETE ON fgedudb.* TO ‘fgedu’@’%’ |
+——————————————————————+
# 2. 安全配置检查
# 检查SSL配置
mysql -h 192.168.1.10 -u fgedu -p -e “SHOW VARIABLES LIKE ‘%ssl%’;”
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_ssl | YES |
| ssl_ca | ca.pem |
| ssl_cert | server-cert.pem |
| ssl_key | server-key.pem |
+—————+———-+
# 检查审计日志
mysql -h 192.168.1.10 -u fgedu -p -e “SHOW VARIABLES LIKE ‘audit%’;”
+——————+——-+
| Variable_name | Value |
+——————+——-+
| audit_log_policy | ALL |
+——————+——-+
# 3. 漏洞扫描
# 使用安全扫描工具
# 检查数据库版本
mysql -h 192.168.1.10 -u fgedu -p -e “SELECT VERSION();”
