【Oracle数据库DBA必备基本技能】
shutdown
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal 需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate 在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
startup
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!
1)首先知道控制文件,数据文件,以及日志文件的所在目录以及表空间相关使用情况,会优化Top级别SQL语句
select * from v
l
o
g
f
i
l
e
s
e
l
e
c
t
∗
f
r
o
m
v
logfile select * from v
logfileselect∗fromvlog
select * from v
d
a
t
a
f
i
l
e
s
e
l
e
c
t
∗
f
r
o
m
v
datafile select * from v
datafileselect∗fromvcontrolfile
2)知道警告日志文件的路径
show parameter background_dump_dest ;
或者
select * from v$parameter where name like ‘%background_dump_dest%’
3)知道数据库是否归档以及数据库名字
select * from v$database
4)了解SGA分配
select * from v$parameter where name like ‘%sga%’
5)观察系统性能以及相应的等待事件
6)查看缓冲池的命中率
select sum(pinhits)/sum(pins) * 100 from v$librarycache
7)查看排序部分(磁盘排序和内存排序)
select * from v$sysstat where name like ‘%sort%’
8)等待事件
select * from v
s
e
s
s
i
o
n
w
a
i
t
s
e
l
e
c
t
∗
f
r
o
m
v
session_wait select * from v
sessionwaitselect∗fromvsession_event
select * from v$system_event
9)事物回退率
select * from v
s
y
s
s
t
a
t
w
h
e
r
e
n
a
m
e
l
i
k
e
′
s
e
l
e
c
t
∗
f
r
o
m
d
b
a
r
o
l
l
b
a
c
k
s
e
g
s
s
e
l
e
c
t
∗
f
r
o
m
v
sysstat where name like '%user commits%' or name like '%transaction rollbacks%' select * from dba_rollback_segs select * from v
sysstatwherenamelike′select∗fromdbarollbacksegsselect∗fromvwaitstat
select * from v$transaction
10)数据文件损坏或者丢失如何恢复
11)日志文件损坏或者丢失如何恢复
alter system switch logfile
12)控制文件损坏如何恢复
13)Rman备份