IT忍者神龟之Oracle DBA常用查询吐血列举,oracledba
–1. 查询系统所有对象
select owner, object_name, object_type, created, last_ddl_time, timestamp, status
from dba_objects
where owner=upper('scott')
–2. 查看系统所有表
select owner, table_name, tablespace_name from dba_tables
–3. 查看所有用户的表
select owner, table_name, tablespace_name from all_tables
–4. 查看当前用户表
select table_name, tablespace_name from user_tables
–5. 查看用户表索引
select t.*,i.index_type from user_ind_columns t, user_indexes i where
t.index_name = i.index_name and t.table_name = i.table_name
and t.table_name = 要查询的表
–6. 查看主键
select cu.* from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name
and au.constraint_type = upper('p') and au.table_name = 要查询的表
–7. 查看唯一性约束
select column_name from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name and au.constraint_type = upper('u')
and au.table_name = 要查询的表
–8. 查看外键
select * from user_constraints c where c.constraint_type = 'r' and c.table_name = 要查询的表
select * from user_cons_columns cl where cl.constraint_name = 外键名称
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
–9. 查看表的列属性
select t.*,c.comments
from user_tab_columns t, user_col_comments c
where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表
–10. 查看所有表空间
select tablespace_name from dba_data_files group by tablespace_name
############################################
–1. 查看oracle最大连接数
sql>show parameter processes #最大连接数
–2. 修改最大连接数
sql>alter system set processes=value scope=spfile
–重启数据库
sql>shutdown force
sql>start force
–3. 查看当前连接数
sql>select * from v$session where username is not null
–4. 查看不同用户的连接数
sql>select username,count(username) from v$session where username is not null group by username #查看指定用户的连接数
–5. 查看活动的连接数
sql>select count(*) from v$session where status='active' #查看并发连接数
–6. 查看指定程序的连接数
sql>select count(*) from v$session where program='jdbc thin client' #查看jdbc连接oracle的数目
–7. 查看数据库安装实例(dba权限)
sql>select * from v$instance
–8. 查看运行实例名
sql>show parameter instance_name
–9. 查看数据库名
sql>show parameter db_name
–10. 查看数据库域名
sql>show parameter db_domain
–11. 查看数据库服务名
sql>show parameter service_names
–12. 查看全局数据库名
sql>show parameter global
–13. 查看表空间使用率
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
--
(1)
select dbf.tablespace_name,
dbf.totalspace
"总量(m)",
dbf.totalblocks
as "总块数",
dfs.freespace
"剩余总量(m)",
dfs.freeblocks
"剩余块数",
(dfs.freespace
/ dbf.totalspace) * 100 as "空闲比例"
from (select t.tablespace_name,
sum(t.bytes)
/ 1024 / 1024 totalspace,
sum(t.blocks)
totalblocks
from dba_data_files
t
group by t.tablespace_name)
dbf,
(select tt.tablespace_name,
sum(tt.bytes)
/ 1024 / 1024 freespace,
sum(tt.blocks)
freeblocks
from dba_free_space
tt
group by tt.tablespace_name)
dfs
where trim(dbf.tablespace_name)
= trim(dfs.tablespace_name)
--
(2)
select t.name "tablespace
name",
free_space,
(total_space
- free_space) used_space,
total_space
from (select tablespace_name,
sum(bytes
/ 1024 / 1024) free_space
from sys.dba_free_space
group by tablespace_name)
free,
(select b.name,
sum(bytes
/ 1024 / 1024) total_space
from sys.v_$datafile
a, sys.v_$tablespace b
where a.ts#
= b.ts#
group by b.name)
t
where free.tablespace_name
= t.name
|
对于oracle DBA的培训几点看法如下:
1、首先我不赞成oracle初学者去自己摸索,因为这样往往会如盲人摸象,会有一些错误oracle概念。oracle DBA的培训有人说,我会SQL,是指会查询oracle数据。DBA说,你要是这么说的话,只怕oracle数据也有查错的机会。
2、要想学好ORACLE选一个好DBA培训学校很重要,选一个好老师更重要。记住明师出高徒,是明白的明。不是有名的名,所以,你需要的是明师,能够让你明白的人。发现oracle明师的方法,只有一个办法就是跟老师交流,看看培训老师对所交的课程有没有一个DBA总体概念,还有一个对DBA教材是否熟悉。
我09年在CUUG上的oracle DBA就业培训班。去之前我从没接触过数据库,当时只是想学门高技术C++或oracle,现在看来选择是对的。我也曾有和你一样的疑问,担心跟不上。其实oracle并不是那么高不可攀,只要你想学就一定能跟得上,CUUG的DBA就业培训班都是从0基础开始的教,进度也比较慢,不会拉着你走。刚开始教oracle基础、SQL等不需要什么基础的,听谁说学SQL要基础吗?你把这些前期的基础学好了,后面的也就不担心不会了。但学oracle确得是理科专业,对计算机有兴趣的,也不能是电脑盲啊。其实自己肯努力再差的基础都跟得上,我也是过来人啊。
至于CUUG的oracle DBA就业培训班学完后能否就业?这个真的是深有感触啊。我培训的时候,班上27人,培训完后26个都顺利找到工作,还有一个当时学的很慢,就留下来继续实践了2个月后也找到了工作。培训后期是做项目,这个非常有用,找工作面试的感觉。自己是工作过几年的人。
列举几个比较容易被问到的问题。(来自cuug)
1. 解释冷备份和热备份的不同点以及各自的优点
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)
2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。
3. 如何转换init.ora到spfile?
解答:使用create spfile from pfile 命令
.
4. 解释data block , extent 和 segment的区别(这里建议用英文术语)
解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents被称为该对象的segment.
5. 给出两个检查表结构的方法
解答:1、DESCRIBE命令
2、DBMS_METADATA.GET_DDL 包
6. 怎样查看数据库引擎的报错
解答:alert log.
7. 比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
8. 使用索引的理由
解答:快速访问表中的data block
9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据
解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放对fact table 某些属性描述的
信息
10. FACT Table上需要建立何种索引?
解答:位图索引(bitmap index)
11. 给出两种相关约束?
解答:主键和外键
12. 如何在不影响子表的前提下,重建一个母表
解答:子表的外键强制失效,重建母表,激活外键
13. 解释归档和非归档模式之间的不同和它们各自的优缺点
解答:归档模式是指你可以备份所有的数据库 transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。
但是非归档模式可以带来数据库性能上的少许提高
14. 如何建立一个备份控制文件?
解答:Alter database backup control file to trace.
15. 给出数据库正常启动所经历的几种状态 ?
解答:
STARTUP NOMOUNT – 数据库实例启动
STARTUP MOUNT - 数据库装载
STARTUP OPEN – 数据库打开
16. 哪个column可以用来区别V$视图和GV$视图?
解答: INST_ID 指明集群环境中具体的某个instan......余下全文>>