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 启动数据库服务
srvctl start service -d dbcrm -s "bizdev,support"
例子6 启动ASM磁盘组(Mounting)
srvctl start diskgroup -g "data,recovery"
例子7 关闭数据库
srvctl stop database -d dbcrm
例子8 abort关闭数据库
srvctl stop database -d dbcrm -o abort
四、停止和重启动Oracle Restart
srvctl stop home -o oracle_home -s state_file [-t stop_options] [-f]
crsctl disable has
crsctl stop has
crsctl enable has
crsctl start has
srvctl start home -o oracle_home -s state_file
srvctl status home -o oracle_home -s state_file
eg:
srvctl stop home -o /u01/app/oracle/product/11.2.0/dbhome_1 -s /usr1/or_state
srvctl start home -o /u01/app/oracle/product/11.2.0/dbhome_1 -s /usr1/or_state
srvctl status home -o /u01/app/oracle/product/11.2.0/dbhome_1 -s /usr1/or_state
五、Oracle Restart中的SRVCTL命令参考
srvctl command object options
command: start, stop, or remove
object: database, listener, and so on
options: -d database, -s service_name
SRVCTL命令总结
Command | Description |
add | Adds a component to the Oracle Restart configuration. |
config | Displays the Oracle Restart configuration for a component. |
disable | Disables management by Oracle Restart for a component. |
enable | Reenables management by Oracle Restart for a component. |
getenv | Displays environment variables in the Oracle Restart configuration for a database, Oracle ASM instance, or listener. |
modify | Modifies the Oracle Restart configuration for a component. |
remove | Removes a component from the Oracle Restart configuration. |
setenv | Sets environment variables in the Oracle Restart configuration for a database, Oracle ASM instance, or listener. |
start | Starts the specified component. |
status | Displays the running status of the specified component. |
stop | Stops the specified component. |
unsetenv | Unsets environment variables in the Oracle Restart configuration for a database, Oracle ASM instance, or listener. |
SRVCTL组件总结
Component | Abbreviation | Description |
asm | asm | Oracle ASM instance |
database | db | Database instance |
diskgroup | dg | Oracle ASM disk group |
filesystem | filesystem | Oracle ASM file system |
home | home | Oracle home or Oracle Clusterware home |
listener | lsnr | Oracle Net listener |
service | serv | Database service |
ons | ons | Oracle Notification Services (ONS) |
1)add
srvctl add asm Adds an Oracle ASM instance.
srvctl add database Adds a database.
srvctl add listener Adds a listener.
srvctl add ons Adds an ONS (used by Oracle Data Guard configurations with Oracle Data Guard Broker).
srvctl add service Adds a database service managed by Oracle Restart.
srvctl add asm [-l listener_name [-p spfile] [-d asm_diskstring] ]
srvctl add database -d db_unique_name -o oracle_home [-m domain_name] [-c {RACONENODE | RAC | SINGLE}] [-n db_name] [-i instance_name] [-p spfile] [-s start_options] [-t stop_options] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-y {automatic | manual}] [-a disk_group_list]
eg: srvctl add database -d dbcrm -o /u01/app/oracle/product/11.2.0/dbhome_1 -a "DATA,RECOVERY"
srvctl add listener [-l listener_name] [-p endpoints] [-s] [-o Oracle_home]
eg: srvctl add listener -p TCP:1522 -o /u01/app/oracle/product/11.2.0/dbhome_1
srvctl add ons [-e em_port] [-l ons_local_port] [-r ons_remote_port] [-t host[:port],[host[:port]...]] [-v]
srvctl add service -d db_unique_name -s service_name [-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-y {AUTOMATIC | MANUAL}] [-e {NONE | SESSION | SELECT}] [-m {NONE | BASIC}] [-w integer] [-z integer] [-j {SHORT | LONG}] [-B {SERVICE_TIME | THROUGHPUT | NONE}] [-q {TRUE | FALSE}] -t edition_name
eg: srvctl add service -d dbcrm -s sales -l PRIMARY
2)config
Command Description
srvctl config asm Displays the Oracle Restart configuration information for the Oracle ASM instance
srvctl config database Displays the Oracle Restart configuration information for the specified database, or lists all databasesmanaged by Oracle Restart
srvctl config listener Displays the Oracle Restart configuration information for all listeners or for the specified listener
srvctl config ons Displays the current configuration information for ONS.
srvctl config service For the specified database, displays the Oracle Restart configuration information for the specified database service or for all database services
srvctl config asm [-a]
eg:
srvctl config asm -a
asm home: /u01/app/oracle/product/11.2.0/grid
ASM is enabled.
srvctl config database [-d db_unique_name [-a]]
eg:
srvctl config database
dbcrm
orcl
srvctl config database -d orcl -a
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
Database is enabled
srvctl config listener [-l listener_name]
eg:
srvctl config listener
Name: LISTENER
Home: /u01/app/oracle/product/11.2.0/dbhome_1
End points: TCP:1521
Listener is enabled.
srvctl config ons
srvctl config service -d db_unique_name [-s service_name] [-a]
eg:
srvctl config service -d dbcrm -s sales
Service name: sales
Service is enabled
Cardinality: SINGLETON
Disconnect: true
Service role: PRIMARY
Management policy: automatic
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: NONE
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition: e2
3)disable
Command Description
srvctl disable asm Disables the Oracle ASM instance
srvctl disable database Disables a database
srvctl disable diskgroup Disables an Oracle ASM disk group
srvctl disable listener Disables the specified listener or all listeners
srvctl disable ons Disables ONS
srvctl disable service Disables one or more database services for the specified database
srvctl disable asm
srvctl disable database -d db_unique_name
eg: srvctl disable database -d dbcrm
srvctl disable diskgroup -g diskgroup_name
eg: srvctl disable diskgroup -g DATA
srvctl disable listener [-l listener_name]
eg: srvctl disable listener -l crmlistener
srvctl disable ons -v
srvctl disable service -d db_unique_name -s service_name_list
eg: srvctl disable service -d dbcrm -s sales,mfg
4)enable
Command Description
srvctl enable asm Enables the Oracle ASM instance
srvctl enable database Enables a database
srvctl enable diskgroup Enables an Oracle ASM disk group
srvctl enable listener Enables the specified listener or all listeners
srvctl enable ons Enables ONS
srvctl enable service Enables one or more database services for the specified database
srvctl enable asm
srvctl enable database -d db_unique_name
eg: srvctl enable database -d dbcrm
srvctl enable diskgroup -g diskgroup_name
eg: srvctl enable diskgroup -g DATA
srvctl enable listener [-l listener_name]
eg: srvctl enable listener -l crmlistener
srvctl enable ons -v
srvctl enable service -d db_unique_name -s service_name_list
eg: srvctl enable service -d dbcrm -s sales,mfg
5)getenv
Command Description
srvctl getenv asm Displays the configured environment variables for the Oracle ASM instance
srvctl getenv database Displays the configured environment variables for the specified database instance
srvctl getenv listener Displays the configured environment variables for the specified listener
srvctl getenv asm [-t name_list]
eg: srvctl getenv asm
srvctl getenv database -d db_unique_name [-t name_list]
eg: srvctl getenv database -d dbcrm
srvctl getenv listener [-l listener_name] [-t name_list]
eg: srvctl getenv listener -l crmlistener
6)modify
Command Description
srvctl modify asm Modifies the configuration for Oracle ASM
srvctl modify database Modifies the configuration for a database
srvctl modify listener Modifies the configuration for the specified listener or all listeners
srvctl modify ons Modifies ONS
srvctl modify service Modifies the configuration for a database servic
srvctl modify asm [-l listener_name] [-p spfile] [-d asm_diskstring]
eg: srvctl modify asm -l crmlistener
srvctl modify database -d db_unique_name [-o oracle_home] [-u oracle_user] [-m domain_name] [-n db_name] [-i instance_name] [-p spfile] [-s start_options] [-t stop_options] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-y {automatic | manual}] [-a disk_group_list] [-z]
eg: srvctl modify database -d dbcrm -r logical_standby
srvctl modify listener [-l listener_name] [-p endpoints] [-o Oracle_home]
eg: srvctl modify listener -l crmlistener -p TCP:1522
srvctl modify ons [-e em_port] [-l ons_local_port] [-r ons_remote_port] [-t host[:port],[host[:port]...]] [-v]
srvctl modify service -d db_unique_name -s service_name] [-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-y {AUTOMATIC | MANUAL}] [-e {NONE | SESSION | SELECT}] [-m {NONE | BASIC}] [-w integer] [-z integer] [-j {SHORT | LONG}] [-B {SERVICE_TIME | THROUGHPUT | NONE}] [-q {TRUE | FALSE}] -t edition_name
eg: srvctl modify service -d dbcrm -s support -l standby
7)remove
Command Description
srvctl remove asm removes the Oracle ASM instance
srvctl remove database removes a database
srvctl remove diskgroup removes an Oracle ASM disk group
srvctl remove listener removes the specified listener or all listeners
srvctl remove ons removes ONS
srvctl remove service removes one or more database services for the specified database
srvctl remove asm [-f]
eg: srvctl remove asm
srvctl remove database -d db_unique_name [-f] [-y] [-v]
eg: srvctl remove database -d dbcrm
srvctl remove diskgroup -g diskgroup_name [-f]
eg: srvctl remove diskgroup -g DATA
srvctl remove listener [-l listener_name] [-a] [-f]
eg: srvctl remove listener -l lsnr01
srvctl remove ons -f -v
srvctl remove service -d db_unique_name -s service_name]
eg: srvctl remove service -d dbcrm -s sale
8)setenv
Command Description
srvctl setenv asm Displays the configured environment variables for the Oracle ASM instance
srvctl setenv database Displays the configured environment variables for the specified database instance
srvctl setenv listener Displays the configured environment variables for the specified listener
srvctl setenv asm {-t name=val[,name=val,...] | -T name=val}
eg: srvctl setenv asm -t AIXTHREAD_SCOPE=S
srvctl setenv database -d db_unique_name {-t name=val[,name=val,...] | -T name=val}
eg: srvctl setenv database -d dbcrm -t LANG=en
srvctl setenv listener [-l listener_name] {-t name=val[,name=val,...] | -T name=val}
eg: srvctl setenv listener -l crmlistener -t AIXTHREAD_SCOPE=S
9)start
Command Description
srvctl start asm Starts the Oracle ASM instance
srvctl start database Starts the specified database
srvctl start diskgroup Starts (mounts) the specified Oracle ASM disk group
srvctl start home Starts all of the components managed by Oracle Restart in the specified Oracle home
srvctl start listener Starts the specified listener or all Oracle Restart–managed listeners
srvctl start ons Starts ONS
srvctl start service Starts the specified database service or services
srvctl start asm [-o start_options]
eg:
srvctl start asm
srvctl start asm -o nomount
srvctl start database -d db_unique_name [-o start_options]
eg:
srvctl start database -d dbcrm -o nomount
srvctl start diskgroup -g diskgroup_name
eg:
srvctl start diskgroup -g DATA
srvctl start home -o oracle_home -s state_file
srvctl start listener [-l listener_name]
eg:
srvctl start listener -l listener
srvctl start ons -v
srvctl start service -d db_unique_name [-s service_name_list] [-o start_options]
eg:
srvctl start service -d dbcrm -s sales
10)status
Command Description
srvctl staus asm Displays the running status of the Oracle ASM instance
srvctl staus database Displays the running status of the specified database
srvctl staus diskgroup Displays the running status of (mounts) the specified Oracle ASM disk gro
srvctl staus home Displays the running status of all of the components managed by Oracle Re
srvctl staus listener Displays the running status of the specified listener or all Oracle Resta
srvctl staus ons Displays the running status of ONS
srvctl staus service Displays the running status of the specified database service or services
srvctl status asm [-a]
eg: srvctl status asm
srvctl status database -d db_unique_name [-f] [-v]
eg: srvctl status database -d dbcrm -v
srvctl status diskgroup -g diskgroup_name [-a]
eg: srvctl status diskgroup -g DATA
srvctl status home -o oracle_home -s state_file
srvctl status listener -l listener_name
eg: srvctl status listener -l crmlistener
srvctl status ons
srvctl status service -d db_unique_name [-s service_name_list] [-f] [-v]
eg: srvctl status service -d dbcrm -s sales
11)stop
Command Description
srvctl stop asm stops the Oracle ASM instance
srvctl stop database stops the specified database
srvctl stop diskgroup stops (mounts) the specified Oracle ASM disk gro
srvctl stop home stops all of the components managed by Oracle Re
srvctl stop listener stops the specified listener or all Oracle Resta
srvctl stop ons stops ONS
srvctl stop service stops the specified database service or services
srvctl stop asm [-o stop_options] [-f]
eg: srvctl stop asm -o abort -f
srvctl stop database -d db_unique_name [-o stop_options] [-f]
eg: srvctl stop database -d dbcrm
srvctl stop diskgroup -g diskgroup_name [-f]
eg: srvctl stop diskgroup -g DATA
srvctl stop home -o oracle_home -s state_file [-t stop_options] [-f]
srvctl stop listener [-l listener_name] [-f]
eg: srvctl stop listener -l crmlistener
srvctl stop ons -v
srvctl stop service -d db_unique_name [-s service_name_list] [-f]
eg: srvctl stop service -d dbcrm -s sales
12)unsetenv
Command Description
srvctl unsetenv asm Removes the specifiedenvironment variables for the Oracle ASM instance
srvctl unsetenv database Removes the specifiedenvironment variables for the specified database instance
srvctl unsetenv listener Removes the specifiedenvironment variables for the specified listener
srvctl unsetenv asm -t name_list
eg: srvctl unsetenv asm -t AIXTHREAD_SCOPE
srvctl unsetenv database -d db_unique_name -t name_list
eg: srvctl unsetenv database -d dbcrm -t AIXTHREAD_SCOPE
srvctl unsetenv listener [-l listener_name] -t name_list
srvctl unsetenv listener -l crmlistener -t AIXTHREAD_SCOPE
六、Oracle Restart中的CRSCTL命令参考
crsctl command has
The has object indicates Oracle high availability services
crsctl命令总结
Command Description
check Displays the Oracle Restart status.
config Displays the Oracle Restart configuration.
disable Disables automatic restart of Oracle Restart.
enable Enables automatic restart of Oracle Restart.
start Starts Oracle Restart.
stop Stops Oracle Restart.
crsctl check has
crsctl config has
crsctl disable has
crsctl enable has
crsctl start has
crsctl stop has [-f]