サービスを作成した後、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モード) ビューを確認することができます。