首页 > 开发 > 综合 > 正文

通过sql语句获取数据库的基本信息

2024-07-21 02:08:03
字体:
来源:转载
供稿:网友

您可以通过以下几个sql 可以立即了解系统的状况和数据库的状态(仅献给习惯使用sql/plus的人 呵呵 )
(1) 查询oracle 的物理结构
1.1. 查看数据文件
sql> select name from v$datafile;
name
---------------------------------------------
/u05/dbf/prod/system_01.dbf/u05/dbf/prod/system_01.dbf  (系统数据文件)
/u06/dbf/prod/temp_01.dbf    (临时数据文件)
/u04/dbf/prod/users_01.dbf  (用户数据文件)
/u09/dbf/prod/rbs_01.dbf     (回滚数据文件)
/u06/dbf/prod/applsys_indx_01.dbf  (索引数据文件)
数据文件是oracle中最重要的物理文件

1.2.查询控制文件信息
 sql>select * from  v$controlfile
1.3  查看日志组
   sql>select * from v$log
1.4.  查看具体的日志成员文件
 sql>select * from  v$logfile
1.5  通过以下sql 找到 报警日至文件的路径
 select value from v$parameter where name ='background_dump_dest'
1.6  通过以下sql找到用户跟踪文件的路径
 select value from v$parameter where name ='user_dump_dest'


(2) 查询安全信息
2.1 显示示用户信息
 sql>selelct * from dba_users  where username =’system’
2.2 显示角色信息
 sql> select *from dba_roles
2.2  显示表空间限额的信息
 sql> select tablespace_name,username,bytes,max_bytes 
 sql> from dba_ts_quotas;
2.4  显示开工文件和相关资源限制设置的信息
 sql> select profile,resource_name,limit
 sql> from dba_profiles;
2.5 显示当前用户拥有的所有的表
   sql> select * from tab;
2.6  查看内部系统表的sql
 select * from v$fixed_view_definition

3 查询oracle 的系统环境变量 
3.1.查找全局共享缓冲区(sga)
 sql> select * from v$sga;
 name value
 -------------------- ---------
 fixed size 39816 
 variable size 259812784
 database buffers 1.049e+09
 redo buffers 327680
 更详细的信息可以参考v$sgastat、v$buffer_pool
 对于保存在共享池中的sql语句,可以从v$sqltext、v$sqlarea中查询到

 3.2清空share_pool,保留data buffer
 sql> alter system flush shared_pool;
 system altered.

3.3. .运行以下语句可以得到系统scn号
 sql> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;
    scn 
 ----------
   31014
3.4 查询数据块可用空间大小。
 select kvisval,kvistag,kvisdsc from sys.x$kvis;

3.5检查当前oracle 的连接类型:
 select  server 
 from   v$session
 where audisid=userenv(‘sessionid’);
 如果 输出
 server
 ―――――――――――
 dedicated

 说明当前的oracle 连接实用的是专用服务器连接 ,而不是mts多线程服务器(shared)

3.6.  查看数据数据字典的sql
 select * from dict

3.7检查后台线程的状态
 select name,description
 from v$bgprocess
 where paddr<>’00’         (进程地址不等于’00’)
  输出结果类似:
 name    description
--------    ---------------------------------
  pmon     process cleanup
  dbwo     db writer process 0
  lgwr      redo etc
  ckpt       checkpoint
        。。。 。。。
3.8 显示表结构
  desc  tablename(任意表名);
 输出结果类似:
   name            null?          type
---------------------------- --------------------  ------------------
   id            not null            number(30)

希望本文起到一个抛砖引玉的左右,希望你能将自己认为重要或常用的sql 命令跟在下面共享

 
注册会员,创建你的web开发资料库,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表