1. 首页 > 国产数据库教程 > 达梦DM教程 > 正文

DM教程FG025-达梦数据库日常维护与巡检实战

内容简介:本文档风哥主要介绍DM达梦数据库的日常维护与巡检,涵盖日常维护的概念、类型、操作,以及巡检的概念、类型、操作等内容,风哥教程参考DM官方文档《DM8数据库管理员手册》、《DM8数据库维护指南》等官方资料。本文档为DM数据库学习系列的第二十五篇,重点介绍DM数据库日常维护与巡检的详细步骤和实战操作。

Part01-基础概念与理论知识

1.1 日常维护概述

日常维护是确保DM数据库稳定运行的重要工作,包括数据库的启动、关闭、备份、恢复、性能监控等操作。

1.1.1 日常维护的定义

日常维护是指定期对DM数据库进行的常规操作,旨在确保数据库的稳定性、安全性和性能。

1.1.2 日常维护的目标

  • 确保数据库稳定运行
  • 保证数据安全
  • 优化数据库性能
  • 预防故障发生

1.2 巡检概述

巡检是指定期对DM数据库进行的全面检查,旨在发现潜在问题并及时处理,确保数据库的健康运行。

1.2.1 巡检的定义

巡检是指定期对DM数据库的各项指标进行检查,包括数据库状态、性能、空间使用情况等,以确保数据库的健康运行。

1.2.2 巡检的目标

  • 发现潜在问题
  • 及时处理异常
  • 优化数据库配置
  • 提高系统可靠性

1.3 维护类型

DM数据库的日常维护包括多种类型,每种类型针对不同的维护目标。

1.3.1 常规维护

  • 启动/关闭:数据库的正常启动和关闭
  • 备份/恢复:数据库的备份和恢复操作
  • 日志管理:归档日志的管理
  • 空间管理:表空间和数据文件的管理

1.3.2 性能维护

  • 参数调整:数据库参数的优化
  • SQL优化:执行计划的分析和优化
  • 索引维护:索引的创建、重建和维护
  • 统计信息:统计信息的收集和更新

1.3.3 安全维护

  • 用户管理:用户的创建、修改和删除
  • 权限管理:权限的授予和撤销
  • 审计:数据库操作的审计
  • 加密:数据的加密和保护
  • 风哥提示:

1.4 巡检类型

DM数据库的巡检包括多种类型,每种类型针对不同的检查目标。

1.4.1 日常巡检

  • 状态检查:数据库状态的检查
  • 性能检查:数据库性能的检查
  • 空间检查:存储空间的检查
  • 日志检查:日志文件的检查

1.4.2 定期巡检

  • 周巡检:每周进行的全面检查
  • 月巡检:每月进行的深度检查
  • 季度巡检:每季度进行的综合检查
  • 年度巡检:每年进行的全面评估

1.4.3 专项巡检

  • 性能巡检:针对性能问题的检查
  • 安全巡检:针对安全问题的检查
  • 高可用巡检:针对高可用配置的检查
  • 备份恢复巡检:针对备份恢复策略的检查

Part02-生产环境规划与建议

2.1 维护计划

合理的维护计划是确保DM数据库稳定运行的关键。

2.1.1 维护计划目标

  • 确保数据库稳定运行
  • 学习交流加群风哥微信: itpux-com

  • 保证数据安全
  • 优化数据库性能
  • 降低运维成本

2.1.2 维护计划内容

# 维护计划内容
1. 日常维护:每天进行的常规操作
2. 周维护:每周进行的维护操作
3. 月维护:每月进行的维护操作
4. 季度维护:每季度进行的维护操作
5. 年度维护:每年进行的维护操作

2.2 巡检计划

合理的巡检计划是确保DM数据库健康运行的关键。

2.2.1 巡检计划目标

  • 发现潜在问题
  • 及时处理异常
  • 优化数据库配置
  • 提高系统可靠性

2.2.2 巡检计划内容

# 巡检计划内容
1. 日常巡检:每天进行的常规检查
2. 周巡检:每周进行的全面检查
3. 月巡检:每月进行的深度检查
4. 季度巡检:每季度进行的综合检查
5. 年度巡检:每年进行的全面评估

2.3 维护策略

不同的维护策略适用于不同的场景。

2.3.1 预防性维护

  • 定期备份:定期对数据库进行备份
  • 统计信息更新:定期更新统计信息
  • 索引维护:定期重建索引
  • 参数调整:根据性能情况调整参数

学习交流加群风哥QQ113257174

2.3.2 修复性维护

  • 故障处理:处理数据库故障
  • 数据恢复:恢复丢失的数据
  • 性能优化:优化数据库性能
  • 安全加固:加强数据库安全

2.4 巡检策略

不同的巡检策略适用于不同的场景。

2.4.1 常规巡检

  • 状态检查:检查数据库状态
  • 性能检查:检查数据库性能
  • 空间检查:检查存储空间
  • 日志检查:检查日志文件

2.4.2 深度巡检

  • 参数检查:检查数据库参数配置
  • 索引检查:检查索引使用情况
  • SQL检查:检查SQL执行情况
  • 安全检查:检查安全配置

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

3.1 日常维护操作

详细介绍DM数据库的日常维护操作。

3.1.1 启动和关闭

# 启动数据库
$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini
# 关闭数据库
$ disql SYSDBA/SYSDBA
SQL> shutdown normal;

3.1.2 备份和恢复

# 备份数据库
$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
# 恢复数据库 更多视频教程www.fgedu.net.cn
$ /dm/app/bin/dmrman
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup’;
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ update db_magic;

3.1.3 日志管理

# 查看归档日志
SQL> select * from v$archived_log;
# 清理归档日志
$ rm -rf /dm/arch/*

3.1.4 空间管理

# 查看表空间使用情况
SQL> select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name;
# 扩展表空间
SQL> alter tablespace fgedutbs add datafile ‘/dm/fgdata/fgedudb/fgedutbs02.dbf’ size 100M autoextend on next 10M maxsize 1000M;

3.2 定期巡检操作

详细介绍DM数据库的定期巡检操作。

3.2.1 状态检查

# 查看数据库状态
SQL> select status from v$instance;
# 查看会话情况
SQL> select count(*) from v$session;
# 查看锁情况
SQL> select * from v$lock;

3.2.2 性能检查

# 查看系统负载
$ top
# 查看I/O情况
$ iostat -x
# 查看内存使用情况
$ free -m
# 查看数据库性能指标
SQL> select * from v$sysstat; 更多学习教程公众号风哥教程itpux_com

3.2.3 空间检查

# 查看表空间使用情况
SQL> select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name;
# 查看数据文件使用情况
SQL> select file_name, bytes/1024/1024 as size_mb, maxbytes/1024/1024 as max_mb from dba_data_files;
# 查看归档日志空间
$ du -sh /dm/arch

3.2.4 日志检查

# 查看告警日志
$ tail -f /dm/fgdata/fgedudb/alert.log
# 查看错误日志
$ tail -f /dm/fgdata/fgedudb/dm_*.log

3.3 维护工具

介绍DM数据库的维护工具。

3.3.1 命令行工具

  • dmserver:数据库服务进程
  • disql:交互式SQL工具
  • dmrman:备份恢复工具
  • dminit:数据库初始化工具

3.3.2 图形化工具

  • DM管理工具:图形化管理界面
  • DM控制台工具:服务器管理工具
  • from DB视频:www.itpux.com

  • DM性能监控工具:性能监控工具

3.4 巡检工具

介绍DM数据库的巡检工具。

3.4.1 内置视图

  • v$instance:实例状态
  • v$session:会话信息
  • v$lock:锁信息
  • v$sysstat:系统统计信息
  • v$tablespace:表空间信息
  • v$datafile:数据文件信息

3.4.2 第三方工具

  • Nagios:监控系统
  • Zabbix:监控系统
  • Prometheus:监控系统
  • Grafana:可视化工具

Part04-生产案例与实战讲解

4.1 日常维护实战演示

通过实际操作演示DM数据库的日常维护过程。

4.1.1 数据库启动

# 启动数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini
# 输出信息
[2023-04-09 14:00:00] INI[3.0] V8
[2023-04-09 14:00:00] 数据库模式=0, 实例状态=0
[2023-04-09 14:00:00] 系统已启动

4.1.2 数据库备份

# 备份数据库
[dmdba@fgedu ~]$ /dm/app/bin/dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup’ compressed;
# 输出信息
[2023-04-09 14:05:00] 备份开始
[2023-04-09 14:05:00] 备份文件: /dm/backup/full_backup
[2023-04-09 14:06:00] 备份完成,耗时: 1分0秒
[2023-04-09 14:06:00] 备份集大小: 100MB

4.1.3 表空间扩展

# 查看表空间使用情况
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME USED_MB MAX_MB
———————– ———– ———–
SYSTEM 100 1024
ROLL 50 512
TEMP 20 256
FGEDUTBS 95 100
# 扩展表空间
SQL> alter tablespace fgedutbs add datafile ‘/dm/fgdata/fgedudb/fgedutbs02.dbf’ size 100M autoextend on next 10M maxsize 1000M;
# 输出信息
操作已执行
# 验证表空间扩展
SQL> select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME USED_MB MAX_MB
———————– ———– ———–
SYSTEM 100 1024
ROLL 50 512
TEMP 20 256
FGEDUTBS 95 1100

4.2 巡检实战演示

通过实际操作演示DM数据库的巡检过程。

4.2.1 状态检查

# 查看数据库状态
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select status from v$instance;
STATUS
——-
OPEN
# 查看会话情况
SQL> select count(*) from v$session;
COUNT(*)
———-
5
# 查看锁情况
SQL> select * from v$lock;
ADDR TRX_ID LMODE LTYPE TABLE_ID ROW_IDX BLOCKED
——– ———– ——— ——— ———- ——— ——–

4.2.2 性能检查

# 查看系统负载
[dmdba@fgedu ~]$ top
# 输出信息
top – 14:10:00 up 1 day, 2:00, 1 user, load average: 0.10, 0.05, 0.01
Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 16000.0 total, 10000.0 free, 5000.0 used, 1000.0 buff/cache
MiB Swap: 8000.0 total, 8000.0 free, 0.0 used. 10500.0 avail Mem
# 查看I/O情况
[dmdba@fgedu ~]$ iostat -x
# 输出信息
Linux 5.4.0-100-generic (fgedu) 04/09/2023 _x86_64_ (8 CPU)
device r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
loop0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 10.00 5.00 0.10 0.05 20.00 0.10 5.00 3.00 8.00 1.00 1.50
# 查看数据库性能指标
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$sysstat where name like ‘%exec%’;
STAT_ID NAME VALUE
———– ——————– ———–
1001 sql_exec_count 1000
1002 plsql_exec_count 100

4.2.3 空间检查

# 查看表空间使用情况
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name;
TABLESPACE_NAME USED_MB MAX_MB
———————– ———– ———–
SYSTEM 100 1024
ROLL 50 512
TEMP 20 256
FGEDUTBS 95 1100
# 查看归档日志空间
[dmdba@fgedu ~]$ du -sh /dm/arch
# 输出信息
100M /dm/arch

4.3 维护脚本实战

通过实际操作演示DM数据库的维护脚本使用。

4.3.1 日常维护脚本

#!/bin/bash
# daily_maintenance.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 检查数据库状态
check_db_status() {
status=$(disql SYSDBA/SYSDBA << EOF select status from vinstance; exit; EOF ) echo "数据库状态: $status" } # 备份数据库 backup_db() { timestamp=$(date +%Y%m%d%H%M%S) /dm/app/bin/dmrman << EOF backup database '/dm/fgdata/fgedudb/dm.ini' full backupset '/dm/backup/full_backup_$timestamp' compressed; exit; EOF echo "数据库备份完成: /dm/backup/full_backup_$timestamp" } # 检查表空间使用情况 check_tablespace() { disql SYSDBA/SYSDBA << EOF select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name; exit; EOF } # 执行维护操作 echo "开始日常维护操作..." check_db_status echo "\n" backup_db echo "\n" check_tablespace echo "\n" echo "日常维护操作完成!"

4.3.2 巡检脚本

#!/bin/bash
# inspection.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 检查系统状态
check_system() {
echo “=== 系统状态检查 ===”
uptime
free -m
df -h
iostat -x
}
# 检查数据库状态
check_database() {
echo “=== 数据库状态检查 ===”
disql SYSDBA/SYSDBA << EOF select status from vinstance; select count(*) from vsession; select * from vlock; exit; EOF } # 检查表空间使用情况 check_tablespace() { echo "=== 表空间使用情况检查 ===" disql SYSDBA/SYSDBA << EOF select tablespace_name, sum(bytes)/1024/1024 as used_mb, sum(maxbytes)/1024/1024 as max_mb from dba_data_files group by tablespace_name; exit; EOF } # 检查告警日志 check_alert() { echo "=== 告警日志检查 ===" tail -n 100 /dm/fgdata/fgedudb/alert.log } # 执行巡检操作 echo "开始巡检操作..." check_system echo "\n" check_database echo "\n" check_tablespace echo "\n" check_alert echo "\n" echo "巡检操作完成!"

Part05-风哥经验总结与分享

5.1 日常维护技巧与注意事项

基于实际经验,分享一些DM数据库日常维护的技巧和注意事项。

5.1.1 日常维护技巧

  • 定期备份数据库
  • 及时更新统计信息
  • 定期重建索引
  • 监控数据库性能
  • 及时处理告警信息
  • 制定详细的维护计划
  • 培训运维人员
  • 持续优化数据库配置

5.1.2 日常维护注意事项

  • 避免在业务高峰期进行维护操作
  • 确保备份的安全性和可恢复性
  • 注意数据库参数的调整
  • 避免过度维护
  • 记录维护操作
  • 测试维护操作
  • 更新维护计划
  • 学习维护技术

5.2 巡检技巧与注意事项

基于实际经验,分享一些DM数据库巡检的技巧和注意事项。

5.2.1 巡检技巧

  • 制定详细的巡检计划
  • 使用自动化工具进行巡检
  • 关注关键指标
  • 及时处理巡检发现的问题
  • 定期分析巡检结果
  • 持续优化巡检策略
  • 培训巡检人员
  • 分享巡检经验

5.2.2 巡检注意事项

  • 避免在业务高峰期进行巡检
  • 确保巡检工具的准确性
  • 注意巡检数据的分析
  • 避免过度巡检
  • 记录巡检结果
  • 测试巡检工具
  • 更新巡检计划
  • 学习巡检技术

5.3 最佳实践建议

基于实际经验,提供DM数据库日常维护与巡检的最佳实践。

5.3.1 日常维护最佳实践

风哥提示:在进行DM数据库日常维护时,要制定详细的维护计划,定期备份数据库,及时更新统计信息,监控数据库性能,确保数据库的稳定运行。

5.3.2 巡检最佳实践

  • 制定巡检计划:根据系统规模和业务需求,制定合理的巡检计划
  • 使用自动化工具:使用自动化工具进行巡检,提高效率
  • 关注关键指标:关注数据库的关键指标,及时发现问题
  • 及时处理问题:对巡检发现的问题及时处理,避免问题扩大
  • 定期分析结果:定期分析巡检结果,优化数据库配置

5.3.3 维护脚本最佳实践

  • 使用Shell脚本自动化维护操作
  • 脚本中添加日志记录
  • 脚本中添加错误处理
  • 定期测试脚本
  • 更新脚本以适应新的需求

5.3.4 巡检脚本最佳实践

  • 使用Shell脚本自动化巡检操作
  • 脚本中添加详细的检查项
  • 脚本中添加告警机制
  • 定期测试脚本
  • 更新脚本以适应新的需求

5.3.5 持续优化最佳实践

  • 建立维护和巡检的优化机制
  • 定期进行维护和巡检的优化
  • 学习维护和巡检技术
  • 分享维护和巡检经验
  • 持续改进维护和巡检能力

本文档风哥教程参考DM官方文档《DM8数据库管理员手册》、《DM8数据库维护指南》等资料编写,。

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

联系我们

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

微信号:itpux-com

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