MySQL のレシピ
- バイナリログをローテーションBinlogとLog
- 古いバイナリログを削除(PURGE)BinlogとLog
- バイナリログの状態を表示BinlogとLog
- 一般クエリログとスロークエリログを有効化BinlogとLog
- InnoDBのREDOログサイズを変更ストレージ
- InnoDBのUNDO表領域を追加/管理ストレージ
- 一般表領域を追加ストレージ
- 表をOPTIMIZEストレージ
- 表とスキーマのサイズを照会するストレージ
- 表の統計を更新(ANALYZE TABLE)メンテナンス
- 表/インデックスを再構築メンテナンス
- 表の整合性を確認(CHECK TABLE)メンテナンス
- グローバル変数を変更して永続化パラメータ
- 変数の現在値を表示パラメータ
- 権限表をリロード(FLUSH PRIVILEGES)パラメータ
- レプリカを設定(CHANGE REPLICATION SOURCE)レプリケーション
- レプリカを開始/停止レプリケーション
- レプリカの状態を表示(SHOW REPLICA STATUS)レプリケーション
- 壊れたトランザクションをスキップ(GTID)レプリケーション
- クエリまたは接続を強制終了(KILL)セッション
- プロセスリストを表示セッション
- ブロックしているロックを表示(data_lock_waits)セッション
- レプリカの遅延とアプライアワーカーのエラーを監視(performance_schema)レプリケーション
- マルチスレッドレプリカをチューニング(replica_parallel_workers)レプリケーション
- 壊れたレプリカを修復: 1062 / 1032の行の競合レプリケーション
- 誤ったGTIDトランザクション(errant GTID)を特定して無害化レプリケーション
- CLONEプラグインでレプリカを一から再構築レプリケーション
- 遅延レプリカで誤ったDROP / DELETEから復旧(SOURCE_DELAY + UNTIL)レプリケーション
- mysqldumpでGTID情報付きの一貫性のある論理バックアップを取得バックアップとPITR
- MySQL Shellによるパラレルダンプ/ロード(util.dumpInstance、loadDump)バックアップとPITR
- XtraBackupによる全体 + 増分の物理バックアップとリストアバックアップとPITR
- binlogによるポイントインタイムリカバリ: 誤ったトランザクションを特定してスキップバックアップとPITR
- InnoDB Cluster / Group Replicationの健全性を確認InnoDB Cluster
- InnoDB Clusterでの計画的なプライマリスイッチオーバーInnoDB Cluster
- 完全停止後にクラスタを復旧(rebootClusterFromCompleteOutage)InnoDB Cluster
- InnoDB Clusterに対してMySQL RouterをブートストラップRouterとプロキシ
- ProxySQLによる読み取り/書き込み分割とレプリカのヘルスチェックRouterとプロキシ
- オンラインDDL: ALGORITHM=INSTANT / INPLACE、LOCK=NONEと進捗の追跡オンライン操作
- pt-online-schema-changeによる大きな表へのブロックしないALTERオンライン操作
- gh-ostによるトリガーなしのオンラインスキーマ変更オンライン操作
- 最もコストの高いクエリを特定する (performance_schema digest)パフォーマンス
- 現在実行中の処理: アクティブセッション、レイテンシ、ロック、トランザクション (sys.session)パフォーマンス
- 'Waiting for table metadata lock' を診断し、真のブロッカーを特定するパフォーマンス
- InnoDB のデッドロックを分析し、すべてをログに記録するパフォーマンス
- 長時間実行トランザクションと history list length (purge の遅延)パフォーマンス
- 短時間の完全な slow log を取得し pt-query-digest で分析するパフォーマンス
- EXPLAIN ANALYZE とオプティマイザトレースで不適切な実行計画をデバッグするパフォーマンス
- インデックスのない列のヒストグラムを作成・管理するインデックスと統計
- 未使用 / 冗長なインデックスを特定し、不可視化してから安全に削除するインデックスと統計
- バッファプールは十分か: ヒット率、wait_free、オンラインでのサイズ変更メモリ
- RANGE パーティションのメンテナンス: 将来のパーティションを追加し、古いものをアーカイブ / 削除するパーティション化
- ロールによる最小権限モデルを構築する (CREATE ROLE、DEFAULT ROLE)セキュリティ
- パスワードポリシー、ログイン失敗時のロックアウト、ダウンタイムなしのパスワードローテーションセキュリティ
- TLS を強制し、非 TLS 接続を特定し、再起動なしで証明書を更新するセキュリティ
- リスクのあるアカウントを監査する: 空パスワード、'%' ホスト、SUPER、mysql_native_passwordセキュリティ
- 8.0 → 8.4 LTS アップグレードの事前チェック (util.checkForServerUpgrade)アップグレード
- latin1 / utf8mb3 テーブルを utf8mb4 に変換するメンテナンス