熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

數據庫跨平台遷移方法淺析

2013-11-13 12:41:29  來源: SQL語言 

  一遷移方法介紹

  exp/imp

  這也算是最常用最簡單的方法了一般是基於應用的owner級做導出導入

  操作方法為在新庫建立好owner和表空間停老庫的應用在老庫做exp user/pwd owner=XXX file=exp_xxxdmp log=exp_xxxlog buffer=傳dmp文件到新庫在新庫做imp user/pwd fromuser=XXX touser=XXX file=exp_xxxdmp log=imp_xxxlog ignore=y

  優缺點優點是可以跨平台使用;缺點是停機時間長停機時間為從exp到網絡傳輸到新庫再加上imp的時間

  存儲遷移

  這種情況下數據文件控制文件日志文件spfile都在存儲上(一般情況下是裸設備)我們可以直接把存儲掛到新機器上然後在新機器上啟動數據庫

  操作方法將老庫的pfile(因為裡面有指向裸設備的spfile鏈接)tnsnamesoralistenerora密碼文件傳到新庫的對應位置將存儲切至新機或者用文件拷貝或dd的方式復制數據文件啟動數據庫

  優缺點優點是該遷移方式非常簡單主要的工作是主機工程師的工作dba只需配合即可停機時間為當庫切存儲起庫的時間缺點是要求新老庫都是同一平台是相同的數據庫版本

  利用data guard遷移

  用dg我們不僅可以用來做容災物理的dg我們還可以作為遷移的方式

  操作方法可見http://wwworacleblogcn/studynote/dgcreatedbyrman/或者http://wwworacleblogcn/studynote/createdgbyrmanonedatafilebyonedatafile/或者其他相關網文注意switch over之後可以將dg拆掉去掉log_archive_dest_FAL_SERVERFAL_CLIENTstandby_file_management參數另外還要注意如果用rman做dg注意手工添加tempfile

  優缺點優點是停機時間短停機時間為switch over的時間缺點主機必須雙份存儲必須雙份

  用rman做遷移

  rman比較適合於跨文件系統的遷移如同平台下的不同文件系統

  傳歸檔日志並且對歸檔進行做recoverrecover database until sequence = 歸檔的序號 thread = ;

  對數據庫open resetlogsRMAN>sql alter database open resetlogs;

  alter tablespace temp add tempfile XXXXXX size XXM reuse;

  優缺點優點是可以跨文件系統停機時間少缺點是要時刻關注這歸檔日志做recover的時候一個都不能少!

  二遷移樣式介紹

  直接映射原來是什麼就是什麼原封不動照搬過來對這樣的規則如果數據源字段和目標字段長度或精度不符需要特別注意看是否真的可以直接映射還是需要做一些簡單運算

  字段運算數據源的一個或多個字段進行數學運算得到的目標字段這種規則一般對數值型字段而言

  參照轉換在轉換中通常要用數據源的一個或多個字段作為Key去一個關聯數組中去搜索特定值而且應該只能得到唯一值這個關聯數組使用Hash算法實現是比較合適也是最常見的在整個ETL開始之前它就裝入內存對性能提高的幫助非常大

  字符串處理從數據源某個字符串字段中經常可以獲取特定信息例如身份證號而且經常會有數值型值以字符串形式體現對字符串的操作通常有類型轉換字符串截取等但是由於字符類型字段的隨意性也造成了髒數據的隱患所以在處理這種規則的時候一定要加上異常處理

  空值判斷對於空值的處理是數據倉庫中一個常見問題是將它作為髒數據還是作為特定一種維成員?這恐怕還要看應用的情況也是需要進一步探求的但是無論怎樣對於可能有NULL值的字段不要采用直接映射的規則類型必須對空值進行判斷目前我們的建議是將它轉換成特定的值

  日期轉換在數據倉庫中日期值一般都會有特定的不同於日期類型值的表示方法例如使用位整型表示日期而在數據源中這種字段基本都是日期類型的所以對於這樣的規則需要一些共通函數來處理將日期轉換為位日期值位月份值等

  日期運算基於日期我們通常會計算日差月差時長等一般數據庫提供的日期運算函數都是基於日期型的而在數據倉庫中采用特定類型來表示日期的話必須有一套自己的日期運算函數集

  聚集運算對於事實表中的度量字段他們通常是通過數據源一個或多個字段運用聚集函數得來的這些聚集函數為SQL標准中包括sumcountavgminmax

  既定取值這種規則和以上各種類型規則的差別就在於它不依賴於數據源字段對目標字段取一個固定的或是依賴系統的值


From:http://tw.wingwit.com/Article/program/SQL/201311/16391.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.