数据库环境中的shell脚本应用

简介: 维护多个数据库,又没有EM,在各个数据库之间来回切换很是麻烦, 今天参照一些资料写了如下的shell脚本。主要来讲dba的账户密码,ORACLE_SID都以环境变量的形式注入,然后在当前session中可以灵活的切换实例来进行相应的操作。
维护多个数据库,又没有EM,在各个数据库之间来回切换很是麻烦,
今天参照一些资料写了如下的shell脚本。主要来讲dba的账户密码,ORACLE_SID都以环境变量的形式注入,然后在当前session中可以灵活的切换实例来进行相应的操作。
比如想查看数据库中的表空间情况,可以在当前的session中查看其他数据库实例的数据情况。

export SH_USERNAME=system
export SH_PASSWORD=oracle
export ORACLE_SID=PROD
Num=`echo show user | $ORACLE_HOME/bin/sqlplus -s $SH_USERNAME/$SH_PASSWORD | grep -i 'USER ' | wc -l`
if [ $Num -gt 0 ]
        then
                ## ok - instance is up
               echo Instance $ORACLE_SID has been connected
        else
                ## inst is down
                echo $ORACLE_SID is down  
                count=`expr $count + 1 `
        fi
$SHELL

运行结果如下:
[oracle@oel1 ~]$ ksh settdb.sh PROD
Instance PROD has been connected

这可以作为一个初始化的操作,如果切换到其他数据库也很方便,
然后编写相应的shell 脚本,比如查看表空间的情况
脚本如下:
sqlplus -S ${SH_USERNAME}/${SH_PASSWORD}@${ORACLE_SID}
set echo off
set feedback off
set verify off
set linesize 150
set pages 30
set heading off  
REM clear screen         
COLUMN Tablespace FORMAT           A20 HEADING 'Tablespace|Name' JUSTIFY left
COLUMN Total_Size FORMAT        999,999 HEADING 'Total|Size(MB)'  JUSTIFY left
COLUMN Free_Space FORMAT         999,999 HEADING 'Free(MB)'
COLUMN Percentage FORMAT          90.0 HEADING '%|Used'     JUSTIFY left
COLUMN decode     FORMAT           A14 HEADING '(Space Gauge)'
COLUMN fragdec    FORMAT           A14 HEADING '(Frag Gauge)'
COLUMN percfrag   FORMAT          90.0 HEADING '%|Frag'          JUSTIFY left
COLUMN frags      FORMAT       999,999 HEADING 'Frags'
COLUMN bigchunk   FORMAT       999,999 HEADING 'Big|Chunk(MB)'   JUSTIFY left
COLUMN data_files FORMAT            99 HEADING 'Data|Files'      JUSTIFY left
set heading on

select free.tablespace_name Tablespace, tot.total Total_Size,
100 - ((free.free / tot.total) * 100) Percentage,
decode
((ceil(10-(free.free / tot.total) * 10)),
0,'| .......... |',
1,'| *......... |',
2,'| **........ |',
3,'| ***....... |',
4,'| ****...... |',
5,'| *****..... |',
6,'| ******.... |',
7,'| *******... |',
8,'| ********.. |',
9,'| *********. |',
10,'| !! DNGR !! |') decode,
free.free Free_Space, bigchunk, data_files, frags, percfrag,
decode ((ceil(percfrag / 10)) ,
0,'| .......... |',
1,'| *......... |',
2,'| **........ |',
3,'| ***....... |',
4,'| ****...... |',
5,'| *****..... |',
6,'| ******.... |',
7,'| *******... |',
8,'| ********.. |',
9,'| *********. |',
10,'| !! DNGR !! |') fragdec
from (select tablespace_name, ceil(sum(bytes) / 1048576) total, count(*) data_files
            from dba_data_files
            group by tablespace_name) tot,
     (select tablespace_name, ceil(sum(bytes) / 1048576) free,
            ceil(max(bytes) / 1048576) bigchunk, count(*)frags, 100 - (max(bytes) /sum(bytes)) * 100 percfrag
            from dba_free_space
            group by tablespace_name) free
where free.tablespace_name = tot.tablespace_name;
exit
EOF

运行结果如下:
Tablespace           Total    %                             Big       Data           %
Name                 Size(MB) Used  (Space Gauge)  Free(MB) Chunk(MB) Files    Frags Frag  (Frag Gauge)
-------------------- -------- ----- -------------- -------- --------- ----- -------- ----- --------------
TBS2                       20   0.0 | .......... |       20        20     1        1   0.0 | .......... |
SYSAUX                    325  19.1 | **........ |      263       263     1        1   0.0 | .......... |
TBS1                       55   5.5 | *......... |       52        29     3        3  44.2 | *****..... |
UNDOTBS                   200   6.0 | *......... |      188       185     1        5   1.5 | *......... |
USERS                     135  78.5 | ********.. |       29        28     2        3   3.6 | *......... |
TEST                       10   0.0 | .......... |       10        10     1        1   0.0 | .......... |
SYSTEM                    325  68.3 | *******... |      103       103     1        1   0.0 | .......... |
RCTS                      100   0.0 | .......... |      100       100     1        1   0.0 | .......... |



阅读(7252) | 评论(0) | 转发(5) |
目录
相关文章
|
8天前
|
存储 NoSQL 关系型数据库
现代数据库技术的发展与应用
本文将探讨现代数据库技术的发展趋势和广泛应用领域。我们将从传统关系型数据库开始,介绍NoSQL数据库、分布式数据库以及最新的图数据库等技术,探讨它们的特点和优势。此外,我们还将讨论数据库在大数据、云计算和物联网等领域中的应用案例,并展望未来数据库技术的发展方向。
|
10天前
|
存储 运维 关系型数据库
数据的力量:构筑现代大型网站之数据库基础与应用
数据的力量:构筑现代大型网站之数据库基础与应用
187 0
|
5天前
|
Java Shell Perl
使用shell脚本给日志文件瘦身
使用shell脚本给日志文件瘦身
|
5天前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库
|
6天前
|
存储 NoSQL 物联网
现代数据库技术发展趋势与应用探讨
【2月更文挑战第2天】数据库作为计算机领域中重要的基础设施之一,在当今信息化时代扮演着至关重要的角色。本文将从现代数据库技术的发展趋势出发,探讨其在各个领域中的应用及未来的发展方向,旨在帮助读者深入了解数据库技术的最新动向。
|
6天前
|
存储 NoSQL 数据管理
现代数据库技术发展趋势与应用前景探析
【2月更文挑战第2天】 随着信息时代的快速发展,数据库技术作为信息存储和管理的核心工具也在不断演进。本文将就当前现代数据库技术的发展趋势及其在实际应用中的前景进行探讨,旨在帮助读者更好地了解数据库技术的最新动向。
11 1
|
6天前
|
存储 NoSQL 大数据
新型数据库技术在大数据处理中的应用探讨
【2月更文挑战第2天】随着信息时代的到来,大数据处理成为了各行业发展的关键。本文将探讨新型数据库技术在大数据处理中的应用,分析其优势和挑战,为读者提供深入了解和思考。
13 5
|
6天前
|
存储 NoSQL 前端开发
现代数据库技术的演进与应用
【2月更文挑战第2天】本文探讨了现代数据库技术的发展历程及其在各个领域的应用。从传统的关系型数据库到新兴的NoSQL数据库,再到分布式数据库和图数据库的兴起,我们将深入探讨每种数据库技术的特点和适用场景。同时,我们还将介绍一些数据库技术在前端、后端以及JAVA和C等编程语言中的具体应用案例,帮助读者更好地理解数据库技术与实际工作的关系。
8 2
|
6天前
|
数据库 对象存储 数据安全/隐私保护
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
13 6
|
7天前
|
SQL 物联网 数据挖掘
StarRocks:从概念到应用的下一代分析型数据库
在大数据时代,企业对数据处理的需求日益增长,特别是在实时数据分析方面。StarRocks 是一种新兴的分布式关系型数据库,专为快速且高并发的实时分析设计。本文将从 StarRocks 的基本概念入手,逐步深入到其应用层面,探讨这一技术如何在现实世界中发挥作用。
56 1

热门文章

最新文章