Oracle 实例管理

理解初始化参数文件
实例由内存中构建它的参数来定义。许多参数(但不是全部)可以在启动后更改。有些参数在启动时就固定了,只能在关闭实例并再次启动时更改。

静态和动态参数文件
参数文件由两类:静态参数文件(也称pfile或初始文件)和动态服务器参数文件(也称为spfile)。无论哪种类型,初始化参数文件都在内存中存储了建立实例、启动后台进程所用参数的值。有3个默认的文件名。
在UNIX上,它们是:
$ORACLE_HOME/dbs/spfile<SID>.ora
$ORACLE_HOME/dbs/spfile.ora
$ORACLE_HOME/dbs/init<SID>.ora
在windows上,它们是:
%ORACLE_HOME%\database\SPFILE<SID>.ORA
%ORACLE_HOME%\database\SPFILE.ORA
%ORACLE_HOME%\database\INIT<SID>.ORA
<SID>是指参数文件启动的实例名。上述顺序非常重要。除非在启动命令中指定了pfile,否则Oracle会按照上述列表的顺序执行,使用它找到的第一个文件,而忽略其他文件。如果它们都不存在(也没有指定非默认的pfile),实例就不会启动。
spfile是一个服务器段文件,不能重命名或重新定位。唯一的例外是使用GI,在GI注册表中可以注册非默认的文件名和位置名。在启动实例时,SMON后台进程会读取它。spfile是一个二进制文件,不能手工编辑。
要修改spfile中的值,使用ALTER SYSTEM SET命令,或者Database Express的参数编辑功能。
要创建spfile: CREATE SPFILE [ = filename ] FROM PFILE [ = filename ];
pfile是一个客户端文件,它默认存在于ORACLE_HOME目录下,但实际上它由用户进程读取,该用户进程发出启动实例的命令。可以随意重命名或移动pfile,但如果这么做,就不能在默认情况下找到它,必须在STARTUP命令上指定其名称和位置。pfile是一个ACII文本文件,可编辑。
要创建pfile: CREATE SPFILE [ = filename ] FROM SPFILE [ = filename ];
文件SPFILE<SID>.ORA最便于用作参数文件。一般情况下,仅在RAC环境中使用spfile.ora,在这个环境中,可以使用一个文件启动几个实例。只有需要手工编辑,才使用init<SID>.ora。

静态和动态参数以及初始化参数文件
要查看当前在运行的实例中生效的参数值: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 <name> = <value> SCOPE = MEMORY | SPFILE | BOTH
scope子句的默认值是BOTH,其含义是如果没有指定SCOPE,更改就应用于运行着的实例,并写入spfile,这是一个永久的更改。
如果不将SCOPE指定为SPFILE,将无法更改静态参数。SCOPE的默认值是BOTH,即作用于运行中的实例和spfile。如果使用pfile启动实例,那么设置SCOPE=SPFILE将失败。

启动和关闭Oracle数据库实例
启动数据库侦听器

数据库侦听器是一个进程,它监视一个端口的数据库连接请求。
lsnrctl start [ <listener> ]
lsnrctl status [ <listener> ]

启动和关闭数据库
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目录。警报日志的位置和命名如下:
<DIAGNOSTIC_DEST>/diag/rdbms/<DBNAME>/<INSTANCE_NAME>/trace/alter_<instance_name>.log
对于数据库和实例oracl,该值通常如下;
c:\app\oracle\diag\rdbms\orcl\orcl\trace\alter_orcl.log
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alter_orcl.log
XML格式的警报日志副本在另一个目录下维护:
<DIAGNOSTIC_DEST>/diag/rdbms/<DBNAME>/<INSTANCE_NAME>/alter
警报中记录的关键操作包括;
所有启动和关闭命令,包括中间命令,如ALTER DATABASE MOUNT。
实例的所有内部错误(如ORA-600错误,DBA只能使用My Oracle Support查看它们,如果它们是新问题,就报告给Oracle Support)。
任何检测到的数据文件块损坏情况。
任何已经发生的记录锁定死锁。
影响数据库物理结构的所有操作,如创建或重命名数据文件和联机重做日志。
调整初始化参数值的ALTER SYSTEM命令。
所有日志开关和日志归档。
启动的警报日志项显示参数文件中指定的所有初始化参数。此信息以及随后使用ALTER SYSTEM更改实例的连续记录,以及使用ALTER DATABASE更改数据库物理结构的连续记录,允许用户重新构建对数据库和实例的更改历史。
跟踪文件由各个后台进程生成,一般在遇到错误时生成。这些文件与警报日志一起放在跟踪目录中。
DDL日志
如果DBA选择启用DDL日志,就可以在日志文件中记录DDL命令。所适用的语句就记录在如下目录的文本文件ddl_<instance_name>中,并记录与XML文件log.xml相同的信息:
<DIAGNOSTIC_DEST>/diag/rdbms/<DBNAME>/<INSTANCE_NAME>/log
要启用DDL日志,实例参数ENABLE_DDL_LOGGING必须设置为TRUE(默认为FALSE)。
动态性能视图
动态性能视图有600多个,名称前缀是“V$”,事实上,它们根本不是视图,而是带有“V_$”前缀的视图上的同义词。动态性能视图填充了来自实例或控制文件的信息,前缀为DBA_、ALL_或USER_的视图则填充了来自数据字典的信息。此差异决定了可以在不同启动阶段查询哪些视图。
动态性能视图在数据库启动阶段创建,在实例的生存期内进行更新,在数据库关闭阶段被删除。这意味着动态性能视图包含了从数据库启动开始积累的值。如果数据库连续打开半年时间,那么动态性能视图具有这一段时间内建立的所有数据。

原文地址:https://www.cnblogs.com/zhaochunyi/p/10650406.html

时间: 2024-11-08 20:26:07

Oracle 实例管理的相关文章

oracle实例管理

转至 "little健健",仅留作记录. 启动和停止 Oracle 数据库和组件 管理框架 启动和停止database control 启动 emctl start dbconsole 停止 emctl stop dbconsole 查看状态 emctl status dbconsole 打开和停止监听 启动 lsnrctl start 停止 lsnrctl stop 查看状态 lsnrctl status isql*plus和sql*plus(1.执行数据库管理操作  2.通过执行

[转]Oracle DB 管理ASM实例

? 描述使用ASM 的好处 ? 管理ASM 实例 ? 创建和删除ASM 磁盘组 ? 扩展ASM 磁盘组 ? 通过使用各种实用程序检索ASM 元数据 Automatic Storage Management Automatic Storage Management (ASM) 将文件系统与卷管理器纵向集成在一起,这是一项专门为Oracle DB 文件建立的技术.使用ASM 可管理单个对称多处理(SMP) 计算机,或通过管理集群的多个节点来支持Oracle Real Application Clus

Oracle RAC 实例管理(Cluster Group Service)

CGS是Oracle RAC 实例管理的实现方法,负责实现如下功能 1)实例之间的心跳机制 2)当实例离开或者加入集群时完成数据库集群的重新配置 3)解决数据库层面出现的脑裂 1,网络心跳 数据库层面的网络心跳是通过LMON进程实现的,每个实例的LMON进程会定期通过数据库的私网与所有远程实例进行通信,以确认其他实例的状态,如果,某一个实例一段时间之内不能够响应其他节点发送的网络心跳信息,那么数据库集群就需要进行重新配置,用户能够看到的最直观的信息就是ora-29740错误. 2,磁盘心跳 数据

oracle 用户管理

1. 用户进程 Ps –elf | greporacleocl |grep–v grep 2. 数据库进程 Ps –elf |greporacleorcl 3. 守护进程 Ps –elf |grep oha 大池:在SGA中,大池是一个可选的缓冲区域,管理员可以根据需要对其进行配置,在大规模输入输出及备份过程中需要大池作为缓存空间,例如,大数据操作.数据库备份与恢复之类的操作. Java池:Java池是一个可选的缓冲区,但是在安装java或者java程序时必须设置Java池,它用于编译Java语

Linux/Unix shell 监控Oracle实例(monitor instance)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 实例. Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量        Linux/Unix shell 调用 P

【读书笔记】ORACLE 内存管理

<Administrator's Guide>第6章介绍了ORACLE实例的内存管理,在11g中,ORACLE默认使用自动内存管理(AMM)来管理SGA和PGA的大小.除了默认的方法之外,还可以使用自动共享内存管理SGA(ASMM).手动共享内存管理SGA.自动PGA内存管理.手动PGA内存管理. 一.自动内存管理 自动内存管理是最方便的内存管理方式,只需要设定参数MEMORY_TARGET的值,ORACLE 就会根据实际需要分配SGA和PGA. 1.1应用自动内存管理 1.用SYSDBA的身

Oracle内存管理(之四)

[深入解析--eygle]学习笔记 1.3 SGA管理 SGA指系统全局区(System Global Area),是一块用于加载数据.对象并保存运行状态和数据库控制信息的一块内存区域,在数据库实例启动时分配,当实例关闭时释放,每个实例都拥有自己的SGA区. 在第一章曾经?到,当数据库启动到nomount状态时,SGA已经分配,同时启动后台进程,在SQL*Plus中通过show sga命令可以看到SGA的分配情况: [email protected] SQL>show parameter sga

在单机上安装多个oracle实例

1   在 hp unix上安装 oracle 10g ,这个不解释,直接安装好. 创建组oinstall,dba,用户oracle  [[email protected] ~]# groupadd oinstall  [[email protected] ~]# groupadd dba  [[email protected] ~]# useradd -d /home/oracle -g oinstall -G dba oracle    设置oracle用户密码  [[email prote

Oracle实例和Oracle数据库(Oracle体系结构)

--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --========================================== /* 对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库.这两 概念不同于SQL sever下的实例与数据库,当然也有些相似之处.只是在SQL server我们根本不需要花费太 多的精力去搞清SQL实