4

現在、Oracle 11g R2 Express Edition を使用しています。Java アプリケーションを使用してデータベースをバックアップするにはどうすればよいですか? 出来ますか?

4

2 に答える 2

3

「バックアップ」の意味によって異なります。データベースのダンプを作成したい場合は、dbms_datapumpパッケージを使用して行うことができます。

これは通常の PL/SQL パッケージであるため、JDBC を介して簡単に呼び出すことができます。おそらく最も簡単な方法は、無名の PL/SQL ブロックを単一のステートメントとして送信することです。

このようなもの:

String sql = 
  "DECLARE \n" +
  "  handle NUMBER; \n" +
  "BEGIN \n" +
  "  handle := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => USER||'_DUMP', version => 'COMPATIBLE'); \n" +
  "  dbms_datapump.add_file(handle => handle, filename => 'db_backup', directory => 'EXPDP_DIR'); \n" +
  "  dbms_datapump.metadata_filter(handle, 'SCHEMA_LIST', '''SCOTT'''); \n" +
  "  dbms_datapump.start_job(handle); \n" +
  "  dbms_datapump.detach(handle); \n" +
  "END;";
Statement stmt = connection.createStatement();
stmt.execute(sql);

エラー処理を省略したことに注意してください。dbms_datapumpまたは、各プロシージャを個別に呼び出すこともできます(を使用CallableStatement)

ダンプは、クライアントではなくサーバーに書き込まれます!

詳細については、マニュアルを参照してください:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_datpmp.htm

于 2013-03-28T19:20:04.320 に答える
0

データを抽出して SQL 構造 (テーブル、制約、インデックスなど) を格納できるため、一般的には可能です。これが役立つ場合があります 。また、YAML 形式を使用してデータを格納することもできます。

于 2013-03-28T18:20:25.380 に答える