oracle怎么查看所有的数据库名

oracle怎么查看所有的数据库名,第1张

Oracle服务器由数据库和实例组成,实例包括进程和内存结构。你连接到一个实例上,只能查到与该实例对应的数据库。数据库名可以这样简单查询show

parameter

db_name或者楼上的语句也可以,但是都只能获得当前的数据库名。

查询视图:v$sqlarea,它是oracle中专门存储 *** 作的视图,可以通过它查询历史 *** 作。

授权某用户,查看动态性能视图的权限(如v$latch,v$lock,v$sqlarea,v$sql,v$sysstat)

grant select any dictionary to xxx;

如通过以下查询语句就可以得知那个用户进行了删除 *** 作。

select tSQL_TEXT, tFIRST_LOAD_TIME

from v$sqlarea t

where tSQL_TEXT like 'delete%' and tFIRST_LOAD_TIME like '2013-03-30%'

order by tFIRST_LOAD_TIME desc

select

name

from

v$database

,直接运行就可以查看了,也可以查看tnsnamesora

的连接,有个sid,sid就是服务名了!!!

在实际的工作中,数据库管理员(DBA)需要经常要定时对数据库的连接情况进行检查,查看与数据库建立的会话数目是不是正常,假如建立了过多的连接,会消耗许多数据库的资源。与此同时,针对一些“挂死”的连接,可能会需要DBA自行手工进行清理。

下面的SQL语句列出当前数据库建立的会话情况:

select sid,serial#,username,program,machine,status

from v$session;

输出的结果:

SID SERIAL# USERNAME PROGRAM MACHINE STATUS

---- ------- ---------- ----------- --------------- --------

1 1 ORACLEEXE WORK3 ACTIVE

2 1 ORACLEEXE WORK3 ACTIVE

3 1 ORACLEEXE WORK3 ACTIVE

4 1 ORACLEEXE WORK3 ACTIVE

5 3 ORACLEEXE WORK3 ACTIVE

6 1 ORACLEEXE WORK3 ACTIVE

7 1 ORACLEEXE WORK3 ACTIVE

8 27 SYS SQLPLUSEXE WORKGROUP\WORK3 ACTIVE

11 5 DBSNMP dbsnmpexe WORKGROUP\WORK3 INACTIVE

其中SID 会话(session)的ID号;

SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;

USERNAME 建立该会话的用户名;

STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何 *** 作;

假如要手工断开某个会话,则执行:

alter system kill session 'SID,SERIAL#';注意:在上面的示例中,SID为1到7(USERNAME列为空)的会话,它是Oracle数据库的后台进程,请大家不要对这些会话进行任何 *** 作。

查看那些库的话必须用dba权限登录。登陆后可以通过下面的方法来查看。

一、查看有哪些库,你的库理解不准确,应该准确来说是表空间,可以通过下面的命令来实现

SELECT Totalname "Tablespace Name",

Free_space, (total_space-Free_space) Used_space, total_space

FROM

(select tablespace_name, sum(bytes/1024/1024) Free_Space

from sysdba_free_space

group by tablespace_name

) Free,

(select bname, sum(bytes/1024/1024) TOTAL_SPACE

from sysv_$datafile a, sysv_$tablespace B

where ats# = bts#

group by bname

) Total

WHERE FreeTablespace_name = Totalname

二、查看有哪些表。

select table_name from dba_tables where owner='A';

表空间是数据库中最大的逻辑单位与存储空间单位 数据库系统通过表空间为数据库对象分配空间 表空间在物理上体现为磁盘数据文件 每一个表空间由一个或多个数据文件组成 一个数据文件只可与一个表空间相联系 这是逻辑与物理的统一 了解表空间和数据文件的的属性及使用率 是数据库管理员的一项重要职责 在本文中笔者将以oracle为例 详细介绍查询Oracle数据库表空间信息和数据文件信息的方法 希望能帮助大家更深入了解表空间的知识和应用

一 如何查看Oracle数据库中表空间信息的方法

从Oracle数据库中工具入手

使用oracle enterprise manager console工具 这是oracle的客户端工具 当安装oracle服务器或客户端时会自动安装此工具 在windows *** 作系统上完成oracle安装后 通过下面的方法登录该工具 开始菜单——程序——Oracle OraHome ——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择 独立启动 单选框—— 确定 —— oracle enterprise manager console 独立 ——选择要登录的 实例名 ——d出 数据库连接信息 ——输入 用户名/口令 (一般使用sys用户) 连接身份 选择选择SYSDBA—— 确定 这时已经成功登录该工具 选择 存储 ——表空间 会看到如下的界面 该界面显示了表空间名称 表空间类型 区管理类型 以 兆 为单位的表空间大小 已使用的表空间大小及表空间利用率

从Oracle数据库中命令方法入手

通过查询数据库系统中的数据字典表(data dictionary tables)获取表空间的相关信息 首先使用客户端工具连接到数据库 这些工具可以是SQLPLUS字符工具 TOAD PL/SQL等 连接到数据库后执行如下的查询语句

select a a 表空间名称 c c 类型 c c 区管理 b b / / 表空间大小M (b b a a )/ / 已使用M substr((b b a a )/b b ) 利用率from(select tablespace_name a sum(nvl(bytes )) a from dba_free_space group by tablespace_name) a (select tablespace_name b sum(bytes) b from dba_data_files group by tablespace_name) b (select tablespace_name c contents c extent_management c from dba_tablespaces) cwhere a a =b b and c c =b b ;

该语句通过查询dba_free_space dba_data_files dba_tablespaces这三个数据字典表 得到了表空间名称 表空间类型 区管理类型 以 兆 为单位的表空间大小 已使用的表空间大小及表空间利用率 dba_free_space表描述了表空间的空闲大小 dba_data_files表描述了数据库中的数据文件 dba_tablespaces表描述了数据库中的表空间

上面语句中from子句后有三个select语句 每个select语句相当于一个视图 视图的名称分别为a b c 通过它们之间的关联关系 我们得到了表空间的相关信息

语句执行结果如下

上面描述中分别介绍了查看Oracle数据库中表空间信息的工具方法和命令方法

二 查询Oracle数据库中数据文件信息的方法

查看Oracle数据库中数据文件信息的工具方法

使用上面介绍过的方法登录oracle enterprise manager console工具 选择 存储 ——数据文件 会看到如下的界面 该界面显示了数据文件名称 表空间名称 以 兆 为单位的数据文件大小 已使用的数据文件大小及数据文件利用率

查看Oracle数据库中数据文件信息的命令方法

通过查询数据库系统中的数据字典表(data dictionary tables)获取数据文件的相关信息 首先使用客户端工具连接到数据库 这些工具可以是SQLPLUS字符工具 TOAD PL/SQL等 连接到数据库后执行如下的查询语句

select b file_name 物理文件名 b tablespace_name 表空间 b bytes/ / 大小M (b bytes sum(nvl(a bytes )))/ / 已使用M substr((b bytes sum(nvl(a bytes )))/(b bytes) ) 利用率from dba_free_space a dba_data_files bwhere a file_id=b file_idgroup by b tablespace_name b file_name b bytesorder by b tablespace_name

上面描述中分别介绍了查看Oracle数据库中数据文件信息的工具方法和命令方法

三 查看临时表空间和数据库文件的方法

在oracle数据库中 临时表空间主要用于用户在使用order by group by语句进行排序和汇总时所需的临时工作空间 要查询数据库中临时表空间的名称 大小及数据文件 可以查询数据字典dba_tablespaces及dba_data_files 命令如下

select a talbespace_name 表空间名称 b bytes 大小bytes b file_name 数据文件名from dba_tablespaces a dba_data_files bWhere a talbespace_name=b talbespace_name and ntents= TEMPORARY ;

查询结果如下

从oracle i开始 可以创建Temporary tablespace类表空间 即 临时 表空间 这类表空间使用临时文件 临时文件的信息被存储在数据字典V$tempfile中 命令如下

Select file# status name from V$tempfile;

查询数据字典V$tempfile结果如下

在上面介绍的方法中 建议掌握命令方法 因为你的环境可能没有图形工具 而SQLPLUS一般情况下都是可以使用的 有了命令脚本 很容易得到表空间和数据文件的相关信息 另外 数据库管理员应该多整理命令脚本 在需要时直接执行脚本以提高工作效率

lishixinzhi/Article/program/Oracle/201311/18471

CREATE TABLE test (

username VARCHAR(20),

starttime VARCHAR(14),

endtime VARCHAR(14)

);

INSERT INTO test

SELECT 'zhangsan', '20130305080000', '20130305100000' FROM dual UNION ALL

SELECT 'zhangsan', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT 'lisi', '20130305060000', '20130305110000' FROM dual UNION ALL

SELECT 'lisi', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五1', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五1', '20130305060000', '20130305080000' FROM dual UNION ALL

SELECT '王五2', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五2', '20130305070000', '20130305080000' FROM dual UNION ALL

SELECT '王五3', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五3', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '王五4', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五4', '20130305070000', '20130305100000' FROM dual UNION ALL

SELECT '赵六1', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六1', '20130305070000', '20130305080000' FROM dual UNION ALL

SELECT '赵六2', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六2', '20130305060000', '20130305080000' FROM dual UNION ALL

SELECT '赵六3', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六3', '20130305070000', '20130305110000' FROM dual UNION ALL

SELECT '赵六4', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六4', '20130305060000', '20130305110000' FROM dual;

COLUMN "USERNAME" FORMAT A8

COLUMN "STARTTIME" FORMAT A15

COLUMN "ENDTIME" FORMAT A15

SELECT

FROM

test Main

WHERE

EXISTS (

SELECT 1

FROM

test Sub

WHERE

Mainusername = Subusername

AND NOT ( MainSTARTTIME = SubSTARTTIME AND MainENDTIME = SubENDTIME)

AND (

-- 首先判断 第一种情况

-- 时间段1:----------+=====+-----

-- 时间段2:--------+====+--------

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:----------+====+--------

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:--------+==========+--

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:----------+==========+--

(

SubStartTime <= MainStartTime

AND SubEndTime > MainStartTime

)

OR

-- 然后判断第二种情况

-- 时间段1:------+=========+-----

-- 时间段2:--------+====+--------

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:------+====+--------

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:--------+==========+--

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:------+==========+--

(SubStartTime >= MainStartTime

AND SubStartTime < MainEndTime

)

)

);

以上就是关于oracle怎么查看所有的数据库名全部的内容,包括:oracle怎么查看所有的数据库名、如何查询oracle数据库的 *** 作记录、查看oracle服务器中的所有数据库名命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9841932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存