数据库运行状态检查不能只看"进程在不在",而要从操作系统层面 和数据库层面 两方面综合判断。
操作系统正常,只能说明宿主环境基本可用;数据库查询正常,才能说明实例或服务真正处于可用状态。
一、Oracle数据库正常吗?运维常用检查步骤整理
先检查操作系统磁盘、负载、内存、Oracle/ASM进程是否正常,再登录数据库检查实例是否 OPEN、数据库是否 READ WRITE、SQL 查询是否正常返回,若均正常,则可判断 Oracle 数据库运行正常。
Oracle 数据库状态检查顺序:
一、先检查操作系统层面
1. 查看磁盘空间
df -h
2. 查看主机负载
uptime
3. 查看内存使用
free -g
4. 查看 Oracle 关键进程
ps -ef | grep pmon
ps -ef | grep oracle
5. 如果使用 ASM,再查看磁盘组状态
su - grid
asmcmd lsdg
判断要点:
- 磁盘空间不能打满
- 负载不能明显异常过高
- 内存不能严重不足
- pmon 进程必须存在
- ASM 磁盘组状态应为 MOUNTED
二、再检查数据库层面
su - oracle
sqlplus / as sysdba
1. 查看实例状态
select instance_name,status,startup_time from v$instance;
2. 查看数据库状态
select name,open_mode,database_role from v$database;
3. 查看当前时间是否能正常返回
select systimestamp from dual;
4. 如果是 CDB/PDB,查看当前容器
show con_name;
判断要点:
- STATUS = OPEN
- OPEN_MODE = READ WRITE
- DATABASE_ROLE 与实际角色一致
- systimestamp 能正常返回
- PDB 名称正确
二、MySQL数据库正常吗?运维常用检查步骤整理
先检查操作系统磁盘、负载、内存、MySQL进程和服务状态,再登录数据库检查服务是否可响应、SQL是否可正常执行、运行时间是否正常增长;若均正常,则可判断MySQL数据库运行正常。
MySQL是否正常,不能只看进程是否存在,还要结合操作系统资源、服务状态和数据库响应情况综合判断。
MySQL数据库状态检查顺序:
一、先检查操作系统层面
1. 查看磁盘空间
df -h
2. 查看主机负载
uptime
3. 查看内存使用
free -g
4. 查看 MySQL 进程
ps -ef | grep mysqld
5. 查看 MySQL 服务状态
systemctl status mysqld
或
systemctl status mysql
判断要点:
- 磁盘空间不能打满
- 主机负载不能明显异常过高
- 内存不能严重不足
- mysqld 进程必须存在
- MySQL 服务状态应为 active (running)
二、再检查数据库层面
1. 检查服务是否可响应
mysqladmin -uroot -p ping
2. 登录数据库
mysql -uroot -p
3. 查看版本和运行时间
select version();
show global status like 'Uptime';
4. 查看是否可正常执行SQL
select now();
5. 查看连接数
show global status like 'Threads_connected';
6. 查看监听端口
show variables like 'port';
show variables like 'socket';
判断要点:
- mysqladmin ping 返回 mysqld is alive
- 能正常登录数据库
- select now() 能正常返回结果
- Uptime 持续增长
- 连接数无明显异常