1.

#! /bin/ksh

#set -x

SID=$1

ORACLE_SID=stat10g
ORACLE_HOME=/oracle10g/product/10.2
PATH=$PATH:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:.:/usr/local/bin
export ORACLE_SID ORACLE_HOME  PATH

DATE=`date +%Y%m%d`
BASEDIR=/home/oracle/monitor/segment_size
LOGDIR=/database/log/segment_size

#Window DBs
DATABASE="boeprod newsdb"

#LOGG=/${BASEDIR}/win.log
#>LOGG

for i in ${DATABASE}
do
LOG=/${LOGDIR}/log/${i}_`date '+%Y%m%d'`.log

sqlplus oper/oper123<< EOF > ${LOG}
set echo off
--heading on feedback on head on serveroutput on
prompt "tbs utilization:"
set line 142;
set pagesize 1000;
col tablespace_name for a30;
set num 10;
col instance_name for a15
col used_ for 999,990.90;
col free_ for a15;
col free_percentage for a15;

select a.tablespace_name,all_sum "all_sum(M)",
 to_char(nvl(free_sum,0),'9,999,990.00')||'M' free_,
 to_char(100*nvl(free_sum,0)/all_sum,'900.00')||'%' free_percentage,instance_name
  from
  (select tablespace_name,sum(bytes)/1024/1024 all_sum
   from dba_data_files@${i}
   group by tablespace_name) a,
  (select tablespace_name,sum(bytes)/1024/1024 free_sum
   from dba_free_space@${i}
   group by tablespace_name) c, v\$instance@${i}
  where
  a.tablespace_name = c.tablespace_name(+)
  order by 4
/

prompt "tbs percentage utilization:"
--tbs percentage utilization
select tablespace_name,  to_char(sysdate,'YYYY-MM') "Date", org_mb total, free_mb free, pct_free pct_free,
--CASE WHEN (  (((0.8*org_mb)-free_mb)/(1-0.8))    < 1) THEN 0
--     ELSE  (((0.8*org_mb)-free_mb)/(1-0.8))
--     END as "Free80%-Add",
CASE WHEN (  (((0.2*org_mb)-free_mb)/(1-0.2))    < 1) THEN 0
     ELSE (((0.2*org_mb)-free_mb)/(1-0.2))
     END as "Free20%-Add",
CASE WHEN (  (((0.17*org_mb)-free_mb)/(1-0.17))  < 1) THEN 0
     ELSE (((0.17*org_mb)-free_mb)/(1-0.17))
     END as "Free17%-Add",
CASE WHEN (  (((0.16*org_mb)-free_mb)/(1-0.16))  < 1) THEN 0
     ELSE (((0.16*org_mb)-free_mb)/(1-0.16))
     END as "Free16%-Add",
CASE WHEN (  (((0.15*org_mb)-free_mb)/(1-0.15))  < 1) THEN 0
     ELSE (((0.15*org_mb)-free_mb)/(1-0.15))
     END as "Free15%-Add"
from
( select a.tablespace_name
      ,((sum(a.bytes)/1024/1024)/max(b.Org_Mb))*100 Pct_free
      ,max(b.Org_Mb) Org_Mb
      ,max(b.Org_Mb) - sum(a.bytes)/1024/1024 Used_Mb
      ,sum(a.bytes)/1024/1024 Free_Mb
      ,max(a.bytes)/1024/1024 Max_Mb
from   dba_free_space@${i} a,
      (select tablespace_name ,sum(bytes)/1024/1024 Org_Mb from   dba_data_files@${i} group by tablespace_name) b
where  a.tablespace_name = b.tablespace_name
group by a.tablespace_name
order by 1 desc
)
/

col file_name for a55
col tablespace_name for a30
select tablespace_name,file_name,autoextensible,sum(maxbytes)/1024/1024 totalbytes,sum(bytes)/1024/1024 bytes from dba_data_Files@${i} group by tablespace_name,file_name,autoextensible order by tablespace_name,file_name
/

prompt"top20seg:"
--top20seg.sql
--def run_dt = sysdate - 6 months
def incr_percent = 0
def lower_bound = 65536
col owner for a12
col seg_type for a12
col segment_name for a35
col "%Growth+" for '999'

select to_char(s1.run_date,'YYYYMMDD HH24:MI:SS') origin_date,s1.owner, s1.segment_type seg_type,s1.segment_name, s1.extents "last_exts", s2.extents "cur_exts", s1.bytes "last_bytes", s2.bytes "cur_bytes", round(((s2.bytes - s1.bytes)/s1.bytes)*100,2) "%Growth+"
from ${i}_segmon_statistics s1, dba_segments@${i} s2
where s1.segment_name = s2.segment_name
and   s1.owner = s2.owner
and   s1.segment_type = s1.segment_type
and   nvl(s1.partition_name,'*') = nvl(s2.partition_name,'*')
and  ( ((s2.extents - s1.extents)/s1.extents) * 100 >= &incr_percent or ((s2.bytes - s1.bytes)/s1.bytes)*100 >= &incr_percent)
and s2.bytes > &lower_bound
and s1.run_date = (select min(run_date) from ${i}_segmon_statistics)
order by 9,2,3,4
/

column capture_date format A11
column segment_name format A35
column segment_type format A15
column owner format A20
column MB format 99,999.99

select to_char(sysdate,'YYYY-MON-DD') capture_date,owner,segment_name,segment_type,tablespace_name,sum(bytes)/1024/1024 MB
from dba_segments@${i}
where owner not in ('OUTLN','SCOTT','SYSTEM')
group by owner,segment_name,segment_type,tablespace_name   having (sum(bytes)/1024/1024 >5)
order by MB  desc
/
exit;
EOF

cat ${LOG}
#/bin/mailx -s "Temporary monitor ${i} tablespace" ts-dba@aa.com.cn <  ${LOG};
#cat ${LOG}>>${LOGG}
done

2.

PWD=/database/log/segment_size
LOG=${PWD}/tbs_windows_rep.log

echo "TABLESPACE_NAME                all_sum(M) FREE_           FREE_PERCENTAGE INSTANCE_NAME" >${LOG}
echo "------------------------------ ---------- --------------- --------------- ----------------">>${LOG}
grep '%' ${PWD}/tbs_win_all.log|grep -v '%G' |grep -v '%-' |sed 's/.*://g' |sort -uk 4 >> ${LOG}
#cat ${LOG}

#(echo "Windows DB tablespace's size monitor data:";/usr/bin/uuencode ${LOG} ${LOG}) | /bin/mailx -s "Windows DB tablespace's size monitor `date '+%Y-%m-%d' `"  ts-dba@aa.com.cn
echo "Windows DB tablespace's size monitor data:" | /bin/mailx -s "Windows DB tablespace's size monitor `date '+%Y-%m-%d' `"  ts-dba@aa.com.cn <${LOG}

3.fixed:

因为使用到了db_link.所以新增加数据库,也需要新增加db_link.

for pdb

conn oper/oper123
create   database   link   pcwspprod   connect   to   oper   identified   by   oper123   using   'pcwspprod';

for cdb
conn c##oper/oper123
create   database   link   cwspprod   connect   to   c##oper   identified   by   oper123   using   'cwspprod';

tablespace monitor shell for windows的更多相关文章

  1. linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?

    shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面. shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起 ...

  2. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  3. Jenkins 六: 构建中执行shell或者 windows的批处理程序

    Shell/ bat Jenkins 可以在构建中执行shell命令或者windows的batch 命令. 1. 选择一个项目,点击“配置”. 2. 找到“构建” –> “增加构建步骤”.选择 ...

  4. 利用SSH secure Shell实现windows与linux之间传输文件

    在windows下安装SSH secure Shell.默认安装后有两个快捷方式. linux下需要安装openssh-server utuntu默认安装了opens是-client,所以不需要安装, ...

  5. python 调用shell或windows命令

    目前使用到的有两种方式:os.system()和os.popen() import os os.system('cd e:cjx') #调用后返回执行结果状态 如果想获得返回结果,则使用以下方式: i ...

  6. (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单

    原文 (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windo ...

  7. Writing a Windows Shell Extension(marco cantu的博客)

    Writing a Windows Shell Extension This is a technical article covering the content of my last week s ...

  8. Windows Power Shell简介

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能. 它引入了许多非常有用的新概念,从而进一步扩展了您在 W ...

  9. windows快捷命令修炼

    Description Windows Key combination Open/Close the Start Menu Windows key Open the Action center. Wi ...

随机推荐

  1. 对付 MySQL 的死连接,Sleep的进程的来源探究[转]

    当前的连接数:mysql> show status like '%Threads_connected%';+-------------------+-------+| Variable_name ...

  2. [bzoj5101][POI2018]Powódź_并查集

    Powódź bzoj-5101 POI-2018 题目大意:在地面上有一个水箱,它的俯视图被划分成了$n$行$m$列个方格,相邻两个方格之间有一堵厚度可以忽略不计的墙,水箱与外界之间有一堵高度无穷大 ...

  3. NOIP 2010 乌龟棋

    P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行 NN 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第 NN 格是终点, ...

  4. JFileChooser 中文API

    javax.swing类 JFileChooser java.lang.Object java.awt.Component java.awt.Container javax.swing.JCompon ...

  5. Windows 10 S中的Device Guard详解(上篇)

    本文探讨Windows 10 S(下称Win10S)中的Device Guard(设备保护,下称DG).我将提取策略,并弄清楚在默认Win10S系统上可以和不可以运行什么.我将在下一篇文章中介绍在不安 ...

  6. windows 7 文件加密设置

    方法/步骤1 加密文件 1 右击需加密的文件,选择“属性”命令. 2 在属性对话框的“常规‘选项卡中单击”高级“按钮. 3 在弹出的对话框中选中”加密内容以便保护数据“复选框,单击”确定“按钮. 4 ...

  7. Alluxio增强Spark和MapReduce存储能力

    Alluxio的前身为Tachyon.Alluxio是一个基于内存的分布式文件系统:Alluxio以内存为中心设计,他处在诸如Amazon S3. Apache HDFS 或 OpenStack Sw ...

  8. 南阳OJ独木舟上的旅行

     /*独木舟上的旅行 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描写叙述 进行一次独木舟的旅行活动.独木舟能够在港口租到,而且之间没有差别. 一条独木舟最多仅仅能乘坐 ...

  9. 面试题之strcpy/strlen/strcat/strcmp的实现

    阿里的电面要我用C/C++实现一个字符串拷贝的函数,虽然以前写过 strcpy 的函数实现,但时间过去很久了,再加上有点紧张,突然就措手不及了.最后写是写出来了,但没考虑异常的情况,面试官好像很不满意 ...

  10. Spring MVC不要在@Service bean中保存状态

    先看这么一段代码: @Service public class AccountService { private String message; public void foo1() { if (tr ...