ホームページ >データベース >mysql チュートリアル >MySQL が完全バックアップとリカバリを導入

MySQL が完全バックアップとリカバリを導入

coldplay.xixi
coldplay.xixi転載
2021-02-13 10:00:136631ブラウズ

MySQL が完全バックアップとリカバリを導入

#無料学習の推奨事項:

mysql ビデオ チュートリアル

記事ディレクトリ

    はじめに
  • #1. MySQL の完全バックアップ
  • #1. データベースのバックアップ方法の説明
    • ##1.1 データベースのバックアップの重要性
      • 1.2 データベース バックアップの分類
      • ##1.2.1 物理バックアップ
      • ##1.2.2 論理バックアップ
      • ##1.2. 3 フル バックアップ
        • 1.2.4 差分バックアップ
        • 1.2.5 増分バックアップ
        • ##1.2.6 バックアップ方法の比較
        • ## 1.3 MySQL の完全バックアップ概念の解釈
        • 2.mysqldump バックアップのウォークスルー
      • 2.1 tar を使用してフォルダーのバックアップをパッケージ化する
      2.2 mysqldump ツールのバックアップを使用する
      • ##2. MySQL の完全なリカバリ
      • 1. データベース操作全体の復元
  • #1.1 データベース全体を復元するソース コマンド
  • 1.2 データベース全体を復元する MySQL コマンド
    • 2. テーブルの復元操作
      • 2.1 source コマンドを使用してテーブルを復元します
      • 2.2 mysql コマンドを使用してテーブルを復元します
    • 3.MySQL バックアップのアイデア
      まえがき
    オフィスオートメーションと電子商取引の急速な発展に伴い、企業は情報システムへの依存度をますます高めています。 . データベースは情報システムの中核です。重要な役割を果たしているコアです。
データベースのバックアップは、重要なデータを適時に復元し、データ損失が発生した場合にデータ損失を防ぐための重要な手段です。

A合理的なデータベース バックアップ プランを作成し、データが失われた場合にデータを効果的に復元できますが、技術的な実装の難しさとリソースの効果的な使用も考慮する必要があります

  • #1. MySQL フル バックアップ
  • 1. データベース バックアップ方法の詳細な紹介

1.1 データベース バックアップの重要性

本番環境で重要なのは、データ損失があれば重大な結果を招く可能性があることです。

データベース バックアップの重要性は主に次の点に反映されます。

データベースの高可用性と災害復旧の向上システムの復元可能性、データベース システムがクラッシュした場合、データベース バックアップがなければデータを見つけることができません

データベース バックアップを使用してデータベースを復元することは、データベースがクラッシュした場合のデータ回復コストを最小限に抑えるための最良のソリューションです。ユーザーはデータを再追加できます。価格が高すぎます。

データがなければ何もありません。データベースのバックアップは災害を防ぐ強力な手段です。

  1. #データベースを使用する過程で、データ損失の原因は数多くあります。
  2. プログラム エラー: データベース操作プログラムで避けられないエラーを指し、データ損失が発生します。
  3. 人的エラー: ユーザーの誤操作によって引き起こされたデータを指します。破壊された場合、システムを攻撃するハッカーによって引き起こされるデータ損失も考えられます。
コンピューター障害: サーバーのオペレーティング システムまたはデータベースを実行しているソフトウェアへの損傷を指します。データ損傷を引き起こす可能性があります。

ディスク障害: データを保存するハードドライブなどのハードウェアデバイスを指します。長期間の運用により損傷し、データ損失を引き起こす可能性があります。

    災害 (例: (火災、地震など)、盗難: データ損失を引き起こす可能性のある自然災害などの発生を指します
  1. #データ損失は、重大な経済的損失を引き起こします。 、Ctrip のデータベースは 2015 年 5 月 28 日にクラッシュし、損失は 1 時間あたり約 106 万米ドルに達しました
  2. したがって、企業情報システムの構築において、データベースのバックアップ管理は非常に重要です
  3. # 1.2 データベース バックアップの分類
バックアップ方法には、物理​​的なものから論理的なものまでさまざまな種類があります。バックアップは次のカテゴリに分類できます。
  • 1.2 .1 物理バックアップ
  • は、データベース オペレーティング システムの物理ファイル (データ ファイル、ログ ファイルなど) を指します。バックアップ

物理バックアップは、オフライン バックアップ (コールド バックアップ) とオンライン バックアップ (ホット バックアップ)

コールド バックアップ (オフライン バックアップ): データベースが閉じているときに実行されます。バックアップ操作により、データベースの整合性がより確実に確保されます。

ホット バックアップ (オンライン バックアップ) ): データベースの実行状態で動作します。このバックアップ方法はデータベースのログ ファイルに依存します

#1.2.2 論理バックアップ

    ##バックアップを指します。データベース論理コンポーネント (テーブルやその他のデータベース オブジェクトなど)
  • データベース バックアップ戦略の観点から見ると、バックアップは完全バックアップ、差分バックアップ、および増分バックアップに分類できます
  • 1.2.3 完全バックアップ

    • データを毎回完全にバックアップ
    • ユーザー テーブル、システム テーブル、インデックス、ビューなどを含むデータベース全体をバックアップできます。ストアド プロシージャなどのすべてのデータベース オブジェクト
    • ただし、より多くの時間と領域が必要となるため、完全バックアップを実行するサイクルは長くなります

    1.2.4 差分バックアップ

    • 前回の完全バックアップ以降に変更されたファイルをバックアップします。つまり、データベース部分の内容のみをバックアップします。
    • ファイルのみが含まれるため、元の完全バックアップよりもサイズが小さくなります。前回の完全バックアップ以降 データベースは次の時点で変更されました
    • その利点は、高速なストレージと回復速度です

    1.2.5 増分バックアップ

    • これらのみ前回完全に復元されたファイル バックアップまたは増分バックアップ後には、変更されたファイルのみがバックアップされます

    1.2.6 バックアップ方法の比較

    ##完全バックアップ#増分バックアップ##完全バックアップ中の状態 表 1、表 2表 1、表 2表 1、表 2テーブル 3 の作成テーブル 3作成テーブル 4 テーブル 3 、表 4
    バックアップ方法##差分バックアップ
    ##初めてのコンテンツの追加 テーブル 3 の作成
    テーブル 3 の作成 コンテンツのバックアップ テーブル 1、テーブル 2、テーブル 3
    テーブル 3 2 回目のコンテンツの追加 テーブル 4の作成
    テーブル 4 の作成 内容のバックアップ テーブル 1、テーブル 2、テーブル 3、テーブル 4
    表 4
    • 完全バックアップでは、データベース全体の内容が毎回バックアップされます
    • 差分バックアップは、コンテンツを最初に追加した後、つまり新しく追加されたコンテンツがバックアップされ、2 回目以降はバックアップされます。コンテンツの追加バックアップでは、初めて追加されたコンテンツもバックアップされます。完全バックアップのステータスに基づいて決定されます。
    • 差分バックアップでは、完全バックアップ後のすべての変更が毎回バックアップされます。以前かどうかは関係ありません。差分バックアップを実行しました。
    • 増分バックアップでは、新しく変更された各コンテンツのみがバックアップされます。初めてテーブル 3 を作成したときに、テーブル 3 をバックアップします。2 番目にテーブル 4 を追加した後、テーブル 3 は以前にバックアップされているため、テーブル 4 の内容のみがバックアップされます

    #1.3 MySQL 完全バックアップの概念の解釈

    #MySQL のバックアップ方法には主にフル バックアップと増分バックアップがあります
    • フル バックアップとは、データベース全体、データベース構造、ファイル構造をバックアップすることであり、バックアップ完了時のデータベースを保存し、その基礎となります。
    • 完全バックアップの利点は、バックアップの復元操作が簡単で便利であることですが、欠点は、データの重複が多く、大量のバックアップ領域を消費することです。バックアップ時間が長い
    • 実稼働環境では両方のバックアップ方法が使用され、バックアップを実現するには合理的かつ効率的な計画を作成する必要があります。データの目的は、データ損失による深刻な結果を回避することです
    2.mysqldump バックアップ演習

    MySQL データベースのバックアップは 2 つの方法で実行できます
    • データベースは実際にはファイルであるため、 、データベース フォルダーを直接パッケージ化することも、特別なバックアップ ツール mysqldump を使用してバックアップ作業を実行することもできます。
    2.1 tar を使用してフォルダーのバックアップをパッケージ化します

    MySQL データベース ファイルは、デフォルトで安全なディレクトリのデータ フォルダに保存されます。データ フォルダは直接保存できます。多くのスペースを占有するため、データのパッケージ化と圧縮を使用して保存できます

    • MySQL が完全バックアップとリカバリを導入
      yum -y install xz#数据库文件很大,可以使用压缩率较大的xz格式压缩,首选需要安装xz压缩格式工具tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/#对数据库文件夹进行打包操作ls /opt#查看打包命令是否运行成功,已经生成了备份文件du -sh /opt/mysql-2021-02-05.tar.xz #对比打包前后的文件大小,可以看到压缩的备份文件所占用空间很小tar -Jxvf /opt/mysql-2021-02-05.tar.xz -C /usr/local/mysql/data/systemctl restart mysql#如果数据库文件损坏数据丢失,可以解压缩文件,相当于数据恢复

    MySQL が完全バックアップとリカバリを導入

    2.2 mysqldump ツールを使用してバックアップを行う

    上記のデモは MySQL 用です。データベース ディレクトリ全体は、データベースのすべての内容をバックアップすることによって圧縮されます。
    • mysqldump は、mysql によってデータベースの転送と保存に使用されるユーティリティ プログラム (付属) です。主に SQL スクリプトを生成します。データベースに必要なコマンド (CREATE、TABLE、INSERT など)
    • mysqldump を使用すると、バックアップの内容をより柔軟に制御できます。たとえば、特定のテーブルやライブラリをバックアップできます。個別にアップ
    • #
      #开始之前,创建库和表,用作例子mysql -uroot -p123123#输入密码进入数据库,以上为我的密码create database SCHOOL;#创建库use SCHOOL;create table CLASS01 ( id int(2) not null auto_increment, name varchar(10) not null, sex char(5) not null, hobby varchar(10), primary key (id));#创建表结构#字段一:id,最大显示长度2,不能为空,自动递增从1开始#字段二:name,可变长度字段,10,不能为空#字段三:sex,固定长度5,不能为空#字段四:hobby,可变长度,最多10字符#字段四:主键(id)insert into CLASS01 values(1,'wangyi','man','reading');insert into CLASS01 values(2,'wanger','woman','singing');#插入2条数据select * from CLASS01;#检查一下quit#退出数据库

    #使用 mysqldump 对某些表进行完全备份,命令格式如下:mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql#导出的为数据库脚本文件例:对库SCHOOL中的表class进行备份至/opt/目录下mysqldump -uroot -p[密码] SCHOOL CLASS01 > /opt/test01.sql
    MySQL が完全バックアップとリカバリを導入

    #

    #对某些库进行完全备份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/#查看打包命令是否运行成功,已经生成了备份文件
    MySQL が完全バックアップとリカバリを導入

    MySQL が完全バックアップとリカバリを導入##

    cat /opt/test05.sql#分析 mysqldump 工具生成的备份文件的内容

    MySQL が完全バックアップとリカバリを導入

    MySQL が完全バックアップとリカバリを導入 -d オプションは上記で使用されており、データベースのテーブル構造のみが保存され、テーブルにはライブラリが 1 つだけ存在することを意味します。

      削除と作成が最も一般的です。MySQL コマンドは、MySQL の実行可能なステートメントです。これらのステートメントを使用すると、テーブルと同じ構造のテーブルを作成できます。現在のテーブル
    • -d オプションを使用しない場合、データもバックアップされます。データの保存方法を見てみましょう
    cat /opt/test01
  • ##-d パラメーターを使用した場合との違いは、insert into ステートメントが最後にあることです。2 つのデータがデータベースに挿入されました。つまり、データのバックアップは保存された挿入ステートメント操作MySQL が完全バックアップとリカバリを導入

    上記の分析を通じて、バックアップの本質はデータベースの作成ステートメントと現在のテーブル構造を保存することであることが容易に理解できます。データには挿入ステートメントがあります。を使用すると、データベースの状態を直接復元できます
    • #2. MySQL の完全なリカバリ

    前の紹介データベースの場合、mysqldump ツールを使用してデータ作成ステートメントをバックアップ スクリプト ファイルに保存します。

    エラーが発生した場合は、次の方法を使用してエラーを復元できます。
    • 1.データベース全体の復元操作

    1.1 データベース全体を復元するためのソース コマンド

    mysql -uroot -p123123show databases;drop database SCHOOL;show databases;source /opt/test03.sql#之前备份过的,该备份为SCHOOL和sys两个库的完整备份#注意!选项得加“--databases”才是完整的备份,不然会恢复不了

    1.2 MySQL コマンドデータベース全体を復元する場合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>
    • 2.1 Source コマンドを使用してテーブルを復元する
    mysql -uroot -p123123use SCHOOL;show tables;drop table CLASS01;
     source /opt/test01.sql#恢复表show tables;select * from CLASS01;#查看

    MySQL が完全バックアップとリカバリを導入
    MySQL が完全バックアップとリカバリを導入

    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 需要定期实施备份,指定合适的备份计划或策略,并严格遵守
    • 除了进行完全备份,开启 MySQL 服务器的日志功能也很重要,完全备份加上日志,可以对 MySQL 进行最大化还原
    • 备份文件的名字还需钥使用统一的易于理解的名称,推荐使用库名或表名加上时间的命名规则,在需要恢复数据库时能很容易的定位到相应的所需备份文件

    相关免费学习推荐:mysql数据库(视频)

以上がMySQL が完全バックアップとリカバリを導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。