データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

AWSでOracleデータベースをバックアップする方法:Oracle Secure Backupクラウドモジュールの概要と導入手順

Amazon Web Services(AWS)上のOracle®データベースは、Oracle Database 9i Release 2以降のバージョンからバックアップが可能です。バックアップにはOracle Secure Backup(OSB)クラウドモジュールを使用します。ただし、OSBではオペレーティングシステム(OS)ファイルのバックアップはできない点に注意してください。

はじめに

Oracle Database 9i Release 2以降では、Recovery Manager(RMAN)を使用して、Amazon S3上にOSB経由でバックアップを取得できます。ただし、このモジュールではOSファイルのバックアップは取得できません。

Amazon S3はディスクベースのストレージであり、テープメディアよりも本質的に高い信頼性を持ちます。インターネットストレージサービスプロバイダーは、可用性とスケーラビリティを確保するために、データの冗長コピーを複数保持しています。その結果、組織はより信頼性の高いデータ保護を実現できます。

AWSでOracleデータベースをバックアップする方法:Oracle Secure Backupクラウドモジュールの概要と導入手順

画像ソース: https://www.oracle.com/technetwork/database/features/availability/twp-oracledbcloudbackup-130129.pdf

前提条件

この記事の手順に従う前に、以下の要件を満たしていることを確認してください。

S3へのログイン用アクセスキー・シークレットアクセスキー、またはIAMロール

AWSアカウントと、AWS S3へのフルアクセス権限を持つIdentity and Access Management(IAM)ユーザーが必要です。

セットアッププロセスでは、IAMロール、またはIAMユーザーのアクセスキーとシークレットアクセスキーを使用します。

AWS用OSBモジュール

AWS用OSBモジュールを以下のURLからダウンロードしてください。
https://www.oracle.com/database/technologies/secure-backup-s3.html

Oracle Technology Network(OTN)アカウント

インストール時にOTNのユーザー名とパスワードの入力が必要です。

Java 1.7以上

作業を進める前に、サーバーにJava® 1.7以降をインストールしておく必要があります。

以下のコマンドでJavaのバージョンを確認できます。

$java -version

対応プラットフォーム

対応プラットフォームは以下の通りです。

  • Linux® x86-64
  • Microsoft® Windows®(64ビット)
  • Oracle Solaris on SPARC(64ビット)
  • Oracle Solaris X64
  • ZLinux-64
  • AIX(PPC64)
  • HP-UX® IA64

注意: HP-UX PA-RISC 64ビットはサポートされていません。

Oracle 12cR2のインストール手順

以下の手順でOracle 12cR2用のOSBクラウドモジュールをインストールします。

  1. AWSのアクセスキー・シークレットアクセスキーまたはIAMロールを保存するためのwalletディレクトリを作成します。

  2. 「前提条件」セクションのリンクからダウンロードしたosbws_installer.zipファイルを解凍します。

  3. 以下のコマンドを実行して、Amazon S3用のOSBクラウドモジュールをORACLE_HOMEディレクトリにインストールします。環境に合わせて適切な値に置き換えてください。

Microsoft Windowsの場合:

 set ORACLE_HOME=C:\oracle\product\12.2.0\Oracle12cR2
 set ORACLE_SID=TEST

Linuxの場合:

export ORACLE_HOME=C:\oracle\product\12.2.0\Oracle12cR2
export ORACLE_SID=TEST

$ java -jar osbws_install.jar -AWSID XxXxX -AWSKey XxXxX -walletDir
$ORACLE_HOME/osbws_wallet -libDir $ORACLE_HOME/lib -location eu-west-2
-awsEndPoint s3-eu-west-2.amazonaws.com -otnUser mmahajan@test.com -otnPass xxxxx

または、IAMロールを使用する場合は以下のように実行します。

$ java -jar osbws_install.jar -IAMRole xxxxx -walletDir "$ORACLE_HOME\osbws_wallet"
-libDir "$ORACLE_HOME\lib" -otnUser mmahajan@test.com -otnPass xxxx

RMANを使用したOSBのインストールと構成確認

インストールプロセスでは、RMANのチャネル割り当てコマンド用のファイルが$ORACLE_HOME/dbs配下に作成されます。通常、ファイル名はosb<SID>.oraという形式です。このファイルを参照する際は、フルパスを使用してください。

この記事の例ではサンプルのSIDを使用しています。

以下はOSBTEST.oraのパラメータ例です。

++++++++++++++++++++++++++++++++++++++++++++++
OSB_WS_HOST=https://s3.amazonaws.com
OSB_WS_IAM_ROLE=iops-test-dev-ec2-role-policy
OSB_WS_BUCKET=test-ec2-backups
OSB_WS_WALLET='location=file:E:\oracle\product\12.2.0\Oracle12cR2\osbws_wallet CREDENTIAL_ALIAS=aws-itco_aws'
+++++++++++++++++++++++++++++++++++++++++++++++

または:

++++++++++++++++++++++++++++++++++++++++++++++
OSB_WS_HOST=https://s3-eu-west-1.amazonaws.com
OSB_WS_LOCATION=eu-west-1
OSB_WS_BUCKET=test-ec2-backups
OSB_WS_WALLET='location=file:E:\oracle\product\12.2.0\Oracle12cR2\osbws_wallet CREDENTIAL_ALIAS=aws-itco_aws'
+++++++++++++++++++++++++++++++++++++++++++++++

以下の例では、SBT_TAPE用のチャネルを割り当てた後、コントロールファイルデータファイル1のバックアップを取得しています。

allocate channel c1 device type sbt    parms='SBT_LIBRARY=E:\oracle\product\12.2.0\Oracle12cR2\lib\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=E:\oracle\product\12.2.0\Oracle12cR2\database\osbwsSDMS.ora)';

D:\OSB>rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Dec 17 13:38:07 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST (DBID=2717091126)

RMAN> run
2> {
3> allocate channel c1 device type sbt     parms='SBT_LIBRARY=E:\oracle\product\12.2.0\Oracle12cR2\lib\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=E:\oracle\product\12.2.0\Oracle12cR2\database\osbwsSDMS.ora)';
4> backup current controlfile;
5> }

allocated channel: c1
channel c1: SID=50 device type=SBT_TAPE
channel c1: Oracle Secure Backup Web Services Library VER=3.17.4.21

Starting backup at 17-DEC-19
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 17-DEC-19
channel c1: finished piece 1 at 17-DEC-19
piece handle=3iujli8o_1_1 tag=TAG20191217T144544 comment=API     Version 2.0,MMS Version 3.17.4.21
channel c1: backup set complete, elapsed time: 00:00:07
Finished backup at 17-DEC-19

Starting Control File and SPFILE Autobackup on 17-DEC-19
piece handle=c-2467059049-20191217-00 comment=API Version 2.0,MMS Version 3.17.4.21
Finished Control File and SPFILE Autobackup on 17-DEC-19
released channel: c1

RMAN> run
2> {
3> allocate channel c1 device type sbt parms='SBT_LIBRARY=E:\oracle\product\12.2.0\Oracle12cR2\lib\oraosbws.dll,SBT_PARMS=(OSB_WS_PFILE=E:\oracle\product\12.2.0\Oracle12cR2\database\osbwsSDMS.ora)';
4> backup datafile 1;
5> }

allocated channel: c1
channel c1: SID=50 device type=SBT_TAPE
channel c1: Oracle Secure Backup Web Services Library VER=3.17.4.21

Starting backup on 17-DEC-19
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001         name=F:\ORADATA\SDMS\SYSTEM01.DBF
channel c1: starting piece 1 on 17-DEC-19
channel c1: finished piece 1 at 17-DEC-19
piece handle=3kujlia1_1_1 tag=TAG20191217T144625 comment=API     Version 2.0,MMS Version 3.17.4.21
channel c1: backup set complete, elapsed time: 00:03:15
Finished backup on 17-DEC-19

Starting Control File and SPFILE Autobackup on 17-DEC-19
piece handle=c-2467059049-20191217-01 comment=API Version    2.0,MMS Version 3.17.4.21
Finished Control File and SPFILE Autobackup on 17-DEC-19
released channel: c1

バックアップセットの一覧表示

以下のコマンドを実行すると、コントロールファイルおよびデータファイル1のバックアップセット一覧を取得できます。

RMAN> list backup of controlfile;

BS Key Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
113    Full   18.75M    SBT_TAPE   00:00:01    17-DEC-19
   BP Key: 113  Status: AVAILABLE Compressed: NO Tag:     TAG20191217T144940
   Handle: c-2467059049-20191217-01  Media:    s3.amazonaws.com/sdms-ec2-backups
 Control File Included: Ckp SCN: 64476065    Ckp time: 17-DEC-19

RMAN> list backup of datafile 1;

BS Key Type LV Size      Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
112    Full   733.25M   SBT_TAPE   00:02:46    17-DEC-19
   BP Key: 112  Status: AVAILABLE Compressed: NO Tag:    TAG20191217T144625
   Handle: 3kujlia1_1_1  Media: s3.amazonaws.com/sdms-ec2-backups

バックアップセット112に含まれるデータファイルの一覧:

 File LV Type Ckp SCN   Ckp Time Abs Fuz SCN Sparse Name
 ---- -- ---- ---------- --------- ----------- ------ ----
 1      Full 64474680  17-DEC-19             NO       F:\ORADATA\SDMS\SYSTEM01.DBF

インストール時によくあるエラー

バックアップ実行中にORA-03113エラーが発生することがあります。この問題の解決には、My Oracle Supportのノート2396267.1が役立ちます。

PSDRPC returns significant error 3113.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on c1 channel at 12/16/2019 15:49:58
ORA-03113: end-of-file on communication channel

アラートログには以下のようなエラーが出力されます。

ORA-07445: exception encountered: core dump [PC:0x7FEDDB54FBC] [ACCESS_VIOLATION] [ADDR:0x0] [PC:0x7FEDDB54FBC] [UNABLE_TO_READ] []
Incident details in: <path>\incident\incdir_249332\<oracle_sid>_ora_30776_i249332.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Fri Apr 13 10:01:59 2018
Dumping diagnostic data in directory=[cdmp_20180413100159], requested by (instance=1, osid=30776), summary=[incident=249332].

エラーの原因

このインストールエラーは、稼働中のデータベースサービスがシリアルバックアップテープ(SBT)ライブラリをロックしていることが原因で発生します。

解決するには、以下の手順を実行します。

  1. データベースをシャットダウンします。
  2. 前述の手順に従って、Oracle Cloud Backupモジュールを再インストールします。

まとめ

この記事では、Amazon S3上でRMANによるデータベースバックアップを取得する手順を紹介しました。OSBクラウドモジュールを使ってAmazon S3ストレージに保存されたバックアップは、常にアクセス可能です。クラウドストレージサービスの可用性とアクセスモデルにより、組織はリカバリ運用を効率化できます。例えば、リストア操作を行う前にテープを出荷したりロードしたりする必要はありません。

コメントやご質問がある場合は、フィードバックタブをご利用ください。チャットですぐに会話を始めることもできます。

  1. Redis Sentinel入門:自動フェイルオーバーで高可用性(HA)を実現する方法

    Redis Sentinelは、Redisにシンプルかつ自動的な高可用性(HA)ソリューションを提供するコンポーネントです。MongoDBのレプリカセットにおける選挙(election)の仕組みに馴染みがある方なら、その概念はそれほど難しくありません。基本構成としては、1台のマスターが複数台(N台)のスレーブへレプリケーションを行い、そこにSentinelデーモンを配置します。Sentinelはアプリケーションサーバー上、またはRedisが稼働しているサーバー上で起動でき、常時マスターの健全性を監視します。あるSentinelがマスターの無応答を検出すると、他のSentinelへ向けてSDOW

  2. Windows 10の「ファイル履歴」を使って安全なバックアップを作成する方法

    Windows 10には「ファイル履歴(File History)」という便利な機能があり、誤ってファイルを削除してしまった場合などに備えて、ファイルやフォルダーのコピーを安全な場所へバックアップできます。デフォルトでは、ミュージック、ピクチャ、ドキュメント、ダウンロード、ビデオの各フォルダー内のファイルがバックアップ対象になりますが、既定のフォルダーを解除したり、独自のフォルダーを自由に追加したりすることも可能です。 最も安全な運用を実現するために、マイクロソフトはUSBメモリなどの外付けドライブ、またはネットワークドライブを使ったバックアップを推奨しています。他にもバックアップの保存先はあ