sql >> データベース >  >> RDS >> Mysql

MySQLまたはMariaDBデータベースをエクスポートする

    データベースを定期的にバックアップすることは、プロジェクトを稼働させた後の重要なステップの1つです。バックアップの頻度は、1日または1週間に1回です。データベースの変更が頻繁に行われるアプリケーションでは、毎日のバックアップが推奨されます。高可用性データベースの場合、垂直スケーリングではなく、適切なクラスター設定を検討する必要があります。このチュートリアルでは、 mysqldumpの使用法について説明します。 データベースのバックアップを取るコマンド。同じコマンドを自動化して、スケジュールされたバックアップを取ることができます。

    メモ :このチュートリアルでは、 mysqldumpで使用される最も一般的なオプションについてのみ説明します。 指図。また、公式ドキュメントを参照して、考えられるすべてのオプションを調べることもできます。同じコマンドを使用して、MySQLとMariaDBの両方のデータベースサーバーのバックアップを取ることができます。

    ローカルバックアップ

    バックアップ -このセクションでは、単一または複数のデータベースをエクスポートして、ファイルにローカルバックアップを作成する方法について説明します。

    許可 - mysqldump データベースをエクスポートするには、以下にリストされている特権が必要です。データベースのエクスポートに使用するユーザーアカウントには、適切な権限を割り当てる必要があります。

    • SELECT-テーブルをダンプする
    • SHOWVIEW-ビューをダンプする
    • TRIGGER-トリガーをダンプする
    • LOCKTABLES---single-transactionオプションが使用されていない場合

    コマンド -以下は、 mysqldumpの使用法です。 Ubuntuを含むWindowsとLinuxベースのシステムの両方のローカルバックアップを取るコマンド。トリプルドットは、複数の値を提供できることを意味します。

    # Regular command - Usage - Windows, Linux
    mysqldump [options] db_name [tbl_name ...] > <file path>
    mysqldump [options] --databases db_name ... > <file path>
    mysqldump [options] --all-databases > <file path>

    通常のコマンドを使用する例は次のとおりです。これらのサンプルコマンドは、ユーザーエンタープライズを使用しています データベースのバックアップを取るエンタープライズ 。ユーザーアカウントがauth_socketを使用している場合は、ユーザーとパスワードを指定する必要はありません。 MySQLサーバーにログインするためのアルゴリズム。システムユーザーはデータベースに直接アクセスできます。パスワードアルゴリズムの詳細については、MySQL5.7でネイティブパスワードを使用する方法とUbuntuにMySQL8をインストールする方法を参照してください。

    メモ :ユーザーにパスワードが割り当てられていない場合は、オプション-pを使用する必要はありません。

    以下に、ユーザー名、ホスト、およびポートを使用して単一のデータベースをバックアップする例を示します。パスワードは提供しないでください セキュリティの目的でこれらのコマンドを使用します。 mysqldumpのパスワードを指定できます cronの安全なオプションと見なされる構成ファイル内 仕事。もう1つのオプションは、例に示すように、catコマンドを使用して暗号化されたパスワード(Pleskの使用方法と同様)を使用することです。コマンド内にパスワードが指定されていない場合、システムはパスワードの入力を求めます。これらのコマンドを使用して、データベース全体または単一または複数のテーブルをエクスポートできます。

    # All tables - with username, without password - prompts for password
    mysqldump -u enterprise -p enterprise > enterprise.sql

    # All tables - with username, with password - insecure
    mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

    # All tables - with username, with password - Plesk way
    mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

    # All tables - with host, with port, with username, without password - prompts for password
    mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

    # Single table(user) - with username, without password - prompts for password
    mysqldump -u enterprise -p enterprise [user] > enterprise.sql

    # Multiple tables(user, profile) - with username, without password - prompts for password
    mysqldump -u enterprise -p enterprise user profile > enterprise.sql

    以下に、ユーザー名、ホスト、およびポートを使用して複数のデータベースをバックアップする例を示します。

    # Multiple databases - with username, without password - prompts for password
    mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

    # Multiple databases - with username, with password
    mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

    以下は、ユーザー名、ホスト、およびポートを使用してすべてのデータベースをバックアップする例です。

    # All databases - with username, without password - prompts for password
    mysqldump -u enterprise -p --all-databases > mydbs.sql

    # All databases - with username, with password
    mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

    WindowsのPowerShellユーザーは、以下に説明するように別のコマンドが必要になります。

    # PowerShell on Windows
    shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
    shell> mysqldump [options] --databases db_name ... --result-file=<file path>
    shell> mysqldump [options] --all-databases --result-file=<file path>

    # Example
    shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

    上記のコマンドは、選択したデータベースとテーブルをコマンドで指定されたファイルの場所にエクスポートします。

    データベースのバックアップ

    このセクションでは、シェルパイプを使用してバックアップ目的で使用される別のデータベースにデータベースバックアップを作成する方法について説明します。データベースをローカルファイルにエクスポートしてから、このファイルを使用して別のデータベースにインポートするか、シェルパイプを使用して別のデータベースに直接エクスポートすることができます。

    以下のコマンドを使用して、データベースを別のデータベースに直接エクスポートできます。また、コマンドを実行する前に、両方のサーバーにアクセスできることを確認してください。

    # Export database to another database - Same server
    mysqldump -u enterprise -p enterprise | mysql enterprise_backup

    # Export database to another database - Different server
    mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

    これが、データベースをエクスポートまたはバックアップする方法です。


    1. 外部キー、ブロック、および更新の競合

    2. データベース内のすべてのテーブルのサイズを取得する

    3. 並列実行計画–ブランチとスレッド

    4. Oracleはエラー時にトランザクションをロールバックしますか?