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

AWS RDSでのMySQLからPostgreSQLへの移行、パート2

    MySQLデータベースとPostgreSQLデータベースはトップ2のオープンソースリレーショナルデータベース管理システム(RDBMS)であり、それぞれにいくつかの独自の利点があります。前回の記事「AWSRDSでのMySQLからPostgreSQLへの移行、パート1」では、MySQLに対するPostgreSQLの利点のいくつかについて説明し、MySQLからPostgreSQLへの移行を実行するAWS Database Migration Service(DMS)を紹介しました。まず、DMS用のAWSIAMユーザーを作成しました。この継続チュートリアルでは、RDS上にMySQLデータベースとPostgreSQLデータベースのインスタンスを作成し、それぞれに接続します。このチュートリアルには次のセクションがあります:

    • MySQLデータベースとPostgreSQLデータベース用のAWSRDSインスタンスの作成
    • データベースとDMS間の接続の構成
    • MySQLデータベースへの接続
    • PostgreSQLデータベースへの接続
    • 結論

    MySQLデータベースとPostgreSQLデータベース用のAWSRDSインスタンスの作成

    AWS RDSで、ソースデータベースとターゲットデータベース、それぞれMySQLデータベースとPostgreSQLデータベースを作成します。 RDSの使用については、以前のチュートリアルで説明しています。図1に示すように、ソースデータベースであるMySQLデータベースには、MySQLを選択します。


    図1: RDSでのMySQLの選択

    ProductionまたはDev/ Testを選択します 図2に示すように、展開オプション。[次のステップ]をクリックします。


    図2: 展開タイプの選択

    DBの詳細を指定します 、そのほとんどには適切なデフォルト設定があります。 DBインスタンスクラス(db.t2.microまたはdb.t1.micro)を選択します。 DBインスタンス識別子(MYSQLDB)を指定します。これは、「MYSQL」などのMySQLデータベースの予約語であってはなりません。マスターユーザー名、マスターパスワード(8文字以上である必要があります)を指定し、[次のステップ]をクリックします。次に、詳細設定を構成します 。 VPCの場合は、新しいVPCを作成を選択します 。 [サブネットグループ]で、[新しいDBサブネットグループの作成]を選択します 。 一般公開の場合 、はいを選択します 。 アベイラビリティーゾーンの場合 、設定なしを選択します 。 VPCセキュリティグループの場合 、[新しいセキュリティグループの作成]を選択します。 「MYSQL」などの予約語であってはならないデータベース名(MYSQLDB)、およびデータベースポート(3306)を含むデータベースオプションを指定します。バックアップのデフォルト設定を保持します。 RDS上のMySQLをDMSソースとして使用するには、自動バックアップが必要です。監視と保守のデフォルト設定を維持し、DBインスタンスの起動をクリックします 。 RDS上のMySQLデータベースが作成されます。

    PostgreSQLデータベースの場合、RDSデータベースエンジンを PostgreSQLとして選択します 、図3に示すように。


    図3: PostgreSQLデータベースエンジンの選択

    開発/テストの展開タイプを選択し、[次のステップ]をクリックします。 DBの詳細を指定します。ほとんどのデフォルト設定が適しています。 DBインスタンス識別子(postgresdb)、マスターユーザー名、マスターパスワードを指定し、[次のステップ]をクリックします。次に、データベース名(postgresdb)、データベースポート(5432)のデータベースオプションなどの詳細設定を構成し、[DBインスタンスの起動]をクリックします。 PostgreSQLデータベースがRDSで起動されます。 RDS上のMySQLデータベースとPostgreSQLデータベースを図4に示します。


    図4: RDS上のMySQLおよびPostgreSQLデータベース

    データベースとDMS間の接続の構成

    デフォルトでは、Database Migration Service(DMS)はRDSDBインスタンスに接続できません。 RDSDBインスタンスのセキュリティグループへの接続を追加する必要があります。 セキュリティグループをクリックします 構成の詳細のリンク 図5に示すように、MySQLRDSDBインスタンスの場合。


    図5: RDS上のMySQLのセキュリティグループ

    セキュリティグループコンソールで、[インバウンド]タブを選択し、[編集]をクリックします。 (図6を参照)。


    図6: セキュリティグループ>編集

    インバウンドルールの編集タイプを選択します すべてのトラフィックとして 、プロトコル すべてとして 、ポート範囲 0-65535として、ソース どこでもとして 保存をクリックします 、図7に示すように。


    図7: すべてのトラフィックを許可するようにインバウンドルールを構成する

    図8に示すように、インバウンドルールはすべてのトラフィックを許可するように構成されます。


    図8: インバウンド>すべてのトラフィック

    アウトバウンド インバウンドルールが設定されている場合、図9に示すように、ルールも[すべてのトラフィック]に設定する必要があります。


    図9: アウトバウンド>すべてのトラフィック

    同様に、図10に示すように、PostgreSQL RDS DBインスタンスの[セキュリティグループ]リンクをクリックし、すべてのトラフィックを許可するようにインバウンド/アウトバウンドルールを設定します。


    図10: すべてのトラフィックを許可するようにPostgreSQLのセキュリティグループを構成する

    MySQLデータベースへの接続

    RDSでMySQLデータベースインスタンスを移行する場合、システムスキーマとテーブルを含むすべてのスキーマとテーブルを含む完全なデータベースが移行される場合があります。このセクションでは、RDS上のMySQLデータベースに接続し、 dvohraにいくつかのユーザー権限を付与します。 ユーザー。 MySQLデータベースに接続するには、データベースのエンドポイントを取得します RDSダッシュボードから(図11を参照)。


    図11: エンドポイントの取得

    コマンドシェルで、MySQLデータベースのbinディレクトリ(C:Program FilesMySQLMySQL Server 5.7bin)から次のMySQLコマンドを実行します。これにより、MySQLCLIセッションが開始されます。

    mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com
       -u dvohra -p
    

    パスワードの入力:でパスワードを指定します 促す。 SQL> 図12に示すように、コマンドプロンプトが表示されます。


    図12: CLIを使用したMySQLデータベースへの接続

    次に、RDS上のMySQLデータベースインスタンスの権限をDMSユーザー(dvohra)に付与します。

    GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE,
       SELECT ON *.* TO 'dvohra'@'%';
    GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';
    

    図13に示すように、ユーザー権限が設定されます。


    図13: ユーザー権限の追加

    PostgreSQLデータベースへの接続

    コマンドシェルからRDS上のPostgreSQLデータベースに接続するには、データベースのエンドポイントを取得します 図14に示すように、RDSダッシュボードから。


    図14: RDSでPostgreSQLデータベースエンドポイントを取得する

    次のコマンドを実行してPostgreSQLデータベースに接続し、コマンドラインインターフェイス(CLI)を起動します。

    psql --host=postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com
         --port=5432 --username dvohra --password --dbname=postgresdb
    

    図15に示すように、PostgreSQLデータベースのコマンドラインインターフェイス(CLI)が開始されます。


    図15: CLIを使用したRDS上のPostgreSQLデータベースへの接続

    dnを使用してスキーマを一覧表示します 指図。パブリックスキーマが一覧表示されます(図16を参照)。


    図16: スキーマの一覧表示

    結論

    RDS上のMySQLデータベースインスタンスをAWSDMSを使用してRDS上のPostgresデータベースインスタンスに移行する4つのチュートリアルのこの2番目では、RDS上に2つのデータベースのインスタンスを作成し、データベースインスタンスに接続しました。次のチュートリアルでは、DMS移行を作成します。


    1. oraclesqlで週末と祝日を除く日付差のカスタム関数を作成します

    2. SQL Serverで行レベルのロックを強制することは可能ですか?

    3. インデックス付きビューと統計

    4. PostgreSQL:用途の広いINSERT