1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Oracle MySQL Database Serviceのインポート・エクスポート

Last updated at Posted at 2020-11-15
  • Oracle MySQL Database Serviceの使い方メモ〜その2
  • Oracle MySQL Database Serviceのインポート・エクスポート (mysqldump, MySQL Client, MySQL Workbench)

はじめに

Oracle Cloud Infrastructure (OCI) でマネージドサービスとして利用可能なOracle MySQL Database Serviceにおけるインポート・エクスポート操作を確認しました。Bastion (踏み台) サーバー上のmysqldumpとMySQL Clientを利用した場合と、クライアント環境のMySQL Workbenchを利用した場合を確認しました。結論はOracle MySQL Database Serviceにインポートする際にSET @@GLOBAL.GTID_PURGEDが含まれていると権限が足りないと怒られるので、エクスポートする際に--set-gtid-purged=OFFオプションを付与することがポイントです。

検証環境

  • MySQLバージョン : 8.0.22-u2-cloud (Oracle MySQL Database Service)
  • Oracle-Linux-8.2-2020.11.10-0 (OCI Compute VM) : Bastion (踏台) サーバとして利用
  • MySQL Ver 8.0.21 for Linux on x86_64 (Source distribution) : Bastionサーバ上のMySQL Clientとして利用
  • macOS 10.15.7 Catalina : クライアント環境
  • MySQL Workbench 8.0 Version 8.0.22 : クライアント上にインストール

OCI上の検証環境の構築方法は前回の記事を参照ください。
Oracle MySQL Database Serviceのインスタンスを作ってMySQL Workbenchから接続してみた

Bastionサーバ上でエクスポート・インポートを実施する

概要

Oracle MySQL Database Serviceインスタンスはプライベート・エンドポイントにアクセス可能なBastionサーバ上でmysqldump, MySQL Clientを実行し、Oracle MySQL Database Serviceにおけるインポート・エクスポートを行います。作業のイメージとしては下記のアーキテクチャ図を確認ください。エクスポートによるDumpファイルが生成場所、インポートのためのDumpファイルの配置場所はBastionサーバとなります。
20-11-15-13-53-20.png

失敗例

--set-gtid-purged=OFFオプション無しで失敗例を記します。Oracle MySQL Database Serviceインスタンス上のtestスキーマに対して下記エクスポート操作をBastionサーバ上で実施しました。

$ mysqldump --single-transaction --host [プライベートIPアドレス] -u [管理者ユーザー名] -p test > /tmp/mysqldump_test.dump
Enter password: 
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 

警告が出ますがDumpファイルは問題なく生成されています。

$ ls /tmp/mysqldump_test.dump
/tmp/mysqldump_test.dump

次にOracle MySQL Database Serviceインスタンスにインポートしてみます。

mysql --host [プライベートIPアドレス] -u [管理者ユーザー名] -p test < /tmp/mysqldump_test.dump
Enter password: 
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation

管理者ユーザーに付与されている権限が不足しているとエラーがでて失敗します。

成功例

--set-gtid-purged=OFFオプションを付与してmysqldumpコマンドを実施します。

$ mysqldump --single-transaction --set-gtid-purged=OFF --host [プライベートIPアドレス] -u [管理者ユーザー名] -p test > /tmp/mysqldump_test.dump
Enter password: 

警告も表示されず、問題なく成功します。次にOracle MySQL Database Serviceインスタンスにインポートしてみます。

mysql --host [プライベートIPアドレス] -u [管理者ユーザー名] -p test < /tmp/mysqldump_test.dump
Enter password: 

インポートも問題なく実行できました。
mysqldumpのオプションについては公式マニュアルを確認ください。

クライアント上のMySQL Workbenchからのエクスポート・インポート

概要

Bastionサーバ経由でOracle MySQL Database Serviceにアクセスするように設定したクライアント環境上のMySQL Workbenchからインポート・エクスポートを行います。作業のイメージとしては下記のアーキテクチャ図を確認ください。エクスポートによるDumpファイルが生成場所、インポートのためのDumpファイルの配置場所はクライント環境となります。
20-11-15-12-55-24.png

MySQL Workbenchの接続方法については前回の記事を参照ください。

エクスポート操作

MySQL Workbench起動後に接続情報のタイルを選択し接続、画面左のManagementメニューよりData Exportメニューを選択します。画面右上のAdvanced Optionよりset-gtid-purged - Add 'SET @@GLOBAL.GTID_PURGED' to the outputの値をOFFに設定し、画面右上のReturnボタンを選択して元の画面に戻ります。
20-11-15-13-07-47.png

Table to Exportよりエクスポート対象となるスキーマとテーブルを選択してください。画面下部のExport to Dump Project FolderにDumpファイルの出力先のフォルダPATHを入力し、画面右下のStart Exportボタンを選択して、エクスポートを実行します。
20-11-15-13-19-03.png

インポート操作

画面左のManagementメニューよりData Exportメニューを選択します。Import from Dump Project FolderにインポートするDumpファイルが存在するフォルダPATHを入力します。画面下部の選択メニューより、インポート対象となるスキーマとテーブルを選択してください。画面右下のStart Importボタンを選択して、インポート操作を実行します。
20-11-15-13-26-58.png
20-11-15-13-29-40.png

関連情報

公式サイト
Oracle Cloud Infrastructure Documentation MySQL Database
MySQL 5.6 リファレンスマニュアル mysqldump — データベースバックアッププログラム

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?