Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

999

积分

1

好友

942

主题
1#
发表于 2013-10-11 22:48:58 | 查看: 2493| 回复: 0
使用 Oracle Restart 来管理组件


Oracle Restart
Oracle Restart 旨在提高 Oracle DB 的可用性。它仅针对单实例(非集群)环境实施了一项高可用性解决方案。在 Oracle Real Application Cluster (Oracle RAC) 环境中,自动重新启动组件的功能是由 Oracle Clusterware 提供的。Oracle Restart 可以监视健康状况并重新启动 下列组件:
数据库实例
Oracle Net 监听程序
数据库服务
ASM 实例
ASM 磁盘组
Oracle 通知服务 (ONS/eONS):用于在故障转移时向集成客户机发送快速应用通知 (Fast Application Notification, FAN) 事件的服务。Oracle Enterprise Manager 使用 eONS 接收由 Oracle Restart 管理的组件的状态更改通知。
重新启动 ASM 磁盘组意味着对其进行装载。仅 Oracle Data Guard 安装提供了重新启动 ONS 的功能,用以通过 FAN 在主数据库和备用数据库间对连接进行自动故障转移。


Oracle Restart 可以确保按照组件依赖关系以正确顺序启动组件。如果必须要关闭某个组件,其将确保首先彻底关闭从属组件。  
可以从 Oracle Grid Infrastructure 主目录运行 Oracle Restart,该目录与 Oracle DB 主目录是分开安装的。


Oracle Restart 进程的启动
在安装 Oracle Restart 的过程中,用于启动包装脚本的条目将被放置到 /etc/inittab 操作系统文件中。包装脚本先设置环境变量,然后启动 Oracle Restart 守护程序和进程。  
使用命令停止 Oracle Restart 时,守护程序将被中断,但是包装脚本进程还会继续运行。
UNIX /etc/inittab 文件的格式如下:
id : 运行级别 : 操作 : 带参数的进程
由于包装脚本随 respawn 操作一起启动,因此无论何时被终止,包装脚本都将重新启动。另外,respawn 操作会促使初始化进程重新启动出现故障的守护程序。  
在启动后,某些 Oracle Restart 守护程序将在 root 用户身份下以实时优先级运行,而另一些守护程序将在 Oracle Grid Infrastructure 所有者身份下以用户模式优先级运行。在 Windows 平台上,使用的是操作系统服务而非包装初始化脚本,而且守护程序是二进制的可执行文件。  
注:不支持直接执行包装脚本。  



# cat /etc/inittab
..
h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null   



控制 Oracle Restart
可以使用 CRSCTL 实用程序控制 Oracle Restart 的状态。可以使用该实用程序确定自动 启动功能处于启用还是禁用状态,如下所示:
$ crsctl config has
CRS-4622: Oracle High Availability Services autostart is enabled.
在安装 Oracle Grid Infrastructure 的过程中,用于启动包装脚本的条目被放置到 /etc/inittab 操作系统文件中,如下所示:
h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
包装脚本负责设置环境变量,然后启动 Oracle 高可用性服务守护程序 (ohas) 以及其它 相关进程。包装脚本是以 root 用户身份执行的。  
使用 CRSCTL 实用程序禁用 Oracle Grid Infrastructure 的自动重新启动功能时,不会删除 /etc/inittab 文件中的条目。ohas 的控制文件用于控制 ohas 的状态并确定自动重新 启动功能是处于启用还是禁用状态。这些文件称为 SCLS_SCR 文件。在 Linux 中,对控制文件位置的定义如下:
/etc/oracle/scls_scr/$HOST/<Oracle Restart owner> 和
/etc/oracle/scls_scr/$HOST/root



控制 Oracle Restart(续)
如果使用 CRSCTL 实用程序来停止 Oracle Restart,则还将同时停止当前由 Oracle Restart 管理的所有组件。  
$ crsctl stop has
CRS-4549: Stopping resources.
CRS-2673: Attempting to stop 'ora.diskmon' on 'host01'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'host01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'host01'
CRS-2677: Stop of 'ora.DATA.dg' on 'host01' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'host01'
CRS-2675: Stop of 'ora.diskmon' on 'host01' succeeded
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'host01' succeeded
CRS-2677: Stop of 'ora.asm' on 'host01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'host01'
CRS-2677: Stop of 'ora.cssd' on 'host01' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'host01'
CRS-2677: Stop of 'ora.diskmon' on 'host01' succeeded
CRS-4133: Oracle High Availability Services has been stopped.
在上例中,未安装 Oracle DB 软件。如果 Oracle DB 已在 Oracle Restart 中注册或已在使用 ASM,则 Oracle DB 也将被停止。
使用 CRSCTL 实用程序启动 Oracle Restart 时,不会在标准输出中显示每个被启动的组件。
$ crsctl start has
CRS-4123: Oracle High Availability Services has been started.
注:不支持直接调用包装脚本来启动 Oracle Grid Infrastructure 进程。



选择正确的 SRVCTL 实用程序
Oracle Restart 中包含了用于启动、停止和管理 Oracle Restart 组件的 SRVCTL 实用程序。在安装了 Oracle Grid Infrastructure 软件和 Oracle DB 软件后,在每个 ORACLE_HOME 位置都会存在 SRVCTL 实用程序的一个副本。您需要确定用于运行 SRVCTL 实用程序的正确 ORACLE_HOME 位置。管理 ASM 实例、ASM 磁盘组、Oracle Net 监听程序和 ONS 时, 需要从 Oracle Grid Infrastructure 软件的主目录运行 SRVCTL 实用程序。管理 Oracle DB 实例时,需要从 Oracle DB 软件主目录运行 SRVCTL 实用程序。要确定 SRVCTL 实用程序的当前映射位置,请使用 which 命令,如下所示:
$ which srvctl
/u01/app/oracle/product/11.2.0/grid/bin/srvctl
注:以上关于 Oracle Net 监听程序的说明,假定先安装了 Oracle Grid Infrastructure,然后才安装了 Oracle DB 软件。如果在现有的 Oracle DB 安装中添加了 Oracle Restart,则可以从 Oracle DB 主目录运行 Oracle Net 监听程序。在这种情况下,您应该在 Oracle DB 主目录下使用 SRVCTL 实用程序管理 Oracle Net 监听程序。


Oracle Restart 配置
Oracle Restart 维护着它所管理的所有组件的列表,以及每个组件的配置信息。所有这些 信息统称为“Oracle Restart 配置”。安装 Oracle Restart 时,许多使用 Oracle 实用程序创建 Oracle 组件的操作会自动将组件添加到 Oracle Restart 配置中。对于未使用 Oracle 实用程序而手动创建的组件,需要时可以使用 SRVCTL 命令将其添加到 Oracle Restart 配置中。上方幻灯片中的表格说明了哪些创建操作会自动将组件添加到 Oracle Restart 配置中以及哪些创建操作不会更新 Oracle Restart 配置。
注:这些规则同样适用于删除操作。


使用 SRVCTL 实用程序
Oracle Restart 在使用中时,Oracle 强烈建议您使用 SRVCTL 实用程序启动、停止和管理所有 Oracle Restart 组件。建议使用 SRVCTL 实用程序的原因如下:
维护组件间的所有依赖关系。这使得 Oracle Restart 能够首先启动或停止任何从属 组件。
按照组件的 Oracle Restart 配置启动组件。
为组件设置 Oracle Restart 配置中存储的环境变量。
也可以使用其它实用程序(如监听程序控制 (LSNRCTL) 实用程序或 SQL*Plus)来启动 Oracle Restart 组件,但是使用其它实用程序可能无法获得上述好处。Oracle Restart 的 SRVCTL 实用程序支持 12 种命令和 9 种组件。可供使用的选项因命令和组件的组合而异。SRVCTL 实用程序的语法如下所示:
srvctl command component options
其中:
command 是一个动词,例如 start、stop 或 remove
component 是 SRVCTL 执行命令时所针对的对象,如某个数据库
options 通过包含附加参数来扩展其前面命令的用途


获取有关 SRVCTL 实用程序的帮助
SRVCTL 实用程序提供了有关其命令、组件和选项的详细联机帮助信息。要显示联机帮助,请使用帮助选项 (-h) 显示用法信息。如果仅指定了帮助选项 (-h) 参数,SRVCTL 将显示所有命令的概要信息,以及每个命令和组件组合的最常用选项。这不是所有受支持的选项的完整列表。要获得更加详细和完整的信息,可以针对特定命令或特定命令和组件组合使用帮助选项 (-h)。


使用 SRVCTL 实用程序启动组件
您可以使用 SRVCTL 实用程序启动单个组件以及所有必需的从属组件。例如,srvctl start database –d PROD 命令还会启动监听程序、ASM 实例和多个磁盘组(如果 这些组件已定义为由 Oracle Restart 管理并且是 PROD 数据库的从属组件)。
SRVCTL 实用程序还可用于启动与某个指定 Oracle 主目录关联的且配置为由 Oracle Restart 管理的所有组件,命令如下所示:
srvctl start home –o /u01/app/oracle/product/11.2.0/ dbhome_1 –s /usr/local/bin/group_state_file
状态文件中包含 Oracle 主目录中的组件的当前状态信息,该文件是在执行 srvctl status home 命令时创建的。它由状态文件选项 (-s) 来指示,且必须指定状态文件的完整路径。可以在任意目录中创建状态文件。
注:幻灯片中所示的选项是最常用的选项,并不是完整的选项列表。可以使用帮助选项 (-h) 获取每个命令的所有可用选项的完整列表。


使用 SRVCTL 实用程序停止组件
您可以使用 SRVCTL 实用程序停止单个组件以及所有必须停止的从属组件。例如,srvctl stop diskgroup –g "DATA -f" 命令将强制卸下磁盘组,即使其中有文件处于打开状态。它还将停止从属于 DATA 磁盘组的所有数据库实例。  
SRVCTL 实用程序还可用于停止与某个指定 Oracle 主目录关联的且配置为由 Oracle Restart 管理的所有组件,命令如下所示:
srvctl stop home –o /u01/app/oracle/product/11.2.0/ dbhome_1 –s /usr/local/bin/group_state_file -f
该命令在需要停止所有组件的情况下十分有用(例如需要向软件二进制文件应用补丁 程序时)。
注:幻灯片中所示的选项是最常用的选项,并不是完整的选项列表。可以使用帮助选项 (-h) 获取每个命令的所有可用选项的完整列表。


查看组件状态
您可以使用 SRVCTL 实用程序查看 Oracle Restart 管理的任意组件的运行状态(运行中或未运行)。对于某些组件还会显示其它信息。
命令的格式如下:
srvctl status object [options]
object 可以是下列对象之一:
asm:ASM 实例
db:数据库实例
dg:Oracle ASM 磁盘组
filesystem:Oracle ASM 文件系统
home:Oracle 主目录或 Oracle Clusterware 主目录
lsnr:Oracle Net 监听程序
ons、eons:Oracle 通知服务
serv:数据库服务
有关上述每个对象的选项列表,请参阅《Oracle 数据库管理员指南》。


显示组件的 Oracle Restart 配置
您可以使用 SRVCTL 实用程序的 config 命令显示某个组件的 Oracle Restart 配置。config 命令可用于 database、service、asm、listener、ons 和 eons 组件。
您可以使用 SRVCTL 实用程序的 modify 命令对 Oracle Restart 组件的配置进行修改。 下面的语法示例说明了如何将具有唯一名称 orcl 的数据库的服务器参数文件 (SPFILE) 的目录更改为使用另一非标准目录。
srvctl modify database –d orcl –p /usr/local/oracle/spfileorcl.ora


手动向 Oracle Restart 配置添加组件
可以使用 SRVCTL 实用程序的 add 命令手动向 Oracle Restart 配置添加组件。由 Oracle 实用程序(如 NETCA、DBCA、ASMCA 或 OUI)创建的组件会自动添加到 Oracle Restart 配置中,因此不必再手动添加它。
幻灯片展示了向 Oracle Restart 配置手动添加名为 MYLISTENER 的新监听程序的过程。 该监听程序将使用 Grid 安装主目录下的软件二进制文件,但是其使用的网络文件位于 一个非标准位置。在此示例中,假设 listener.ora 网络文件创建在 /usr/local/oracle 目录下。可以使用 srvctl 实用程序的 setenv 命令定义特定组件可能需要的环境变量。TNS_ADMIN 环境变量用于设置 listener.ora 文件的非默认位置,并且仅为名为 MYLISTENER 的监听程序进行定义。这不会对可能已存在的其网络文件使用其它目录的任何其它监听程序造成任何影响。
使用 SRVCTL 实用程序中包含的 remove 命令可以手动从 Oracle Restart 配置中删除组件。要删除前面创建的监听程序,请使用以下语法:
srvctl remove listener –l mylistener –f
这将同时删除与该监听程序相关联的环境变量。
您还可以使用 Oracle Enterprise Manager Database Control 来向 Oracle Restart 配置中添加 数据库实例和监听程序。


下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569     邮箱:service@parnassusdata.com
您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-15 04:44 , Processed in 0.045691 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569