Symfoware

Symfowareについての考察blog

jenkins パラメータービルドを使用して、データベースのバックアップを取得する

以前にも似たようなことをやっているのですが改めて。
jenkinsでデータベースのバックアップとデータ更新の実行ジョブ

パラメーターに指定した複数のデータベーステーブル名に対し、
「テーブル名.sql」というファイル名でバックアップを取得します。

取得したバックアップファイルはワークスページに保存し、
問題が発生した時取り出せるようにしておきます。



MariaDBの外部接続許可



今回は、MariaDBのバックアップを取得してみます。
対象のデータベースにリモートから接続できるように構成しました。

まず、外部接続するユーザーをgrantで作成。


# mysql -uroot -pP@ssw0rd

MariaDB [(none)]> grant all privileges on *.* to admin@'%' identified by 'P@ssw0rd' with grant option;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye




my.cnfファイルを編集。


# vi /etc/mysql/my.cnf




すべてのIPをリッスンするよう変更しました。


# bind-address            = 127.0.0.1
bind-address            = 0.0.0.0




変更したらサービスを再起動します。


# service mysql restart




sampleというデータベースを作成し、適当にテーブルを作成しておきました。


MariaDB [sample]> show tables;
+------------------+
| Tables_in_sample |
+------------------+
| t1             |
| t2             |
| t3             |
| zip             |
+------------------+
4 rows in set (0.01 sec)






mariadb-client



バックアップにはmysqldumpを使用します。
Jenkinsサーバーにmariadb-clientをインストールし、コマンドが使用できるようにしておきます。


# apt-get install mariadb-client




mysqldumpの構文はこのようになります。


mysqldump -u[ユーザー名] -p[パスワード] -h[ホスト] [データベース名] [テーブル名] > [バックアップファイル名]







jenkinsのジョブ




jenkinsのジョブの指定は以下のようになりました。

まず、テキストのビルドパラメーターを用意。
名前を「table_names」としています。

701_01.png


ビルドではシェルの実行を指定します。
$table_namesで入力されたテーブル名分ループし、バックアップを取得します。
なお、バックアップファイルの出力先は、実行ジョブのワークスペースとしています。


  1. for table_name in $table_names
  2. do
  3.     mysqldump -uadmin -pP@ssw0rd -h192.168.1.103 sample $table_name > $WORKSPACE/$table_name.sql
  4. done




ビルド後の処理では、ワークスペースに出力したバックアップファイルを保管するため、
対象ファイルに「**」を指定しておきます。

701_02.png


バックアップしたいテーブル名を入力してジョブを実行します。

701_03.png


ちゃんとテーブル数分バックアップが実行されました。

701_04.png


バックアップは成果物に保存されています。

701_05.png


関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/07/01(金) 01:16:15|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<PHP pharで複数のソースファイルを1つのファイルにまとめる | ホーム | PHPからリモートでJenkinsのジョブを起動する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1903-7fac1f51
この記事にトラックバックする(FC2ブログユーザー)