- ベストアンサー
10gのバックアップ方法とリストア方法 一括・個別
oracle10gで、データベースのバックアップを行いたいのです。 初めてで心配なのでお知恵を貸してください。 1 丸ごとバックアップ PostgreSQLでいう pg_dumpのようなもの。 2 テーブル毎(順序も含めて)にSQLで吐いたもの。 この場合、表やビュー、順序など全てをsqlplusで定義やデータを見ることが可能でしょうか?また、sql形式でファイル化する方法などもです。 要は、他のマシンにあるオラクルDBのデータを全て別のマシンに移したいのですが、一括方法と、表や順序など個別で細分化して移すファイルが巨大にならないようにできる方法など知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>1 丸ごとバックアップ PostgreSQLでいう pg_dumpのようなもの exp:データを独自形式でエクスポートする imp:expで抽出したデータをインポートする というツールが標準で付いています。 コマンドラインについては exp, imp とだけ入力して実行するとヘルプが出てきます。 例)exp system/xxxx full=y file=xxx.dmp log=xxx.log consistent=y とすると全データベースデータをエクスポートできます。 オプションで tablesやownerを調べると表毎、ユーザー毎にエクスポートできます。 >2 テーブル毎(順序も含めて)にSQLで吐いたもの create table 文などがほしいのですよね? ディクショナリを問い合わせれば可能ですが、ソースを表示するツールも多数存在しますので一度探してみると良いでしょう。 私は「SI Object Browser」を愛用しています。 30日間のトライアル版をダウンロードできるので使ってみてはどうでしょう。
その他の回答 (1)
- whiteline507
- ベストアンサー率63% (47/74)
1.データベースクローニングといった技術がありますが、 非常に高度な設定が必要なためあまりオススメできません。 Enterprise EditionであればOEMというバンドル製品を使えば GUIベースで行うことができるかと思います。 それより一番簡単なのはデータベースを停止した状態で UNIXの場合であれば/opt/oracle配下をガッツリコピーして しまうことだと思います。(もちろんデータファイルもinit.ora も/opt/oracle配下にあることが前提です) 2.OracleにはExport/Import機能というものがありますので それを使えばテーブル単位でバックアップ/リストアが行えます。 ただし、Exportを行ってもバイナリファイルとして保存される ので開いてもある程度しか内容が把握できません。 (もちろんテキストエディタで編集などはできません) 表や順序などの定義を見たいのであれば sqlplusでOracleにログインしてdesc {table_name}とすれば 表定義は表示されます。順序やビューなどの場合は ディクショナリと呼ばれる管理用ビューにアクセスする必要 があります。