日期:2014-05-16 浏览次数:20624 次
一、设置数据库初始化参数
1、Oracle服务器在启动例程时读取初始化参数文件。共有两种类型的初始化参数文件:
(1) 静态参数文件pfile,一般名为 initSID.ora。
a) 文本文件
b) 使用操作系统编辑器进行修改
c) 手动进行修改
d) 所作更改在下次启动时生效
e) 仅在例程启动过程中打开
f) 缺省位置为 $ORACLE_HOME/dbs
(2) 动态参数文件spfile,一般名为 spfileSID.ora。
a) 二进制文件
b) 由 Oracle 服务器进行维护
c) 始终驻留在服务器端
d) 所做更改永久有效,不受关闭和启动的影响
e) 可以自行调节参数值
f) 使恢复管理器能够备份初始化参数文件
(3)查参数
v$parameter --显示当前在运行的实例中生效的参数值。
v$spparameter--显示磁盘上的spfile中存储的值。
selectname,value,DESCRIPTION from v$parameter where name like '%proces%';
show parameter processes
v$pramater(X$KSPPI,X$KSPPCV)
processes --ORA-00020:maxnum number of processes(150) exceeded;
session 1.5processes+22(11g) 1.1processes+5(10g)
memory_max_target --控制、预留
memory_target
sga_max_size
sga_target_size
db_cache_size
shared_pool_size
pga_aggregate_target
log_archive_dest_1
open_cursours
session_cached_cursors
undo_managemnet
_allow_resetlogs_corruption
_corrupted_rollback_segments
--(select segment_name formdba_rollback_segs;undo_managemnet=MANUAL)
(4)修改参数
pfile --纯文本
spfile --二进制
alter system|session reset|set parameter_name= scope=both,spfile,memory [sid=’sid’|’*’]
#SID是指实例。在RAC中,一个数据库对应多个实例,可以使用此选项,只针对某个实例修改某个参数的值
二、数据库启动和关闭的多个阶段
1、数据库的四种状态
SHUTDOWN
NOMOUNT
MOUNT
OPEN
2、在启动时按顺序搜索实例参数文件
这里SID指的是参数文件要启动的实例名称。
参数默认存放在位置在:$ORACLE_HOME/dbs
参数启动的优先级-->spfile<sid>.ora-->spfile.ora--init<sid>.ora这个搜索顺序非常重要!如果不存在这三个文件,就不能启动实例。
NOMOUN模式只使用参数文件和警报日志。
3、实例启动的完整步骤
上图对应的命令:
第一步启动: startup;
第二步创建实例: startup nomount;
第三步加载数据库:alter database mount;
第四步打开数据: alter database open;
数据库启动的验证:alter session set events 'immediate trace name file_hdrs level10';//控件文件与数据文件头
(1)第一次检查数据文件头中的Checkpoint CNT是否对应控制文件中的Checkpoint CNT一致,如果相等,则进行第二次检查.
(2)第二次检查数据文件头的开始SCN和对应控制文件中的结束SCN是否一致.如果结束SCN等于开始SCN,则不需要对那个文件进行恢复.对每个数据文件都完成检查后,打开数据库,同时将每个数据文件的结束SCN设置为无穷大FFFFFFFFFFF.
4、关闭数据库
shutdown abort|immediate|transactional|normal
(1) shutdownabort;
这个命令相当于断电。实例立即终止。此时,不会将任何数据写入磁盘,也不会关闭任何文件句柄,同时也不会采用任何有序的方式终止正在进行的事务。
友情提示:执行shudownabort命令不会坏数据库,因此,我们建议在数据库异常退出之后不执行诸如备份之类的某些操作。
(2) shutdownimmediate;
这个命令不允许任何新的用户连接,当前所有连接的会话都被终止。任何活动的事务都将回滚,随后数据库会关闭。这个命令是我们平时用的最多的关闭数据库的命令。
(3) shutdowntransactional;
这个命令不允许任何新的用户连接,不存在于某个事务中的现有会话会被终止,允许当前位于某个事务中的会话完成该事务之后终止。一旦所有会话终止,就会关闭数据库。
(4) shutdownnormal;
这个命令是默认的选项,即等于shutdown;该命令不允