FYF
» HerBert
Toggle navigation
FYF
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
HCCDP
实验题
About Me
归档
标签
6、GaussDB运维与故障处理
无
2025-10-04 22:43:03
3
0
0
admin
# GaussDB 数据库日常运维笔记 ## 一、课程目标 * 掌握 **五种导入导出工具的使用场景与方法** * 理解 **运维管理平台功能**(用户管理、实例管理、升级、监控、参数模板) * 掌握 **备份与恢复** 的运行机制、策略配置与容灾方案 * 理解 **智能运维功能**(慢SQL、索引推荐、趋势预测、会话查杀、全量SQL分析) --- # 一、数据导入导出 ## 1. 工具与场景对照表 | 工具 | 适用场景 | 对应 Oracle 工具 | | -------------------- | -------------------- | ------------- | | gsql | SQL 文本导入导出 | sqlplus | | copy to/from | 小批量数据在线导入导出 | — | | gs_dump / gs_restore | 批量数据与对象定义导出导入 | expdp / impdp | | gs_loader | Oracle sqlldr 兼容场景导入 | sqlldr | | GDS | 分布式大数据并行导入导出 | — | --- ## 2. gsql 工具 ### 适用场景 * SQL 文本文件导入导出 * 创建对象定义(表、索引、函数等) ### 使用方法 ```bash gsql -d db1 -p 16000 -U u1 -W ***** -f /data/table.sql ``` ### 参数说明 | 参数 | 含义 | | -- | -------- | | -d | 数据库名 | | -p | CN 端口号 | | -U | 用户名 | | -W | 密码 | | -f | SQL 文件路径 | ### 常用元命令 ```sql \o /data/output.log -- 输出到文件 \i /data/input.sql -- 从文件执行SQL \copy t1 from '/data/input.csv' delimiter ','; ``` --- ## 3. copy 命令 ### 适用场景 * 小数据量表导入导出 * 查询结果集导出 ### 示例 ```sql copy t1 from '/data/t1.txt' delimiter ','; copy t1 to '/data/t1_out.txt' delimiter ','; copy (select * from t1 where a2=1) to '/data/out.csv' delimiter ','; ``` > 注意:分布式环境下性能不及 GDS。 --- ## 4. JDBC 使用 copy 示例 ```java CopyManager cp = new CopyManager((BaseConnection) conn); st.executeUpdate("TRUNCATE TABLE metadata;"); long n = cp.copyIn("COPY metadata FROM STDIN WITH CSV", new FileReader("data.csv")); ``` --- ## 5. gs_dump / gs_restore ### 适用场景 * 导出数据库结构及数据 * 适合全库或指定对象备份 ### 常用命令 ```bash gs_dump mydb -U u1 -W ***** -p 16000 -s -t t1 -f /data/t1.sql -F c ``` ### 参数说明 | 参数 | 含义 | | -- | ------------- | | -s | 仅导出定义 | | -t | 指定表 | | -F | 导出格式(p/c/d/t) | | -f | 输出文件路径 | ### 恢复命令 ```bash gsql -d mydb -p 8000 -f MPPDB_backup.sql gs_restore backup_dir -p 8000 -d mydb ``` > 报错 "duplicate key violates unique constraint" 表示数据冲突。 --- ## 6. gs_loader ### 适用场景 * Oracle sqlldr 兼容场景 * 仅支持集中式导入 * 支持容错、按行提交、并发导入 ### 控制文件示例 ```txt LOAD DATA truncate into table loader_tbl fields terminated by ',' WHEN name = 'Jack' trailing nullcols (id integer external, name char(32), dt date) ``` ### 导入命令 ```bash gs_loader control=loader.ctl data=data.csv db=testdb discard=loader.dis bad=loader.bad errors=5 port=8000 user=load_user ``` ### 参数说明 | 参数 | 说明 | | -------- | --------------- | | discard | 不匹配行记录文件 | | bad | 错误行记录文件 | | errors | 允许出错行数 | | rows | 每多少行提交一次 | | parallel | 并发度(建议 ≤ CPU×2) | ### 高级特性 * **position**:指定字段起始位置 * **列表达式**:`"replace(:address, ':', '-')"` * **按行提交**:`rows=10000` * **并发导入**:`parallel=8` --- ## 7. GDS (Gauss Data Service) ### 适用场景 * 分布式大表批量导入导出 * 支持并行、错误容忍、分片导入 ### 工作原理 * CN 仅负责任务调度,DN 并行导入。 * GDS 切分文件 → 分发至各 DN → DN 解析与分布。 ### 启动命令 ```bash gds -d /input_data/ -p 10.186.251.85:8808 -H 0.0.0.0/0 -l /log/gds_log.txt -D -t 2 ``` ### 外表定义 ```sql create foreign table t1_foreign(a1 varchar(10), a2 int) server gsmpp_server options ( location 'gsfs://10.186.251.85:8808/t1.txt', format 'text', encoding 'utf8', delimiter '^', null '' ); insert into t1 select * from t1_foreign; ``` ### 导出示例 ```sql create foreign table t1_foreign_output(a1 varchar(10), a2 int) server gsmpp_server options ( location 'gsfs://10.185.240.41:8000/', format 'text', delimiter E'\x08', write only ); insert into t1_foreign_output select * from t1; ``` --- # 二、运维管理平台 ## 1. 核心功能模块 * 用户管理、用户组管理、角色权限管理 * 实例纳管、启停、扩容、卸载、升级 * 告警、监控、参数模板管理 --- ## 2. 实例管理功能 | 操作 | 说明 | | ---- | ------------------ | | 纳管实例 | 主机需录入、状态在线后执行 | | 取消纳管 | “更多 → 取消纳管” | | 启停操作 | 支持停止/启动/重启 | | 卸载 | 一键删除(需确认输入 delete) | | 节点扩容 | CN/DN 扩容,不含其他组件 | | 灾备管理 | 容灾搭建、倒换、升主、解除 | --- ## 3. 节点扩容流程 * **阶段1:** 增加节点(锁DDL) * **阶段2:** 数据重分布(DML 可用) * 扩容仅 CN/DN,主备版暂不支持。 * 所有 DN 剩余空间需大于单表空间。 --- ## 4. 升级方式对比 | 升级方式 | 中断时间 | 风险 | 场景 | | ---- | ------ | -- | ------------ | | 就地升级 | ~30min | 低 | 新功能 / bug 修复 | | 灰度升级 | ~10s | 中 | 分步升级,可回滚 | | 滚动升级 | AZ/分片级 | 低 | 大规模集群 | | 热补丁 | 无中断 | 低 | 修复缺陷 | --- # 三、备份与恢复 ## 1. 备份类型 | 类型 | 特点 | | ---- | ----------------- | | 全量备份 | 备份全数据,耗时长,可独立恢复 | | 差量备份 | 仅备份变化数据,需配合全备 | | 日志归档 | xlog 持续备份,用于时间点恢复 | --- ## 2. 备份执行方式 * **自动备份**:定时执行,支持恢复到任意时间点。 * **手动备份**:用户触发,永久保存。 --- ## 3. 策略设置参数 | 参数 | 说明 | | ---- | ---------------------------- | | 差备间隔 | 15/30/60/180/360/720/1440 分钟 | | 保留周期 | 任意天数组合 | | 开始时间 | 自动备份启动时刻 | | 备份流控 | 上传速率限制 | | 差量预取 | 预取页数(提升IO效率) | --- ## 4. 备份容量估算公式 ```txt capacity = total * ceil(reserved_cycle/backup_cycle + 1) * ratio + increment * reserved_cycle * (1 + ratio) + manual_num * total * ratio ``` | 参数 | 含义 | | -------------- | ------------ | | total | 数据总量(GB) | | ratio | 压缩比(0.3~0.7) | | increment | 每天数据增量 | | reserved_cycle | 保留天数 | --- ## 5. 故障处理 ### 常见问题 | 问题 | 原因 | 解决方案 | | ------------- | ----------- | -------- | | 集群状态异常 | 非 Normal 状态 | 修复集群后再备份 | | 版本校验失败 | 新旧版本不匹配 | 执行全备后重试 | | [GAUSS-53403] | 集群未Balance | 检查状态并修复 | --- # 四、智能运维 (DBMind) ## 1. 核心能力 * 慢 SQL 诊断 * 索引推荐 * 趋势预测 * 会话查杀 * 全量 SQL 洞察 --- ## 2. 慢 SQL 诊断 ### 功能 * 自动捕获执行时间超阈值 SQL * 根因分析(CPU、I/O、锁) * 可视化展示与优化建议 ### 配置项 | 参数 | 说明 | | ------ | ----------------- | | SQL 类型 | 实时 / 历史 / 模板 | | 时间范围 | 执行时间段 | | 用户/数据库 | 过滤维度 | | SQL 类型 | SELECT / UPDATE 等 | --- ## 3. 索引推荐 * 自动识别慢 SQL,分析索引性价比 * 提供新增、删除、冗余索引建议 * 支持全量 workload 级别评估 示例: > 民生银行通过 DBMind 实现复杂 SQL 性能提升 50%+。 --- ## 4. 趋势预测 * 对 **磁盘、内存、数据库容量** 等指标做时序预测 * 提前识别资源风险并预警 **算法:** LR、ARIMA、深度学习混合模型 --- ## 5. 会话查杀 * 支持实时/批量会话终止 * 按节点+组件筛选阻塞会话 * 可 Kill 空闲会话释放资源 --- ## 6. 全量 SQL 洞察 * 共享内存采集 + 流式转储 * 对性能无显著影响 * 支持实时、周期性 SQL 审计与分析 --- # 五、考试重点汇总 | 模块 | 高频考点 | 答案 | | ---- | ------------------- | ------------- | | 导入导出 | gs_loader rows 参数含义 | 每 N 行提交一次事务 | | GDS | 并发导入 | 通过 DN 并行 | | 平台功能 | 纳管实例前提 | 主机已录入且在线 | | 升级 | 灰度升级两阶段 | 观察阶段 + 提交阶段 | | 备份 | 差量备份间隔默认 | 30分钟 | | 智能运维 | 慢SQL分析依据 | SQL耗时、执行计划 | | 索引推荐 | 作用 | 提升查询性能,清理冗余索引 | | 趋势预测 | 预测算法 | ARIMA / LR 回归 | | 会话查杀 | Kill 空闲会话目的 | 释放资源,防止死锁 |
上一篇:
6、ADG常见故障
下一篇:
6、windos中 rman全备和归档分开
0
赞
3 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网