サービスを作成した後、START SERVICE コマンドを使用してサービスを起動できます。
制限事項
サービス名を使用して作成されたセッション内で START SERVICE コマンドを実行することは許可されていません。
前提条件
START SERVICEコマンドの実行には、ユーザーがALTER SYSTEM権限を持っている必要があります。サービスを起動する際には、まずテナントのユニット内に一時的にオフラインになっているマシンがないか確認する必要があります。一時的にオフラインになっているマシンがある場合、
START SERVICEコマンドを実行した後、一部のマシンが当該サービス名を通じてサービスを提供できなくなる可能性があります。そのため、一時的にオフラインになっているマシンが復旧するか、または永続的にオフラインになってからSTART SERVICEコマンドを実行することを推奨します。テナントのユニット内に一時的にオフラインになっているマシンがないか確認する詳細な操作については、サービスの作成 の 前提条件 を参照してください。
操作手順
テナント管理者がクラスタのユーザーテナントまたは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モード)ビューを使用して確認できます。