暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
巡检小脚本
681
3页
44次
2021-07-26
免费下载
#!/bin/bash
#
#README
#本脚本用于巡检时生成 insert 语句保存表空间、磁盘空间信息(ASM 待开发)。
#执行脚本前,提前使用 touch 创建 tbs.sqldisk.sql
#Usage:./insert.sh [项目<tbs/disk/#asm>] [DBNAME] [HOSTS]
#
#
################################################################################
#################
DBNAME=$2
HOSTS=$3
tbsfile='tbs.sql'
diskfile='disk.sql'
IFS=','
###输出表空间信息 insert 语句
if [ "$1" = "tbs" ]; then
#提取表空间信息
sqlplus -S '/AS SYSDBA' <<EOF
SET ECHO OFF
SET HEADING OFF
SET LINESIZE 180
SET PAGESIZE 50000
SET TIMING OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN status FORMAT a9
COLUMN name FORMAT a25
COLUMN type FORMAT a15
COLUMN extent_mgt FORMAT a10
COLUMN segment_mgt FORMAT a10
COLUMN ts_size FORMAT 9,999,999
COLUMN used FORMAT 9,999,999
COLUMN free FORMAT 9,999,999
COLUMN pct_used FORMAT 999
COLUMN PCT_FREE FORMAT 999
SPOOL oratbs.csv
SELECT
D.STATUS STATUS
, D.TABLESPACE_NAME NAME
, D.CONTENTS TYPE
, D.EXTENT_MANAGEMENT EXTENT_MGT
, D.SEGMENT_SPACE_MANAGEMENT SEGMENT_MGT
, NVL(A.BYTES, 0)/1024/1024 TS_SIZE
, ROUND(A.MAXBYTES/1048576) MAX_MB
, ROUND(NVL(A.BYTES - NVL(F.BYTES, 0), 0)/1024/1024,2) USED
, ROUND(F.BYTES/1048576) FREE_MB
, NVL((A.BYTES - NVL(F.BYTES, 0)) / A.BYTES * 100, 0) PCT_USED
, ROUND(F.BYTES/A.BYTES * 100 ,2) PCT_FREE
, ROUND((A.MAXBYTES-A.BYTES+F.BYTES)/ A.MAXBYTES * 100,2) MAX_PCT_FREE
FROM
SYS.DBA_TABLESPACES D
, ( SELECT TABLESPACE_NAME, SUM(BYTES) BYTES,SUM(DECODE(MAXBYTES, 0, BYTES,
MAXBYTES)) MAXBYTES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME
) A
, ( SELECT TABLESPACE_NAME, SUM(BYTES) BYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME
) F
WHERE
D.TABLESPACE_NAME = A.TABLESPACE_NAME(+)
AND D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
AND NOT (
D.EXTENT_MANAGEMENT LIKE 'LOCAL'
AND
D.CONTENTS LIKE 'TEMPORARY'
)
UNION ALL
SELECT
D.STATUS STATUS
, D.TABLESPACE_NAME NAME
, D.CONTENTS TYPE
, D.EXTENT_MANAGEMENT EXTENT_MGT
, D.SEGMENT_SPACE_MANAGEMENT SEGMENT_MGT
, NVL(A.BYTES, 0)/1024/1024 TS_SIZE
, ROUND(A.MAXBYTES/1048576) MAX_MB
, ROUND(NVL(T.BYTES, 0)/1024/1024,2) USED
, ROUND((A.BYTES-NVL(T.BYTES,0))/1048576) FREE_MB
, NVL(T.BYTES / A.BYTES * 100, 0) PCT_USED
, ROUND((A.BYTES-NVL(T.BYTES,0)) / A.BYTES * 100,2) PCT_FREE
, ROUND((A.MAXBYTES-NVL(T.BYTES,0)) / A.MAXBYTES * 100,2) MAX_PCT_FREE
FROM
SYS.DBA_TABLESPACES D
, ( SELECT TABLESPACE_NAME, SUM(BYTES) BYTES,SUM(DECODE(MAXBYTES, 0, BYTES,
MAXBYTES)) MAXBYTES
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME
) A
, ( SELECT TABLESPACE_NAME, SUM(BYTES_CACHED) BYTES
FROM V\$TEMP_EXTENT_POOL
GROUP BY TABLESPACE_NAME
) T
WHERE
D.TABLESPACE_NAME = A.TABLESPACE_NAME(+)
AND D.TABLESPACE_NAME = T.TABLESPACE_NAME(+)
AND D.EXTENT_MANAGEMENT LIKE 'LOCAL'
AND D.CONTENTS LIKE 'TEMPORARY'
ORDER BY PCT_USED
/
SPOOL OFF
exit;
EOF
of 3
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜