Oracle Database Administrator s Guide 11g Release 2 (11.2)_阅读笔记04
Chapter 4, "Configuring Automatic Restart of an Oracle Database"
使用 Oracle Restart 特性可以在服务器重启或发生硬件问题后,自动启动数据库、监听以及其他Oracle组件服务
一、关于Oracle Restart
Oracle Restart可以管理以下组件
1)Database instance - Oracle Restart can accommodate multiple databases on a single host computer.
2)Oracle Net listener - Database services Does not include the default service created upon installation because it is automatically managed by Oracle Database, and does not include any default services created during database creation.
3)Oracle Automatic Storage Management (Oracle ASM) instance
4)Oracle ASM disk groups - Restarting a disk group means mounting it.
5)Oracle Notification Services (ONS) - In a standalone server environment, ONS can be used in Oracle Data Guard installations for automating failover of connections between primary and standby database through Fast Application Notification (FAN). ONS is a service for sending FAN events to integrated clients upon failover.
Oracle Restart通过周期性检查组件来监控以上组件。如果发现组件检查失败,则shutdown组件并重新启动
Oracle Restart只用在 standalone 服务器上,RAC的自动重启功能通过clusterware实现。
使用SRVCTL启动组件与使用SQL * Plus(或其他实用程序)启动组件之间的重要区别在于:
1)使用SRVCTL启动组件时,该组件所依赖的所有其他组件都会先自动启动。
2)使用SQL * Plus(或另一个实用程序)启动组件时,依赖关系链中的其他组件不会自动启动。 我们必须确保启动该组件所依赖的所有组件。
Oracle utilities such as SQL*Plus, the Listener Control utility (LSNRCTL), and ASMCMD are integrated with Oracle Restart.
二、配置Oracle Restart
1)获取SRVCTL的帮助
srvctl -h
srvctl command -h
eg: srvctl add -h
srvctl command object -h
eg: srvctl add service -h
2)添加组件到 Oracle Restart 配置中
srvctl add object options
例子1 添加数据库,DB_UNIQUE_NAME = dbcrm,-o 选项指定ORACLE HOME,-c指定单实例数据库
srvctl add database -d dbcrm -o /u01/app/oracle/product/11.2.0/dbhome_1 -c SINGLE
例子2 添加数据库服务,DB_UNIQUE_NAME = dbcrm,新的数据库服务名crmbatch
srvctl add service -d dbcrm -s crmbatch
例子3 添加默认监听
srvctl add listener
3)remove Oracle Restart 配置中组件
srvctl remove object [options]
例子1 移除数据库
srvctl remove database -d dbcrm
4)临时disable一个组件的Oracle Restart管理。例如在维护窗口,你不希望该组件自动重启。
srvctl disable object [options]
srvctl enable object [options]
例子1 disable数据库自动重启,DB_UNIQUE_NAME = dbcrm
srvctl disable database -d dbcrm
例子2 disable ASM磁盘组自动重启
srvctl disable diskgroup -g recovery
例子3 enable ASM磁盘组自动重启
srvctl enable diskgroup -g recovery
5)查看组件状态
srvctl status object [options]
例子1 查看数据库的状态,DB_UNIQUE_NAME = dbcrm
srvctl status database -d dbcrm
Database is running.
6)查看组件在Oracle Restart中的配置
srvctl config object options
例子1 查看被Oracle Restart管理的所有数据库列表
srvctl config database
dbcrm
orcl
例子2 查看某个数据库的配置,DB_UNIQUE_NAME = orcl
srvctl config database -d orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/orcl/spfileorcl.ora
Domain: us.example.com
Start options: open
Stop options: immediate
Database role: Management
policy: automatic
Disk Groups: DATA
Services: mfg,sales
7)修改某个组件的Oracle Restart配置
srvctl modify object options
例子1 修改数据库的Oracle Restart配置,DB_UNIQUE_NAME = dbcrm,修改管理模式为手动,并且数据库启动模式为nomount
srvctl modify database -d dbcrm -y MANUAL -s NOMOUNT
8)管理Oracle Restart配置中的环境变量
可以配置环境变量的组件
■ Database instance
■ Listener
■ Oracle ASM instance
srvctl setenv {asm|database|listener} options
srvctl unsetenv {asm|database|listener} options
例子1 修改环境变量,DB_UNIQUE_NAME = dbcrm,配置NLS_LANG和AIXTHREAD_SCOPE
srvctl setenv database -d dbcrm -t "NLS_LANG=AMERICAN_AMERICA.AL32UTF8,AIXTHREAD_SCOPE=S"
9)查看环境变量
srvctl getenv {database|listener|asm} options
例子1 查看数据库的全部变量,DB_UNIQUE_NAME = dbcrm
srvctl getenv database -d dbcrm
dbcrm:
NLS_LANG=AMERICAN_AMERICA
AIXTHREAD_SCOPE=S
GCONF_LOCAL_LOCKS=1
例子2 查看数据库的指定变量,DB_UNIQUE_NAME = dbcrm,NLS_LANG和AIXTHREAD_SCOPE
srvctl getenv database -d dbcrm -t "NLS_LANG,AIXTHREAD_SCOPE"
dbcrm:
NLS_LANG=AMERICAN_AMERICA
AIXTHREAD_SCOPE=S
10)使用SRVCTL创建数据库服务
srvctl add service -d db_unique_name -s service_name [options]
例子1 创建一个数据库服务,DB_UNIQUE_NAME = dbcrm,服务名crmbatch
srvctl add service -d dbcrm -s crmbatch
例子2 创建一个基于role的数据库服务,服务名crmbatch ,数据库dbcrm是物理备库
srvctl add service -d dbcrm -s crmbatch -l PHYSICAL_STANDBY
三、启动和停止Oracle Restart管理的组件
使用Oracle Restart时,出于以下原因,Oracle强烈建议使用SRVCTL实用程序来启动和停止组件:
■当使用SRVCTL启动组件时,Oracle Restart可以首先启动该组件所依赖的任何组件。使用SRVCTL停止组件时,Oracle Restart可以首先停止任何从属组件。
■SRVCTL始终根据其Oracle Restart配置启动组件。通过其他方式启动组件可能不会。例如,如果在将数据库添加到Oracle Restart配置时指定了服务器参数文件(SPFILE)位置,并且该位置不是SPFILEs的默认位置,则如果使用SQL * Plus启动数据库,则在该配置可能无法使用。
■使用SRVCTL启动组件时,将设置存储在该组件的Oracle Restart配置中的环境变量。
srvctl start object [options]
srvctl stop object [options]
例子1 启动数据库
srvctl start database -d dbcrm
例子2 启动数据库到nomount状态
srvctl start database -d dbcrm -o nomount
例子3 启动默认监听
srvctl start listener
例子4 启动指定监听
srvctl start listener -l crmlistener
例子5 启动