您的位置:首页 > 数据库 > Oracle

管理一个ORACLE实例

2009-03-16 09:50 411 查看
[align=left]1.oralce数据库其他文件在unix和window系统下的区别
2.pfile和spfile的相关内容以及oracle加载参数文件的顺序
3.启动数据库的三个阶段
4.简单介绍startup命令
5.数据库open状态的选项
6.管理数据库的集中方式
oracle unix window
OS验证的组名 dba ora_dba或ora_SID_dba
密码文件名称 orapwSID pwdSID
参数文件目录 $ORACLE_HOME/dbs $ORACLE_HOME/database
startup使用spfile和pfile的优先顺序
– 非缺省spfileSID.ora:只能通过一种方式,A PFILE can optionally contain a definition to indicate use of an SPFILE. This is the onlyway to start the instance[/align]
[align=left]with an SPFILE in a nondefault location.其中pfile内容为:SPFILE=$ORACLE_HOME/ADMIN/PFILE/$ORACLE_SID.ora
– 缺省SPFILE:不废话,在$ORACLE_HOME/database
– 非缺省initSID.ora:说句废话:pfile=xx/xx/xx/initSID.ora
– 缺省PFILE:在$ORACLE_HOME/database
修改SPFILE 中的参数
ALTER SYSTEM SET 命令用于更改例程参数的值。
ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH][SID= 'sid'|'*']
parameter_name:要更改的参数的名称
parameter_value:要将参数更改为的值
COMMENT:添加在SPFILE 中被更改的参数旁的注释
SCOPE:确定应在内存中、在SPFILE 中还是同时在这两个位置进行更改
MEMORY:只能在当前运行的例程中更改参数值
SPFILE:只能在SPFILE 中更改参数值
BOTH:在当前运行的例程和SPFILE 中均可更改参数值
SID:标识要使用的SPFILE 的ORACLE_SID
'sid':更改SPFILE 时使用的特定SID
'*':使用缺省SID
从SPFILE 中删除一个参数有以下几种方法:
• 将参数重设为缺省值来模拟使用ALTER SYSTEM SET 的删除操作。
• 使用CREATE SPFILE FROM PFILE 重新创建SPFILE。
• 使用ALTER SYSTEM RESET 从SPFILE 删除参数
ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH][SID= 'sid'|'*'][/align]
[align=left]启动数据库
1.启动例程(NOMOUNT) :
启动例程包括下列任务:
• 按以下顺序从$ORACLE_HOME/dbs 读取初始化文件:
– 首先读取spfileSID.ora
– 如果找不到,则读取spfile.ora
– 如果仍然找不到,则读取initSID.ora
使用STARTUP 指定PFILE 参数以覆盖缺省行为。
• 分配SGA
• 启动后台进程
• 打开alertSID.log 文件和跟踪文件(bdump中的两类文件,一类是alertSID.log,一类是后台进程的trace文件)
note:必须在初始化文件中使用DB_NAME 参数对数据库命名,或使用STARTUP 命令命名。
那种情况下使用nomount启动:
原则上在创建数据库或重新创建控制文件过程中,例程才会在NOMOUNT 阶段启动。当然也可以在正常情况下用nomount启动数据库。
2.加载数据库(MOUNT):
若要执行特定的维护操作,可启动例程并加载数据库,但不要打开数据库。
加载数据库包括以下任务:
• 定位并打开参数文件中指定的控制文件
• 读取控制文件以获取数据文件和重做日志文件的名称和状态。但是,在此时不进行数据文件和联机重做日志文件是否存在的检查。
• 使数据库与以前启动的例程关联
那种情况下使用mount启动:
• 重命名数据文件
• 启用和禁用重做日志归档选项
• 执行完全数据库恢复
3.打开数据库(OPEN):
正常的数据库操作指启动例程、加载数据库和打开数据库。通过正常的数据库操作,任何有效用户都可以连接到数据库并执行一般的数据访问操作。
打开数据库包括以下任务:
• 打开联机数据文件
• 打开联机重做日志文件
如果在尝试打开数据库时有任何数据文件或联机重做日志文件不存在,Oracle 服务器将返回错误消息。
在这个最后阶段中,Oracle 服务器验证所有数据文件和联机重做日志文件是否可以打开,并检查数据库的一致性。如果需要,系统监视(SMON) 后台进程将启动例程恢复操作。

[/align]
[align=left]STARTUP 命令
若要启动例程,请使用以下命令:
STARTUP [FORCE] [RESTRICT] [PFILE=filename][OPEN [RECOVER][database]|MOUNT|NOMOUNT](注:这不是完整的语法。)
• OPEN:使用户能够访问数据库
• MOUNT:为某些DBA 活动加载数据库,但不允许用户访问数据库
• NOMOUNT:创建SGA 并启动后台进程,但不允许访问数据库
• PFILE=parfile:允许使用非缺省参数文件配置例程
• FORCE:执行正常启动之前终止运行的例程。
• RESTRICT:只允许具有RESTRICTED SESSION 权限的用户访问数据库。
• RECOVER:在数据库启动时开始进行介质恢复。
自动启动数据库:
在UNIX 上:自动启动和关闭数据库可由特定的操作系统文件进行控制,例如,/var/opt/oracle目录下的oratab。
如果在发出STARTUP 命令时出现错误,则在再次发出STARTUP 命令前必须先发出SHUTDOWN 命令。
注:STARTUP 和SHUTDOWN 命令都是SQL*Plus 命令,而不是SQL 命令。

使用alter database命令改变数据库状态,只能从nomount到mount,从mount到open,open的类型有:
1、read only,所有数据对用户只读,理解为不允许产生重做记录的状态。通常对于备用数据库从生产数据库卸载查询处理
1.1 如果查询要用临时表空间进行排序,则临时表空间必须是本地管理的表空间,如果使用字典管理的表空间,将会在system表空间产生记录而导致需要回滚信息。对于sys用户,需要有本地管理的表空间,即system表空间必须是本地管理的表空间。
1.2 该状态下,可以执行不生成重做数据即可更改数据库状态的数据库恢复或操作,如
可使数据文件脱机和联机
执行脱机数据文件和表空间的恢复
1.3 对控制文件以及其他trace,log文件的操作亦可以被执行
2、write read 正常模式
3、restrict 以受限模式打开,通常在执行结构维护和数据库导入导出时打开,受限模式下没有权限的用户将不能登录系统。
受限模式打开数据库的方式:
3.1 alter database open restrict
3.2 在数据库打开方式下进入受限模式
alter system enable restricted session;
3.3 在数据库打开方式下结束受限模式
alter system disable restricted session;
3.4 数据库打开方式下进入受限模式,打开前存在的用户会话会继续存在。
3.5 可以使用alter system kill session 'sid,serial#'结束会话,sid是V$SESSION 视图中的SID 列的值,serial#是$SESSION视图中的SERIAL# 列的值,会话ID 和序列号用来唯一地标识会话。这样,即使用户注销身份并且新会话使用相同的会话ID,可以通过serial#区分,可确保ALTER SYSTEM KILL SESSION 命令能够应用于正确的会话。ALTER SYSTEM KILL SESSION 命令一执行,将使后台进程PMON 立即执行以下步骤:
• 回退用户的当前事务
• 释放所有当前持有的表或行锁定
• 释放用户当前保留的所有资源[/align]
[align=left]关闭数据库[/align]
[align=left]处理内容[/align][align=left]处理内容小项[/align][align=left]abort[/align][align=left]immediate[/align][align=left]transaction[/align][align=left]normal[/align]
[align=left]session[/align][align=left]是否允许建立新会话[/align][align=left]不允许[/align][align=left]不允许[/align][align=left]不允许[/align][align=left]不允许[/align]
[align=left]已经存在的会话[/align][align=left]强制断开[/align][align=left]回滚事务并断开[/align][align=left]等待事务提交后断开[/align][align=left]正常[/align]
[align=left]transaction[/align][align=left]是否允许建立新事务[/align][align=left]不允许[/align][align=left]不允许[/align][align=left]不允许[/align][align=left]可以开始新的事务[/align]
[align=left]已存在的事务[/align][align=left]强制结束[/align][align=left]回滚事务并断开[/align][align=left]等待提交后断开会话[/align][align=left]正常执行[/align]
[align=left]db buffer cache[/align][align=left]是否处理高速缓存[/align][align=left]否[/align][align=left]是[/align][align=left]是[/align][align=left]是[/align]
[align=left]log buffer[/align][align=left]是否处理日志缓存[/align][align=left]否[/align][align=left]是[/align][align=left]是[/align][align=left]是[/align]
[align=left]checkpoint[/align][align=left]是否执行检查点[/align][align=left]否[/align][align=left]是[/align][align=left]是[/align][align=left]是[/align]
[align=left]database文件[/align][align=left]是否关闭或卸载数据库[/align][align=left]否[/align][align=left]是[/align][align=left]是[/align][align=left]是[/align]
[align=left]recovery[/align][align=left]下次启动是否需要恢复[/align][align=left]是[/align][align=left]否[/align][align=left]否[/align][align=left]否[/align]
[align=left]summary[/align][align=left] [/align][align=left]强制关闭会话和事务[/align][align=left]回滚所有已经开始的事务并关闭会话,不能开始新的会话和事务[/align][align=left]所有已开始的事务正常结束后强制关闭会话,不能开始新的会话和事务[/align][align=left]所有已存在的会话正常结束后关闭数据库,可以开始新的事务,不能开始新的会话[/align]
[align=left]alterSID.log:[/align]
[align=left]每个Oracle 例程都有一个警报日志文件。如果该文件尚未创建,将在例程启动过程中进行创建。警报日志文件由您进行管理,并随着数据库的继续运行而不断增长。诊断日常操作或错误时,应该首先查看警报日志文件。警报日志文件还包含指向跟踪文件的指针,从而可获得更详细的信息。
警报日志文件记录了以下信息:
• 数据库启动或关闭的时间
• 所有非缺省初始化参数的列表
• 后台进程的启动
• 例程使用的线程
• 正在向其中写入信息的日志序列号LGWR
• 有关日志切换的信息
• 表空间的创建和撤消段
• 已发出的警报声明
• 有关ORA-600 等错误消息和区错误的信息[/align]
[align=left]后台跟踪文件
后台跟踪文件用于记录后台进程(如SMON、PMON、DBWn 和其它后台进程)遇到的错误。只有出现需要写入跟踪文件的错误时,才会创建后台跟踪文件。您可使用它们来诊断和解决问题。最初创建后台跟踪文件后,文件内包含指示数据服务器和操作系统的版本号的标头信息。
用户跟踪文件的命名约定:sid_processname_PID.trc (db01_lgwr_23845.trc)。
其存储位置由BACKGROUND_DUMP_DEST 初始化参数定义。[/align]
[align=left]用户跟踪文件
– 由用户进程生成
– 可由服务器进程生成
– 包含跟踪的SQL 语句的统计信息
– 包含用户错误消息
• 在用户遇到会话错误时创建
• 存储位置由USER_DUMP_DEST 定义
• 大小由MAX_DUMP_FILE_SIZE 定义
• 用户跟踪文件的命名约定:sid_ora_PID.trc(db01_ora_23845.trc)。[/align]
[align=left]启用或禁用用户跟踪-会话级别:
– 使用ALTER SESSION 命令:
ALTER SESSION SET SQL_TRACE = TRUE
– 执行DBMS 过程:
dbms_system.SET_SQL_TRACE_IN_SESSION(sid,serial#,sql_trace)
启用或禁用用户跟踪- 例程级别
– 设置初始化参数:
SQL_TRACE = TRUE[/align]本文出自 “shell” 博客,请务必保留此出处http://dusong.blog.51cto.com/158065/139215
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐