简单python脚本实现获取多个数据库中参数

73240阅读 0评论2019-03-11 brjl
分类:Python/Ruby

面对100多套ORACLE数据库,领导想问数据库链都有多少啊,给我查出来。
我:好的
conn.txt 内容是
scott/tiger@orcl1
scott/tom@zhcx2
...(以下是一百个连接信息,略)

import cx_Oracle

 

with open("conn.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n')  #去掉列表中每一个元素的换行符

        print(line)

   

        conn = cx_Oracle.connect(line)

        cursor = conn.cursor()

        sql = "select owner,db_link,username, " \
            " host from dba_db_links where owner<>'SYS' and db_link<>'SYS_HUB' "

        cursor.execute(sql)

        one = cursor.fetchall()

        for x in one:

            print (line,x)   

        cursor.close()

        conn.close()

把上述脚本存为dl_link.py,然后用python 3执行

手工粘贴吧,直接把结果放到excel还不会...
将sql语句改为其他的也可,例如查询某个参数都是什么...

-------------------------------------------------------------------------
取每个数据库大小

import cx_Oracle

 

with open("conn2.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n') 

        #print(line)

   

        conn = cx_Oracle.connect(line)

        cursor = conn.cursor()

        sql = "select trunc(sum(bytes)/1024/1024/1024) g from dba_data_files"

        cursor.execute(sql)

        one = cursor.fetchall()

        for x in one:

            print (line,x[0],'G')   

        cursor.close()

        conn.close()


---------------------------------------------------------------------------------
取数据库中都有哪些用户

import cx_Oracle

 

with open("conn3.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n')  #去掉列表中每一个元素的换行符

        l=line.split(',')

   

        #conn = cx_Oracle.connect(l[1]) #取连接串

        conn=cx_Oracle.connect(l[1],l[2],l[3])

        cursor = conn.cursor()

        sql = "select username from dba_users where account_status='OPEN' order by 1 "

        cursor.execute(sql)

        one = cursor.fetchall()

       

        f=open("user1.txt","a")

        for x in one:

            print (l[3],",",l[0],",",x[0],file=f)

        cursor.close()

        conn.close()

print("I got it.")



上一篇:一键还原数据库,一天恢复几套不是问题
下一篇:spool 不显示sql