- ベストアンサー
テーブル自体のバックアップ
教えてください。 今オラクルのDBにTEST1テーブルが存在するとします。 ------TEST1--------------------- id varchar(5) Primary Key name varchar(20) old int -------------------------------- 今このテーブルとまったく同じデータを持ち、同じ構成のテーブルTEST2を 作成したいと考えています。 (1)create table TEST2( id varchar(5) primary key, name varchar(20), old int ); (2)insert into TEST2( id, name, old) values (select id, name, old from TEST1); としてTEST2テーブルを作成して、TEST1のデータを格納していますが、 他の方法はないでしょうか? たとえばこんなコマンドはありませんが、 COPY TEST1 TEST2 とか、 オラクルマネージャみたいなもので、 コピペして、名前をTEST2にする とかなんでもいいです。 TEST1のバックアップをとりたいのですが・・・・ すみません、わかりづらい説明で。 宜しくお願い致しますm(_ _)m
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 Create table test2 as select * from test1; でOk です。 上記SQL 文は、Create table 文 (の拡張) ですので Rollback Segment を使用しない分、Insert 文で データを投入するより高速に処理できます。
その他の回答 (3)
- bourbon
- ベストアンサー率46% (18/39)
exportユーティリティを使うのはどうでしょうか? 【exp ユーザー名/パスワード tables=表名 file=ファイル名】 が基本構文です。OSファイルとしてバックアップしておけます。 DBオブジェクトに戻す場合はimportユーティリティを使用します。 【imp ユーザー名/パスワード tables=表名 file=ファイル名】 としてバックアップしたファイルを指定すれば元通りになります。 exp/impユーティリティはたくさんのオプションがありますので、 「ユーティリティ」マニュアルでご確認ください。 マニュアルはダウンロードできます。ただし登録が必要。
- ykkw_2001
- ベストアンサー率26% (267/1014)
もし、仕事でやってるなら、何らかの支援ツールを使ってもいいんではないかと思います。 以前ORACLE標準ツールでシコシコやっていたんですが、下記URLのツールを使って、飛躍的に効率UPしたことがあります。 また、ものによっては、効率UPとSQLの勉強も出来るのもあります。 探せば、いろいろ出てくると思います。
- kusukusu
- ベストアンサー率38% (141/363)
CREATE TABLE test2 AS SELECT * FROM test1;