- ベストアンサー
Oracleで空きがあるのにimportできない
4年程前から稼動しているLinuxシステム(Oracle8i使用)があります。そのシステムでexpしたデータを、別のサーバ(同じくOracle8i)にimpしたいのですが、エラーになってしまいます。 IMP-00003: ORACLE error 1237 encountered ORA-01237: cannot extend datafile 1 ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf' ORA-19502: write error on file "/u01/app/oracle/oradata/orcl/system01.dbf", bloc kno 202993 (blocksize=8192) ORA-27072: skgfdisp: I/O error Linux Error: 9: Bad file descriptor Additional information: 202993 Import terminated successfully with warnings. いろいろ調べたら SYSTEM にデータを入れるのは良くないということがわかりましたが、このサーバは本番サーバではないので表の中身を select で見れれば十分なので、このままの構成で行かれればと思います。 ディスク容量が不足しているようですが、DBA Studio で調べてみると、SYSTEM 1,608,576KB(1,570MB)中、800,992KB(782MB)使用中と表示されます。 imp したいファイルは 158,880KB(155.2MB)なので空き容量の部分に余裕で入ると思うのですが、データファイルを拡張しようとしているみたいです。 df コマンドの出力は /dev/sda6 2909420 2745980 15644 99% /u01 となり、確かにパーティションの空き容量はないのですが、SYSTEM領域の残り800MBの部分にはインポートできないのでしょうか。
- みんなの回答 (3)
- 専門家の回答
補足
回答ありがとうございます。 /u01/app/oracle/admin/orcl/pfile/initorcl.ora の中の定義情報は以下のようになっています。単位はわかりません。 db_block_size = 8192 control_files = ("/u01/app/oracle/oradata/orcl/control01.ctl", "/u02/app/oracle/oradata/orcl/control02.ctl", "/u03/app/oracle/oradata/orcl/control03.ctl") Linuxのファイルシステム上の空き領域は15644Kバイト、つまり15Mバイトしかありません。足りないことは十分承知ですが、拡張は予算的にも不可能な状況です。でも表領域には空きがあるようなので、そこに格納できないかと思っています。 DBA Studioで見ると、使用しているSYSTEM表領域は下記のように表示されます。 1,608,576KB(1,570MB)中、800,992KB(782MB)使用中 つまり800Mバイト近くが空き領域になっているはずなので、ここに格納されて欲しいのです。この800Mバイト近い領域は使われずに、必ず実ファイルが拡張されてしまうのでしょうか? 150Mバイトのデータを追加するために1GBの空き容量が必要だとは知りませんでした。そんなにディスクを無駄遣いするのなら、もうOracleは使いません。