srvctl とは
Oracle に標準でインストールされているユーティリティで、ターゲットとするオブジェクト(データベースやインスタンスをはじめ、サービスやリスナーなど)を制御する。
srvctl は、sqlplus コマンドではないため、Windows ならコマンドプロンプトから実行する。
起動・停止や、有効化・無効化なども行えるため、DB 構築時だけでなく、
運用開始後も使用頻度が高く、覚えておくととても便利だ。
srvctl と crsctl コマンド
DB 構成にもよるが、実際は、Clusterware 側のユーティリティである
crsctl コマンドと組み合わせて使用することが多い。
srvctl には大量のパラメータやオプションが存在するため、
割と利用頻度が高そうなところを一部紹介する。
例えば、「-db」を「-d」と記載するような短縮表記も可能だが、
直感的に分かりにくい事もあるので、ここではフルコマンドで記載する。
データベースの起動停止
起動(srvctl start database)
DB名を指定
起動オプション(nomount, mount, open)を指定
使用例
srvctl start database -db DB名 -startoption mount
停止(srvctl stop database)
DB名を指定
停止オプション(normal, transactional, immediate, abort)を指定
使用例
srvctl stop database -db DB名 -stopoption immediate
リスナーの起動停止
起動(srvctl start listener)
リスナー名を指定(指定しなければデフォルトリスナーが対象)
使用例
srvctl start listener -listener リスナー名
停止(srvctl stop listener)
リスナー名を指定(指定しなければデフォルトリスナーが対象)
ノード名を指定
強制的に行う
使用例
srvctl stop listener -listener リスナー名 -node ノード名 -force
データベースにサービスを追加
追加(srvctl add service)
DB名を指定
サービス名を指定
PDB名を指定
使用例
srvctl add service -db DB名 -service サービス名 -pdb PDB名
Clusterware に構成を追加
追加(srvctl add database)
DB名を指定
ORACLE_HOMEのパスを指定
インスタンス名を指定
サーバパラメータファイルを指定
使用例
srvctl add database -db DB名 -oraclehome ORACLE_HOMEディレクトリ -instance インスタンス名 -spfile spファイルのフルパス
データベース構成の変更
変更(srvctl modify database)
DB名を指定
インスタンス名を指定
サーバパラメータファイルを指定
データベースの停止オプションを指定
使用例
srvctl modify database -db DB名 -spfile spファイルのフルパス
データベース構成の表示
表示(srvctl config database)
省略すると全 DB のリソース構成が表示される
詳細情報の表示
冗長出力を表示
使用例
srvctl config database -db ORCL
srvctl config database -all