Oracle体系架构:实例(instance)的管理
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询Oracle实例(instance)的管理是OracleDBA最重要的日常工作之一,它包含了初始化参数文件的管理和维护,以各种不同的方式启动或关闭Oracle instance,以及对Oracle instance所出现的问题进行诊断和维护。
1、初始化参数文件的管理(initialization parameter files)
初始化参数文件是每一个Oracle数据库最重要的文件之一,实例启动时Oracle将读入该文件的每个参数项,并使用这些参数来配置Oracle instance。在Oracle数据库中有两种类型的参数:显式和隐式。显式是在初始化参数文件中有一个参数项,隐式是在初始化参数文件中没有该选项,但是Oracle会给出默认值。在Oracle中可以存在多个初始化参数文件,初始化参数文件的类型分为静态初始化参数文件和动态服务器初始化参数文件,静态初始化参数文件是一个文本文件,可以进行编辑;而动态服务器初始化参数文件是一个二进制文件,不能进行手工修改,随意修改可能会导致文件损坏,从而导致数据库起不来;静态初始化参数文件的文件名一般为:initSID.ora动态服务器初始化参数文件的文件名一般为spfileSID.ora。
初始化参数文件中包含以下类容:
实例名和与该实例名相关的数据库名称;控制文件的名字和控制文件的位置;系统全局区的配置;还原段(回滚段)的配置;该实例所能同时启动的进程数;标准数据块的大小;是否允许DBA远程登录。。。。
2、静态初始化参数文件(pfile)
静态参数文件是一个正文文件,可以使用操作系统提供的正文编辑器进行编辑。Oracle只在实例启动时读这一文件,因此为了使对这一文件中的参数的修改起作用必须重启实例。
Oracle在安装完成后创建了一个样本的初始化参数文件,其名称为init.ora
3、动态服务器参数文件(spfile)
动态服务器参数文件是一个二进制文件,他总是保存在服务器上而且是由Oracle服务器自动维护的。不可以手工修改,手工修改可能会改变该文件,导致成为无效文件。引入这一文件的主要目的是为了能在不需要关闭和启动数据库的情况下可以修改实例或者数据库配置。引入动态服务器参数文件的另一个好处是他提供了自我调优的能力,由于存在于服务器端,因此可以践行恢复管理器(rman)可以备份这一参数文件。
动态服务器参数文件是利用pfile 通过create spfile 命令建立的,只有具有sysDBA权限的用户才能发起这一命令。
create spfile [=‘spfile名'] from pfile [=‘pfile名'] create spfile from pfile
手工修改spfile的参数会使得该文件变得无效,因此在不少Oracle书中建议利用spfile文件生成pfile文件,之后再利用编辑器修改pfile;
如果想修改spfile文件中的参数,最好的方式是使用 alter system set这一个命令语句。
4、启动数据库
要使用Oracle的startup 命令来启动数据库。当Oracle收到startup命令之后,其执行顺序如下:
--首先使用服务器上的spfileSID文件来启动实例
--如果没有找到,就会使用服务器上默认的spfile文件来启动实例,
--如果依旧没有找到,就会使用服务器上的initSID文件启动实例
--如果还没有找到,就是用服务器默认的pfile文件启动实例;
可以再启动的时候添加参数改变优先级,startup pfile=c:\ssa\...\initSID.ora
startup的启动命令如下
startup [force] [restrict] [pfile=文件名]
[open [recover] [database]] | [mount] | [nomount]
非加载方式启动数据库[nomount],这是一种特殊状态,该状态只有在创建数据库或者重建控制文件期间使用。其命令为 startup nomount
当以nomount方式打开数据库时,Oracle只是打开实例,并不打开数据库中的任何文件,及连控制文件都不打开。该状态一般是在创建数据库时使用,此时Oracle将进行如下的工作:分配SGA,即配置所有的内存缓冲区和相关的结构;启动所需的全部后台进程;打开报警文件和追踪文件。
加载方式启动数据库[mount],也是一种特殊状态,该状态只有在对数据库进行某些特殊的维护期间使用,如对表空间进行恢复,或修改数据文件名,或移动数据文件。其命令是startup mount
当以mount方式启动数据库时,Oracle实例打开并打开控制文件,此时Oracle将进行如下工作:将以数据库与已经能够启动的实例关联起来;利用初始化参数文件中的说明打开控制文件,读控制文件以获取数据文件和重做日志的名字和状态的信息,但并不检查这些文件此时是否存在。
开启方式启动数据库[open],这是数据库的正常启动状态,当以open方式启动数据库时候,Oracle启动实例,并打开控制文件,此时还将打开所有的联机数据文件和打开所有的联机重做日志文件。如果当打开数据库时任何数据文件或联机重做日志文件不存在,Oracle服务器将返回出错信息,最后Oracle服务器还将检查所有的联机数据文件和所有的联机重做日志文件能否打开并检查数据库的一致性。如果需要smon后台进程则进行实例恢复。
alter database 命令可将nomount修改为mount ,将mount修改为open;为了防止用户进程修改数据库中的数据,可以将数据库的状态置为只读,其命令如下 alter database read only;在只读状态的数据库可以用来执行查询、将数据文件脱机和联机,但是不能对表空间这样做、执行数据文件和表空间的脱机恢复、使用本地管理表空间来执行磁盘排序。
5、将数据库置为限制模式restrict
数据库运行在限制模式时是很有用的,如要维护数据库的结构,或对数据库进行导入和导出等。这样只有具有restricted session系统权限的用户才可以登录数据库。
startup restrict 或者 alter system enable restricted session;
利用以上语句转换数据库后,Oracle服务器只保证将来登录数据库的用户必须具有restricted session 系统权限,在此之前已经在数据库上的用户可以继续工作。
6、关闭数据库
shutdown normal |transactional |immediate |abort