アーカイブモードを有効にした後、同じ方法で無効にすることも可能です。テナントがアーカイブモードを無効にする前に、進行中または一時停止されているログアーカイブタスクがある場合、アーカイブモードを無効にすると、システムはこれらのアーカイブタスクを自動的に停止します。
背景
現在のクラスタには、sys、mysql_tenant、oracle_tenant の3つのテナントがあり、テナント mysql_tenant と oracle_tenant はアーカイブモードが有効になっているとします。
システムテナントが他のテナントのアーカイブモードを無効にする
sys テナントは、クラスタ内のすべてのテナントまたは指定されたテナントのアーカイブモードを無効にできます。
rootユーザーでクラスタのsysテナントにログインします。以下のステートメントを実行して、アーカイブモードを無効にします。
クラスタ内のすべてのテナントのアーカイブモードを無効にする
この方法では、クラスタ内のすべてのテナントのアーカイブモードが無効になります。
obclient [(none)]> ALTER SYSTEM NOARCHIVELOG [TENANT = ALL];コマンドの実行が成功すると、この例では
mysql_tenantとoracle_tenantの両方のアーカイブモードが無効になります。sysテナントのoceanbase.DBA_OB_TENANTSビューを使用して、クラスタ内のすべてのテナントのアーカイブモードを確認できます。obclient [(none)]> SELECT TENANT_NAME, LOG_MODE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_TYPE='USER'\G *************************** 1. row *************************** TENANT_NAME: mysql_tenant LOG_MODE: NOARCHIVELOG *************************** 2. row *************************** TENANT_NAME: oracle_tenant LOG_MODE: NOARCHIVELOG 2 rows in setクラスタ内の指定されたテナントのアーカイブモードを無効にする
この方法では、指定されたテナントのアーカイブモードのみが無効になり、クラスタ内の他のテナントには影響しません。
obclient [(none)]> ALTER SYSTEM NOARCHIVELOG TENANT = mysql_tenant;説明
複数のテナントを同時に指定する場合は、テナント名の間に半角カンマ (`,`) を使用して区切ります。
コマンドの実行が成功すると、この例では
mysql_tenantのアーカイブモードが無効になります。テナントのoceanbase.DBA_OB_TENANTSビューを使用して、クラスタ内のすべてのテナントのアーカイブモードを確認できます。obclient [(none)]> SELECT TENANT_NAME, LOG_MODE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_TYPE = 'USER'\G *************************** 1. row *************************** TENANT_NAME: mysql_tenant LOG_MODE: NOARCHIVELOG *************************** 2. row *************************** TENANT_NAME: oracle_tenant LOG_MODE: ARCHIVELOG 2 rows in set
ユーザーテナントが自身のテナントでアーカイブモードを無効にする
ユーザーテナントは、他のテナントに影響を与えることなく、自身のテナントのアーカイブモードを直接無効にすることもできます。
テナント管理者がデータベースにログインします。
この例では、
rootユーザーでmysql_tenantテナントにログインするか、SYSユーザーでoracle_tenantテナントにログインすることができます。以下のステートメントを実行して、アーカイブモードを無効にします。
obclient [xxx]> ALTER SYSTEM NOARCHIVELOG;コマンドの実行が成功した後、そのテナントの
DBA_OB_TENANTSビューを直接使用して、そのテナントのアーカイブモードを確認できます。obclient [SYS]> SELECT TENANT_NAME, LOG_MODE FROM DBA_OB_TENANTS\G *************************** 1. row *************************** TENANT_NAME: oracle_tenant LOG_MODE: NOARCHIVELOG 1 rows in set