您可以参考 Oracle Restart 中 SRVCTL 命令的语法和选项。
SRVCTL 命令语法和选项概述
SRVCTL 需要以下命令语法:
srvctl command object options
command是动词,例如start、stop或remove。object是 SRVCTL 执行命令的组件,如数据库、监听器等。你也可以使用组件缩写。options扩展了前面命令组合的使用,以包括命令的其他参数。例如,-db选项表示数据库的唯一名称,-service选项表示以逗号分隔的数据库服务名称列表。
区分大小写
SRVCTL 命令和组件不区分大小写。Options 区分大小写。数据库和数据库服务名称是不区分大小写的。
命令参数
您可以在文件中指定命令参数,而不是直接在命令行中。使用命令参数输入文件在以下情况下很有用:
- 你可能想运行一个参数值很长或者参数很多的命令
- 您希望绕过某些特殊字符的 shell 处理
要指定命令参数输入文件,使用 -file 参数,其值为命令参数文件的位置。SRVCTL 从命令参数文件而不是命令行处理命令参数。
SRVCTL 组件概要
下列出了 SRVCTL 命令中可用于 object 部分的关键字。您可以使用每个组件关键字的全名或缩写。
| 组件 | 缩写 | 描述 |
|---|---|---|
asm |
asm |
Oracle ASM 实例 |
database |
db |
Database 实例 |
diskgroup |
dg |
Oracle ASM 磁盘组 |
home |
home |
Oracle Home 或 Oracle Clusterware Home |
listener |
lsnr |
Oracle Net 监听器 |
service |
serv |
Database 服务 |
ons |
ons |
Oracle Notification Services (ONS) |
add
srvctl add 命令将指定的组件添加到 Oracle Restart 配置中,并可选择设置该组件的 Oracle Restart 配置参数。添加一个组件后,Oracle Restart 开始管理它,需要时重启它。
执行 srvctl add 操作时,需要以相应的用户帐号登录数据库主机。
srvctl add asm
添加一个 Oracle ASM 实例到 Oracle Restart 配置中。
语法和选项
使用 srvctl add asm 命令,语法如下:
srvctl add asm [-listener listener_name] [-spfile spfile] [-pwfile password_file_path] [-diskstring asm_diskstring]
| 选项 | 描述 |
|---|---|
-listener listener_name |
Oracle ASM 应该注册的监听器的名称。弱依赖是通过这个监听器建立的。(在启动 Oracle ASM 实例之前,Oracle Restart 尝试启动监听器。如果监听器没有启动, Oracle ASM 实例仍然启动。如果监听失败,Oracle Restart 不会重启 Oracle ASM。) 如果省略,默认为名为 listener 的监听器。 |
-spfile spfile |
数据库的服务器参数文件的完整路径。如果省略,则使用默认的 SPFILE。 |
-pwfile password_file_path |
Oracle ASM 密码文件的全路径。 |
-diskstring asm_diskstring |
Oracle ASM 磁盘组发现字符串。Oracle ASM 发现字符串是一个以逗号分隔的字符串列表,它限制了 Oracle ASM 实例发现的磁盘集。发现字符串可以包含通配符。只会找到匹配其中一个字符串的磁盘。 |
示例
这个命令的一个例子是:
srvctl add asm -listener crmlistener
srvctl add database
在 Oracle Restart 配置中添加数据库。
在 Oracle Restart 配置中添加数据库后,如果数据库访问的是 Oracle ASM 磁盘组中的数据,则数据库与磁盘组之间会建立依赖关系。Oracle Restart 确保在尝试启动数据库之前挂载磁盘组。
但是,如果在 Oracle Restart 配置中添加数据库时,数据库和 Oracle ASM 实例没有运行,则必须通过在 SRVCTL 命令中指定 -diskgroup 选项来手动建立数据库和其磁盘组之间的依赖关系。
语法和选项
使用 srvctl add database 命令,语法如下:
srvctl add database -db db_unique_name -oraclehome oracle_home [-domain domain_name] [-dbname db_name] [-instance instance_name] [-spfile spfile][-pwfile password_file_path] [-startoption start_options] [-stopoption stop_options] [-role {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY | FAR_SYNC}] [-policy {AUTOMATIC | MANUAL | NORESTART}] [-diskgroup disk_group_list] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。 必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-oraclehome oracle_home |
Oracle Home 数据库的完整路径 |
-domain domain_name |
数据库的域。必须匹配 DB_DOMAIN 初始化参数。 |
-dbname db_name |
如果提供,必须匹配 DB_NAME 初始化参数设置。如果 DB_NAME 不同于 -db 选项给出的唯一名称,则必须包含此选项 |
-instance instance_name |
实例名。 如果实例名称与 -db 选项提供的唯一名称不同,则必须包含此选项。例如,如果唯一的名称包含下划线,而实例名称省略下划线,则使用此参数来指定实例名称。 |
-spfile spfile |
数据库的服务器参数文件的完整路径。如果省略,则使用默认的 SPFILE。 |
-pwfile password_file_path |
Oracle 数据库密码文件的全路径。 |
-startoption start_options |
数据库的启动选项(OPEN、MOUNT 或 NOMOUNT)。如果省略,默认为 OPEN。 |
-stopoption stop_options |
数据库的关闭选项(NORMAL、IMMEDIATE、TRANSACTIONAL 或 ABORT)。如果省略,默认为 IMMEDIATE。 |
-role {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY | FAR_SYNC} |
数据库当前的角色(PRIMARY、PHYSICAL_STANDBY、LOGICAL_STANDBY、SNAPSHOT_STANDBY 或 FAR_SYNC)。默认值是 PRIMARY。仅适用于 Oracle 数据保护环境。 |
-policy {AUTOMATIC | MANUAL | NORESTART} |
数据库的管理策略。 - AUTOMATIC(默认值):数据库主机重新启动时,数据库自动恢复到之前的运行状态(启动或停止)。- MANUAL:数据库不会在重新启动数据库主机时自动重新启动。MANUAL设置不能阻止 Oracle 在数据库运行时重新启动并在发生故障时重新启动数据库。- NORESTART:与 MANUAL 设置类似,重启数据库主机时不会自动重启数据库。然而,NORESTART 设置永远不会重启数据库,即使发生故障。 |
-diskgroup disk_group_list |
数据库所依赖的磁盘组列表,用逗号分隔。启动数据库时,Oracle Restart 首先确保这些磁盘组已经挂载。仅当添加数据库时未启动数据库实例和 Oracle ASM 实例时,才需要此选项。否则,将自动记录数据库与其磁盘组之间的依赖关系。 |
-verbose |
详细输出 |
示例
下面的例子使用 DB_UNIQUE_NAME 是 dbcrm 来添加数据库:
srvctl add database -db dbcrm -oraclehome /u01/app/oracle/product/database_release_number/dbhome_1
这个例子添加了相同的数据库,并在数据库和磁盘组 DATA 和 RECOVERY 之间建立了依赖关系。
srvctl add database -db dbcrm -oraclehome /u01/app/oracle/product/database_release_number/dbhome_1 -diskgroup "DATA,RECOVERY"
srvctl add listener
在 Oracle Restart 配置中添加一个监听器。
语法和选项
使用 srvctl add listener 命令,语法如下:
srvctl add listener [-listener listener_name] [-endpoints endpoints] [-skip] [-oraclehome oracle_home]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,默认为 LISTENER |
-endpoints endpoints |
以逗号分隔的 TCP 端口或监听器端点。如果不指定,默认为 TCP:1521。的语法如下:"[TCP:]port[, ...] [/IPC:key] [/NMP:pipe_name] [/TCPS:s_port] [/SDP:port]" |
-skip |
跳过检查端口是否与提供的端点冲突 |
-oraclehome oracle_home |
监听所在的 Oracle Home。如果省略,则假定为 Oracle Grid Infrastructure Home。 |
示例
下面的命令添加了一个监听器(名为LISTENER),运行在数据库 Oracle Home 并监听 TCP 端口 1522:
srvctl add listener -endpoints TCP:1522 -oraclehome /u01/app/oracle/product/database_release_number/dbhome_1
srvctl add ons
添加 Oracle 通知服务(ONS)到Oracle Restart 配置中。
必须在 Oracle Restart 配置中添加 ONS,以便在 Oracle Data Guard 故障转移后能够发送快速应用通知(FAN)事件。
当 ONS 添加到 Oracle Restart 配置时,它最初是禁用的。你可以使用 srvctl enable ons 命令启用它。
语法和选项
使用命令 srvctl add ons 命令,语法如下:
srvctl add ons [-emport em_port] [-onslocalport ons_local_port] [-onsremoteport ons_remote_port] [-remoteservers host[:port],[host[:port]...]] [-verbose]
| 选项 | 描述 |
|---|---|
-emport em_port |
Oracle Enterprise Manager Cloud Control(云控制)的 ONS 监听端口。默认值为 2016。 |
-onslocalport ons_local_port |
ONS 本地客户端连接监听端口。默认值为 6100。 |
-onsremoteport ons_remote_port |
ONS 监听来自远程主机连接的端口。默认值为 6200。 |
-remoteservers host[:port],[host[:port],... |
ONS 网络中的 host:port 远程主机对的列表 |
-verbose |
详细输出 |
srvctl add service
在 Oracle Restart 配置中添加数据库服务。
如果数据库服务不存在,则创建数据库服务。这种创建服务的方法优于使用DBMS_SERVICE PL/SQL包。
语法和选项
使用命令 srvctl add service 命令,语法如下:
srvctl add service -db db_unique_name -service service_name [-role [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-policy {AUTOMATIC | MANUAL}] [-failovertype {NONE | SESSION | SELECT | TRANSACTION}] [-failovermethod {NONE | BASIC}] [-failoverdelay integer] [-failoverretry integer] [-clbgoal {SHORT | LONG}] [-rlbgoal {SERVICE_TIME | THROUGHPUT | NONE}] [-notification {TRUE | FALSE}] [-edition edition_name] [-pdb pluggable_database] [-sql_translation_profile sql_translation_profile] [-commit_outcome {TRUE | FALSE}] [-retention retention] [-replay_init_time replay_init_time] [-drain_timeout timeout] [-stopoption stop_option] [-session_state {STATIC | DYNAMIC}] [-global {TRUE | FALSE}] [-maxlag max_lag_time] [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。 必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name |
数据库服务名称 |
-role [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY] |
服务角色列表此选项仅适用于 Oracle Data Guard 环境。当存在此选项时,在数据库打开时,只有当其服务角色之一与当前数据库角色匹配时,服务才会启动。 |
-policy {AUTOMATIC | MANUAL} |
服务的管理策略 如果是 AUTOMATIC(默认),则该服务在重启数据库时自动启动,无论是通过计划的重启(使用 SRVCTL)还是在失败后。然而,自动重启也取决于服务角色(-role选项)。如果是 MANUAL,则在计划重启数据库(使用 SRVCTL)时不会自动重启服务。MANUAL设置不能阻止 Oracle 在服务运行时重新启动它,并在发生故障时重新启动它。 |
-failovertype {NONE |SESSION | SELECT | TRANSACTION} |
要启用 OCI 和 Java 的应用程序连续性,请使用TRANSACTION。如果故障转移类型是 TRANSACTION,那么 OCI 和 Java 在收到可恢复的错误时尝试恢复正在进行的事务。当故障转移类型为 TRANSACTION 时,-commit_result 选项必须设置为 TRUE。要为 OCI 启用透明应用程序故障转移(TAF),请使用 SELECT 或 SESSION。 |
-failovermethod {NONE | BASIC} |
TAF 仅向后兼容的故障转移方法 如果故障转移类型( -failovertype)设置为非 NONE 的值,则此选项使用 BASIC。 |
-failoverdelay integer |
对于应用程序连续性和 TAF,故障转移时每次事件重新连接之间的时间延迟,单位为秒 |
-failoverretry integer |
对于应用程序连续性和 TAF,事件发生后尝试连接的次数 |
-clbgoal {SHORT | LONG} |
连接负载平衡目标 运行时负载平衡使用 SHORT。对于长时间运行的连接,例如批处理作业,使用 LONG。 |
-rlbgoal {SERVICE_TIME | THROUGHPUT | NONE} |
运行时负载平衡目标 使用 SERVICE_TIME 根据响应时间平衡连接。使用 THROUGHPUT 根据吞吐量来平衡连接。 |
-notification {TRUE | FALSE} |
为 OCI 连接启用快速应用通知(FAN) |
-edition edition_name |
服务的初始会话版本 当为服务指定一个版本时,所有指定该服务的后续连接将使用此版本作为初始会话版本。但是,如果会话连接指定不同的版本,那么初始会话版本将使用会话连接中指定的版本。 SRVCTL 不验证指定的版本名称。在连接期间,connect 用户必须具有指定版本的 USE 权限。如果版本不存在,或者 connect 用户没有指定版本的 USE 权限,则会引发错误。 |
-pdb pluggable_database |
在多租户容器数据库(CDB)中,与服务关联的可插拔数据库(PDB)的名称 如果将此选项设置为空字符串,则服务与 root 关联。 |
-sql_translation_profile sql_translation_profile |
将应用程序从非 Oracle 数据库迁移到 Oracle 数据库后添加的服务的 SQL 翻译配置文件。 此参数对应于 DBMS_SERVICE 服务属性中的 SQL 翻译配置文件参数。 |
-commit_outcome {TRUE | FALSE} |
对于 Transaction Guard,当 TRUE 时,由于可恢复中断导致事务会话失败后,可以访问事务的提交结果。如果默认为 FALSE,则不保留事务的提交结果当此选项设置为 TRUE 时,事务提交的结果是持久的,并且应用程序可以在中断后确定事务的提交状态。你可以将自定义服务的 commit_result 设置为 TRUE。commit_result 设置对 Oracle Active Data Guard 和只读数据库没有影响。 |
-retention retention |
如果 commit_result 设置为 TRUE,那么这个选项决定了提交结果被保留的时间,以秒为单位。默认是 24 小时(86400)。如果 commit_outcome 设置为 FALSE,则不能设置此选项。 |
-replay_init_time replay_init_time |
对于应用程序连续性,此选项指定请求的第一个操作的原始执行时间与重新连接成功后准备开始重放的时间之间的差值(以秒为单位)。在经过指定的时间后,应用程序连续性将无法重现。此选项旨在避免在系统长时间恢复后意外执行事务。默认值为 5 分钟(300)。最大值为 24 小时(86400)。 如果 failovertype 未设置为 TRANSACTION,则不使用此选项。 |
-drain_timeout timeout |
此选项指定以秒为单位完成资源消耗的时间。允许的值是 NULL、0 或任何正整数。排水周期用于有计划的维护操作。在引流期间,处理所有当前的客户端请求,但不接受新的请求。引流的工作原理取决于 -stopoption 选项的设置。默认值为 NULL,表示没有设置此选项。如果没有设置该选项,并且服务上设置了 -drain_timeout,则使用该值。如果设置为 0,则不会发生排水。 |
-stopoption stop_option |
此选项指定停止服务的模式。以下值是允许的: - IMMEDIATE 指定允许在服务停止之前清空会话。- TRANSACTIONAL 指定会话允许按照- -drain_timeout 选项指定的时间消耗。当达到时间限制时,服务将停止,并且任何剩余的会话都将终止。- NONE 是默认值。 |
-session_state {STATIC | DYNAMIC} |
对于应用程序连续性,此参数指定非事务性会话状态是否由应用程序更改。Oracle 建议大多数应用程序设置为DYNAMIC。 |
-global {TRUE | FALSE} |
如果 TRUE,则该服务是全局数据服务(GDS),并由全局服务管理器(GSM)管理。如果默认为 FALSE,则该服务不是 GDS 服务。添加服务后不能修改服务的全局属性。 |
-maxlag maximum_lag_time |
最大复制延迟时间,单位为秒。必须为非负整数。默认值为ANY。 |
-force |
即使没有为网络配置监听器,也强制添加操作。 |
-verbose |
详细输出 |
示例
为数据库添加了 sales 服务。只有当 dbcrm 处于 PRIMARY 模式时,服务才会启动。
srvctl add service -db dbcrm -service sales -role PRIMARY
config
srvctl config 命令显示指定组件或组件集的 Oracle Restart 配置。
srvctl config asm
显示 Oracle ASM 实例的Oracle Restart 配置信息。
语法和选项
使用命令 srvctl config asm 命令,语法如下:
srvctl config asm [-all]
| 选项 | 描述 |
|---|---|
-all |
也显示启用/禁用状态 |
示例
这个命令的一个例子是:
srvctl config asm -all asm home: /u01/app/oracle/product/database_release_number/grid ASM is enabled.
srvctl config database
显示指定数据库的 Oracle Restart 配置信息,或列出 Oracle Restart 所管理的所有数据库。
语法和选项
使用命令 srvctl config database 命令,语法如下:
srvctl config database [-db db_unique_name [-all]] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-all |
显示详细的配置信息 |
-verbose |
详细输出 |
示例
列出所有 Oracle Restart 管理的数据库的一个例子是:
srvctl config database dbcrm orcl
显示 DB_UNIQUE_ID orcl 数据库的配置和启用/禁用状态的命令示例如下:
srvctl config database -db orcl -all Database unique name: orcl Database name: orcl Oracle home: /u01/app/oracle/product/database_release_number/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
显示所有 Oracle Restart 管理的监听器或指定的监听器的 Oracle Restart 配置信息。
语法和选项
使用命令 srvctl config listener 命令,语法如下:
srvctl config listener [-listener listener_name]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则显示所有 Oracle restart 管理的监听器的配置信息。 |
示例
显示默认监听器的配置信息和启用/禁用状态:
srvctl config listener Name: LISTENER Home: /u01/app/oracle/product/database_release_number/dbhome_1 End points: TCP:1521 Listener is enabled.
srvctl config ons
显示 Oracle Notification Services(ONS)的当前配置信息。
语法和选项
使用命令 srvctl config ons 命令,语法如下:
srvctl config ons
srvctl config service
对于指定的数据库,显示指定的数据库服务或所有 Oracle Restart 管理的数据库服务的 Oracle Restart 配置信息。
语法和选项
使用命令 srvctl config service 命令,语法如下:
srvctl config service -db db_unique_name [-service service_name] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name |
数据库服务名称。如果省略,SRVCTL 显示数据库中所有由 Oracle Restart 管理的服务的配置信息。 |
-verbose |
详细输出 |
示例
这个命令的一个例子是:
srvctl config service -db dbcrm -service 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
disable
禁用一个组件,通过 Oracle Restart 暂停对该组件的管理。
srvctl disable 命令用于组件必须修复或关机维护时,不应自动重启。当你禁用一个组件时:
- 不再自动重启。
- 不再通过依赖自动启动。
- 不能以 SRVCTL 开启。
要执行 srvctl disable 操作,必须使用正确的用户账号登录到数据库主机。
srvctl disable asm
禁用 Oracle ASM 实例。
语法和选项
使用命令 srvctl disable asm 命令,语法如下:
srvctl disable asm
srvctl disable database
禁用指定的数据库。
语法和选项
使用命令 srvctl disable database 命令,语法如下:
srvctl disable database -db db_unique_name
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
示例
这个命令的一个例子是:
srvctl disable database -db dbcrm
srvctl disable diskgroup
禁用 Oracle ASM 磁盘组。
语法和选项
使用命令 srvctl disable diskgroup 命令,语法如下:
srvctl disable diskgroup -diskgroup diskgroup_name
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
磁盘组名称 |
示例
这个命令的一个例子是:
srvctl disable diskgroup -diskgroup DATA
srvctl disable listener
语法和选项
使用命令 srvctl disable listener 命令,语法如下:
srvctl disable listener [-listener listener_name]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则禁用所有监听器。 |
示例
这个命令的一个例子是:
srvctl disable listener -listener crmlistener
srvctl disable ons
禁用 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl disable ons 命令,语法如下:
srvctl disable ons [-verbose]
| 选项 | 描述 |
|---|---|
-verbose |
详细输出 |
srvctl disable service
禁用一个或多个数据库服务。
语法和选项
使用命令 srvctl disable service 命令,语法如下:
srvctl disable service -db db_unique_name -service service_name_list
[-global_override
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name_list |
数据库服务名称列表,用逗号分隔 |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以禁用该服务。 如果你试图禁用 GDS 服务,并且没有包含 -global_override,则返回错误。如果服务不是 GDS 服务,则忽略该选项。 |
示例
下面的例子禁用数据库服务 sales 和 mfg:
srvctl disable service -db dbcrm -service sales,mfg
downgrade
在手动降级数据库后,srvctl downgrade 命令会降级数据库配置。
srvctl downgrade database
srvctl downgrade database 命令将数据库及其服务的配置从当前版本降级到指定的更低版本。
语法和选项
使用命令 srvctl downgrade database 命令,语法如下:
srvctl downgrade database -db db_unique_name -oraclehome oracle_home
-targetversion to_version
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-oraclehome oracle_home |
Oracle Home 数据库的完整路径 |
-targetversion to_version |
降级版本:要降级的版本 |
enable
srvctl enable 命令重新启用指定的禁用组件。
当你启用一个组件时:
- Oracle Restart 可以自动重启。
- 它可以通过依赖自动启动。
- 可以使用 SRVCTL 手动启动。
如果组件已经启用,则忽略该命令。
当添加组件到 Oracle Restart 配置时,该组件默认是启用的。
要执行 srvctl enable 操作,必须使用正确的用户账号登录到数据库主机。
srvctl enable asm
语法和选项
使用命令 srvctl enable asm 命令,语法如下:
srvctl enable asm
srvctl enable database
启用指定的数据库。
语法和选项
使用命令 srvctl enable database 命令,语法如下:
srvctl enable database -db db_unique_name
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
示例
这个命令的一个例子是:
srvctl enable database -db dbcrm
srvctl enable diskgroup
启用 Oracle ASM 磁盘组。
语法和选项
使用命令 srvctl enable diskgroup 命令,语法如下:
srvctl enable diskgroup -diskgroup diskgroup_name
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
Disk group name |
示例
这个命令的一个例子是:
srvctl enable diskgroup -diskgroup DATA
srvctl enable listener
启用指定的监听器或所有监听器。
语法和选项
使用命令 srvctl enable listener 命令,语法如下:
srvctl enable listener [-listener listener_name]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则启用所有监听器。 |
示例
这个命令的一个例子是:
srvctl enable listener -listener crmlistener
srvctl enable ons
允许 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl enable ons 命令,语法如下:
srvctl enable ons [-verbose]
| 选项 | 描述 |
|---|---|
-verbose |
详细输出 |
srvctl enable service
为指定的数据库启用一个或多个数据库服务。
语法和选项
使用命令 srvctl enable service 命令,语法如下:
srvctl enable service -db db_unique_name -service service_name_list [-global_override]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name_list |
数据库服务名称列表,用逗号分隔 |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以启用该服务。 如果你试图启用 GDS 服务,并且没有包含 -global_override,则返回错误。如果服务不是 GDS 服务,则忽略该选项。 |
示例
下面的例子使用 DB_UNIQUE_NAME dbcrm 在数据库中启用数据库服务 sales 和 mfg:
srvctl enable service -db dbcrm -service "sales,mfg"
getenv
获取并显示数据库、监听器或 Oracle ASM 实例的 Oracle Restart 配置中的环境变量及其值。
srvctl getenv asm
显示为 Oracle ASM 实例配置的环境变量。
语法和选项
使用命令 srvctl getenv asm 命令,语法如下:
srvctl getenv asm [-envs name_list]
| 选项 | 描述 |
|---|---|
-envs name_list |
要显示的环境变量名的列表,用逗号分隔。如果省略,SRVCTL 显示所有配置的 ASM 环境变量。 |
示例
显示为 Oracle ASM 实例配置的所有环境变量:
srvctl getenv asm
srvctl getenv database
显示指定数据库的配置环境变量。
语法和选项
使用命令 srvctl getenv database 命令,语法如下:
srvctl getenv database -db db_unique_name [-envs name_list]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-envs name_list |
要显示的环境变量名的列表,用逗号分隔。如果省略,SRVCTL 显示所有配置的环境变量。 |
示例
下面的示例使用 DB_UNIQUE_NAME dbcrm 显示数据库的所有配置环境变量:
srvctl getenv database -db dbcrm
srvctl getenv listener
显示指定监听器的配置环境变量。
语法和选项
使用命令 srvctl getenv listener 命令,语法如下:
srvctl getenv listener [-listener listener_name] [-envs name_list]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,SRVCTL 将列出所有监听器的环境变量。 |
-envs name_list |
要显示的环境变量名的列表,用逗号分隔。如果省略,SRVCTL 显示所有配置的环境变量。 |
示例
下面的例子显示了名为 crmlistener 的监听器的所有配置环境变量:
srvctl getenv listener -listener crmlistener
modify
修改组件的 Oracle Restart 配置。该更改将在组件下次重启时生效。
要执行 srvctl modify 操作,必须使用正确的用户帐号登录数据库主机。
srvctl modify asm
修改 Oracle ASM 实例的重启配置。
语法和选项
使用命令 srvctl modify asm 命令,语法如下:
srvctl modify asm [-listener listener_name] [-spfile spfile] [-pwfile password_file_path] [-diskstring asm_diskstring]
| 选项 | 描述 |
|---|---|
-listener listener_name |
Oracle ASM 必须注册的监听器的名称。弱依赖是通过这个监听器建立的。(在 Oracle ASM 启动之前,Oracle Restart 确保这个监听器已经启动。) |
-spfile spfile |
数据库的服务器参数文件的完整路径。如果省略,则使用默认的 SPFILE。 |
-pwfile password_file_path |
Oracle ASM 密码文件的全路径。 |
-diskstring asm_diskstring |
Oracle ASM 磁盘组发现字符串。Oracle ASM 发现字符串是一个以逗号分隔的字符串列表,它限制了 Oracle ASM 实例发现的磁盘集。发现字符串可以包含通配符。只会找到匹配其中一个字符串的磁盘。 |
示例
这个命令的一个例子是:
srvctl modify asm -listener crmlistener
srvctl modify database
修改 Oracle Restart 数据库的配置。
语法和选项
使用命令 srvctl modify database 命令,语法如下:
srvctl modify database -db db_unique_name [-oraclehome oracle_home]
[-user oracle_user] [-domain domain_name] [-dbname db_name]
[-instance instance_name] [-instance instance_name] [-spfile spfile]
[-pwfile password_file_path] [-startoption start_options]
[-stopoption stop_options]
[-role {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}]
[-policy {AUTOMATIC | MANUAL | NORESTART}]
[{-diskgroup "diskgroup_list" | -nodiskgroup}] [-force]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-user oracle_user |
Oracle Home 目录所属的 Oracle 用户名 |
-diskgroup disk_group_list |
数据库所依赖的磁盘组列表,用逗号分隔。启动数据库时,Oracle Restart 首先确保这些磁盘组已经挂载。仅当添加数据库时未启动数据库实例和 Oracle ASM 实例时,才需要此选项。否则,将自动记录数据库与其磁盘组之间的依赖关系。 |
-nodiskgroup |
移除数据库对 Oracle ASM 磁盘组的依赖 |
-force |
强制操作,即使某些资源可能停止。 |
示例
将 DB_UNIQUE_NAME dbcrm 的数据库角色修改为 LOGICAL_STANDBY,示例如下:
srvctl modify database -db dbcrm -role logical_standby
srvctl modify listener
修改指定或所有监听器的 Oracle Restart 配置。
语法和选项
使用命令 srvctl modify listener 命令,语法如下:
srvctl modify listener [-listener listener_name] [-endpoints endpoints] [-oraclehome oracle_home]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则修改所有监听器配置。 |
-endpoints endpoints |
以逗号分隔的 TCP 端口或监听器端点。endpoints 的语法如下:"[TCP:]port[, ...] [/IPC:key] [/NMP:pipe_name] [/TCPS:s_port] [/SDP:port]" |
-oraclehome oracle_home |
监听器的新 Oracle Home |
示例
这个例子修改了名为 crmlistener 的监听器监听的 TCP 端口:
srvctl modify listener -listener crmlistener -endpoints TCP:1522
srvctl modify ons
修改 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl modify ons 命令,语法如下:
srvctl modify ons [-emport em_port] [-onslocalport ons_local_port] [-onsremoteport ons_remote_port] [-remoteservers host[:port],[host[:port]...]] [-verbose]
| 选项 | 描述 |
|---|---|
-emport em_port |
ONS 云控制监听端口。默认值为 2016。 |
-onslocalport ons_local_port |
ONS本地客户端连接监听端口 |
-onsremoteport ons_remote_port |
ONS监听来自远程主机连接的端口 |
-remoteservers host[:port],[host[:port],... |
ONS 网络中的 host:port 远程主机对的列表 |
-verbose |
详细输出 |
srvctl modify service
修改 Oracle Restart 数据库服务配置。
语法和选项
使用命令 srvctl modify service 命令,语法如下:
srvctl modify service -db db_unique_name -service service_name [-role [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-policy {AUTOMATIC | MANUAL}] [-failovertype {NONE | SESSION | SELECT | TRANSACTION}] [-failovermethod {NONE | BASIC}] [-failoverdelay integer] [-failoverretry integer] [-clbgoal {SHORT | LONG}] [-rlbgoal {SERVICE_TIME | THROUGHPUT | NONE}] [-notification {TRUE | FALSE}] [-edition edition_name] [-pdb pluggable_database] [-sql_translation_profile sql_translation_profile] [-commit_outcome {TRUE | FALSE}] [-retention retention] [-replay_init_time replay_init_time] [-drain_timeout timeout] [-stopoption stop_option] [-session_state {STATIC | DYNAMIC}] [-global_override] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称 名称必须与 DB_UNIQUE_NAME 初始化参数设置匹配。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME的默认设置使用 DB_NAME 的设置。 |
-service service_name |
服务名 |
-role [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY] |
服务角色列表 仅适用于 Oracle Data Guard 环境。当存在此选项时,在数据库启动时,只有当其服务角色之一与当前数据库角色匹配时,服务才会启动。 |
-policy {AUTOMATIC | MANUAL} |
服务的管理策略 如果是 AUTOMATIC(默认),则该服务在重启数据库时自动启动,无论是通过计划的重启(使用 SRVCTL)还是在失败后。然而,自动重启也取决于服务角色(-role选项)。如果是 MANUAL,则在计划重启数据库(使用 SRVCTL)时不会自动重启服务。MANUAL设置不能阻止 Oracle 在服务运行时重新启动它,并在发生故障时重新启动它。 |
-failovertype {NONE |SESSION | SELECT | TRANSACTION} |
要启用 OCI 和 Java 的应用程序连续性,请使用TRANSACTION。如果故障转移类型是 TRANSACTION,那么 OCI 和 Java 在收到可恢复的错误时尝试恢复正在进行的事务。当故障转移类型为 TRANSACTION时,-commit_result 选项必须设置为 TRUE。要为 OCI 启用透明应用程序故障转移(TAF),请使用 SELECT 或 SESSION。 |
-failovermethod {NONE | BASIC} |
TAF 仅向后兼容的故障转移方法 如果故障转移类型( -failovertype)设置为非 NONE 的值,则此选项使用 BASIC。 |
-failoverdelay integer |
对于应用程序连续性和 TAF,故障转移时每次事件重新连接之间的时间延迟,单位为秒 |
-failoverretry integer |
对于应用程序连续性和 TAF,事件发生后尝试连接的次数 |
-clbgoal {SHORT | LONG} |
连接负载平衡目标 运行时负载平衡使用 SHORT。对于长时间运行的连接,例如批处理作业,使用 LONG。 |
-rlbgoal {SERVICE_TIME | THROUGHPUT | NONE} |
运行时负载平衡目标 使用 SERVICE_TIME 根据响应时间平衡连接。使用 THROUGHPUT 根据吞吐量来平衡连接。 |
-notification {TRUE | FALSE} |
为 OCI 连接启用快速应用通知(FAN) |
-edition edition_name |
服务的初始会话版本 如果未指定此选项,则不为服务修改版本。如果指定了这个选项,但* edition_name* 为空,则版本被设置为 NULL。NULL 版本没有效果。当为服务指定一个版本时,所有指定该服务的后续连接将使用此版本作为初始会话版本。但是,如果会话连接指定不同的版本,那么初始会话版本将使用会话连接中指定的版本。SRVCTL 不验证指定的版本名称。在连接期间,connect 用户必须具有指定版本的 USE 权限。如果版本不存在,或者 connect 用户没有指定版本的 USE 权限,则会引发错误。 |
-pdb pluggable_database |
在CDB中,与服务关联的 PDB 名称 如果此选项设置为空字符串,则服务与 root 关联。 |
-sql_translation_profile sql_translation_profile |
将应用程序从非 Oracle 数据库迁移到 Oracle 数据库后添加的服务的 SQL 翻译配置文件。 |
-commit_outcome {TRUE | FALSE} |
对于 Transaction Guard,当 TRUE 时,由于可恢复中断导致事务会话失败后,可以访问事务的提交结果。如果默认为 FALSE,则不保留事务的提交结果当此选项设置为 TRUE 时,事务提交的结果是持久的,并且应用程序可以在中断后确定事务的提交状态。你可以将自定义服务的 commit_result 设置为 TRUE。commit_result 设置对 Oracle Active Data Guard 和只读数据库没有影响。 |
-retention retention |
如果 commit_result 设置为 TRUE,那么这个选项决定了提交结果被保留的时间,以秒为单位。默认是 24 小时(86400)。如果 commit_outcome 设置为 FALSE,则不能设置此选项。 |
-replay_init_time replay_init_time |
对于应用程序连续性,此选项指定请求的第一个操作的原始执行时间与重新连接成功后准备开始重放的时间之间的差值(以秒为单位)。在经过指定的时间后,应用程序连续性将无法重现。此选项旨在避免在系统长时间恢复后意外执行事务。默认值为 5 分钟(300)。最大值为 24 小时(86400)。 如果 failovertype 未设置为 TRANSACTION,则不使用此选项。 |
-drain_timeout timeout |
此选项指定以秒为单位完成资源消耗的时间。允许的值是 NULL、0 或任何正整数。排水周期用于有计划的维护操作。在引流期间,处理所有当前的客户端请求,但不接受新的请求。引流的工作原理取决于 -stopoption 选项的设置。默认值为 NULL,表示没有设置此选项。如果没有设置该选项,并且服务上设置了 -drain_timeout,则使用该值。如果设置为 0,则不会发生排水。 |
-stopoption stop_option |
此选项指定停止服务的模式。以下值是允许的:IMMEDIATE 指定允许在服务停止之前清空会话。TRANSACTIONAL 指定会话允许按照 -drain_timeout 选项指定的时间消耗。当达到时间限制时,服务将停止,并且任何剩余的会话都将终止。NONE 是默认值。 |
-session_state {STATIC | DYNAMIC} |
对于应用程序连续性,此参数指定非事务性会话状态是否由应用程序更改。Oracle 建议大多数应用程序设置为DYNAMIC。 |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以修改以下任何服务属性: - -role- -policy- -failovertype- -failovermethod- -failoverdelay- -failoverretry- -edition- -clbgoal- -rlbgoal- -notification如果你试图修改 GDS 服务的其中一个选项,并且没有包含 -global_override,则会返回错误。如果服务不是 GDS 服务,则忽略该选项。 |
-verbose |
详细输出 |
示例
对于 DB_UNIQUE_NAME 为 dbcrm 的数据库,以下命令将数据库服务 support 的 Oracle Data Guard 角色更改为 standby:
srvctl modify service -db dbcrm -service support -role standby
remove
从 Oracle Restart 配置中删除指定的组件。Oracle Restart 不再管理该组件。组件的任何环境变量设置也会被删除。
在从 Oracle Restart 配置中删除组件之前,必须使用 SRVCTL 停止它。Oracle 建议您在删除组件之前禁用该组件,但这不是必需的。
要执行 srvctl remove 操作,必须使用正确的用户账号登录到数据库主机。
srvctl remove asm
删除 Oracle ASM 实例。
语法和选项
使用命令 srvctl remove asm 命令,语法如下:
srvctl remove asm [-force]
| 选项 | 描述 |
|---|---|
-force |
强制删除,即使存在使用 Oracle ASM 的磁盘组和数据库,或者 Oracle ASM 实例正在运行。 |
示例
这个命令的一个例子是:
srvctl remove asm
srvctl remove database
删除数据库。首先提示确认。
语法和选项
使用命令 srvctl remove database 命令,语法如下:
srvctl remove database -db db_unique_name [-force] [-noprompt] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-force |
强制。删除数据库,即使它正在运行。 |
-noprompt |
取消确认提示并立即删除 |
-verbose |
详细输出。弹出成功或失败提示。 |
示例
这个命令的一个例子是:
srvctl remove database -db dbcrm
srvctl remove diskgroup
删除 Oracle ASM 磁盘组。
语法和选项
使用命令 srvctl remove diskgroup 命令,语法如下:
srvctl remove diskgroup -diskgroup diskgroup_name [-force]
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
磁盘组名称 |
-force |
强制。即使磁盘组上打开了文件,也会删除磁盘组。 |
示例
这个例子删除了名为 DATA 的磁盘组。如果在这个磁盘组上打开了文件,则返回错误。
srvctl remove diskgroup -diskgroup DATA
srvctl remove listener
删除指定的监听器或所有监听器。
语法和选项
使用命令 srvctl remove listener 命令,语法如下:
srvctl remove listener [-listener listener_name | -all] [-force]
| 选项 | 描述 |
|---|---|
-listener listener_name |
要删除的监听器的名称。如果省略,则默认为 LISTENER。 |
-all |
移除所有监听器 |
-force |
强制。删除监听器,即使数据库正在使用它。 |
示例
下面的命令删除监听器 lsnr01:
srvctl remove listener -listener lsnr01
srvctl remove ons
删除 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl remove ons 命令,语法如下:
srvctl remove ons [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-force |
强制。移除 ONS,即使它是启用的。 |
-verbose |
详细输出 |
srvctl remove service
删除指定的数据库服务。
语法和选项
使用命令 srvctl remove service 命令,语法如下:
srvctl remove service -db db_unique_name -service service_name [-global_override]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name |
服务名 |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以删除服务。 如果你试图删除一个 GDS 服务,并且没有包含 -global_override,则返回错误。如果服务不是 GDS 服务,则忽略该选项。 |
示例
这个命令的一个例子是:
srvctl remove service -db dbcrm -service sales
setenv
setenv 命令用于设置 Oracle Restart 配置中数据库、监听器或 ASM 实例的环境变量值。
要执行 srvctl setenv 操作,必须使用正确的用户账号登录到数据库主机。
srvctl setenv asm
设置 Oracle ASM 实例重启配置中的环境变量值。在启动实例之前,Oracle Restart 会将环境变量设置为配置文件中存储的值。
语法和选项
使用命令 srvctl setenv asm 命令,语法如下:
srvctl setenv asm {-envs name=val[,name=val,...] | -env name=val}
| 选项 | 描述 |
|---|---|
-envs name=val[,name=val,...] |
环境变量的 name/value 对列表,用逗号分隔 |
-env name=val |
将单个环境变量设置为一个包含逗号或其他特殊字符的值 |
示例
在 Oracle ASM 实例配置中设置 AIX 操作系统环境变量 AIXTHREAD_SCOPE 的示例如下:
srvctl setenv asm -envs AIXTHREAD_SCOPE=S
srvctl setenv database
设置数据库实例的 Oracle Restart 配置中的环境变量值。在启动实例之前,Oracle Restart 会将环境变量设置为配置文件中存储的值。
语法和选项
使用命令 srvctl setenv database 命令,语法如下:
srvctl setenv database -db db_unique_name {-envs name=val[,name=val,...] | -env name=val}
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-envs name=val[,name=val,...] |
环境变量的 name/value 对列表,用逗号分隔 |
-env name=val |
将单个环境变量设置为一个包含逗号或其他特殊字符的值 |
示例
下面的例子将为 DB_UNIQUE_NAME 为 dbcrm 的数据库设置 LANG 环境变量配置:
srvctl setenv database -db dbcrm -envs LANG=en
srvctl setenv listener
设置 Oracle Restart 配置中监听器的环境变量值。在启动监听器之前,Oracle Restart 会将环境变量设置为配置中存储的值。
语法和选项
使用命令 srvctl setenv listener 命令,语法如下:
srvctl setenv listener [-listener listener_name] {-envs name=val[,name=val,...] | -env name=val}
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则在所有监听器配置中设置指定的环境变量。 |
-envs name=val[,name=val,...] |
环境变量的 name/value 对列表,用逗号分隔 |
-env name=val |
将单个环境变量设置为一个包含逗号或其他特殊字符的值 |
示例
下面的例子在名为 crmlistener 的监听器的配置中设置 AIX 操作系统环境变量 AIXTHREAD_SCOPE:
srvctl setenv listener -listener crmlistener -envs AIXTHREAD_SCOPE=S
start
启动指定的一个或多个组件。
srvctl start asm
启动 Oracle ASM 实例。
该命令由 SRVCTL 连接 “/ as sysasm” 执行。要运行这样的操作,Oracle Grid Infrastructure Home 中可执行文件的所有者必须是 OSASM 组的成员,并且运行命令的用户也必须在 OSASM 组中。
语法和选项
使用命令 srvctl start asm 命令,语法如下:
srvctl start asm [-startoption start_options]
| 选项 | 描述 |
|---|---|
-startoption start_options |
启动命令的选项列表(OPEN、MOUNT 或 NOMOUNT),以逗号分隔。如果省略,默认为正常启动(OPEN)。 |
示例
下面的例子启动 Oracle ASM 实例,然后挂载在 ASM_DISKGROUPS 初始化参数中命名的磁盘组:
srvctl start asm
启动 Oracle ASM 实例时不挂载磁盘组:
srvctl start asm -startoption nomount
srvctl start database
启动指定的数据库实例。
该命令由 SRVCTL 连接 “/ as sysdba” 执行。执行这些操作时,数据库 Oracle Home 中的 Oracle 可执行文件的所有者必须是 OSDBA 组的成员(例如 UNIX 和 Linux 上的 dba 组),执行命令的用户也必须是 OSDBA 组的成员。
语法和选项
使用命令 srvctl start database 命令,语法如下:
srvctl start database -db db_unique_name [-startoption start_options] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-startoption start_options |
启动命令的选项列表,以逗号分隔(例如:OPEN、MOUNT、NOMOUNT、RESTRICT 等) |
-verbose |
详细输出 |
示例
这个命令的一个例子是:
srvctl start database -db dbcrm -startoption nomount
srvctl start diskgroup
启动(挂载)Oracle ASM 磁盘组。
语法和选项
使用命令 srvctl start diskgroup 命令,语法如下:
srvctl start diskgroup -diskgroup diskgroup_name
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
Disk group name |
示例
这个命令的一个例子是:
srvctl start diskgroup -diskgroup DATA
srvctl start home
在指定的 Oracle Home 目录中启动所有由 Oracle 管理的组件。Oracle Home 可以是 Oracle Database Home 或 Oracle Grid Infrastructure Home。
该命令启动被srvctl stop home停止的组件。该命令使用指定状态文件中的信息来确定要启动的组件。
语法和选项
使用命令 srvctl start home 命令,语法如下:
srvctl start home -oraclehome oracle_home -statefile state_file
| 选项 | 描述 |
|---|---|
-oraclehome oracle_home |
Oracle Home的完整路径 |
-statefile state_file |
状态文件的完整路径。状态文件包含 Oracle Home 中组件的当前状态信息,是在执行 srvctl stop home 命令或 srvctl status home 命令时创建的。 |
srvctl start listener
启动指定的监听器或所有监听器。
语法和选项
使用命令 srvctl start listener 命令,语法如下:
srvctl start listener [-listener listener_name]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则启动所有 Oracle Restart 管理的监听器。 |
示例
这个命令的一个例子是:
srvctl start listener -listener listener
srvctl start ons
开启 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl start ons 命令,语法如下:
srvctl start ons [-verbose]
| 选项 | 描述 |
|---|---|
-verbose |
详细输出 |
srvctl start service
启动指定的数据库服务。
语法和选项
使用命令 srvctl start service 命令,语法如下:
srvctl start service -db db_unique_name [-service service_name_list | -pdb pluggable_database] [-startoption start_options] [-global_override] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name_list |
以逗号分隔的服务名称列表。服务名称列表是可选的,如果没有提供,SRVCTL 将启动数据库的所有服务。 |
-pdb pluggable_database |
在 CDB 中,与服务关联的 PDB 名称 如果此选项设置为空字符串,则该服务与 root 关联。 |
-startoption start_options |
如果数据库必须首先启动,则启动数据库的选项(例如:OPEN、MOUNT、NOMOUNT 等) |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以启动服务。 如果你尝试启动 GDS 服务,并且没有包含 -global_override,则返回错误。如果服务不是 GDS 服务,则忽略该选项。 |
-verbose |
详细输出 |
示例
对于DB_UNIQUE_NAME 是 dbcrm 的数据库,下面的示例启动 sales 数据库服务:
srvctl start service -db dbcrm -service sales
status
显示指定组件或组件集的运行状态。
srvctl status asm
显示 Oracle ASM 实例的运行状态。
语法和选项
使用命令 srvctl status asm 命令,语法如下:
srvctl status asm [-all] [-verbose]
| 选项 | 描述 |
|---|---|
-all |
也显示启用/禁用状态 |
-verbose |
详细输出 |
示例
这个命令的一个例子是:
srvctl status asm ASM is running on dbhost
srvctl status database
显示指定数据库的运行状态。
语法和选项
使用命令 srvctl status database 命令,语法如下:
srvctl status database -db db_unique_name [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-force |
如果数据库被禁用,则显示一条消息 |
-verbose |
详细输出。列出正在运行的数据库服务。 |
示例
这个命令的一个例子是:
srvctl status database -db dbcrm -verbose Database dbcrm is running with online services mfg,sales
srvctl status diskgroup
显示 Oracle ASM 磁盘组的运行状态。
语法和选项
使用命令 srvctl status diskgroup 命令,语法如下:
srvctl status diskgroup -diskgroup diskgroup_name [-all] [-verbose]
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
磁盘组名称 |
-all |
也显示启用/禁用状态 |
-verbose |
详细输出. 列出正在运行的数据库服务。 |
示例
这个命令的一个例子是:
srvctl status diskgroup -diskgroup DATA Disk Group DATA is running on dbhost
srvctl status home
显示指定 Oracle Home 中由 Oracle Restart 管理的所有组件的运行状态。Oracle Home 可以是 Oracle Database Home 或 Oracle Grid Infrastructure Home。
该命令将组件的当前状态写入指定的状态文件。
语法和选项
使用命令 srvctl status home 命令,语法如下:
srvctl status home -oraclehome oracle_home -statefile state_file
| 选项 | 描述 |
|---|---|
-oraclehome oracle_home |
Oracle Home 的完整路径 |
-statefile state_file |
状态文件的完整路径 |
srvctl status listener
显示指定的监听器或所有 Oracle Restart 管理的监听器的运行状态。
语法和选项
使用命令 srvctl status listener 命令,语法如下:
srvctl status listener [-listener listener_name] [-verbose]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则显示所有监听器的状态。 |
-verbose |
详细输出. 列出正在运行的数据库服务。 |
示例
这个命令的一个例子是:
srvctl status listener -listener crmlistener Listener CRMLISTENER is running on dbhost
srvctl status ons
显示 Oracle Notification Services(ONS)的运行状态。
语法和选项
使用命令 srvctl status ons 命令,语法如下:
srvctl status ons [-verbose]
| 选项 | 描述 |
|---|---|
-verbose |
详细输出。列出正在运行的数据库服务。 |
srvctl status service
显示一个或多个数据库服务的运行状态。
语法和选项
使用命令 srvctl status service 命令,语法如下:
srvctl status service -db db_unique_name [-service service_name_list | -pdb pluggable_database] [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name_list |
以逗号分隔的服务名称列表。如果省略,则列出指定数据库的所有数据库服务的状态。 |
-pdb pluggable_database |
在多租户容器数据库(CDB)中,与服务关联的可插拔数据库(PDB)的名称 如果将此选项设置为空字符串,则该服务与 root 关联。 |
-force |
显示一条消息,如果服务是禁用的 |
-verbose |
详细输出 |
示例
对于DB_UNIQUE_NAME 是 dbcrm 的数据库,下面的例子显示了服务 sales 的运行状态:
srvctl status service -db dbcrm -service sales Service sales is running on dbhost
stop
停止指定的一个或多个组件。
如果你希望组件在执行 srvctl stop 命令后保持停止状态,请禁用该组件。
srvctl stop asm
停止 Oracle ASM 实例。
语法和选项
使用命令 srvctl stop asm 命令,语法如下:
srvctl stop asm [-stopoption stop_options] [-force]
| 选项 | 描述 |
|---|---|
-stopoption stop_options |
关闭操作的选项,例如 NORMAL、TRANSACTIONAL、IMMEDIATE 或 ABORT。 |
-force |
强制。如果磁盘组当前正在启动(MOUNT),则必须存在。该选项允许 SRVCTL 在停止 Oracle ASM 之前停止磁盘组。每个依赖的数据库实例也根据其停止选项停止,如果配置的停止选项失败,则使用 ABORT 选项停止。 |
示例
这个命令的一个例子是:
srvctl stop asm -stopoption abort -force
srvctl stop database
停止数据库及其服务。
语法和选项
使用命令 srvctl stop database 命令,语法如下:
srvctl stop database -db db_unique_name [-stopoption stop_options] [-drain_timeout timeout] [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-stopoption stop_options |
SHUTDOWN 命令选项(例如:NORMAL、TRANSACTIONAL、IMMEDIATE 或 ABORT)。默认值是 IMMEDIATE。 |
-drain_timeout timeout |
此选项指定以秒为单位完成资源消耗的时间。允许的值是 NULL、0 或任何正整数。排水周期用于有计划的维护操作。在引流期间,处理所有当前的客户端请求,但不接受新的请求。引流的工作原理取决于 -stopoption 选项的设置。默认值为 NULL,表示没有设置此选项。如果没有设置该选项,并且服务上设置了 -drain_timeout,则使用该值。如果设置为 0,则不会发生排水。 |
-force |
停止数据库、其服务以及依赖于这些服务的任何资源 |
-verbose |
详细输出 |
示例
这个命令的一个例子是:
srvctl stop database -db dbcrm
srvctl stop diskgroup
停止(卸载)Oracle ASM 磁盘组。
语法和选项
使用命令 srvctl stop diskgroup 命令,语法如下:
srvctl stop diskgroup -diskgroup diskgroup_name [-force]
| 选项 | 描述 |
|---|---|
-diskgroup diskgroup_name |
磁盘组名称 |
-force |
强制。即使磁盘组中有文件打开,也要卸载磁盘组。 |
示例
这个例子停止名为 DATA 的磁盘组。如果在这个磁盘组上打开了文件,则返回错误。
srvctl stop diskgroup -diskgroup DATA
srvctl stop home
在指定的 Oracle Home 目录中停止所有由 Oracle Restart 管理的组件。Oracle Home 可以是 Oracle Database Home 或 Oracle Grid Infrastructure Home。
此命令标识它在指定状态文件中停止的组件。
语法和选项
使用命令 srvctl stop home 命令,语法如下:
srvctl stop home -oraclehome oracle_home -statefile state_file [-stopoption stop_options] [-force]
| 选项 | 描述 |
|---|---|
-oraclehome oracle_home |
Oracle Home的完整路径 |
-statefile state_file |
要写入状态文件的完整路径 |
-stopoption stop_options |
数据库的 SHUTDOWN 命令选项(例如:NORMAL、TRANSACTIONAL、IMMEDIATE 或 ABORT)。默认值是 IMMEDIATE。 |
-force |
强制关闭每个组件 |
srvctl stop listener
停止指定的监听器或所有 Oracle Restart 管理的监听器。停止监听器不会导致注册到监听器的数据库停止。
语法和选项
使用命令 srvctl stop listener 命令,语法如下:
srvctl stop listener [-listener listener_name] [-force]
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,则停止所有 Oracle Restart 管理的监听器。 |
-force |
强制。将带有 -f 选项的 stop 命令传递给 Oracle Clusterware。 |
示例
这个命令的一个例子是:
srvctl stop listener -listener crmlistener
srvctl stop ons
关闭 Oracle Notification Services(ONS)。
语法和选项
使用命令 srvctl stop ons 命令,语法如下:
srvctl stop ons [-verbose]
| 选项 | 描述 |
|---|---|
-verbose |
详细输出 |
srvctl stop service
停止一个或多个数据库服务。
语法和选项
使用命令 srvctl stop service 命令,语法如下:
srvctl stop service -db db_unique_name [-service service_name_list | -pdb pluggable_database] [-drain_timeout timeout] [-stopoption stop_option] [-global_override] [-wait wait_option] [-force] [-verbose]
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-service service_name_list |
数据库服务名称列表,用逗号分隔. If you do not provide a service name list, then SRVCTL stops all services on the database |
-pdb pluggable_database |
在 CDB 中,与服务关联的 PDB 名称 如果此选项设置为空字符串,则该服务与 root 关联。 |
-drain_timeout timeout |
此选项指定以秒为单位完成资源消耗的时间。允许的值是 NULL、0 或任何正整数。排水周期用于有计划的维护操作。在引流期间,处理所有当前的客户端请求,但不接受新的请求。引流的工作原理取决于 -stopoption 选项的设置。默认值为 NULL,表示没有设置此选项。如果没有设置该选项,并且服务上设置了 -drain_timeout,则使用该值。如果设置为 0,则不会发生排水。 |
-stopoption stop_option |
此选项指定停止服务的模式。以下值是允许的:IMMEDIATE 指定允许在服务停止之前清空会话。TRANSACTIONAL 指定会话允许按照 -drain_timeout 选项指定的时间消耗。当达到时间限制时,服务将停止,并且任何剩余的会话都将终止。NONE 是默认值。 |
-global_override |
如果服务是全局数据服务(GDS),则必须指定此选项以停止服务。 如果你试图停止一个 GDS 服务并且没有包含 -global_override,则会返回一个错误。如果服务不是 GDS 服务,则忽略该选项。 |
-wait wait_option |
此选项指定是否等待服务引流完成后再停止服务。指定 YES 表示等待,指定 NO表示不等待就停止服务。 |
-force |
强制。此选项立即断开所有已停止服务的会话。未提交的事务会回滚。如果省略此选项,活动会话将保持与服务的连接,但不能建立与服务的进一步连接。 |
-verbose |
详细输出 |
示例
下面的例子在DB_UNIQUE_NAME 是 dbcrm 的属性值为dbcrm的数据库上停止 sales 数据库服务:
srvctl stop service -db dbcrm -service sales
unsetenv
unsetenv 命令从数据库、监听器或 Oracle ASM 实例的 Oracle Restart 配置中删除一个或多个环境变量。
要执行 srvctl unsetenv 操作,必须使用正确的用户账号登录到数据库主机。
srvctl unsetenv asm
从 Oracle ASM 实例的 Oracle Restart 配置中删除指定的环境变量。
语法和选项
使用命令 srvctl unsetenv asm 命令,语法如下:
srvctl unsetenv asm -envs name_list
| 选项 | 描述 |
|---|---|
-envs name_list |
要删除的环境变量列表,用逗号分隔 |
示例
下面的例子从 Oracle ASM 实例配置中删除 AIX 操作系统环境变量 AIXTHREAD_SCOPE:
srvctl unsetenv asm -envs AIXTHREAD_SCOPE
srvctl unsetenv database
从指定数据库的 Oracle Restart 配置中删除指定的环境变量。
语法和选项
使用命令 srvctl unsetenv database 命令,语法如下:
srvctl unsetenv database -db db_unique_name -envs name_list
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-envs name_list |
要删除的环境变量列表,用逗号分隔 |
示例
下面的例子为 DB_UNIQUE_NAME 是 dbcrm 的数据库,从 Oracle Restart 配置中删除 AIXTHREAD_SCOPE 环境变量:
srvctl unsetenv database -db dbcrm -envs AIXTHREAD_SCOPE
srvctl unsetenv listener
从指定的监听器或所有监听器的 Oracle Restart 配置中删除指定的环境变量。
语法和选项
使用命令 srvctl unsetenv listener 命令,语法如下:
srvctl unsetenv listener [-listener listener_name] -envs name_list
| 选项 | 描述 |
|---|---|
-listener listener_name |
监听器的名字。如果省略,指定的环境变量将从所有监听器的配置中删除。 |
-envs name_list |
要删除的环境变量列表,用逗号分隔 |
示例
下面的示例从名为 crmlistener 的监听器的监听器配置中删除 AIX 操作系统环境变量 AIXTHREAD_SCOPE:
srvctl unsetenv listener -listener crmlistener -envs AIXTHREAD_SCOPE
update
srvctl update 命令更新正在运行的数据库,切换到指定的启动选项。
srvctl update database
srvctl update database 命令改变数据库的打开模式。
语法和选项
使用命令 srvctl update database 命令,语法如下:
srvctl update database -db db_unique_name --startoption start_options
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-startoption start_options |
数据库的启动选项。例如,启动选项有 OPEN、MOUNT 或 "READ ONLY"。 |
upgrade
srvctl upgrade 命令将资源类型和资源从旧版本升级到新版本。
srvctl upgrade database
srvctl upgrade database 命令将数据库的配置和所有服务升级到运行该命令所在的数据库主版本。
语法和选项
使用命令 srvctl upgrade database 命令,语法如下:
srvctl upgrade database -db db_unique_name -oraclehome oracle_home
| 选项 | 描述 |
|---|---|
-db db_unique_name |
数据库的唯一名称。必须匹配 DB_UNIQUE_NAME 初始化参数设置。如果未指定 DB_UNIQUE_NAME,则此选项必须匹配 DB_NAME 初始化参数设置。DB_UNIQUE_NAME 的默认设置使用 DB_NAME 的设置。 |
-oraclehome oracle_home |
Oracle Home 数据库的完整路径 |




