关于 Oracle 实例管理
理解初始化参数文件 实例由内存中构建它的参数来定义。许多参数(但不是全部)可以在启动后更改。有些参数在启动时就固定了,只能在关闭实例并再次启动时更改。 静态和动态参
<p>理解初始化参数文件实例由内存中构建它的参数来定义。许多参数(但不是全部)可以在启动后更改。有些参数在启动时就固定了,只能在关闭实例并再次启动时更改。</p>
静态和动态参数文件参数文件由两类:静态参数文件(也称pfile或初始文件)和动态服务器参数文件(也称为spfile)。无论哪种类型,初始化参数文件都在内存中存储了建立实例、启动后台进程所用参数的值。有3个默认的文件名。在UNIX上,它们是:$Oracle_HOME/dbs/spfile
静态和动态参数以及初始化参数文件要查看当前在运行的实例中生效的参数值:select name,value from v$parameter order by name;显示磁盘上spfile中存储的值:select name,value from v$spparameter order by name;有些参数可以在实例运行时更改,而其他参数(称为静态参数)是启动实例时就固定下来的。对于可更改参数的更改的效果是立竿见影的,并且会可选地写出到spfile中,下次停止或启动实例时,将从spfile中读取新值。要更改静态参数,则必须将更改写入spfile中,但将在下次启动时生效。
基本参数基本实例参数是应该为每个数据库使用的参数。要查看基本参数机器当前值:select name,value from v$parameter where isbasic='TRUE' order by name;
更改参数语法:ALTER SYSTEM SET
启动和关闭Oracle数据库实例启动数据库侦听器
数据库侦听器是一个进程,它监视一个端口的数据库连接请求。lsnrctl start [
启动和关闭数据库1.使用适当权限进行连接
普通用户无权启动或关闭数据库,必须使用某种外部身份认证方式来连接数据库:必须通过操作系统进行身份验证,以拥有Oracle软件的小组成员身份出现,或者给出外部口令文件中存在的用户名/口令组合。SYSDBA和SYSOPR并非用户,而是可以授予用户的权限。默认方式下,在未将这些权限专门授予其他用户之前,只有SYS用户才拥有这些权限。如果拥有SYSDBA权限,就能以用户SYS的身份登录到实例,这是数据库中权力最大的用户,也是数据字典的所有者。使用SYSOPR权限可以作PUBLIC用户进行连接,PUBLIC不是普通意义上的用户,而是具有管理权限的概念用户,但它无权查看或操作数据。
2.启动:NOMOUNT、MOUNT和OPEN
实例和数据库时独立实体,可以独立存在,因此,启动过程分成多个阶段:1.在内存中构建实例2.用过加载控制文件启用到数据库的连接。3.打开数据库来使用它。
在任意时刻,数据库将处于以下4中状态之一:SHUTDOWN:关闭与数据库相关的所有文件,同时实例并不存在NOMOUNT:实例已构建在内存中(已根据参数文件中指定的参数创建了SGA并启动某些后台进程),但是并没有连接任何 数据库,这种情况在数据库不存在时确实可能出现。MOUNT:实例定位并读取数据库控制文件。OPEN:将定位和打开所有数据库文件,并且终端用户能够使用数据库。执行startup命令时,Oracle会尝试按前述的命名约定,定位参数文件。实例一旦在NOMOUNT模式中启动成功,就可以通过读取控制文件转换到MOUNT模式。它适用CONTROL_FILE参数(在NOMOUNT模式中启动实例时,读取所适用的参数文件就可以知道这个参数)定位控制文件。如果控制文件(或者控制文件的任何多路复用副本)被损坏或丢失,就不会加载数据库,因此还需要在继续启动进程之前执行适当的动作。如果数据库的加载成功,那么控制文件的所有副本都可用并且相同。在数据库加载阶段,所有数据文件和连接重做日志文件的名称和位置都从控制文件中读取,但是Oracle仍然没有试图查找这些文件,这些文件的查找在转换至OPEN模式时进行。如果任何文件丢失或损坏,数据库就会停留在MOUNT模式,并且只有在执行适当的动作之后才能打开。此外,即使所有文件都存在,这些文件在数据库打开之前也必须同步。如果数据库的最近一次关闭是有序的(也就是说数据库缓冲区缓存内的所有数据库缓冲区首先通过DBWn进程被转储至硬盘),那么所有数据文件和联机重做日志文件都将同步:Oracle会知道所有已提交的事务都被安全地存储在数据文件中,并且没有任何未提交的事务被挂起等待回滚。然而,如果数据库的最近一次关闭不是有序的(如断电或服务器重启),那么Oracle必须修复损坏的文件,而且,数据库会被看做处于不一致状态。加载和代开数据库的进程为SMON。只有在成功打开数据库之后,Oracle才允许用正常的数据字典验证方式,建立用户会话。数据库的关闭顺序应当与数据库的启动顺序相反。在有序关闭数据期间首先关闭数据库,然后卸载,最后停止实例。在数据库关闭阶段,将终止所有会话:回滚活动的事务,通过DBWn进程将已完成的事务转储至磁盘,同时关闭数据文件和重做日志文件。在数据库卸载阶段,关闭控制文件。随后,通过解除分配SGA和终止后台进程,停止实例。
3关闭:NORMAL、TRANSACTIONAL IMMEDIATE和ABORT
shutdown [ normal | transactional | immediate | abort ]normal:这是默认选项。使用该选项时,不许可任何新的用户连接,但是允许继续当前的所有连接。只有所有用户(自愿地)退出登录时,数据库才能真正关闭。transactional:不许可任何新的用户连接,不存在于某个事物中的现有会话将被种猪,允许当前位于某个事物中的会话在完成该事务之后终止。一旦所有会话终止,就会关闭数据库。immediate:不许可任何新的用户连接,当前所有连接的会话都被终止。任何活动的事务都将回滚,随后数据库会关闭。abort:就Oracle而言,使用这个选项相当于断电。实例立即终止。此时,不会讲任何数据写入磁盘,也不会采用任何有序的方式终止正在进行的事务。
查看警报日志,访问动态性能视图警报日志警报日志是应用于实例和数据库的关键操作的连续记录。其位置由实例参数DIAGNOSTIC_DEST确定,它默认为ORACLE_BASE目录。警报日志的位置和命名如下:
更多Oracle相关信息见Oracle 专题页面 https://www.558idc.com/topicnews.aspx?tid=12