Exporting a database does not export some tables

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

問題

When using the exp utility to export an Oracle database, you may find that not all tables are included in the export.

原因

Empty tables may not be included in the export, as they have not been allocated space on disk. In versions of Oracle before 11g R2, Oracle allocates space for a table when the table is first created.

After 11g R2, Oracle defaults the option deferred_segment_creation to true, which allocates space for a table when the first row is inserted.

If the tables were created when this option was enabled, tables may be empty and may not exist on disk. Those tables would then subsequently fail to export.

診断

Run the following query as your database user. If it returns any rows, you are affected, and should proceed with the resolution:

SELECT * FROM user_tables WHERE segment_created = 'NO';							

ソリューション

データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。

Run the following SQL query to generate a list of alter statements:

SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';

Run the ALTER statements against your database, and then attempt the export again.

謝辞

The contents for this article were derived from this StackOverflow post.

最終更新日 2015 年 5 月 19 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.