Oracle 环境验证清单
Oracle 环境验证清单
适用版本:Oracle Database 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Oracle 安装后验证清单[1]:
详细见:Oracle 环境配置最佳实践。
2. 系统验证
2.1 操作系统
# 版本
cat /etc/oracle-release
uname -a
# 内存
free -h
# 磁盘
df -h
# CPU
nproc
lscpu
2.2 内核参数
sysctl -a | grep -E 'shmall|shmmax|shmmni|sem'
sysctl -a | grep -E 'fs.file-max|fs.aio-max-nr'
sysctl -a | grep -E 'ip_local_port_range|rmem|wmem'
2.3 资源限制
su - oracle
ulimit -a
# 检查
cat /etc/security/limits.d/99-oracle.conf
2.4 HugePages
grep Huge /proc/meminfo
2.5 透明大页
cat /sys/kernel/mm/transparent_hugepage/enabled
# 应为 never
3. Oracle 软件
3.1 ORACLE_HOME
echo $ORACLE_HOME
echo $ORACLE_BASE
echo $ORACLE_SID
ls -l $ORACLE_HOME/bin/oracle
$ORACLE_HOME/bin/sqlplus -V
3.2 OPatch
$ORACLE_HOME/OPatch/opatch version
$ORACLE_HOME/OPatch/opatch lsinventory
3.3 Inventory
cat /etc/oraInst.loc
ls /u01/app/oraInventory
4. 数据库实例
4.1 状态
sqlplus / as sysdba
SELECT name, open_mode, log_mode, flashback_on
FROM v$database;
SELECT instance_name, status, version, startup_time
FROM v$instance;
SELECT * FROM v$version;
4.2 参数
SHOW PARAMETER name
SHOW PARAMETER sga
SHOW PARAMETER pga
SHOW PARAMETER processes
SHOW PARAMETER open_cursors
SHOW PARAMETER db_block_size
SHOW PARAMETER compatible
SHOW PARAMETER character
SHOW PARAMETER db_recovery_file
SHOW PARAMETER archive
4.3 字符集
SELECT parameter, value
FROM nls_database_parameters
WHERE parameter LIKE '%CHARACTERSET';
4.4 组件
SELECT comp_id, version, status, comp_name
FROM dba_registry;
4.5 选项
SELECT parameter, value FROM v$option ORDER BY parameter;
5. 网络
5.1 监听器
lsnrctl status
lsnrctl services
5.2 连接
sqlplus system/Oracle123@orcl
sqlplus sys/Oracle123@orcl as sysdba
tnsping orcl
5.3 配置
cat $ORACLE_HOME/network/admin/listener.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora
cat $ORACLE_HOME/network/admin/sqlnet.ora
5.4 防火墙
firewall-cmd --list-ports
firewall-cmd --list-services
6. 存储
6.1 表空间
SELECT tablespace_name, file_id, file_name, bytes/1024/1024/1024 AS GB, status
FROM dba_data_files
ORDER BY tablespace_name;
SELECT tablespace_name, status, contents
FROM dba_tablespaces;
6.2 空间
SELECT tablespace_name,
ROUND(SUM(total_mb)/1024, 2) AS total_gb,
ROUND(SUM(used_mb)/1024, 2) AS used_gb,
ROUND(SUM(free_mb)/1024, 2) AS free_gb
FROM (
SELECT tablespace_name,
SUM(bytes)/1024/1024 AS total_mb,
0 AS used_mb, 0 AS free_mb
FROM dba_data_files GROUP BY tablespace_name
UNION ALL
SELECT tablespace_name, 0, 0, SUM(bytes)/1024/1024
FROM dba_free_space GROUP BY tablespace_name
)
GROUP BY tablespace_name;
6.3 FRA
SELECT name,
space_limit/1024/1024/1024 AS limit_gb,
space_used/1024/1024/1024 AS used_gb,
space_reclaimable/1024/1024/1024 AS reclaimable_gb
FROM v$recovery_file_dest;
7. ASM(如适用)
7.1 状态
srvctl status asm
asmcmd lsdg
asmcmd lsdsk
7.2 Disk Group
SELECT group_number, name, state, type, total_mb, free_mb
FROM v$asm_diskgroup;
详细见:Oracle ASM 安装详解。
8. RAC(如适用)
8.1 集群状态
crsctl stat res -t
crsctl check cluster -all
crsctl check crs
8.2 节点
olsnodes -n -s -t
8.3 数据库
srvctl status database -db orcl
srvctl config database -db orcl
8.4 实例
SELECT inst_id, instance_name, status, host_name
FROM gv$instance;
8.5 OCR / Voting
ocrcheck
crsctl query css votedisk
详细见:Oracle RAC 19c 部署详解。
9. Data Guard(如适用)
9.1 Broker
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE orcl_pri;
DGMGRL> SHOW DATABASE orcl_std;
9.2 状态
SELECT process, status, thread#, sequence#
FROM v$managed_standby;
SELECT name, value FROM v$dataguard_stats;
10. PDB(如适用)
10.1 状态
SELECT con_id, name, open_mode, restricted
FROM v$pdbs;
10.2 服务
SELECT name, pdb FROM v$services;
11. 备份配置
11.1 RMAN
RMAN> SHOW ALL;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
11.2 归档
ARCHIVE LOG LIST;
SELECT dest_id, status, destination
FROM v$archive_dest WHERE status != 'INACTIVE';
详细见:Oracle 备份策略与最佳实践。
12. 监控
12.1 AWR
SELECT snap_id, begin_interval_time, end_interval_time
FROM dba_hist_snapshot
ORDER BY snap_id DESC FETCH FIRST 5 ROWS ONLY;
12.2 EM Express
curl -k https://localhost:5500/em
13. 安全
13.1 密码
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE resource_type = 'PASSWORD';
13.2 审计
SELECT name, value FROM v$parameter WHERE name = 'audit_trail';
13.3 用户
SELECT username, account_status, lock_date, expiry_date
FROM dba_users
ORDER BY username;
详细见:Oracle 安全深度解析。
14. 性能基线
14.1 AWR 快照
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
14.2 统计
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
14.3 基线
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
start_snap_id => :bid,
end_snap_id => :eid,
baseline_name => 'initial_baseline'
);
详细见:Oracle AWR 详解。
15. 验证脚本
15.1 verify.sh
#!/bin/bash
echo "=== 系统验证 ==="
echo "OS: $(cat /etc/oracle-release)"
echo "内存: $(free -h | grep Mem | awk '{print $2}')"
echo "磁盘: $(df -h /u01 | tail -1 | awk '{print $4 " 可用"}')"
echo "=== Oracle 软件 ==="
su - oracle -c "echo \$ORACLE_HOME"
su - oracle -c "echo \$ORACLE_SID"
su - oracle -c "\$ORACLE_HOME/OPatch/opatch version"
echo "=== 数据库 ==="
su - oracle -c "sqlplus -S / as sysdba" << 'EOF'
SET LINESIZE 200
SELECT name, open_mode, log_mode FROM v$database;
SELECT instance_name, status FROM v$instance;
SELECT comp_id, version, status FROM dba_registry;
EXIT;
EOF
echo "=== 监听器 ==="
su - oracle -c "lsnrctl status"
echo "=== 网络连接 ==="
su - oracle -c "tnsping orcl"
echo "=== 完成 ==="
16. 验证清单
16.1 系统
- OS 版本
- 内核参数
- 资源限制
- HugePages
- 透明大页禁用
- 防火墙
- SELinux
- NTP
16.2 Oracle
- ORACLE_HOME
- OPatch 版本
- 补丁版本
- 数据库状态
- 字符集
- 组件状态
16.3 网络
- 监听器
- tnsnames
- 防火墙端口
16.4 存储
- 表空间
- 数据文件
- FRA
- ASM
16.5 集群(RAC)
- CRS 状态
- 节点
- OCR / Voting
16.6 备份
- RMAN 配置
- 归档模式
- 备份测试
16.7 监控
- AWR
- EM Express
- 告警
17. 最佳实践
- 完整验证清单:标准
- 脚本化:自动化
- 基线建立:对比
- 文档化:记录
- 定期验证:维护
- 关键指标:监控
- 错误检查:及时
- 测试连接:业务
- 备份恢复测试:应急
- 团队培训:能力
18. 参考资料
[1] Oracle Database 2 Day DBA 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/