だから私はここで本当に厄介なトピックを持っています. Oracle サーバー 10g の 1 つのテーブルが削除され、再作成されましたが、そうすべきではありません。テーブルの構造が変更され、現在はフラッシュバックできません。ダンプは前日のものですが、テーブルを 1 つだけ復元する方法がよくわかりません。このトピックを進める方法について何かアイデアはありますか?
どうもありがとう。ピーター
だから私はここで本当に厄介なトピックを持っています. Oracle サーバー 10g の 1 つのテーブルが削除され、再作成されましたが、そうすべきではありません。テーブルの構造が変更され、現在はフラッシュバックできません。ダンプは前日のものですが、テーブルを 1 つだけ復元する方法がよくわかりません。このトピックを進める方法について何かアイデアはありますか?
どうもありがとう。ピーター
削除されたテーブルを復元するには (別の名前で復元するか、復元されているテーブルと同じ名前のテーブルを削除する必要があります)、いずれかのimp
ユーティリティ (たとえば) とそのダンプ ファイルを使用できます。tables
パラメーター ( )の値としてテーブル名を指定するtables=(your_table_name)
(この場合、スキーマ内の同じ名前のテーブルを既に削除するか、テーブルを別のスキーマにインポートする必要があります)。または、次を使用してテーブルを復元できます。オプションが有効なflashback
場合のステートメント。ステートメントrecycle bin
を使用してテーブルを復元する例を次に示します。flashback
SQL> drop table tb_test;
Table dropped
SQL> drop table tb_test1;
Table dropped
SQL> show parameter recyclebin;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
SQL> create table tb_test(id number);
Table created
SQL> insert into tb_test(id) values(123);
1 row inserted
SQL> commit;
Commit complete
SQL> select object_name, original_name, operation from recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION
------------------------------------------------------------------------------
BIN$sCyDUbMsQ9qOotUQZUTt9g==$0 TB_TEST1 DROP
BIN$uVD0HKOsQv26JTT3Q0PuOg==$0 TB_TEST DROP
SQL> purge recyclebin;
Done
SQL> select object_name, original_name, operation from recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION
------------------------------------------------------------------------------
SQL> drop table tb_test;
Table dropped
SQL> select object_name, original_name, operation from recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION
------------------------------------------------------------------------------
BIN$+shfpD3rQKy/ry5LKtkJaw==$0 TB_TEST DROP
SQL> create table tb_test(id number, col1 varchar2(11));
Table created
SQL> insert into tb_test(id, col1) values(11, 'string');
1 row inserted
SQL> commit;
Commit complete
SQL> flashback table tb_test to before drop;
flashback table tb_test to before drop
ORA-38312: original name is used by an existing object
SQL> flashback table tb_test to before drop rename to tb_test1;
Done
SQL> select * from tb_test1;
ID
----------
123
SQL> select * from tb_test;
ID COL1
---------- -----------
11 string
SQL>