数据库运行状态检查不能只看“进程在不在”而要从操作系统层面和数据库层面两方面综合判断。操作系统正常只能说明宿主环境基本可用数据库查询正常才能说明实例或服务真正处于可用状态。一、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 持续增长 - 连接数无明显异常