2011-07-26 12 views
0

私はPHPベースのWebアプリケーションをOracleバックエンドで管理しています。アプリは多数のサードパーティアプリケーションとやりとりするので、情報はXMLファイル、Microsoft Accessデータベース、HTMLフォームの組み合わせで管理されます。現時点では多くのBLOBを持つテーブルが80個あり、かなりの数の外部キー関係があります。すべての手順は、(もちろん)誰も読まない文書で注意深く説明されています。顧客は自分のデータについて不安を感じていましたので、いくつかの改善点がありました(一部の操作ではプレビューや確認を追加するなど)。PHPからの完全なOracleバックアップ

悲しいことに、顧客はスペックの1つを誤解していました(部分的な書き出しは12時間で書かれます)。完全なバックアップとリストアの機能を期待しています。 DBAの介入なしに。

クライアントともう一つ議論する前に、この機能をタイムリーに実装するオプションがあるかどうかを知りたいと思います。復元するものを選択する)。

プロダクションサーバーは、PHP/5.2.9を実行しているWindows Server 2003ボックスです。 Oracleサーバーは、「Oracle9i Release 9.2.0.1.0 - 64bit Production」を実行するリモート・ボックスです。

(私は認識していないよ、よく知られた解決策があるかもしれないので、私はDBAじゃないのでご注意ください。)

答えて

1

Oracleは怪物です。 you've read thisを実行すると、システムのバックアップ方法は完全にどのように構成されているかによって異なります。簡単な答えは、何らかの手動プロセスを自動化することです。これは長期実行プロセス(これはMSWindowsで、rmanコマンドに 'start'という接頭辞を付けます)を呼び出し、終了時をポーリングで検出します。開始時刻と終了時刻を記録します)。

私は、MSWindows上で実行されるOracleよりも一般的なソリューションを提供するのが難しい問題を考えるのは難しいでしょう。後者はユーザーがボタンをクリックするのにいいかもしれませんが、自動化何かはPITAです。

楽しん:)

+0

ああ、私のことは、まだ、クライアントとの別の議論を指しています。 FAQ ':-P'を読んで12時間を使用します。何でも、リンクに感謝します。それは私が見つけることができる公式のOracleの文書よりもはっきりとしている。 –

0

は最後に、私は、後のプロジェクトでPHPから完全なOracleのバックアップを実装する機会がありました。私はOracle Data Pumpコマンドラインユーティリティを使用しました。これは10gから利用できます。要約:

  1. キーワードを物理ディレクトリにマップし、アプリケーションのOracleユーザーに書き込み権限を与えるためにOracleディレクトリを定義します。
  2. expdpを適切な引数で実行し、1つのファイルに完全なダンプを取得します。
  3. バックアップを復元するには、impdpを実行します。

それはあなたがbypass_shell場合は、Windows上およびプロセス上のきめ細かな制御を持つことができるので、proc_open()ではなくsystem()でコマンドを実行することをお勧めいたします。

この質問に関して、10g以前の代替案は "exp"/"imp"コンボです。

関連する問題