このトピックでは、PolarDB のコールドデータアーカイブ機能に関するよくある質問への回答を提供します。
"[Data Lifecycle Management] DLM storage engine is not support. The value of polar_dlm_storage_mode is OFF."
というエラーメッセージが表示された場合はどうすればよいですか?
PolarDBコンソール でコールドデータアーカイブ機能を有効にする必要があります。詳細については、「コールドデータアーカイブを有効にする」をご参照ください。
PolarDB コンソールのナビゲーションバーに [コールドデータアーカイブ] メニューが表示されないのはなぜですか?
コールドデータアーカイブ機能を有効にしてから数分後にページを更新すると、[コールドデータアーカイブ] メニューが表示されます。
コールドデータファイルはどのような形式でアーカイブされますか?
コールドデータは CSV または ORC 形式でアーカイブされます。
テーブルまたはパーティションがアーカイブされているかどうかを確認するにはどうすればよいですか?
次のいずれかの方法を使用して、テーブルまたはパーティションがアーカイブされているかどうかを確認できます。
SHOW CREATE TABLE table_name;
文を実行して、テーブルまたはパーティションがアーカイブされているかどうかを確認します。通常のテーブルの場合、STORAGE OSS または
CONNECTION='default_oss_server'
が表示されている場合、データはアーカイブされています。パーティションテーブルの場合、テーブル内のパーティションに ENGINE=CSV/ORC が表示されている場合、データはアーカイブされています。
コンソールでデータがアーカイブされているかどうかを確認します。
PolarDB コンソール にログオンします。管理するクラスタを見つけ、クラスタの ID をクリックします。左側のナビゲーションウィンドウで、 > [コールドデータアーカイブ] を選択します。テーブル名が存在するかどうかを確認します。テーブル名が存在する場合、データは OSS にアーカイブされています。
アーカイブされたコールドデータをダウンロードするにはどうすればよいですか?
アーカイブされたコールドデータを直接ダウンロードすることはできません。アーカイブされたコールドデータをダウンロードするには、クォータセンター にアクセスします。polardb_mysql_download_oss
クォータ ID を入力して、クォータ名を見つけます。[アクション] 列で、[適用] をクリックします。
アーカイブされたコールドデータのサイズを確認するにはどうすればよいですか?
PolarDB コンソールでアーカイブされたコールドデータのサイズを表示するか、クラスタ上のコールドデータテーブルを直接クエリできます。詳細については、「OSS にアーカイブされたコールドデータに関する情報を表示する」をご参照ください。
アーカイブされたコールドデータをクエリするにはどうすればよいですか?
通常のテーブルとパーティションテーブルのコールドデータをアーカイブした後、次のいずれかの方法を使用して、アーカイブされたコールドデータをクエリできます。
通常のテーブル:ホットデータをクエリする場合と同じ方法を使用します。アクセスモードを変更する必要はありません。
パーティションテーブル:アーカイブされたコールドデータをクエリする方法の詳細については、「ハイブリッドパーティションテーブルのデータをクエリする」をご参照ください。
アーカイブされたコールドデータを変更するにはどうすればよいですか?
CSV または ORC 形式で OSS にアーカイブされたコールドデータを直接変更することはできません。アーカイブされたコールドデータを変更するには、ALTER TABLE table_name ENGINE=InnoDB
文を実行して、テーブルデータを OSS から PolarStore にインポートし、PolarStore 内のデータを変更します。データを変更した後、ALTER TABLE t ENGINE = CSV STORAGE OSS;
文を実行して、変更されたテーブルデータを OSS にアーカイブします。詳細については、「OSS テーブルから PolarStore にデータをインポートする」をご参照ください。
アーカイブされたコールドデータを削除するにはどうすればよいですか?
特権アカウントを使用して、アーカイブされたコールドデータを削除します。
DROP TABLE
文を実行してアーカイブされたテーブルを削除し、次に CALL dbms_oss.delete_table_file('database_name', 'table_name');
を実行してアーカイブされたコールドデータを削除します。
自動データアーカイブはどのようにトリガーされますか?
自動データアーカイブはイベントによってトリガーされます。詳細については、「データライフサイクル管理 (DLM)」をご参照ください。
自動的にアーカイブされたデータのログはありますか?
自動的にアーカイブされたデータのログは、mysql.dlm_progress
テーブルに保存されます。MySQL データベースに対する権限を持つアカウントを使用して、mysql.dlm_progress テーブルを表示できます。詳細については、「mysql.dlm_progress テーブル」をご参照ください。
自動データアーカイブの現在のポリシーを表示するにはどうすればよいですか?
自動データアーカイブのポリシーは、mysql.dlm_policies
テーブルに保存されます。MySQL データベースに対する権限を持つアカウントを使用して、mysql.dlm_policies テーブルを表示できます。詳細については、「mysql.dlm_policies テーブル」をご参照ください。
自分の OSS エンジンにデータをアーカイブするにはどうすればよいですか?
自分の OSS エンジンにデータをアーカイブすることはできません。select into ossoutfile
文を実行して、OSS エンジンにデータをエクスポートできます。詳細については、「ローカルテーブルを OSS にシリアルエクスポートする」をご参照ください。
コールドデータのアーカイブ後も、元のテーブルはデータベースに存在します。ストレージ容量を節約するために、テーブルを手動で削除する必要がありますか?
コールドデータをアーカイブした後、PolarDB はテーブルのメタデータのみを保存します。実際のデータは OSS に保存され、クラスタのストレージ容量を消費しません。
"OSS error: error message: The OSS Access Key Id you provided does not exist in our records"
というエラーメッセージが表示された場合はどうすればよいですか?
OSS error:
で始まるエラーメッセージは、OSS で発生したエラーを示します。OSS エラーコード を参照して、考えられる原因を特定できます。次の項目では、上記のエラーメッセージの原因と解決策について説明します。
原因:一時的なアクセス認証情報の有効期限が切れると、AccessKey ペアが無効になります。
解決策:AccessKey ペアを使用して、アプリサーバーから新しい一時的なアクセス認証情報を申請します。詳細については、「STS が提供する一時的な認証情報を使用して OSS にアクセスする」をご参照ください。
コールドデータをアーカイブした後、コンソールでアーカイブされたテーブルに関する情報が表示されないのはなぜですか?
空のテーブルの場合、テーブルのアーカイブ後に OSS に CSV ファイルが生成されないため、コンソールにテーブルに関する情報は表示されません。
OSS にアーカイブされているテーブルの名前を変更するにはどれくらい時間がかかりますか?
OSS にアーカイブされているテーブルの名前を変更すると、OSS 内のファイル情報は 約 100 Mbit/s の速度で変更されます。データの合計サイズに基づいて期間を推定できます。
「ERROR 8185 (HY000): Change partition not support archive to engine CSV」というエラーメッセージが表示された場合はどうすればよいですか?
パーティションテーブルのコールドデータアーカイブ機能はカナリアリリースされています。この機能を使用するには、クォータセンター にアクセスします。polardb_mysql_hybrid_partition
クォータ ID を入力して、クォータ名を見つけます。[アクション] 列で、[適用] をクリックします。
アーカイブされたコールドデータのサイズは、元のテーブルよりも大きいですか、それとも小さいですか?
アーカイブされたコールドデータは元のデータとは形式が異なるため、占有スペースが変わります。次の変更が発生する可能性があります。
元のテーブルで InnoDB エンジンを使用している場合、アーカイブされたコールドデータのサイズが小さくなる可能性があります。
元のテーブルで X-Engine を使用している場合、アーカイブされたコールドデータのサイズが大きくなる可能性があります。
CSV 形式のアーカイブされたコールドデータは、ORC 形式のアーカイブされたコールドデータよりもサイズが大きくなる可能性があります。
Alibaba Cloud アカウントの OSS でアーカイブされたコールドデータとオブジェクトを表示できないのはなぜですか?
PolarDB コールドデータは、自分の OSS ではなく、デフォルトの OSS に保存されます。そのため、自分の OSS でアーカイブされたコールドデータを表示することはできません。アーカイブされたコールドデータは、PolarDB コンソールでのみ表示できます。
ストアドプロシージャにアーカイブされたテーブルが含まれている場合に、「Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.」というエラーメッセージが表示されるのはなぜですか?
CSV または ORC 形式のアーカイブされたテーブルはトランザクションをサポートしていません。ストアドプロシージャにアーカイブされたテーブルが含まれている場合、実際の書き込み操作が実行されていなくても、グローバルトランザクション ID (GTID) の不整合が発生する可能性があります。この問題を解決するには、ストレージエンジンを X-Engine に変更してストレージコストを削減し、すべてのテーブルがトランザクションをサポートするようにします。
OSS からクラスタにデータを復元するときに、「The last packet successfully received from the server was 15,287 milliseconds ago. The last packet sent successfully to the server was 15,287 milliseconds ago.」というエラーメッセージが表示されるのはなぜですか?
このメッセージは、復元プロセスがクライアントのタイムアウトしきい値を超えたために表示されます。この問題を解決するには、PolarDB for MySQL クラスタの最小 PolarDB キャパシティユニット (PCU) 仕様を上げてから、復元タスクを実行します。
PolarDB for MySQL クラスタのバージョンがコールドデータアーカイブ機能に必要なバージョンよりも古い場合はどうすればよいですか?
PolarDB for MySQL クラスタを最新バージョンにアップグレードします。詳細については、「マイナーバージョンアップデート」をご参照ください。
テーブルのサイズは、PolarDB for MySQL クラスタ内のテーブルのサイズは、テーブルが OSS にアーカイブされた後にどのように変化しますか?
PolarDB for MySQL クラスタ内のテーブルを OSS にアーカイブすると、テーブルのサイズが変わる場合があります。
インデックスのない InnoDB テーブルの場合、アーカイブプロセス中にデータが圧縮されます。そのため、OSS 内のアーカイブ済みテーブルのサイズは、元の InnoDB テーブルのサイズよりも小さくなります。
インデックスを持つ InnoDB テーブルの場合、アーカイブプロセス中にインデックスが削除されます。そのため、OSS 内のアーカイブ済みテーブルのサイズは、元の InnoDB テーブルのサイズと比べて大幅に小さくなります。
X-Engine テーブルの場合、OSS によって実現される圧縮効率は X-Engine によってすでに適用されている高い圧縮に一致しない可能性があるため、OSS 内のアーカイブ済みテーブルのサイズは元の X-Engine テーブルのサイズよりも大きくなる場合があります。
PolarDB for MySQL は、CSV または ORC 形式でのデータのアーカイブをサポートしています。ORC ファイルは CSV ファイルよりも高い圧縮率を提供します。そのため、CSV 形式のアーカイブ済みデータのサイズは比較的大きくなる可能性があります。詳細については、「CSV または ORC 形式でコールドデータを手動でアーカイブする」をご参照ください。