Oracle新人のRACインストール その19
<Oracle新人のRACインストール その19>
ペンネーム: world famous beagle
前回で、無事RACのインストールは終了しました。
ご愛読ありがとうございました。
が、しかし。
まだ印旛くんのRACとの戦いは終わっていませんでした。
もうしばし印旛くんを応援してあげてください。宜しくお願いします!
***RACインストール番外編***
「岸田さん、RACのインストールできました!」
「ずいぶん、時間かかったね」
「はい・・・。すみません」
「まあ、いいや。じゃあ、次はバックアップの手順を確立して」
「バックアップ?」
「DataPumpとRMANっていうのがあるから、調べてスクリプトを作っといて」
「でーたぽんぷ?と、あーるまん?で、すくりぷと?」
「・・・・・・・」
「えっと、とにかく調べます」
「早くね」
「はい」
やっとインストールが終わったのに、もう次か。
しかもさっぱり意味がわかんないな。
バックアップを取るっていってたけど、でーたぽんぷとなんとかマンだったな。
データポンプは、名前的にはデータをポンプみたいに押し出すのかな?
イメージわかないなぁ。とにかく調べよう。
—–DataPumpについて————————————————-
1.DataPumpとは
Oracle 10gのバックアップ取得の新機能に、DataPumpというものがあります。
これは、expdpコマンドで実行します。
DataPumpは、データを高速にロードする為の機能で、データの高速な
インポートやエクスポートを可能にします。
2.DataPumpの主な特徴
■従来のexport/importコマンドに比べ、データのアンロード、ロードにかか
る時間が短縮されています。
■OSに依存しない為、異なるOS間でのデータファイルの移動が可能になってい
ます。
■DIRECTORYオブジェクトの作成・書き込み・読み込み権限が必要となり、
不特定多数のユーザーがエクスポートできない為、データベースの安全性を
向上させることができます。
■DataPumpが実行されると、Oracle Schedulerに登録される為、ジョブの一時
停止、再開などの制御、また監視が可能です。
3.データベース管理者にとってのDataPumpの利点
DataPumpを使うことにより、データベース管理者は、従来よりも作業時間を
軽減できる為、大規模データベースには最適な機能といえます。
また、従来よりも簡単にジョブの管理、監視が可能になったことから、長時間
のジョブの実行中、管理者は複数の場所からジョブを監視し、進捗状況、残り
時間、作業中のオブジェクトなどを確認することができます。
また、管理者が、ジョブの中断、停止、再開などの操作もすることができます。
———————————————————————-
うーーん。いつものごとくよくわかんないな。
やってみるしかないかな。
「富樫さん、DataPumpを使ってバックアップを取ろうとしてるんですけど、
スクリプトっていうのはどうやって作るんですかね?」
「また、難しいことやろうとしてるね」
「はい・・・」
「スクリプトっていっても最初から完璧にはできないだろうから、
テストしてみたら?」
「テスト?」
「うん。例えば・・・。そうだな、僕もやったことないから、
よくわかんないけどscottスキーマのEMP表のバックアップでもとってみたら?」
「じゃあ、そうしてみましょう」
「あ、僕もやるの?」
「いや、そうしてもらえると助かるかな、と」
「ま、いっか」
「ありがとうございます。expdpっていうコマンドを使うみたいなんですけど」
「よし、やってみよう」
「まずは、バックアップファイルを格納するディレクトリを作る」 $ mkdir test_datapump 「次に、ディレクトリオブジェクトを作って、権限を与える」 SQL> create directory test_bk_dp as '/opt/app/oracle/10.2.0/db/test_datapump/'; SQL> grant all on directory test_datapump to scott; 「そしたら実行すればいいんじゃないのかな」 $ expdp scott/tiger directory=test_backup schemas=scott dumpfile=scott_dpump`date +%y%m%d`.dump logfile=scott_dpump`date +%y%m%d`.log
「おーーーー。すごい!さすが富樫さん」
「印旛くんなんもしなかったね」
「はい・・・。自分でおさらいしてみます」
「岸田さん、DataPumpの方はなんとかできそうです」
「見せて」
「あ、はい。さっき富樫さんにやってもらったんですが、
このスクリプトでtest_backupっていうディレクトリにバックアップファイル
がはきだされるみたいです」
「ふーん。じゃあ、シェルにしといて。あと、これだと一日に1回バックアッ
プ取ったら、ずっと増え続けるね」
「そうですね」
「一週間経ったら消せるようにして」
「削除する、ってことですか?」
「そう」
「やってみます」
なんかどんどんハードルが上がってるぞ。
削除する、ってことはrmっていうコマンドを使うのかな。
7日間経ったファイルを削除するみたいにできればいいのか。
rmコマンドのオプションにそういうのがあればいいけど・・・・。
***印旛くん、奮闘中。
***失敗、失敗、失敗、失敗。
***ここをこうして、あーして・・・。
***お、できそうだぞ。
***よし、できた。手順完成!
-----DataPumpを使ったバックアップ取得手順----- 1.oracleユーザーでログインする user: oracle password: ***** 2.環境変数の確認 $ env | grep ORA ORA_CRS_HOME=/opt/app/oracle/10.2.0/crs ORACLE_SID=RAC1 ORACLE_BASE=/opt/app/oracle ORACLE_HOME=/opt/app/oracle/10.2.0/db 3.$ORACLE_HOME配下に、バックアップを格納するディレクトリを作成する $ mkdir inba_bk_dp 4.バックアップの実行プログラム(シェルスクリプト)を組み込む $ vi inba_backup.sh 1 expdp <ユーザ名>/<パスワード> directory=insight_bk schemas=<スキーマ名> dumpfile=insight_dpump`date +%y%m%d%H%M`.dump logfile=insight_dpump`date +%y%m%d%H%M`.log 2 find /opt/app/oracle/10.2.0/db/inba_bk_dp/ -name '*.dump' -mtime +7 -exec rm {} ; 3 find /opt/app/oracle/10.2.0/db/inba_bk_dp/ -name '*.log' -mtime +7 -exec rm {} ; (解説) DataPumpの実行 1行目 :expdpコマンドを使い、dumpfile、logfileを insight_bkディレクトリに格納 2~3行目:7日間経過したDataPumpで取得したダンプファイル、 ログファイルを削除 5.シェルの実行権限の付与 $ chmod 500 inba_backup.sh 6.SQL*Plusにsystemユーザーでログインする $ sqlplus user: system password: ***** 7.ディレクトリオブジェクト作成と権限付与 SQL> create directory inba_dp as '/opt/app/oracle/10.2.0/db/inba_bk_dp/'; SQL> grant all on directory inba_dp to <ユーザ名>;
よし、完璧。
来週は、なんとかマンだ!
おまけ
—–impdpによるリカバリ———————————————-
expdpコマンドでエクスポートしたダンプファイルをデータベースに
インポートする事で、データベースをリカバリすることができます。
その際には、impdpコマンドを使います。
(例)
2月7日にバックアップを取った”inba_dpump060207.dump”という
ダンプファイルに格納されている”EMP”表をインポートしたい場合。
$ impdp <ユーザ名>/<パスワード> tables=EMP directory=inba_backup dumpfile= inba_dpump060207.dump