写一个oracle巡检脚本
时间: 2024-04-25 13:02:37 浏览: 17
对于Oracle数据库巡检,可以采用以下脚本进行检查:
```
#!/bin/bash
# Oracle database health check script
# Set variables
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
ORACLE_SID=orcl
export ORACLE_HOME ORACLE_SID PATH
LOG_FILE=/var/log/oracle_health_check.log
echo "Starting Oracle health check at `date`" > $LOG_FILE
# Check if database is running
echo "Checking if database is running..." >> $LOG_FILE
ps -ef | grep pmon | grep -v grep > /dev/null
if [ $? -eq 0 ]; then
echo "Database is running." >> $LOG_FILE
else
echo "Database is not running." >> $LOG_FILE
exit 1
fi
# Check database uptime
echo "Checking database uptime..." >> $LOG_FILE
sqlplus -s /nolog << EOF >> $LOG_FILE
conn / as sysdba
set pagesize 0 feedback off verify off heading off echo off
SELECT to_char(startup_time,'YYYY-MM-DD HH24:MI:SS') "UP_TIME" FROM v\$instance;
EOF
# Check database size
echo "Checking database size..." >> $LOG_FILE
sqlplus -s /nolog << EOF >> $LOG_FILE
conn / as sysdba
set pagesize 0 feedback off verify off heading off echo off
SELECT sum(bytes)/1024/1024/1024 as "DATABASE_SIZE_GB" FROM dba_data_files;
EOF
# Check tablespace usage
echo "Checking tablespace usage..." >> $LOG_FILE
sqlplus -s /nolog << EOF >> $LOG_FILE
conn / as sysdba
set pagesize 1000
col "TABLESPACE_NAME" for a20
col "USED_MB" for 99,999
col "FREE_MB" for 99,999
col "TOTAL_MB" for 99,999
SELECT tablespace_name "TABLESPACE_NAME",
ROUND((total.used_space / 1024 / 1024), 2) "USED_MB",
ROUND((total.free_space / 1024 / 1024), 2) "FREE_MB",
ROUND(((total.used_space + total.free_space) / 1024 / 1024), 2) "TOTAL_MB",
ROUND((total.used_space / total.total_space) * 100, 2) "PCT_USED"
FROM (SELECT tablespace_name,
SUM(bytes) free_space,
0 used_space,
SUM(bytes) total_space
FROM dba_free_space
GROUP BY tablespace_name
UNION ALL
SELECT tablespace_name,
0 free_space,
SUM(bytes) used_space,
SUM(bytes) total_space
FROM dba_data_files
GROUP BY tablespace_name) total
ORDER BY 5 DESC;
EOF
echo "Oracle health check completed at `date`" >> $LOG_FILE
```
这个脚本主要做了以下检查:
- 检查数据库是否运行
- 检查数据库运行时间
- 检查数据库大小
- 检查表空间使用情况
你可以将脚本中的变量和路径根据你的Oracle数据库实例进行修改,然后将脚本保存为.sh文件,然后直接在终端运行即可。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)