1. 首页 > 国产数据库教程 > Kingbase教程 > 正文

kingbase教程FG088-金仓数据库核心业务部署实战

内容简介

本文档介绍金仓数据库在核心业务系统中的部署实战,包括核心业务系统的特点、部署规划、实施步骤以及性能优化。风哥教程参考金仓官方文档《金仓数据库系统管理员手册》和《金仓数据库高可用解决方案》等相关文档。

核心业务系统对数据库的要求主要体现在高可用性、高性能、高安全性和可扩展性等方面,本文档将详细介绍金仓数据库如何满足这些要求,并通过实际案例展示其在核心业务系统中的应用价值。

目录大纲

Part01-基础概念与理论知识

Part02-生产环境规划与建议

Part03-生产环境项目实施方案

Part04-生产案例与实战讲解

Part05-风哥经验总结与分享

Part01-基础概念与理论知识

1.1 核心业务系统特点

核心业务系统具有以下特点:,风哥提示:

  • 高可用性要求:核心业务系统需要7*24小时稳定运行,确保服务不中断
  • 高性能要求:面对大量并发访问,需要快速响应
  • 高安全性要求:核心业务数据需要严格的安全防护措施
  • 可扩展性要求:随着业务发展,需要灵活扩展
  • 数据一致性要求:确保数据的一致性和完整性
  • 容灾要求:需要具备完善的灾备方案

风哥提示:核心业务系统数据库选型时,高可用性和高性能是首要考虑因素,其次是安全性和可扩展性。

1.2 金仓数据库核心业务解决方案

金仓数据库针对核心业务系统特点,提供了以下解决方案:

  • 高可用架构:支持主备复制、集群部署等高可用方案
  • 性能优化:针对核心业务特点进行参数调优,学习交流加群风哥微信: itpux-com
  • 安全加固:支持数据加密、访问控制、审计等安全特性
  • 可扩展性:支持水平扩展和垂直扩展
  • 容灾方案:支持异地灾备和多活架构
  • 国产化支持:完全自主可控,支持国产操作系统和硬件

Part02-生产环境规划与建议

2.1 硬件环境规划

根据核心业务系统的特点,硬件环境规划建议如下:

组件 建议配置
CPU 至少32核,推荐64核或更高
内存 至少128GB,推荐256GB或更高
存储 使用SSD,容量根据数据量确定,推荐至少2TB
网络 万兆网络或更高

2.2 软件环境规划

软件环境规划建议如下:

  • 操作系统:推荐使用Oracle Linux 9.3或RHEL 9.3
  • 数据库版本:KingbaseES V8.6及以上
  • 中间件:根据业务需求选择合适的中间件
  • 监控系统:Zabbix或Prometheus+Grafana

2.3 网络环境规划

网络环境规划建议如下:,学习交流加群风哥QQ113257174

  • 网络隔离:生产环境与测试环境隔离
  • 防火墙配置:严格控制访问权限
  • VPN接入:远程管理使用VPN
  • 负载均衡:前端使用负载均衡
  • 网络冗余:配置双网卡和多路径

Part03-生产环境项目实施方案

3.1 部署架构设计

核心业务系统推荐使用以下部署架构:

  • 集群架构:适用于核心业务系统,提供高可用性和负载均衡
  • 主备架构:一主多备,确保数据安全和服务连续性
  • 异地灾备:实现跨机房容灾,确保业务连续性

3.2 安装与配置

安装金仓数据库的步骤如下:,更多视频教程www.fgedu.net.cn

# 检查系统环境
# 检查系统版本
cat /etc/os-release
# 检查系统架构
uname -m
# 检查内存
free -h
# 检查磁盘
df -h


NAME=”Oracle Linux Server”
VERSION=”9.3″
ID=”ol”
ID_LIKE=”fedora”
VERSION_ID=”9.3″
PLATFORM_ID=”platform:el9″
PRETTY_NAME=”Oracle Linux Server 9.3″
ANSI_COLOR=”0;31″
x86_64
total used free shared buff/cache available
Mem: 251G 2.0G 247G 10M 2.0G 247G
Swap: 125G 0B 125G
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 6.0G 41G 13% /
/dev/sda3 2TB 5.0G 1.9T 1% /kingbase


# 安装依赖
dnf install -y gcc gcc-c++ make perl readline-devel zlib-devel


Last metadata expiration check: 0:00:00 ago on Thu 01 Jul 2023 10:00:00 AM CST.
Package gcc-11.3.1-4.3.el9.x86_64 is already installed.
Package gcc-c++-11.3.1-4.3.el9.x86_64 is already installed.
Package make-1:4.3-7.el9.x86_64 is already installed.
Package perl-5.32.1-482.el9.x86_64 is already installed.
Package readline-devel-8.1-3.el9.x86_64 is already installed.
Package zlib-devel-1.2.11-19.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!


# 创建用户和目录
useradd -m kingbase
mkdir -p /kingbase/app
mkdir -p /kingbase/fgdata
chown -R kingbase:kingbase /kingbase


# 切换到kingbase用户
su – kingbase
# 解压安装包
tar -zxvf KingbaseES_V8R6_centos7_x86_64.tar.gz
# 运行安装脚本
./setup.sh


KingbaseES Setup Wizard
欢迎使用金仓数据库安装向导
请选择安装语言 [zh_CN]: zh_CN
请选择安装类型:
1. 图形化安装
2. 命令行安装
请选择: 1

安装完成!

3.3 高可用配置

配置主备复制的步骤如下:


# 主库配置
# 编辑kingbase.conf
vi /kingbase/fgdata/kingbase.conf


# 主库配置
wal_level = replica
max_wal_senders = 10
max_replication_slots = 10
synchronous_commit = on
listen_addresses = ‘*’


# 编辑pg_hba.conf
vi /kingbase/fgdata/pg_hba.conf


# 主库pg_hba.conf配置
host replication kingbase 192.168.1.2/32 md5
host replication kingbase 192.168.1.3/32 md5


# 重启主库
systemctl restart kingbase
# 在主库创建复制用户
ksql -U system -d fgedudb -c “CREATE USER kingbase REPLICATION LOGIN ENCRYPTED PASSWORD ‘Kingbase123!'”;


CREATE ROLE


# 备库1配置
# 停止备库
systemctl stop kingbase
# 清空数据目录
rm -rf /kingbase/fgdata/*
# 从主库同步数据
pg_basebackup -h 192.168.1.1 -p 54321 -U kingbase -D /kingbase/fgdata -F p -X stream -P


25362/25362 kB (100%), 1/1 tablespace


# 创建recovery.conf文件
vi /kingbase/fgdata/recovery.conf


# 备库1recovery.conf配置
standby_mode = ‘on’
primary_conninfo = ‘host=192.168.1.1 port=54321 user=kingbase password=Kingbase123! application_name=standby1’
recovery_target_timeline = ‘latest’


# 启动备库1
systemctl start kingbase
# 检查复制状态
ksql -U system -d fgedudb -c “SELECT * FROM pg_stat_replication;”


pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state
——-+———-+———-+——————+—————+—————–+————-+——————————-+————–+———–+————+————+————+————+———–+———–+————+—————+————
12345 | 16384 | kingbase | standby1 | 192.168.1.2 | | 54321 | 2023-07-01 10:00:00.000000+08 | | streaming | 0/12345678 | 0/12345678 | 0/12345678 | 0/12345678 | | | | 1 | sync
(1 row)

3.4 性能优化

性能优化的步骤如下:


# 调整数据库参数
vi /kingbase/fgdata/kingbase.conf


# 性能优化参数
shared_buffers = 64GB
work_mem = 128MB
maintenance_work_mem = 8GB
effective_cache_size = 192GB
temp_buffers = 1GB
max_connections = 1000
checkpoint_completion_target = 0.9
effective_io_concurrency = 200
random_page_cost = 1.1


# 重启数据库
systemctl restart kingbase

Part04-生产案例与实战讲解

4.1 案例背景

某大型企业需要构建一个核心业务系统,涉及订单管理、库存管理、财务管理等多个模块,要求数据库系统具有高可用性、高性能和高安全性。经过选型,最终选择了金仓数据库作为核心数据库系统。

4.2 实施过程

实施过程分为以下几个阶段:

4.2.1 需求分析

  • 业务系统数量:1个核心业务系统,包含5个模块
  • 并发用户数:10000+
  • 数据量:5TB+
  • 性能要求:响应时间<0.5秒
  • 可用性要求:99.999%

4.2.2 架构设计

  • 部署架构:一主两备
  • 存储:SAN存储,更多学习教程公众号风哥教程itpux_com
  • 网络:万兆网络
  • 监控:Zabbix+Grafana

4.2.3 实施步骤


# 1. 环境准备
# 检查服务器状态
ping -c 3 192.168.1.1
ping -c 3 192.168.1.2
ping -c 3 192.168.1.3


PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.123 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.112 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.105 ms
— 192.168.1.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.105/0.113/0.123/0.008 ms
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.135 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.121 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.118 ms
— 192.168.1.2 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.118/0.125/0.135/0.007 ms
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.128 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.115 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.122 ms
— 192.168.1.3 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.115/0.121/0.128/0.005 ms


# 2. 安装数据库
# 在主库安装
su – kingbase
./setup.sh


安装完成!


# 3. 配置主备复制
# 主库配置
vi /kingbase/fgdata/kingbase.conf


wal_level = replica
max_wal_senders = 10
max_replication_slots = 10
synchronous_commit = on
listen_addresses = ‘*’


# 备库配置
pg_basebackup -h 192.168.1.1 -p 54321 -U kingbase -D /kingbase/fgdata -F p -X stream -P


25362/25362 kB (100%), 1/1 tablespace


# 4. 数据迁移
# 从原系统导出数据
pg_dump -h 192.168.2.1 -p 5432 -U postgres -d olddb -F c -f /backup/olddb.backup
# 导入到金仓数据库
pg_restore -h 192.168.1.1 -p 54321 -U system -d fgedudb -F c /backup/olddb.backup


pg_restore: connecting to database for restore
pg_restore: creating TABLE “public.fgedu_order”
pg_restore: creating TABLE “public.fgedu_inventory”

pg_restore: processing data for table “public.fgedu_order”
pg_restore: processing data for table “public.fgedu_inventory”

pg_restore: finished successfully


# 5. 应用集成
# 配置应用连接
vi /app/config/database.yml


database:
adapter: postgresql
host: 192.168.1.1
port: 54321
database: fgedudb
username: fgedu
password: Password123!
pool: 500

4.3 运行效果

系统上线后,运行效果如下:

  • 性能指标
    • 平均响应时间:0.3秒
    • 并发处理能力:10000+用户
    • 数据处理能力:50000+ transactions/秒
  • 可靠性指标
    • 系统可用性:99.999%
    • 故障恢复时间:<30秒
  • 安全指标
    • 通过安全等级保护三级认证
    • 无安全漏洞,from DB视频:www.itpux.com

# 监控系统状态
ksql -U system -d fgedudb -c “SELECT pg_is_in_recovery(), pg_postmaster_start_time();”


pg_is_in_recovery | pg_postmaster_start_time
——————-+——————————————
f | 2023-07-01 00:00:00.000000+08
(1 row)


# 查看连接数
ksql -U system -d fgedudb -c “SELECT count(*) FROM pg_stat_activity;”


count
——-
1256
(1 row)

Part05-风哥经验总结与分享

5.1 实施建议

  • 前期规划:充分了解核心业务需求,制定详细的实施方案
  • 环境准备:确保硬件和网络环境满足要求
  • 测试验证:在正式上线前进行充分的测试,包括压力测试和故障演练
  • 培训与文档:为运维人员提供培训和详细的文档
  • 监控体系:建立完善的监控体系,及时发现和解决问题

5.2 性能优化

  • 参数调优:根据核心业务特点调整数据库参数
  • 索引优化:为频繁查询的字段创建索引
  • SQL优化:优化复杂查询语句
  • 存储优化:使用SSD存储,合理规划表空间
  • 分区表:对大表进行分区,提高查询性能
  • 连接池:使用连接池管理数据库连接

# 查看当前参数
ksql -U system -d fgedudb -c “SHOW shared_buffers;”
ksql -U system -d fgedudb -c “SHOW work_mem;”
ksql -U system -d fgedudb -c “SHOW maintenance_work_mem;”


shared_buffers
—————-
64GB
(1 row)
work_mem
———-
128MB
(1 row)
maintenance_work_mem
———————-
8GB
(1 row)

5.3 故障处理

  • 故障监测:使用监控系统及时发现故障
  • 故障定位:根据日志和监控信息定位故障原因
  • 故障恢复:制定详细的故障恢复流程
  • 演练:定期进行故障演练,提高应对能力
  • 备份策略:制定完善的备份策略,确保数据安全
  • 容灾方案:建立异地灾备,确保业务连续性

# 查看日志
tail -n 100 /kingbase/fgdata/log/kingbase.log


2023-07-01 10:00:00.000 CST [12345] LOG: starting KingbaseES V8R6C3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.0, 64-bit
2023-07-01 10:00:00.000 CST [12345] LOG: listening on IPv4 address “0.0.0.0”, port 54321
2023-07-01 10:00:00.000 CST [12345] LOG: listening on IPv6 address “::”, port 54321
2023-07-01 10:00:00.000 CST [12345] LOG: listening on Unix socket “/tmp/.s.KINGBASE.54321”
2023-07-01 10:00:00.000 CST [12346] LOG: database system was shut down at 2023-07-01 09:59:59 CST
2023-07-01 10:00:00.000 CST [12346] LOG: database system is ready to accept connections

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息