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

yashandb教程FG045-YashanDB异地容灾方案

本文档风哥主要介绍YashanDB异地容灾方案相关知识,包括YashanDB异地容灾概念、容灾级别、容灾要求、容灾架构、容灾策略、容灾规划、容灾部署、容灾配置、容灾测试、实战案例、最佳实践等内容,风哥教程参考YashanDB官方文档高可用与容灾内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 YashanDB异地容灾概念

YashanDB异地容灾是指将数据库系统部署在不同地理位置的机房,当主机房发生自然灾害、人为故障等灾难时,能够快速切换到备用机房,确保业务的连续性。学习交流加群风哥微信: itpux-com

YashanDB异地容灾的核心目标:

  • 在灾难发生时确保业务连续性
  • 最小化数据丢失
  • 快速恢复服务
  • 满足业务的RTO和RPO要求

1.2 YashanDB容灾级别

YashanDB容灾级别通常分为以下几个等级:

  • Level 0:无容灾 – 没有任何容灾措施,一旦发生灾难,数据可能完全丢失
  • Level 1:本地备份 – 定期备份数据到本地存储,灾难发生后需要手动恢复
  • Level 2:本地镜像 – 通过存储镜像或复制实现本地数据冗余
  • Level 3:异地备份 – 定期将备份数据传输到异地存储
  • Level 4:异地异步复制 – 通过异步复制实现异地数据同步,RPO较低
  • Level 5:异地同步复制 – 通过同步复制实现异地数据实时同步,RPO为0
  • Level 6:多活架构 – 多个数据中心同时提供服务,实现零RTO

1.3 YashanDB容灾要求

YashanDB异地容灾的基本要求:

  • RTO(恢复时间目标):从灾难发生到系统恢复正常运行所需的时间
  • RPO(恢复点目标):灾难发生后,系统恢复时可能丢失的数据量
  • 数据一致性:确保主备数据的一致性
  • 网络要求:主备数据中心之间的网络带宽和延迟
  • 存储要求:备用数据中心的存储容量和性能
  • 硬件要求:备用数据中心的硬件配置
  • 运维要求:容灾系统的日常维护和管理
风哥提示:异地容灾是确保业务连续性的重要手段,企业应根据业务重要性和预算选择合适的容灾级别。学习交流加群风哥QQ113257174

Part02-生产环境规划与建议

2.1 YashanDB异地容灾架构

YashanDB异地容灾的常见架构:

# 异地容灾架构类型

## 1. 主备架构
– 主数据中心:处理所有业务请求
– 备数据中心:通过复制保持数据同步,作为灾难备份
– 优点:架构简单,成本较低
– 缺点:备数据中心资源利用率低

## 2. 两地三中心架构
– 生产中心:主数据中心,处理业务请求
– 同城灾备中心:与生产中心在同一城市,距离较近
– 异地灾备中心:与生产中心在不同城市,距离较远
– 优点:提供多层次容灾保护,RTO和RPO较低
– 缺点:成本较高,架构复杂

## 3. 多活架构
– 多个数据中心同时处理业务请求
– 数据在多个中心之间实时同步
– 优点:零RTO,资源利用率高
– 缺点:架构复杂,数据一致性要求高

## 4. 混合架构
– 结合主备架构和多活架构的优点
– 核心业务采用多活架构,非核心业务采用主备架构
– 优点:灵活性高,成本可控
– 缺点:架构设计复杂

2.2 YashanDB异地容灾策略

YashanDB异地容灾的策略选择:

# 异地容灾策略

## 1. 基于复制的容灾策略
– 同步复制:主库提交事务前等待备库确认,RPO=0
– 异步复制:主库提交事务后异步发送WAL日志,RPO>0
– 半同步复制:主库提交事务前等待至少一个备库确认

## 2. 基于备份的容灾策略
– 定期备份:每天或每周进行全量备份
– 增量备份:定期进行增量备份
– 差异备份:备份自上次全量备份以来的变化

## 3. 基于存储的容灾策略
– 存储镜像:通过存储层实现数据同步
– 存储复制:通过存储设备的复制功能实现数据同步
– 快照技术:定期创建存储快照

## 4. 混合容灾策略
– 结合复制和备份的优点
– 实时复制保证RPO,定期备份作为最终保障

2.3 YashanDB异地容灾规划

YashanDB异地容灾的规划步骤:

# 异地容灾规划步骤

## 1. 评估业务需求
– 确定RTO和RPO目标
– 评估业务对可用性的要求
– 分析数据重要性

## 2. 选择容灾架构
– 根据业务需求选择合适的容灾架构
– 评估成本和收益
– 考虑技术可行性

## 3. 规划网络架构
– 确定主备数据中心之间的网络连接
– 评估网络带宽和延迟
– 规划网络冗余

## 4. 规划存储架构
– 确定备用数据中心的存储容量
– 评估存储性能要求
– 规划存储冗余

## 5. 规划硬件资源
– 确定备用数据中心的硬件配置
– 评估服务器性能要求
– 规划硬件冗余

## 6. 制定容灾预案
– 编写详细的容灾切换流程
– 制定回切计划
– 分配角色和责任

## 7. 制定测试计划
– 定期进行容灾演练
– 测试切换流程的有效性
– 评估RTO和RPO是否满足要求

生产环境建议:异地容灾规划应与业务需求紧密结合,确保在灾难发生时能够快速恢复业务,同时控制成本。更多学习教程公众号风哥教程itpux_com

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

3.1 YashanDB异地容灾部署

YashanDB异地容灾的部署步骤:

# 异地容灾部署步骤

## 1. 准备备用数据中心
– 配置服务器硬件
– 安装操作系统
– 配置网络连接
– 安装YashanDB软件

## 2. 配置主库
– 配置主库参数
– 启用WAL归档
– 配置复制参数

## 3. 配置备库
– 初始化备库
– 配置备库参数
– 建立复制关系

## 4. 配置网络
– 配置主备数据中心之间的网络连接
– 配置防火墙规则
– 测试网络连通性

## 5. 配置监控
– 配置主备状态监控
– 配置复制延迟监控
– 配置告警机制

## 6. 测试容灾系统
– 测试复制状态
– 测试故障切换
– 测试回切流程

3.2 YashanDB异地容灾配置

YashanDB异地容灾的具体配置:

# 异地容灾配置

## 1. 主库配置
$ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 主库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 1000 shared_buffers = '16GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 10 wal_keep_segments = 100 hot_standby = on # 归档参数 archive_mode = on archive_command = 'cp %p /yashanb/archive/%f' EOF ## 2. 备库配置 $ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 备库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 1000 shared_buffers = '16GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 10 wal_keep_segments = 100 hot_standby = on EOF ## 3. 建立复制关系 # 在备库上执行 $ /yashanb/app/yasdb/bin/pg_basebackup -h 主库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v # 创建recovery.conf文件 $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=主库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF ## 4. 启动备库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start ## 5. 验证复制状态 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c "select * from pg_stat_replication;"

3.3 YashanDB异地容灾测试

YashanDB异地容灾的测试方法:

# 异地容灾测试

## 1. 复制状态测试
# 检查复制状态
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c “select * from pg_stat_replication;”

# 检查复制延迟
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “SELECT now() – pg_last_xact_replay_timestamp() as replication_lag;”

## 2. 数据一致性测试
# 在主库插入数据
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c “INSERT INTO fgedu_test (name) VALUES (‘test’);”

# 在备库验证数据
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “SELECT * FROM fgedu_test;”

## 3. 故障切换测试
# 模拟主库故障
$ ssh root@主库IP “systemctl stop yasdb”

# 提升备库为主库
$ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb promote

# 验证新主库状态
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “select pg_is_in_recovery();”

## 4. 回切测试
# 修复主库故障
# 重新配置主库为备库
$ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb stop
$ rm -rf /yashanb/fgdata/fgedudb/*
$ /yashanb/app/yasdb/bin/pg_basebackup -h 备库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v
$ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=备库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start # 验证新的主备关系 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c "select * from pg_stat_replication;"

风哥提示:定期进行容灾测试是确保容灾系统有效性的关键,建议每季度至少进行一次完整的容灾演练。from yashanb视频:www.itpux.com

Part04-生产案例与实战讲解

4.1 YashanDB两地三中心容灾方案

某金融机构部署YashanDB两地三中心容灾方案,确保核心业务的连续性。

# 案例背景
– 业务系统:核心交易系统
– 数据量:2TB
– 并发用户:10000
– RTO要求:<5分钟
– RPO要求:<10秒

# 部署架构
– 生产中心:北京,主库
– 同城灾备中心:北京郊区,同城备库
– 异地灾备中心:上海,异地备库

# 配置步骤

## 1. 生产中心配置
# 主库配置
$ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 主库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 10000 shared_buffers = '32GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 20 wal_keep_segments = 200 hot_standby = on # 归档参数 archive_mode = on archive_command = 'cp %p /yashanb/archive/%f' EOF ## 2. 同城灾备中心配置 # 同城备库配置 $ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 备库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 10000 shared_buffers = '32GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 20 wal_keep_segments = 200 hot_standby = on EOF # 建立复制关系 $ /yashanb/app/yasdb/bin/pg_basebackup -h 北京主库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=北京主库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF ## 3. 异地灾备中心配置 # 异地备库配置 $ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 备库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 10000 shared_buffers = '32GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 20 wal_keep_segments = 200 hot_standby = on EOF # 建立复制关系 $ /yashanb/app/yasdb/bin/pg_basebackup -h 北京主库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=北京主库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF ## 4. 网络配置 # 北京主库到同城备库:专线,1Gbps # 北京主库到异地备库:专线,1Gbps ## 5. 监控配置 # 配置Zabbix监控主备状态、复制延迟 # 配置Grafana面板展示容灾状态 ## 6. 测试验证 # 复制状态测试 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c "select * from pg_stat_replication;" # 数据一致性测试 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c "INSERT INTO fgedu_test (name) VALUES ('test');" $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 同城备库IP -c "SELECT * FROM fgedu_test;" $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 异地备库IP -c "SELECT * FROM fgedu_test;" # 故障切换测试 # 模拟北京主库故障 $ ssh root@北京主库IP "systemctl stop yasdb" # 提升同城备库为主库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb promote # 验证同城备库状态 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 同城备库IP -c "select pg_is_in_recovery();" # 重新配置异地备库指向同城备库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb stop $ rm -rf /yashanb/fgdata/fgedudb/* $ /yashanb/app/yasdb/bin/pg_basebackup -h 同城备库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=同城备库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start

4.2 YashanDB跨地域复制实战

某互联网公司部署YashanDB跨地域复制,实现数据异地备份。

# 案例背景
– 业务系统:用户行为分析系统
– 数据量:10TB
– 并发用户:5000
– RTO要求:<30分钟
– RPO要求:<5分钟

# 部署架构
– 主数据中心:上海,主库
– 异地数据中心:北京,备库

# 配置步骤

## 1. 主库配置
$ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 主库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 5000 shared_buffers = '64GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 10 wal_keep_segments = 500 hot_standby = on # 归档参数 archive_mode = on archive_command = 'cp %p /yashanb/archive/%f && scp %p fgedu@北京备库IP:/yashanb/archive/%f' EOF ## 2. 备库配置 $ cat >> /yashanb/fgdata/fgedudb/postgresql.conf << EOF # 备库参数 listen_addresses = '0.0.0.0' port = 5432 max_connections = 5000 shared_buffers = '64GB' # 复制参数 wal_level = 'hot_standby' max_wal_senders = 10 wal_keep_segments = 500 hot_standby = on EOF ## 3. 建立复制关系 # 在备库上执行 $ /yashanb/app/yasdb/bin/pg_basebackup -h 上海主库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v # 创建recovery.conf文件 $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=上海主库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF ## 4. 启动备库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start ## 5. 网络优化 # 使用专线连接上海和北京数据中心 # 配置网络QoS,确保复制流量优先 ## 6. 监控配置 # 配置Prometheus监控复制状态 # 配置Grafana面板展示复制延迟 # 设置复制延迟告警 ## 7. 测试验证 # 复制状态测试 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c "select * from pg_stat_replication;" # 复制延迟测试 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 北京备库IP -c "SELECT now() - pg_last_xact_replay_timestamp() as replication_lag;" # 数据一致性测试 $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c "INSERT INTO fgedu_user (name, email) VALUES ('test', 'test@example.com');" $ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 北京备库IP -c "SELECT * FROM fgedu_user WHERE name = 'test';"

4.3 YashanDB容灾切换演练

某企业定期进行YashanDB容灾切换演练,确保容灾系统的有效性。

# 案例背景
– 业务系统:企业ERP系统
– 数据量:500GB
– 并发用户:1000
– 演练频率:每季度一次

# 演练准备
1. 制定演练计划
2. 通知相关部门
3. 准备演练工具和脚本
4. 备份数据

# 演练步骤

## 1. 演练前检查
# 检查主备状态
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -c “select * from pg_stat_replication;”

# 检查复制延迟
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “SELECT now() – pg_last_xact_replay_timestamp() as replication_lag;”

# 检查应用状态
$ systemctl status erp-app

## 2. 执行切换
# 停止应用服务
$ systemctl stop erp-app

# 模拟主库故障
$ ssh root@主库IP “systemctl stop yasdb”

# 提升备库为主库
$ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb promote

# 更新应用连接配置
$ sed -i ‘s/主库IP/备库IP/’ /etc/erp-app/config.yml

# 启动应用服务
$ systemctl start erp-app

## 3. 验证切换结果
# 检查新主库状态
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “select pg_is_in_recovery();”

# 验证应用功能
$ curl -I http://localhost:8080/erp
HTTP/1.1 200 OK

# 验证数据一致性
$ /yashanb/app/yasdb/bin/psql -U yasdb -d fgedudb -h 备库IP -c “SELECT count(*) FROM fgedu_employee;”

## 4. 回切操作
# 停止应用服务
$ systemctl stop erp-app

# 修复主库故障
$ ssh root@主库IP “systemctl start yasdb”

# 重新配置主库为备库
$ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb stop
$ rm -rf /yashanb/fgdata/fgedudb/*
$ /yashanb/app/yasdb/bin/pg_basebackup -h 备库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v
$ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=备库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start # 提升原主库为主库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb promote # 更新应用连接配置 $ sed -i 's/备库IP/主库IP/' /etc/erp-app/config.yml # 启动应用服务 $ systemctl start erp-app # 重新配置原备库为备库 $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb stop $ rm -rf /yashanb/fgdata/fgedudb/* $ /yashanb/app/yasdb/bin/pg_basebackup -h 主库IP -U fgedu -D /yashanb/fgdata/fgedudb -P -v $ cat > /yashanb/fgdata/fgedudb/recovery.conf << EOF standby_mode = 'on' primary_conninfo = 'host=主库IP port=5432 user=fgedu password=fgedu123' recovery_target_timeline = 'latest' EOF $ /yashanb/app/yasdb/bin/pg_ctl -D /yashanb/fgdata/fgedudb start ## 5. 演练总结 # 记录演练过程和结果 # 分析演练中遇到的问题 # 提出改进措施 # 更新容灾预案

Part05-风哥经验总结与分享

5.1 YashanDB异地容灾最佳实践

YashanDB异地容灾的最佳实践:

  • 选择合适的容灾级别:根据业务需求和预算选择合适的容灾级别
  • 合理规划网络:确保主备数据中心之间的网络带宽和稳定性
  • 定期进行容灾演练:每季度至少进行一次完整的容灾演练
  • 监控复制状态:实时监控主备复制状态和延迟
  • 优化复制参数:根据网络环境优化复制参数
  • 制定详细的容灾预案:包括切换流程、回切流程、责任分工等
  • 备份与复制结合:定期备份数据,作为容灾的最终保障
  • 培训相关人员:确保相关人员熟悉容灾流程和操作
持续改进:容灾系统的设计和维护是一个持续的过程,需要根据业务发展和技术进步不断优化。建议定期review容灾系统的有效性,及时调整配置和策略。

5.2 YashanDB异地容灾常见问题

YashanDB异地容灾的常见问题及解决方案:

# 常见问题及解决方案

## 1. 复制延迟过大
– 原因:网络带宽不足、网络延迟高、备库性能不足
– 解决方案:
– 增加网络带宽
– 优化网络路由
– 提升备库性能
– 调整复制参数

## 2. 复制中断
– 原因:网络故障、主库或备库故障、权限问题
– 解决方案:
– 检查网络连接
– 检查主库和备库状态
– 检查复制用户权限
– 重新建立复制关系

## 3. 容灾切换失败
– 原因:切换流程错误、备库状态异常、应用配置错误
– 解决方案:
– 严格按照切换流程操作
– 切换前检查备库状态
– 验证应用配置
– 制定回滚计划

## 4. 数据一致性问题
– 原因:复制延迟、复制中断、备库应用WAL失败
– 解决方案:
– 监控复制延迟
– 定期验证数据一致性
– 及时处理复制中断
– 检查备库日志

## 5. 网络成本过高
– 原因:专线费用高、带宽需求大
– 解决方案:
– 优化数据传输
– 使用压缩技术
– 合理规划带宽
– 考虑混合云方案

5.3 YashanDB异地容灾日常维护

YashanDB异地容灾的日常维护任务:

# 日常维护任务

## 1. 监控复制状态
– 检查主备复制状态
– 监控复制延迟
– 配置复制延迟告警

## 2. 检查网络连接
– 测试主备数据中心之间的网络连通性
– 监控网络带宽使用情况
– 检查网络设备状态

## 3. 验证数据一致性
– 定期比对主备数据
– 检查关键表数据
– 验证备份文件完整性

## 4. 维护硬件设备
– 检查服务器状态
– 监控存储使用情况
– 定期更换硬件设备

## 5. 更新容灾预案
– 根据业务变化更新容灾预案
– 记录容灾演练结果
– 优化切换流程

## 6. 培训相关人员
– 培训DBA人员熟悉容灾操作
– 培训应用开发人员了解容灾流程
– 定期组织容灾演练培训

## 7. 检查监控系统
– 确保监控系统正常运行
– 检查告警配置
– 测试告警通知

## 8. 定期备份
– 定期进行全量备份
– 定期进行增量备份
– 验证备份文件可恢复性

风哥提示:异地容灾是确保业务连续性的重要保障,需要定期维护和测试,确保在灾难发生时能够快速、有效地恢复业务。建议建立完善的容灾管理体系,包括制度、流程、技术和人员等方面。

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

联系我们

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

微信号:itpux-com

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