11g之前, 備份幾乎的都是使用 imp
exp sys/password@instance1 file=/u03/backup/all.dmp log=/u03/backup/all.log full=y consistent=y
好處就是,甚麼都給你倒出來了,除了系統權限、物件權限以外,能儘量倒出的如.synonyms...都給倒出來了,愛用哪一個schema還原都沒問題。
到了11g ,一樣的方法會產生不一樣的結果,導入後資料會錯誤,空的table導不出來,問一下google大神查到原因是因為空的table沒有分配segment。
SQL> alter system set deferred_segment_creation=false scope=both;
以上指令可以解決這問題,但若是等到資料庫毀了,才發現這問題就沒救了,就只能重建空的table。
一個資料庫不可能會沒有空的table,最好的做法就是,Create Instance之後就下指令解決,在import資料庫。