oracle 數據庫數據遷移解決方案建站知識
導讀:1建站知識大部分系統由于平臺和版本的原因,做的是邏輯遷移,少部分做的是物理遷移,接下來把心得與大家分享一下公司網站建設seo網站優化。
去年年底做了不少系統的數據遷移,大部分系統由于平臺和版本的原因,做的是邏輯遷移,少部分做的是物理遷移,有一些心得體會,與大家分享。
首先說說遷移流程,在遷移之前,寫好方案,特別是實施的方案步驟一定要寫清楚,然后進行完整的測試。我們在遷移時,有的系統測試了四五次,通過測試來完善方案和流程。
針對物理遷移,也即通過RMAN備份來進行還原并應用歸檔的方式(這里不討論通過dd方式進行的冷遷移),雖然注意的是要將數據庫設為force logging的方式,在用RMAN做全備之前,一定要執行:
否則可能會產生壞塊。
對于邏輯遷移,在job_processes設置為>0的數值之前,注意job的下次執行時間和job所屬用戶。比如job的定義在之前已經導入,但是在遷移之時,job已經運行過,那么遷移完成之后,job的下次時間還是原來的時間,這樣可能會重復運行。另外,job通過IMP導入后,job所屬用戶會變成導入用戶的名稱,顯然job原來的用戶就不能對JOB進行管理了,可以通過下面的sql進行修改:
在遷移之前,應該禁止對系統進行結構上的修改和發布,比如表結構,索引,存儲過程包等。
如果是用exp/imp導入的對象,包括存儲過程等,應該檢查對象是否與原生產庫一致,比如由于dblink的原因,imp之后,存儲過程不能創建,導致有部分存儲過程丟失,盡管這些存儲過程可能沒有被使用。
下面是一些加快遷移速度的技巧:
通過dblink,使用append insert的方式,同時利用并行,這種方式比exp/imp更快
對于有LONG類型的列,insert..select的方式顯然是不行的,可以通過exp/imp的方式,但是這種方式速度非常慢,其原因在于imp時一行一行地插入表。有另外一種方式,即sqlplus的copy命令,下面是一個示例:
不過,sqlpus的copy命令不支持有timestamp和lob列類型的表。如果有timestamp類型的表,可以通過在exp時,加上rowid的條件,將一個表分成多個部分同時操作,對于有lob類型的表,也可以同樣處理(因為insert …select方式下,有lob類型列時,也同樣是一行一行地插入)。注意在這種方式下,就不能使用direct的方式exp/imp。下面是exp導出時parfile示例:
將表分成幾部分同時操作,不僅僅可以利用rowid,也可以利用表上的列,比如說,表上有一個created_date的列,并且保證是遞增插入數據,那么這種情況下,也可以使用這個字段將表分成不同的范圍同時進行導出和導入。不過使用ROWID通常具有更高的效率。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-24 ,文章oracle 數據庫數據遷移解決方案建站知識主要講述解決方案,標簽,oracle 數據庫數據遷移解決方案建網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.comhttp://www.dsemi.com