mysqlデータベースのバックアップの多様な実現方法をまとめました。
6112 ワード
この実例は、mysqlデータベースのバックアップの様々な実施形態を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
一、mysqldumpを使ってバックアップする
1、すべてのデータベースを完全バックアップする
mysql 8から該当するオブジェクトの定義は、データ辞書に保存されています。これらのテーブルはバックアップされません。
保存プロセスとイベントを含めるには、次のような文言を使います。
時間的に回復するには、指定します。
--single-transactionは、バックアップの前に、トランザクション分離レベルをREPEATABLE READモードに設定し、START TRANSACTIONを実行して、一貫したバックアップを提供します。
--master-dataサーバのバイナリログの位置をsqlファイルに出力します。
mysqldump-u root-p--all-databases--routines--events--single-traction--mater-data>E:/all.sql
--master-data=2は、エクスポート中に現在のライブラリのbinlogsとposポイントを記録し、エクスポートファイルにこの行を注釈することを表します。
--master-data=1は、エクスポート中に現在のライブラリのbinlogとposポイントを記録し、エクスポートファイルにはこの行をコメントしないことを示します。
3、ライブラリからエクスポートする場合、メインライブラリのバイナリログの位置を記録します。
mysqldump-u root-p--all-databases--routines--events--single-transaction--dump-slate>E:/all.sql
--dump-slavie=2は、エクスポート中にメインライブラリのbinlogとposポイントを記録し、ファイルのリードにコメントする行を表します。
--dump-slavie=1は、エクスポート中にメインライブラリのbinlogとposポイントを記録し、エクスポートファイルにはこの行を注釈しないことを示しています。
4、データベースとテーブルのエクスポートを指定します。
mysqldump-u root-p--databasesデータベース--ignore-table=データベース.データテーブル>E:/bak.sql
6、指定行
mysqldump-u root-p--databasesデータベース--テーブルデータテーブル--where=「条件」E:/bak.sql
あるいはlimitで結果集を制限します。
mysqldump-u root-p--databasesデータベース--テーブルデータテーブル--where=「条件LIMIT条数」E:/bak.sql
7、リモートサーバをエクスポート
mysqldump-u root-p-hホストIP--all-databases--routines--events--triggers>E:/all.sql
8、他のサーバとデータを統合するためのバックアップ
mysqldump-u root-p--databasesデータベース--skyp-add-drop-table--replace>E:/bak.sql
--skyp-add-drop-table:drop table文をエクスポートファイルに書き込みません。
--replace:insert文ではなくreplace into文を使ってエクスポートします。
二、mysql pmpを使ってバックアップする。
1、並列処理を行い、スレッド数を指定してバックアップを加速する
mysql pmp-u root-p--parallel-schemas=4:データベース--default paralles lism=2>E:/all.sql
3、データベースを削除または含める
このほかにも同様の--include-events,--include-routines,--include-tables,--include-triggers,--include-usersなどがあります。
このほかにも同様の--exclude-events、--exclude-routines、--exclude-tables、--exclude-triggers、--exclude-usersなどがあります。
4、バックアップユーザ
mysqlpmp--exclude-databases=%--exclude-users=root--users>E:/user.sql
5、圧縮バックアップ
使用--copress-output=lz 4または--comppress-out put=zlib
mydumperは単独でインストールする必要があります。公式サイト:https://github.com/maxbube/mydumper/releases
1、完全バックアップ
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル--events--routines--outputdirエクスポートパス
3、正規表現を使って特定のデータベースをバックアップする
mydumper-u root--passoword=パスワード--regex'^(?)!mysql test)'--outputdirは、パスをエクスポートします。
バックアップからmysqlとtestデータベースを排除します。
4、バックアップ大表
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル--triggers--events--routines--rows=100000-t 8--trx-consistency-only--outputdirはルートをエクスポートします。
--ローソンは表を何行に分けるかを示しています。
――trx-consistency-onlyはinnodbであれば、ロックを最小化します。
-t指定スレッド数
5、圧縮バックアップ
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル-t 8--trx-consistency-only--comppress--outputdir導出経路
6、データのみのバックアップ
no-schemasオプションでschemaをスキップしてデータのみをバックアップします。
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル-t 8--no-schemas--copress--trx-consistency-only--outputdirはパスをエクスポートします。
四、一般ファイルでバックアップを行う
データディレクトリのファイルを直接コピーしてバックアップすることができます。まずmysqlをオフにして、ファイルをコピーして、mysqlを起動します。
五、xtrabackupを使ってバックアップを行う
https://www.percona.com/downloads/XtraBackup/LATEST/
1、フルバックアップ
xtrabackup--defaults-file=/etc/my.cnf--ホストIP--user=ユーザー名--password=パスワード--ポート--backup--parallel=3--taget-dir=バックアップディレクトリ
--defaults-fileデータベース配置ファイル
--backupはバックアップ操作を実行します。
--parallelバックアップ時に併発したスレッド数
--targt-dirバックアップファイルのディレクトリ
2、インクリメンタルバックアップ
xtrabackup--defaults-file=/etc/my.cnf\
--ホット=ホストIP\
--user=ユーザー名\
--password=パスワード\
--ポルト=3306\
--backup\
--parallel=3\
--targt-dir=インクリメンタルバックアップディレクトリ\
--incremental-basedir=フルバックアップディレクトリ\
インクリメンタルバックアップはフルバックアップに基づいています。--incremental-basedirはフルバックアップディレクトリを指します。
MySQLに関する詳細について興味がある読者は、本駅のテーマを見ることができます。「MySQLインデックス操作テクニックまとめ」、「MySQL常用関数大まとめ」、「MySQLログ操作テクニック大全」、「MySQL事務操作技術まとめ」、「MySQL記憶プロセス技術大全」および「MySQLデータベースのロックに関するスキルのまとめ」
この記事が皆様のMySQLデータベース計に役立つことを期待します。
一、mysqldumpを使ってバックアップする
1、すべてのデータベースを完全バックアップする
mysqldump -u root -p --all-databases > E:/all.sql
mysql 8の前に、プロセスとイベントはmysql.procとmysql.eventテーブルに格納されます。mysql 8から該当するオブジェクトの定義は、データ辞書に保存されています。これらのテーブルはバックアップされません。
保存プロセスとイベントを含めるには、次のような文言を使います。
mysqldump -u root -p --all-databases --routines --events > E:/all.sql
2、時点回復時間的に回復するには、指定します。
--single-transactionは、バックアップの前に、トランザクション分離レベルをREPEATABLE READモードに設定し、START TRANSACTIONを実行して、一貫したバックアップを提供します。
--master-dataサーバのバイナリログの位置をsqlファイルに出力します。
mysqldump-u root-p--all-databases--routines--events--single-traction--mater-data>E:/all.sql
--master-data=2は、エクスポート中に現在のライブラリのbinlogsとposポイントを記録し、エクスポートファイルにこの行を注釈することを表します。
--master-data=1は、エクスポート中に現在のライブラリのbinlogとposポイントを記録し、エクスポートファイルにはこの行をコメントしないことを示します。
3、ライブラリからエクスポートする場合、メインライブラリのバイナリログの位置を記録します。
mysqldump-u root-p--all-databases--routines--events--single-transaction--dump-slate>E:/all.sql
--dump-slavie=2は、エクスポート中にメインライブラリのbinlogとposポイントを記録し、ファイルのリードにコメントする行を表します。
--dump-slavie=1は、エクスポート中にメインライブラリのbinlogとposポイントを記録し、エクスポートファイルにはこの行を注釈しないことを示しています。
4、データベースとテーブルのエクスポートを指定します。
mysqldump -u root -p --databases > E:/bak.sql
mysqldump -u root -p --databases --tables > E:/bak.sql
5、無視表mysqldump-u root-p--databasesデータベース--ignore-table=データベース.データテーブル>E:/bak.sql
6、指定行
mysqldump-u root-p--databasesデータベース--テーブルデータテーブル--where=「条件」E:/bak.sql
あるいはlimitで結果集を制限します。
mysqldump-u root-p--databasesデータベース--テーブルデータテーブル--where=「条件LIMIT条数」E:/bak.sql
7、リモートサーバをエクスポート
mysqldump-u root-p-hホストIP--all-databases--routines--events--triggers>E:/all.sql
8、他のサーバとデータを統合するためのバックアップ
mysqldump-u root-p--databasesデータベース--skyp-add-drop-table--replace>E:/bak.sql
--skyp-add-drop-table:drop table文をエクスポートファイルに書き込みません。
--replace:insert文ではなくreplace into文を使ってエクスポートします。
二、mysql pmpを使ってバックアップする。
1、並列処理を行い、スレッド数を指定してバックアップを加速する
mysqlpump --default-parallelism=8 > E:/all.sql
2、各データベースのスレッド数を指定することもできます。mysql pmp-u root-p--parallel-schemas=4:データベース--default paralles lism=2>E:/all.sql
3、データベースを削除または含める
mysqlpump -u root -p --include-databases=%t > E:/bak.sql
tで終わるすべてのデータベースをバックアップします。複数のデータベースはカンマで区切られています。データベース名は%または_を使用できます。ワイルドカードこのほかにも同様の--include-events,--include-routines,--include-tables,--include-triggers,--include-usersなどがあります。
mysqlpump -u root -p --exclude-databases=a% > E:/bak.sql
aで始まるデータベースを除外し、複数のデータベースをカンマで区切って、データベース名は%または_を使用できます。ワイルドカードこのほかにも同様の--exclude-events、--exclude-routines、--exclude-tables、--exclude-triggers、--exclude-usersなどがあります。
4、バックアップユーザ
mysqlpump -u root -p --exclude-databases=% --users > E:/user.sql
いくつかのユーザを排除することができます。mysqlpmp--exclude-databases=%--exclude-users=root--users>E:/user.sql
5、圧縮バックアップ
使用--copress-output=lz 4または--comppress-out put=zlib
mysqlpump -u root -p --compress-output=lz4 > E:/all.lz4
mysqlpump -u root -p --compress-output=zlib > E:/all.zlib
下記の文でストレス解消を行います。
lz4_decompress E:/all.lz4 all.sql
zlib_decompress E:/all.zlib all.sql
三、mydumperを使ってバックアップを行うmydumperは単独でインストールする必要があります。公式サイト:https://github.com/maxbube/mydumper/releases
1、完全バックアップ
mydumper -u root --password= --outputdir
2、個別のテーブルのバックアップmydumper-u root--password=パスワード-Bデータベース-Tデータテーブル--events--routines--outputdirエクスポートパス
3、正規表現を使って特定のデータベースをバックアップする
mydumper-u root--passoword=パスワード--regex'^(?)!mysql test)'--outputdirは、パスをエクスポートします。
バックアップからmysqlとtestデータベースを排除します。
4、バックアップ大表
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル--triggers--events--routines--rows=100000-t 8--trx-consistency-only--outputdirはルートをエクスポートします。
--ローソンは表を何行に分けるかを示しています。
――trx-consistency-onlyはinnodbであれば、ロックを最小化します。
-t指定スレッド数
5、圧縮バックアップ
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル-t 8--trx-consistency-only--comppress--outputdir導出経路
6、データのみのバックアップ
no-schemasオプションでschemaをスキップしてデータのみをバックアップします。
mydumper-u root--password=パスワード-Bデータベース-Tデータテーブル-t 8--no-schemas--copress--trx-consistency-only--outputdirはパスをエクスポートします。
四、一般ファイルでバックアップを行う
データディレクトリのファイルを直接コピーしてバックアップすることができます。まずmysqlをオフにして、ファイルをコピーして、mysqlを起動します。
五、xtrabackupを使ってバックアップを行う
https://www.percona.com/downloads/XtraBackup/LATEST/
1、フルバックアップ
xtrabackup--defaults-file=/etc/my.cnf--ホストIP--user=ユーザー名--password=パスワード--ポート--backup--parallel=3--taget-dir=バックアップディレクトリ
--defaults-fileデータベース配置ファイル
--backupはバックアップ操作を実行します。
--parallelバックアップ時に併発したスレッド数
--targt-dirバックアップファイルのディレクトリ
2、インクリメンタルバックアップ
xtrabackup--defaults-file=/etc/my.cnf\
--ホット=ホストIP\
--user=ユーザー名\
--password=パスワード\
--ポルト=3306\
--backup\
--parallel=3\
--targt-dir=インクリメンタルバックアップディレクトリ\
--incremental-basedir=フルバックアップディレクトリ\
インクリメンタルバックアップはフルバックアップに基づいています。--incremental-basedirはフルバックアップディレクトリを指します。
MySQLに関する詳細について興味がある読者は、本駅のテーマを見ることができます。「MySQLインデックス操作テクニックまとめ」、「MySQL常用関数大まとめ」、「MySQLログ操作テクニック大全」、「MySQL事務操作技術まとめ」、「MySQL記憶プロセス技術大全」および「MySQLデータベースのロックに関するスキルのまとめ」
この記事が皆様のMySQLデータベース計に役立つことを期待します。