數據的遷移需要注意什么
從Oracle向Mysql數據遷移,table結構與數據是基本上可以平移過去的,view有些還不是完全兼容oracle的語句,所以要對其作 出一些中間表。
觸發器與存儲過程是不能平移的,這兩部份需要重寫。表結構平移過去后,看是否都比較合適,如果覺得不太好還可以通過alter等語句對其進行相應的調整。
在導入大量數據時還要注意一下mysql的配置文件(*或*)里的max_allowed_packet值,這應設置得太小,以免導入數據時出錯或導不進去或亂碼等不穩定因素。
SQL數據庫的遷移方法有多少
本文介紹五種遷移SQL數據庫的方法,包括DTS設計器導入導出、利用備份和恢復、直接拷貝數據文件、在應用程序中定制和SQLServer的復制功能。
DTS設計器導入導出DTS的設計器功能強大,支持多任務,也是可視化界面,容易操作,但知道的人一般不多,如果只是進行SQLServer數據庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。 在SQLServerEnterpriseManager中,展開服務器左邊的,選擇數據庫,右擊,選擇Alltasks/ImportData。
(或Alltasks/ExportData。
。),進入向導模式,按提示一步一步走就行了,里面分得很細,可以靈活的在不同數據源之間復制數據,很方便的。
而且可以另存成DTS包,如果以后還有相同的復制任務,直接運行DTS包就行,省時省力。也可以直接打開DTS設計器,方法是展開服務器名稱下面的DataTransformationServices,選LocalPackages,在右邊的窗口中右擊,選NewPackage,就打開了DTS設計器。
值得注意的是:如果源數據庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標數據庫中,再重新建立外鍵,主鍵,索引。利用備份和恢復先對源數據庫進行完全備份,備份到一個設備(device)上,然后把備份文件復制到目的服務器上(恢復的速度快),進行數據庫的恢復操作,在恢復的數據庫名中填上源數據庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前數據庫的選項),再選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。
這種方法可以完全恢復數據庫,包括外鍵,主鍵,索引。直接拷貝數據文件把數據庫的數據文件(*。
mdf)和日志文件(*。ldf)都拷貝到目的服務器,在SQLServerQueryAnalyzer中用語句進行恢復:EXECsp_attach_db@dbname=';test';,@filename1=';d:mssql7datatest_data。
mdf';,@filename2=';d:mssql7datatest_log。ldf';這樣就把test數據庫附加到SQLServer中,可以照常使用。
如果不想用原來的日志文件,可以用如下的命令:EXECsp_detach_db@dbname=';test';EXECsp_attach_single_file_db@dbname=';test';,@physname=';d:mssql7datatest_data。 mdf';這個語句的作用是僅僅加載數據文件,日志文件可以由SQLServer數據庫自動添加,但是原來的日志文件中記錄的數據就丟失了。
在應用程序中定制可以在應用程序(PB、VB)中執行自己編寫的程序,也可以在QueryAnalyzer中執行,這種方法比較靈活,其實是利用一個平臺連接到數據庫,在平臺中用的主要是SQL語句,這種方法對數據庫的影響小,但是如果用到遠程鏈接服務器,要求網絡之間的傳輸性能好,一般有兩種語句:1>select。 。
。intonew_tablenamewhere。
2>insert(into)old_tablenameselect。
。from。
where。
。區別是前者把數據插入一個新表(先建立表,再插入數據),后者是把數據插入已經存在的一個表中,我個人喜歡后者,因為在編程的結構上,應用的范圍上,第二條語句強于前者。
SQLServer的復制功能SQLServer提供了強大的數據復制功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行數據的復制工作,有些條件是必不可少的:1)SQLServerAgent必須啟動,MSDTC必須啟動。2)所有要復制的表必須有主鍵。
3)如果表中有text或image數據類型,必須使用withlog選項,不能使用withno_log選項。另外maxtextreplsize選項控制可以復制的文本和圖像數據的最大規模,超過這個限制的操作將失敗。
4)在要進行復制的計算機上,應該至少是隱含共享,即共享名是a1、b1…。 5)為SQLServer代理使用的WindowsServer賬號不能是一個本地的系統賬號,因為本地的系統賬號不允許網絡存取。
SQL數據遷移問題
首先,暫停SQL2000數據庫,將MDF和LDF文件備份。
這些文件復制到新機器,嘗試直接附加,如果兩個SQL版本一致,就這個方法最直接。但如果失敗,嘗試下面幾個方法。
一般來說,不同SQL版本遷移數據,推薦使用兩種方法進行轉換:1· 使用數據庫備份還原,在2000中備份成bak文件,到新系統中還原,這個方法的成功率比直接附加大的多,但如果數據庫中存在特殊性不兼容的結構,此方法也可能失敗,這時候使用第二種方法;2· 在2000中對數據庫導出完整腳本(.sql文件),在新系統中創建一個空庫,執行該腳本。并使用DTS導入數據。