Linux上Oracle自动化运维落地方案
一 基础架构与自动化框架
二 备份恢复与数据保护
三 监控告警与可观测性
四 配置管理与编排
五 实战模板与最小落地清单
#!/usr/bin/env bash
export ORACLE_SID=ORCL
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
rman target / <<'EOF'
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT;
BACKUP SPFILE;
DELETE NOPROMPT OBSOLETE;
EXIT
EOF
调度示例(每天 01:00):0 1 * * * /opt/scripts/rman_backup.sh >> /var/log/rman_backup.log 2>&1sqlplus -S / as sysdba <<'EOF' | grep -v "^$" | \
awk '{print "alter system kill session '\''"$1","$2"'\'' immediate;"}' | \
sqlplus -S / as sysdba
set linesize 200 pagesize 0
select sid, serial# from v\$session
where username = upper('HR') and status = 'ACTIVE';
EOF
[Unit]
Description=Oracle Database Service
After=network.target
[Service]
Type=simple
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
Environment="ORACLE_SID=ORCL"
ExecStart=/bin/su - oracle -lc "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
ExecStop=/bin/su - oracle -lc "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
TimeoutSec=300
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用:systemctl daemon-reload && systemctl enable --now oracle