ニュース&ブログ
RDS for Oracleのバックアップ検討中の人注目! CLIを使用した手動バックアップ
この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。
投稿日:2014/10/21

手順としてはCLIツールをクライアント端末にインストールし、環境変数を設定することでコマンド実行可能となります。
使用するCLIツールは「Amazon RDS Command Line Toolkit」になります。
Amazon RDS Command Line Toolkitとは
RDSをAWSマネジメントコンソールからではなく、コマンドラインインターフェースで制御できるAWSから提供されているツールです。マニュアルは以下を参照してください。
Amazon Relational Database Service Command Line Interface Reference (API Version 2013-09-09) http://docs.aws.amazon.com/AmazonRDS/latest/CommandLineReference/Welcome.html
CLIを使用してDBスナップショットを取得するメリット
RDSは自動化バックアップが1日1回実行されています。その自動化バックアップはRDSインスタンスを削除する段階で削除されてしまいます。また自動化バックアップの保持期間(最長35日)を経過しますと削除されてしまいます。一方DBスナップショットによる手動バックアップは、RDSインスタンス削除後もスナップショットが削除されることはありません。そのため特定のタイミングのバックアップを保持したい場合に有効です。
またDBスナップショットの世代管理をスクリプト化し、タスクスケジューラなどで日次ジョブ実行することが可能です。
DBスナップショットを取得する際に「Create Snapshot」(コマンドラインではrds-create-db-snapshot)を使用すると、begin backupによる瞬断が発生してしまいます。そのため自動化バックアップからコピーをとる「Copy Snapshot」(コマンドラインではrds-copy-db-snapshot)を使用することでbegin backupによる瞬断が発生しないようにします。
検証で使用する環境と実施する内容
検証で使用する環境を紹介します。AWS上にRDS(Oracle 11gR2)を一つ作成し、検証環境上の端末からコマンドプロンプトでアクセスします。
図1:検証環境の構成

①Amazon RDS Command Line Toolkit インストール
②クレデンシャルの確認
③環境変数設定
④CLIでのバックアップ取得
それでは実際に見ていきましょう。
①Amazon RDS Command Line Toolkit インストール
(1)Amazon RDS Command Line Toolkit ダウンロード以下にアクセスし、「Download」ボタンを押します。
http://aws.amazon.com/developertools/2928
図2:Amazon RDS Command Line Toolkit ダウンロード

(2)ダウンロードしたZipファイルを解凍します。
図3:Zipファイルの解凍

(3)解凍したフォルダを任意のディレクトリに移動します。
今回はC:\Program Files 配下に移動します。
図4:フォルダ移動

②クレデンシャルの確認
クレデンシャルとはツールを使用してRDSに接続する際に、AWSアカウントに紐づいたAWS Access KeyとSecret Access Keyから要求されるAWSアカウントの証明書になります。上記情報はアカウント情報を参照することで確認できます。(1)AWSマネジメントコンソールから確認
アカウント名からプルダウンの「Security Credentials」を選択します。
図5:AWSマネジメントコンソールから確認

(2)Security Credentialsの画面へ移動
図6:Security Credentialsの画面へ移動 下記画面が表示されたら「Continue to Security Credentials」を押します。

(3)Create New Access Key
下記画面が表示されたら「Access Keys(Access Key ID and Secret Access Key)」を展開し、
「Create New Access Key」ボタンを押します。
図8:Create New Access Key

(4)Keyのダウンロード
下記画面が表示されたら、「Download Key File」を押します。
図9:Keyのダウンロード

図10:Keyのダウンロード

(5)Access Key の確認
ダウンロードされたAccess Keyを確認すると、以下の内容が記載されていることが確認できます。
※後でテキストファイルに下記値を入力します。
・AWSAccessKeyId
・AWSSecretKey
図11:Access Key の確認

(6)Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定
Amazon RDS Command Line Toolkitのインストールディレクトリの 「credential-file-path.template」を編集します。
※ファイル名は変更しても構いません。
図12:Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定

図13:Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定

③環境変数設定
Amazon RDS Command Line Toolkitを使用する際に、環境変数の設定がいくつか必要です。1. JAVA_HOME:JDKへのパスを設定
2. AWS_RDS_HOME:Amazon RDS Command Line Toolkitのインストールディレクトリを設定
3. AWS_CREDENTIAL_FILE:クレデンシャルへのパスを設定
4. PATH:%AWS_RDS_HOME%\binを設定
5. EC2_REGION:EC2のリージョンを設定
環境変数は検証環境上のクライアント端末に、以下の手順で設定します。
コンピュータ > プロパティ > 設定の変更 > システムのプロパティ > 詳細設定 > 環境変数 > システム環境変数
> 「新規」または「編集」
(1)JAVA_HOME
Amazon RDS Command Line ToolkitにはJDKのインストールが必要です。
JDKが以下にインストール済みであることを前提に、環境変数を設定します。
C:\Program Files\Java\jdk1.8.0_11
図14:JAVA_HOME

(2)AWS_RDS_HOME
Amazon RDS Command Line Toolkitのインストールディレクトリを設定します。
C:\Program Files\RDSCli-1.15.001
図15:AWS_RDS_HOME

(3)AWS_CREDENTIAL_FILE
クレデンシャルへのパスを設定します。
C:\Program Files\RDSCli-1.15.001\credential-file-path.template
図16:AWS_CREDENTIAL_FILE

(4)PATH
AWS_RDS_HOMEのbinディレクトリへのパスを設定します。
C:\Program Files\RDSCli-1.15.001\bin
図17:PATH

(5)EC2_REGION
EC2のリージョンを設定します。
ap-northeast-1
図18:EC2_REGION

(6)検証環境のクライアント端末の再起動
システム環境変数を反映させるため、OS再起動します。
(7)環境変数の確認
set コマンドでシステム環境変数が反映されていることを確認します。
図19:環境変数の確認

以下のコマンドでrdsコマンドへパスが通っていることを確認します。
rds version
rds –help
図20:rds version


④CLIでのバックアップ取得
準備ができましたので、CLIでDBスナップショットが取得できることを確認します。(1)自動化バックアップ名の確認
以下のコマンドを実行し、自動化バックアップ名を確認します。
set DBNAME=orcl
rds-describe-db-snapshots --db-instance-identifier %DBNAME% --snapshot-type automated
DBSNAPSHOT rds:orcl-2014-08-02-18-24 2014-08-02T18:24:14.958Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracl
e-se1-11-2 11.2.0.4.v1 bring-your-own-license automated vpc-XXXXXXX
DBSNAPSHOT rds:orcl-2014-08-03-18-24 2014-08-03T18:24:23.071Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracl
e-se1-11-2 11.2.0.4.v1 bring-your-own-license automated vpc-XXXXXXXX
DBSNAPSHOT rds:orcl-2014-08-04-18-24 2014-08-04T18:24:10.562Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracl
e-se1-11-2 11.2.0.4.v1 bring-your-own-license automated vpc-XXXXXXXX
(2)DBスナップショットコピーコマンド実行
以下のコマンドを実行し、DBスナップショットを取得します。
(ソースは先程確認した自動化バックアップ名を指定します。)
# rds-copy-db-snapshot -s <ソース名> -t <ターゲット名>
rds-copy-db-snapshot -s rds:orcl-2014-08-04-18-24 -t orcl-2014-08-05-13-28-01
c:\ >rds-copy-db-snapshot -s rds:orcl-2014-08-04-18-24 -t orcl-2014-08-05-13-28-01
DBSNAPSHOT orcl-2014-08-05-13-28-01 2014-08-04T18:24:10.562Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracle
-se1-11-2 11.2.0.4.v1 bring-your-own-license manual vpc-XXXXXXXX
(3)古いDBスナップショット削除
以下のコマンドを実行し、古いDBスナップショットを削除します。
Are you sure you want to delete this snapshot [Ny] と聞かれたら 「y」を入力しエンターします。
rds-delete-db-snapshot --db-snapshot-identifier orcl-2014-07-30-12-43-03
c:\>rds-delete-db-snapshot --db-snapshot-identifier orcl-2014-07-30-12-43-03
Once you begin deleting this snapshot, it will no longer be available for db
instance restoration.
Are you sure you want to delete this snapshot [Ny]y
DBSNAPSHOT orcl-2014-07-30-12-43-03 2014-07-29T18:24:21.557Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 deleted 100 oracle default:oracle-s
e1-11-2 11.2.0.4.v1 bring-your-own-license manual vpc-XXXXXXXX
(4)古いDBスナップショット削除確認
以下のコマンドを実行し、古いDBスナップショットが削除されたことを確認します。
rds-describe-db-snapshots --db-instance-identifier %DBNAME% --snapshot-type manual
DBSNAPSHOT orcl-2014-08-01-12-05-14 2014-07-31T18:24:38.452Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracle
-se1-11-2 11.2.0.4.v1 bring-your-own-license manual vpc-XXXXXXXX
DBSNAPSHOT orcl-2014-08-02-09-49-01 2014-08-01T18:24:30.129Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracle
-se1-11-2 11.2.0.4.v1 bring-your-own-license manual vpc- XXXXXXXX
DBSNAPSHOT orcl-2014-08-05-13-28-01 2014-08-04T18:24:10.562Z orcl 2014-07-17T14:28:25.682Z oracle-se1 10 available 100 oracle default:oracle
-se1-11-2 11.2.0.4.v1 bring-your-own-license manual vpc- XXXXXXXX
(5)AWSマネージメントコンソールで確認
AWSマネージメントコンソールでも結果を確認してみます。
図22:AWSマネージメントコンソールで確認(Automated Snapshots)

「Snapshot Creation Time」を見ますと、Automated Snapshots(自動化バックアップ)のコピー元と同一時刻でDBスナップショットが作成されていることが確認できます。
図23:AWSマネージメントコンソールで確認(Manual Snapshots)

以上で、Amazon RDS Command Line Toolkit のCLIを使用したRDSのバックアップ取得と確認が完了となります。
