数据库科普
Oracle 服务组件关系、运行链路和日常巡检参考。
组件关系
数据库与实例
- 数据库由数据文件、控制文件和在线重做日志等文件组成,持久保存数据。
- 实例由 SGA 内存区和后台进程组成,负责访问和管理数据库文件。实例不可用与数据库文件损坏是不同故障。
- 服务是应用连接数据库的逻辑入口,可关联一个或多个实例。
CDB 与 PDB
Oracle 12c 及之后版本可采用多租户架构。CDB 是容器数据库,PDB 是其中承载应用数据和对象的可插拔数据库。应用通常通过指向 PDB 的服务连接;巡检时需同时确认 CDB、目标 PDB 的状态及连接服务。
SELECT name, cdb, open_mode, database_role FROM v$database;
SELECT con_id, name, open_mode, restricted FROM v$pdbs ORDER BY con_id;NAME CDB OPEN_MODE DATABASE_ROLE
---- --- ---------- -------------
ORCL YES READ WRITE PRIMARY
CON_ID NAME OPEN_MODE RESTRICTED
------ -------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
4 PDB2 READ WRITE NO非 CDB 环境或不同版本的视图和字段可能不同,执行前先确认数据库版本与容器环境。
监听与连接
客户端 → 网络地址与端口 → Listener → 数据库 Service → Instance → 数据库文件
连接异常时,依次检查网络、监听、服务注册、实例状态和文件可用性,并记录错误信息和影响范围。
单机与 RAC
| 部署方式 | 实例与数据库关系 | 运维关注点 |
|---|---|---|
| 单机 | 通常由一个实例访问一套数据库文件 | 实例、服务、主机和存储状态 |
| RAC | 多个实例共同访问同一数据库 | 节点、实例、服务、集群存储及节点故障影响 |
RAC 通过多实例提供集群服务能力;Data Guard 通过主备数据库提供数据保护和容灾能力,两者用途不同。
RAC 节点通过集群互联协调实例活动,共同访问受支持的共享数据库存储。排查时应区分单节点故障、集群互联异常、共享存储异常和数据库服务异常。
SELECT inst_id, instance_name, host_name, status FROM gv$instance ORDER BY inst_id;
SELECT inst_id, name, network_name FROM gv$services ORDER BY inst_id, name;INST_ID INSTANCE_NAME HOST_NAME STATUS
------- ------------- --------- ------
1 orcl1 rac01 OPEN
2 orcl2 rac02 OPEN
INST_ID NAME NETWORK_NAME
------- ---- ------------
1 pdb1 pdb1
2 pdb1 pdb1数据库视图不能代替集群层检查;节点、集群资源和存储状态还需按现场使用的 Grid Infrastructure 工具核查。
Data Guard 主备链路
主库产生 redo → 网络传输 → 备库 RFS 写入 Standby Redo Log(SRL)→ MRP 应用
实时传输和实时应用不必等待主库日志归档;归档日志用于保留历史 redo、补齐缺口和介质恢复。
检查时区分日志已传输和已应用,并关注序列差异、传输延迟、应用延迟和 GAP。具体状态应结合当前角色和 Oracle 版本判断。
角色查询在已 MOUNT 或 OPEN 的主库、备库分别执行:
SELECT database_role, open_mode, protection_mode FROM v$database;DATABASE_ROLE OPEN_MODE PROTECTION_MODE
---------------- --------- --------------------
PHYSICAL STANDBY MOUNTED MAXIMUM PERFORMANCE以下延迟和 GAP 查询连接到物理备库后执行:
SELECT name, value, unit, time_computed
FROM v$dataguard_stats
WHERE name IN ('transport lag', 'apply lag');
SELECT * FROM v$archive_gap;NAME VALUE UNIT TIME_COMPUTED
------------- ------------- ----------- -------------------
transport lag +00 00:00:00 day to sec 2026-10-26 09:00:00
apply lag +00 00:00:00 day to sec 2026-10-26 09:00:00
no rows selectedV$ARCHIVE_GAP 用于查看当前阻塞恢复的 GAP;无返回行不替代对传输进程、应用进程和延迟的检查。物理备库可结合对应版本支持的 Data Guard 进程视图核查 RFS 和 Redo Apply 状态。
存储、归档与备份
- 存储:确认数据文件、控制文件、在线日志、归档日志和备份文件所在卷或目录,关注可用空间及增长趋势。
- 归档日志:用于介质恢复和 Data Guard 日志传输。删除前核对备份情况、备库应用情况及保留策略。
- RMAN:用于数据库物理备份与恢复。检查任务结果、备份位置、保留策略和恢复所需归档覆盖范围。
- Data Pump:用于逻辑导出与导入,常见于对象迁移;不能代替 RMAN 整库物理备份。
- 备份验证:备份任务成功不等于已验证可恢复,需按计划执行恢复校验或演练。
空间检查示例
使用数据库视图查看表空间使用率和快速恢复区(FRA)用量;操作系统文件系统仍需单独检查。下面的查询需要有权读取相应视图的账号。
SELECT tablespace_name, used_percent
FROM dba_tablespace_usage_metrics
ORDER BY used_percent DESC;
SELECT name, space_limit, space_used, space_reclaimable
FROM v$recovery_file_dest;TABLESPACE_NAME USED_PERCENT
--------------- ------------
USERS 68
SYSAUX 55
SYSTEM 48
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE
------------------------------ ----------- ---------- -----------------
/data_oracle/fast_recovery_area 536870912000 225485783040 53687091200DBA_TABLESPACE_USAGE_METRICS 的统计口径受数据文件自动扩展和底层存储可用空间等因素影响。结合数据文件、临时文件、归档目录和操作系统文件系统判断,不以单一百分比决定删除操作。
日常巡检
| 检查范围 | 记录内容 | 异常处理入口 |
|---|---|---|
| 实例与服务 | 实例状态、数据库角色、开放模式、服务和连接情况 | 确认预期状态及影响范围 |
| 主机资源 | CPU、内存、负载及变化趋势 | 数据库慢或卡顿排查 |
| 存储空间 | 数据、归档和备份目录容量及增长趋势 | 空间不足与同步中断排查 |
| Data Guard | 传输、应用、序列差异、延迟和 GAP | 同步中断排查 |
| 备份 | 作业结果、备份位置、归档覆盖范围、验证记录 | 备份恢复 |
| 监听与连接 | 监听状态、服务注册、连接数和错误信息 | 连接问题排查 |
具体命令、正常结果示例和记录表见日常巡检。每次巡检记录时间、主机或实例、检查结果和异常处理。巡检阈值以客户现行标准为准。
巡检频率和告警阈值按客户既有制度执行。SQL 执行前确认账号权限、容器和实例范围。
环境配置
现场版本、拓扑、目录和备份参数见环境配置。首页架构图仅表示常见主备关系,不代表客户实际拓扑。