序文: 前回の記事では、さまざまな MySQL ステートメント構文の使用法とユーザー権限に関する知識を紹介しました。この記事では、主にMySQLデータベースデータのバックアップとリカバリに関する知識について説明し、論理バックアップに焦点を当て、mysqldumpツールの使用方法とリカバリ方法を紹介します。
1. すべてのデータベースをバックアップする mysqldump を使用してインスタンス全体をバックアップする場合は、--all-databases または -A パラメータを使用できます。 mysqldump -uroot -pxxxxxx --all-databases > /tmp/all_database.sqlmysqldump -uroot -pxxxxxx -A > /tmp/all_database.sql 2. データベースをバックアップする 場合によっては、特定のデータベースのみをバックアップする必要があります。この場合、--databases または -B パラメータを使用し、その後にデータベース名を指定します。複数のデータベースを指定する場合は、スペースで区切ります。 mysqldump -uroot -pxxxxxx --databases testdb1 testdb2 > /tmp/testdb.sqlmysqldump -uroot -pxxxxxx -B testdb1 testdb2 > /tmp/testdb.sql 3. いくつかのテーブルをバックアップする 通常、いくつかのテーブルをバックアップする必要もあります。たとえば、テーブルを変更する前にバックアップを作成する場合は、次のように実行できます。 testdbライブラリのtest_tbテーブルのみをバックアップする mysqldump -uroot -pxxxxxx testdb test_tb > /tmp/test_tb.sql#複数のテーブルをバックアップ mysqldump -uroot -pxxxxxx testdb tb1 tb2 tb3 > /tmp/tb.sql 4. データの一部を単一のテーブルにバックアップする テーブルに大量のデータがあり、そのデータの一部だけが必要な場合、どうすればよいでしょうか?このような場合に --where オプションを使用できます。ここで、その後に満たす必要のある条件が続きます。たとえば、create_time が 2019-08-01 より大きい tb1 テーブルのデータのみが必要な場合は、次のようにエクスポートできます。 mysqldump -uroot -pxxxxxx testdb tb1 --where=" create_time >= '2019-08-01 00:00:00' " > /tmp/tb1.sql 5. 特定のテーブルをエクスポートから除外する データベースをバックアップしたいが、一部のテーブルに大量のデータが含まれていたり、ビジネスと密接な関係がなかったりする場合は、これらのテーブルを除外することを検討できます。同様に、オプション --ignore-table でこの機能を実現できます。 mysqldump -uroot -pxxxxxx testdb --ignore-table=testdb.tb1 > /tmp/testdb.sql 6. 構造のみまたはデータのみをバックアップする 構造のみをバックアップするには、--no-data オプション (省略形 -d) を使用します。データのみをバックアップするには、--no-create-info オプション (省略形 -t) を使用します。 mysqldump -uroot -pxxxxxx testdb --no-data > /tmp/testdb_jiegou.sqlmysqldump -uroot -pxxxxxx testdb --no-create-info > /tmp/testdb_data.sql 7. バックアップにはストアドプロシージャ、関数、イベントが含まれます デフォルトでは、mysqldump バックアップにはストアド プロシージャ、カスタム関数、およびイベントは含まれません。 --routines または -R オプションを使用してストアド プロシージャと関数をバックアップし、--events または -E パラメータを使用してイベントをバックアップできます。たとえば、ストアド プロシージャとイベントを含む testdb データベース全体をバックアップするとします。 mysqldump -uroot -pxxxxxx -R -E --databases testdb > /tmp/testdb.sql 8. トランザクション形式でのバックアップ ダンプ処理中にデータの一貫性を確保し、テーブル ロックを削減したい場合は、--single-transaction オプションを使用できます。このオプションは InnoDB データ テーブルに非常に役立ち、テーブルをロックしません。 mysqldump -uroot -pxxxxxx --single-transaction --databases testdb > /tmp/testdb.sql 9. 完全なバックアップとリカバリ 昨日の完全バックアップがあり、それを今復元したい場合は、次のようにします。 mysql -uroot -pxxxxxx < /tmp/all_database.sql 10. 完全バックアップから単一のデータベースを復元する たとえば、特定のライブラリのみを復元したいが、インスタンス全体のバックアップがあるといった要件があるかもしれません。このとき、単一のライブラリのバックアップをフル バックアップから分離できるかどうか疑問に思います。答えは「はい」です。次の簡単なシェルが役立ちます。 sed -n '/^-- 現在のデータベース: `testdb`/,/^-- 現在のデータベース: `/p' all_databases.sql > testdb.sql 分離が完了したら、testdb.sqlをインポートして単一のデータベースを復元できます。 11. 単一のデータベースバックアップから単一のテーブルを復元する この要件は非常に一般的です。結局のところ、単一データベースまたは完全リカバリには多くの作業が伴い、リカバリ時間も比較的長くなります。たとえば、どのテーブルが誤って操作されたかがわかっている場合は、単一テーブル リカバリを使用してそれをリカバリできます。たとえば、testdbデータベース全体のバックアップはありますが、tb1テーブルにエラーがあるため、このテーブルを個別に復元する必要があります。次に、次のようにします。 cat testdb.sql | sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `tb1`/!d;q' > /tmp/tb1_jiegou.sqlcat testdb.sql | grep --ignore-case 'insert into `tb1`' > /tmp/tb1_data.sql シェル構文を使用して、テーブルの作成とデータの挿入のステートメントを分離し、それらを 1 つずつエクスポートしてリカバリを完了します。 要約: この記事では、さまざまなシナリオでのバックアップとリカバリの方法について説明します。運用環境では、より複雑なシナリオが存在する可能性があり、柔軟な対応が求められます。 上記はMySQLのバックアップとリカバリの詳細な説明です。MySQLのバックアップとリカバリの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Docker初心者が初めてよく使うコマンドを試してみる練習記録
>>: Vueのトグルボタンをクリックしてボタンを有効にし、無効にします。
概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...
VM Ware 仮想マシン CentOS の時刻は、次の図に示すように、現地時間と一致しません。おそ...
図に示すように: テーブルデータこのようなツリーの場合、「Gao Yinrui」の下のすべてのノード...
echarts コンポーネントの公式ウェブサイト アドレス: https://echarts.apa...
CSS3以前は、グラデーション画像は背景画像としてのみ使用できました。 CSS3 のグラデーション構...
まず、空気質データと地図データを組み合わせる必要があります。マップデータには属性名があるさまざまな都...
序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...
*ページを作成する: 2つの入力ボックスとボタン*コードと手順/* 1. 入力行と列の値を取得する2...
この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...
目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...
理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...
目次1. 成果を達成する2. バックエンドの実装2.1 エンティティクラス2.2 データベース内のデ...
MySQL 一時テーブルは、一時的なデータを保存する必要がある場合に非常に便利です。一時テーブルは現...
目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...
必要な方はどなたでも参考にしてください。試してみて問題が見つかった場合は、メッセージを残してお知らせ...