サービスを作成した後、START SERVICE コマンドを使用してサービスを起動できます。
使用上の制限
サービス名で確立されたセッション内では、START SERVICE コマンドの実行は許可されません。
前提条件
START SERVICEコマンドの実行には、ユーザーがALTER SYSTEM権限を持っている必要があります。サービスを起動する際には、まずテナントのUnit内に一時的にダウンしたマシンがないか確認する必要があります。一時的にダウンしたマシンがある場合、
START SERVICEコマンドを実行しても、一部のマシンがそのサービス名を通じてサービスを提供できなくなる可能性があります。一時的にダウンしたマシンが復旧するか、完全にダウンした後にSTART SERVICEコマンドを実行することを推奨します。テナントのUnit内に一時的にダウンしたマシンがないか確認する詳細な操作については、サービスの作成 の 前提条件 を参照してください。
手順
テナント管理者がクラスタのユーザーテナントまたはsysテナントにログインします。
接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A起動対象のサービスの状態が
STARTEDであるか確認します。テナントのサービス状態を確認する詳細な操作については、サービス状態の確認 を参照してください。
テナントのサービス状態が
STARTEDでない場合、テナントのSWITCHOVER_STATUSがNORMALである必要があります。つまり、テナントがプライマリ/スタンバイ切り替えの中間状態にあってはなりません。テナントのSWITCHOVER_STATUSを確認する方法は以下のとおりです:- システムテナントから指定したテナントの
SWITCHOVER_STATUSを確認する
obclient [oceanbase]> SELECT TENANT_ID, TENANT_NAME, SWITCHOVER_STATUS FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = mysql_tenant;ユーザーテナントから自身のテナントの
SWITCHOVER_STATUSを確認するMySQLモードOracleモードMySQLモードでのクエリステートメントは以下のとおりです:
obclient [oceanbase]> SELECT TENANT_ID, TENANT_NAME, SWITCHOVER_STATUS FROM oceanbase.DBA_OB_TENANTS;Oracleモードのクエリステートメントは次のとおりです:
obclient [SYS]> SELECT TENANT_ID, TENANT_NAME, SWITCHOVER_STATUS FROM SYS.DBA_OB_TENANTS;
- システムテナントから指定したテナントの
サービスを起動します。
ステートメントは次のとおりです:
ALTER SYSTEM START SERVICE service_name [TENANT [=] tenant_name];ステートメント内で:
service_name:起動するサービス名を指定します。TENANT [=] tenant_name:起動するサービスのテナント名を指定します。テナントの指定はsysテナントのみが可能で、ユーザーテナントではできません。
例:
システムテナントがテナント
mysql_tenantに対して、サービス名s_hzのサービスを起動します。obclient [oceanbase]> ALTER SYSTEM START SERVICE s_hz TENANT = mysql_tenant;ユーザーテナントがサービス名
s_hzのサービスを起動します。obclient > ALTER SYSTEM START SERVICE s_hz;
コマンド実行後、
Query OKが返された場合、テナントのUnit内で永続的にオフラインのマシンを除き、他のすべてのマシンがサービス名を指定して接続を確立できることを意味します。OB_SERVICE_NOT_FULLY_STARTEDが返された場合、テナントのUnit内で永続的にオフラインのマシンを除き、他のマシンのうち一部のみがサービス名を指定して接続を確立できることを意味します。サービス名を指定してデータベースに接続できる具体的なマシンを確認する必要がある場合は、システムテナントのCDB_OB_TENANT_EVENT_HISTORYビュー、またはユーザーテナントのDBA_OB_TENANT_EVENT_HISTORY(MySQLモード)およびDBA_OB_TENANT_EVENT_HISTORY(Oracleモード)ビューを参照してください。