資料庫遷移方
本文介紹五種遷移SQL資料庫的方法,包括DTS設計器導入導出、利用備份和恢復、直接拷貝數據文件、在應用程序中定製和SQL Server的復制功能。
DTS設計器導入導出
DTS的設計器功能強大,支持多任務,也是可視化界面,容易操作,但知道的人一般不多,如果只是進行SQL Server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在SQL Server Enterprise Manager中,展開伺服器左邊的+,選擇資料庫,右擊,選擇All tasks/Import Data...(或All tasks/Export Data...),進入向導模式,按提示一步一步走就行了,裡面分得很細,可以靈活的在不同數據源之間復制數據,很方便的。而且可以另存成DTS包,如果以後還有相同的復制任務,直接運行DTS包就行,省時省力。也可以直接打開DTS設計器,方法是展開伺服器名稱下面的Data Transformation Services,選Local Packages,在右邊的窗口中右擊,選New Package,就打開了DTS設計器。
值得注意的是:如果源資料庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標資料庫中,再重新建立外鍵,主鍵,索引。
利用備份和恢復
先對源資料庫進行完全備份,備份到一個設備(device)上,然後把備份文件復制到目的伺服器上(恢復的速度快),進行資料庫的恢復操作,在恢復的資料庫名中填上源資料庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前資料庫的選項),再選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復資料庫,包括外鍵,主鍵,索引。
直接拷貝數據文件
把資料庫的數據文件(*.mdf)和日誌文件(*.ldf)都拷貝到目的伺服器,在SQL Server Query Analyzer中用語句進行恢復:
EXEC sp_attach_db @dbname = ';test';,
@filename1 = ';d:mssql7datatest_data.mdf';,
@filename2 = ';d:mssql7datatest_log.ldf';
這樣就把test資料庫附加到SQL Server中,可以照常使用。如果不想用原來的日誌文件,可以用如下的命令:
EXEC sp_detach_db @dbname = ';test';
EXEC sp_attach_single_file_db @dbname = ';test';,
@physname = ';d:mssql7datatest_data.mdf';
這個語句的作用是僅僅載入數據文件,日誌文件可以由SQL Server資料庫自動添加,但是原來的日誌文件中記錄的數據就丟失了。
在應用程序中定製
可以在應用程序(PB、VB)中執行自己編寫的程序,也可以在Query Analyzer中執行,這種方法比較靈活,其實是利用一個平台連接到資料庫,在平台中用的主要是SQL語句,這種方法對資料庫的影響小,但是如果用到遠程鏈接伺服器,要求網路之間的傳輸性能好,一般有兩種語句:
1> select ... into new_tablename where ...
2> insert (into) old_tablename select ... from ... where ...
區別是前者把數據插入一個新表(先建立表,再插入數據),後者是把數據插入已經存在的一個表中,我個人喜歡後者,因為在編程的結構上,應用的范圍上,第二條語句強於前者。
SQL Server的復制功能
SQL Server提供了強大的數據復制功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行數據的復制工作,有些條件是必不可少的:
1)SQL Server Agent必須啟動,MSDTC必須啟動。
2)所有要復制的表必須有主鍵。
3)如果表中有text或image數據類型,必須使用with log選項,不能使用with no_log選項。
另外max text repl size選項控制可以復制的文本和圖像數據的最大規模,超過這個限制的操作將失敗。
4)在要進行復制的計算機上,應該至少是隱含共享,即共享名是a1、b1…。
5)為SQL Server代理使用的Windows Server賬號不能是一個本地的系統賬號,因為本地的系統賬號不允許網路存取。
2. mysql數據遷移(mysql數據遷移方案)
將Mysql資料庫遷移到Oracle資料庫的具體過程:需笑輪州要准備的工具:1
連接Mysql的jdbc驅動mysql-connector-java-5
0
4-bin
jar2
Oracle公司開發的SQLDeveloper1
2下面就是配置SQLDeveloper1
2配置環境:選擇Tools-Preferences-Database-ThirdPartyJDBCDriver點碰蔽擊AddEntry添加Mysql的jdbc驅動桐旅
配置MySQL和Oracle的連接點擊Connection右鍵選擇NewConnection分別建立Mysql和Oracle連接
建立好連接後,你就可以查看你得資料庫了
兩種遷移數據的方式:1
,selectMigration-<
快速遷移:選擇你要遷移的表或資料庫,選擇Migration- OK 3. 請教高手4T的資料庫遷移方案
方法一: 4. 如何將A資料庫的數據遷移到B資料庫中 工具/原料 電腦 資料庫 方法/步驟 1、首先,打開並連接Sql Server,在源資料庫Source_db上右擊,依次點擊「編寫表腳本為」→「CREATE到」→「新查詢編輯器窗口」。 5. SQL數據遷移問題(資料庫遷移的兩種方法) 首先,暫停SQL2000資料庫,將MDF和LDF文件備份。 這些文件復制到新機器,嘗試直接附加,如果兩個SQL版本一致,就這個方法最直接。但如果失敗,嘗試下面幾個方法。 一般來說好埋敏,不同SQL版本遷液塌移數據,推薦使用兩種方法進行轉換: 1·使用資料庫備份還原,在2000中備份成bak文件,到新系統中還原,這個方法的成功率比直接附加大的多,但如果資料庫中存在特殊性不兼容的結構,此方法也可能失敗,這時候使用第二種方法; 2·在2000中對資料庫導出完整腳本(.sql文件),在新系統中創建一友枝個空庫,執行該腳本。並使用DTS導入數據。 6. oracle資料庫如何遷移
這個問題有點籠統了,是Oracle遷移到Mysql?還是Oracle遷移到DB2?如果只討論遷移方式的話,大致有以下幾種 7. 如何遷移MySQL資料庫
MySQL資料庫遷移
將\Microsoft SQL Server\MSSQL\DATA文件夾中的syntt_data.mdf和syntt_log.ldf文件復制到安裝有資料庫伺服器的機器的文件夾中(可以是本機的\Microsoft SQL Server\MSSQL\DATA\文件夾),然後進入企業管理器。右鍵點擊逗資料庫地,在浮動菜單中選擇逗所有任務地中的逗附加資料庫地。
在隨後的提示頁面中選擇剛才復制過來的.MDF文件,如果想指定資料庫的所有者,在逗指定資料庫所有者地選擇框中選擇你認為合適的用戶。如果想修改資料庫的名字,可在逗附加為地框中輸入新的資料庫名字(對本資料庫,不建議這么做,因為這樣的話,整個程序中所有涉及資料庫連接的代碼都要隨之修改,那將是不必要的勞動)。
在進行完上述的工作之後,直接點擊逗確定地就可進行數據的SQL Server 數據轉移轉移。
方法二:
(方法一)是針對資料庫中沒有本資料庫的伺服器,如果資料庫中已經建有與該資料庫名稱相同的資料庫,則直接按照備份資料庫的恢復操作就可完成數據的SQL Server 數據轉移轉移。
方法如下所述:
這種方法首先要在本機上建立一個備份文件,具體操作介紹如下:
1、 在企業管理器中打開伺服器組以及指定的伺服器。然後右鍵點擊需要備份的資料庫在這里是syntt,在浮動菜單中選擇逗所有任務地菜單下的逗備份資料庫地,打開數據備份對話框。
2、 選擇逗常規地選項卡,在名稱對話框中輸入本分集合名稱,在逗描述地文本框中輸入備份集描述文本信息。在逗備份地組下選擇備份操作類型,共有以下幾種:
資料庫—完全:完整備份資料庫。
資料庫—差異:增量備份資料庫。
事務日誌:事務日誌備份。
文件和文件組:資料庫文件和文件組備份。
在逗目的地組中指定備份設備或者備份文件名稱,選擇逗添加地按鈕添加備份設備或者文件;逗刪除地按鈕用來刪除備份設備和備份文件;選擇逗內容地按鈕,則可查看已經存儲在備份設備或文件中的備份信息。
在逗重寫地組中有兩種選項:
追加到媒體:選擇該選項,表示需要保存備份設備或文件中以前的備份數據。
重寫現有媒體:要求本次被分數據覆蓋以前的備份數據,從而節省存儲空間。
在逗調度地組中,安排數據備份的時間。用來指定資料庫備份在將來的某個時間執行
3、 逗選項地選項卡,設置資料庫備份操作選項。其中的內容主要有以下幾項:
完成後驗證備份:要求在備份結束時對備份數據進行校驗。
備份後彈出磁帶:只對磁帶備份設備有效,他要求在備份結束時自動卸帶。
刪除事務日誌中不活動的條目:要求在事務日誌備份結束時刪除事務日誌中的已經完成的事務日誌條目。
檢查媒體集名稱和備份集到期時間:要求在備份前檢查介質集名稱和原備份集中備份SQL Server 數據轉移的有效期,以防止意外重寫破壞原來的備份數據。
備份集到期時間:設置備份集的有效期。
初始化並標識媒體:只對磁帶設備有效。選擇該選項後,SQL Server在備份時將Microsoft定義的磁帶格式信息寫入介質的開始部分。此時,可以在逗媒體集名稱地和逗媒體集描述地文本框中定義介質集名稱和介質描述信息。
4、 在進行完上述的操作之後,剩下的任務就是點擊逗確定地,使系統開始進行資料庫的備份操作。
到目前為止,我們已經有了一個資料庫的備份文件,剩下的任務就是怎麼將這個文件還原至另外的資料庫伺服器中了。
1、因為使用企業管理器進行資料庫的恢復只能是在本機進行,所以在進行數據還原之前,必須將剛才所作的備份文件復制到本機,然後在本機選擇逗syntt地資料庫,右鍵點擊它,在顯示出來的浮動菜單中選擇逗所有任務地下的逗還原資料庫地。
2、在還原資料庫對話框中,在逗常規地選項卡中的選擇逗從設備地的數據恢復方法,通過逗選擇設備地按鈕選擇剛才復制過來的文件。
逗常規地選項卡與逗選項地選項卡中的具體內容如下所示:
逗常規地選項卡:
資料庫恢復方法:包括逗資料庫地、逗文件組或文件地、逗從設備地三種恢復方式。
逗資料庫地方式:選擇該項時,從逗顯示資料庫備份地列表中選擇需要顯示的指定資料庫備份集合,從逗要還原的第一個備份地列表框中選擇首先使用哪一個備份集恢復資料庫;逗文件組或文件地:選擇它時,資料庫恢復部件列出指定資料庫備份集合中備份的資料庫文件或文件組,管理員可從這些備份文件中選擇恢復那個資料庫文件或文件組;逗從設備地:選擇它時,管理員選擇恢復資料庫或其日誌所使用的備份設備,之後再從該備份設備中選擇使用哪一次備份中的數據恢復資料庫或其日誌。
3、點擊逗確定地,完成恢復操作。
非原創
1、數據泵(Data Pump):數據泵是 Oracle 官方提供的一個數據遷移工具,它可以將資料庫對象以二進制格式導出並導入到另一個資料庫中。使用數據泵可以快速高效地將大量數據遷移至另一個資料庫。
2、Oracle GoldenGate:Oracle GoldenGate 是一種實時數據復制和數據集成解決方案,罩纖它可以在源和目標資料庫之間實現實時的、高效的數據同步,支持跨平台和異構資料庫之間的數據遷移。
3、Oracle 遷移工具(Migration Workbench):Oracle 遷移工具是 Oracle 公司提供的一套資料庫遷移工具,可以將非 Oracle 資料庫的數據遷移到 Oracle 資料庫。它支持多種非 Oracle 資料庫系統,包括 MySQL、SQL Server、DB2、Sybase 等。
4、外部表(External Table):外部表是 Oracle 資料庫中的一種特殊表,它可以通過訪問外部文件來存取數據,也可以通過外部表將數據從一個資料庫移動到另一個資料庫。
5、資料庫鏈接(Database Link):資料庫鏈接可以在不同的 Oracle 資料庫之間建立網路連接,可以通過 SQL 語句在不同的資料庫之間進行數據傳輸和同步。
6、第三方工具:還有一些第三方數據遷移工具,如 dbForge Studio、Toad for Oracle、SQL Developer 等,可以幫助用戶更方便地進行數據遷移。
以上幾種方式,在仿李不同量級數據,不同目標資料庫類型上,都有效率的差異物大仿,需要結合實際情況進行選擇。
MySQL資料庫遷移(數據文件直接遷移)
在今年10月下旬的時候,公司的伺服器需要遷移,其中涉及到了MySQL資料庫遷移。查看了一下MySQL數據文件的大小,接近60G的大小(實際數據並沒用那麼多)。由於伺服器上業務需要,要盡量減少伺服器遷移時的損失。所以遷移時間選在了晚上零點開始,而且要盡量減少遷移所用的時間。
在遷移之前有三種方案:
資料庫直接導出,拷貝文件到新伺服器,在新伺服器上導入。
使用【MySQL
GUI
Tools】中的
MySQLMigrationTool。
數據文件和庫表結構文件直接拷貝到新伺服器,掛載到同樣配置的MySQL服務下。
我在我的電腦上用虛擬機測試後,選中了佔用時間最少的第三種方案。下面是三種方案的對比:
第一種方案的優點:會重建數據文件,減少數據文件的佔用空間。
第一種方案的缺點:時間佔用長。(導入導出都需要很長的時間,並且導出後的文件還要經過網路傳輸,也要佔用一定的時間。)
第二種方案的優點:設置完成後傳輸無人值守
第二種方案的缺點:
設置繁瑣。
傳輸中網路出現異常,不能及時的被發現,並且會一直停留在數據傳輸的狀態不能被停止,如不仔細觀察不會被發現異常。
傳輸相對其他fang時間長。
異常後很難從異常的位置繼續傳輸。
第三種方案的優點:時間佔用短,文件可斷點傳輸。操作步驟少。(絕大部分時間都是在文件的網路傳輸)
第三種方案的缺點:可能引起未知問題,暫時未發現。
下面介紹一下第三種方案d遷移步驟:
保證Mysql版本一致,安裝配置基本一致(注意:這里的數據文件和庫表結構文件都指定在同一目錄data下)
停止兩邊的Mysql服務(A伺服器--遷移-->B伺服器)
刪除B伺服器Mysql的data目錄下所有文件
拷貝A伺服器Mysql的data目錄下除了ib_logfile和.err之外的文件到B伺服器data下
啟動B伺服器的Mysql服務,檢測是否發生異常
遷移完成後,服務啟動正常,未發現其他異常問題。
備註:經測試,源mysql的安裝目錄及數據文件目錄
可以與
目標Mysql的安裝目錄及數據文件目錄
不一致。
此時,只需要拷貝您所需移動的dbname(如上:pa、testdb)及'mysql'和'ibdata1',即可。