ホームページ >データベース >mysql チュートリアル >MySQL が完全バックアップとリカバリを導入
#無料学習の推奨事項:
記事ディレクトリ
A合理的なデータベース バックアップ プランを作成し、データが失われた場合にデータを効果的に復元できますが、技術的な実装の難しさとリソースの効果的な使用も考慮する必要があります
1.1 データベース バックアップの重要性
本番環境で重要なのは、データ損失があれば重大な結果を招く可能性があることです。データベース バックアップの重要性は主に次の点に反映されます。
データベースの高可用性と災害復旧の向上システムの復元可能性、データベース システムがクラッシュした場合、データベース バックアップがなければデータを見つけることができません
データベース バックアップを使用してデータベースを復元することは、データベースがクラッシュした場合のデータ回復コストを最小限に抑えるための最良のソリューションです。ユーザーはデータを再追加できます。価格が高すぎます。データがなければ何もありません。データベースのバックアップは災害を防ぐ強力な手段です。コンピューター障害: サーバーのオペレーティング システムまたはデータベースを実行しているソフトウェアへの損傷を指します。データ損傷を引き起こす可能性があります。
- #データベースを使用する過程で、データ損失の原因は数多くあります。
- プログラム エラー: データベース操作プログラムで避けられないエラーを指し、データ損失が発生します。
- 人的エラー: ユーザーの誤操作によって引き起こされたデータを指します。破壊された場合、システムを攻撃するハッカーによって引き起こされるデータ損失も考えられます。
ディスク障害: データを保存するハードドライブなどのハードウェアデバイスを指します。長期間の運用により損傷し、データ損失を引き起こす可能性があります。
災害 (例: (火災、地震など)、盗難: データ損失を引き起こす可能性のある自然災害などの発生を指します
バックアップ方法には、物理的なものから論理的なものまでさまざまな種類があります。バックアップは次のカテゴリに分類できます。- #データ損失は、重大な経済的損失を引き起こします。 、Ctrip のデータベースは 2015 年 5 月 28 日にクラッシュし、損失は 1 時間あたり約 106 万米ドルに達しました
- したがって、企業情報システムの構築において、データベースのバックアップ管理は非常に重要です
# 1.2 データベース バックアップの分類
コールド バックアップ (オフライン バックアップ): データベースが閉じているときに実行されます。バックアップ操作により、データベースの整合性がより確実に確保されます。ホット バックアップ (オンライン バックアップ) ): データベースの実行状態で動作します。このバックアップ方法はデータベースのログ ファイルに依存します
バックアップ方法 | ##完全バックアップ##差分バックアップ | #増分バックアップ##完全バックアップ中の状態 | |
---|---|---|---|
表 1、表 2 | ##初めてのコンテンツの追加 | テーブル 3 の作成 | |
テーブル 3 の作成 | コンテンツのバックアップ | テーブル 1、テーブル 2、テーブル 3 | |
テーブル 3 | 2 回目のコンテンツの追加 | テーブル 4の作成 | |
テーブル 4 の作成 | 内容のバックアップ | テーブル 1、テーブル 2、テーブル 3、テーブル 4 | |
表 4 |
#1.3 MySQL 完全バックアップの概念の解釈 #MySQL のバックアップ方法には主にフル バックアップと増分バックアップがあります
MySQL データベースのバックアップは 2 つの方法で実行できます
MySQL データベース ファイルは、デフォルトで安全なディレクトリのデータ フォルダに保存されます。データ フォルダは直接保存できます。多くのスペースを占有するため、データのパッケージ化と圧縮を使用して保存できます
上記のデモは MySQL 用です。データベース ディレクトリ全体は、データベースのすべての内容をバックアップすることによって圧縮されます。
#使用 mysqldump 对某些表进行完全备份,命令格式如下:mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql#导出的为数据库脚本文件例:对库SCHOOL中的表class进行备份至/opt/目录下mysqldump -uroot -p[密码] SCHOOL CLASS01 > /opt/test01.sql # #对某些库进行完全备份mysqldump -uroot -p[密码] [数据库名] > /目录/备份文件名.sql例:mysqldump -uroot -p123123 SCHOOL > /opt/test02#对多个库进行完全备份mysqldump -uroot -p123123 --databases SCHOOL sys > /opt/test03.sql#对所有库进行完全备份mysqldump -uroot -p123123 --all-databases > /opt/test04.sql#直接备份表结构mysqldump -uroot -p123123 -d SCHOOL CLASS01 > /opt/test05.sqlls /opt/#查看打包命令是否运行成功,已经生成了备份文件 ## cat /opt/test05.sql#分析 mysqldump 工具生成的备份文件的内容 -d オプションは上記で使用されており、データベースのテーブル構造のみが保存され、テーブルにはライブラリが 1 つだけ存在することを意味します。
cat /opt/test01 ##-d パラメーターを使用した場合との違いは、insert into ステートメントが最後にあることです。2 つのデータがデータベースに挿入されました。つまり、データのバックアップは保存された挿入ステートメント操作 上記の分析を通じて、バックアップの本質はデータベースの作成ステートメントと現在のテーブル構造を保存することであることが容易に理解できます。データには挿入ステートメントがあります。を使用すると、データベースの状態を直接復元できます
前の紹介データベースの場合、mysqldump ツールを使用してデータ作成ステートメントをバックアップ スクリプト ファイルに保存します。 エラーが発生した場合は、次の方法を使用してエラーを復元できます。
1.1 データベース全体を復元するためのソース コマンド mysql -uroot -p123123show databases;drop database SCHOOL;show databases;source /opt/test03.sql#之前备份过的,该备份为SCHOOL和sys两个库的完整备份#注意!选项得加“--databases”才是完整的备份,不然会恢复不了
1.2 MySQL コマンドデータベース全体を復元する場合 quitmysql -uroot -p123123 -e 'drop database SCHOOL;'mysql -uroot -p123123 -e 'SHOW DATABASES;'mysql -uroot -p123123 <p><strong></strong></p><p>2. テーブルの復元操作<img src="https://img.php.cn/upload/article/000/000/052/46d75be18c0819b67f9c8259bacd7776-9.png" alt="MySQL が完全バックアップとリカバリを導入"></p><p><strong>同じことを次の目的にも使用できます。データ テーブルの復元 Source コマンドと mysql コマンドの操作</strong></p>
mysql -uroot -p123123use SCHOOL;show tables;drop table CLASS01; source /opt/test01.sql#恢复表show tables;select * from CLASS01;#查看 2.2 使用 mysql 命令恢复表 quitmysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 -e 'DROP TABLES SCHOOL.CLASS01;'mysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 SCHOOL <p><img src="https://img.php.cn/upload/article/000/000/052/29945f61915e1a240cc5e16f53f849e5-12.png" alt="MySQL が完全バックアップとリカバリを導入"></p><p><strong>3.MySQL 备份思路</strong></p>
|
以上がMySQL が完全バックアップとリカバリを導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。