資料庫遷移
本文介紹五種遷移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賬號不能是一個本地的系統賬號,因為本地的系統賬號不允許網路存取。
Ⅱ 資料庫遷移方法
可以按這個思路操作,登錄網站後台備份資料庫,然後將整個站點程序上傳到新空間,然後用帝國備份王還原資料庫即可。
Ⅲ 資料庫遷移
Oracle資料庫之間的遷移么?這個很簡單的,通過一個DBLink,將源資料庫映射到目標庫上,然後通過SQL語句將數據全部拷貝到目標庫就行了。
如果是不同資料庫之間,則需要將數據和表結構導出到SQL語句中,在目標庫重建。另外,使用數據倉庫,可以實現將不同數據源的數據整合。
Ⅳ 什麼是資料庫遷移
所謂資料庫遷移就是這個資料庫到另一個資料庫之間的任意形式的數據移動。
資料庫遷移主要分為熱遷移和冷遷移:
熱遷移是將內存數據和硬碟數據同步進行遷移。熱遷移的優勢在於其對用戶業務的影響是非常小的;熱遷移對內存數據進行了遷移,用戶業務應用對其是無感知的。而缺點是熱遷移的過程是不可中斷的,整個操作過程相對復雜。
冷遷移就是在關機遷移。優勢是整個冷遷移過程的操作簡單,一般為自動化操作。但其缺點是該方式不支持內存數據的保存,容易導致內存數據的丟失。
Ⅳ 資料庫的部分數據遷移該怎麼做
有標識列么?沒有的話,insert into b庫名.dbo.user2 select a庫名.dbo.user1 where .....
有標識列則需要先修改表user2,取消標識列,然後再導入。
Ⅵ MYSQL資料庫如何遷移
可以找到其安裝文件夾,記得你的資料庫名吧.有個文件夾中就放著你的資料庫直接復制出來拷貝到你新的資料庫就可以使用了.
Ⅶ 資料庫遷移是什麼
資料庫遷移就是把歷史數據從A資料庫遷到B資料庫,可能A庫是postgres或者mysql.B庫是oracle或者DB2,所以這個過程還是蠻復雜的,具有挑戰性,要對資料庫的原理以及各自的特性了如指掌才可以入手遷移,會java這時候用不上的.
Ⅷ 如何遷移MySQL資料庫
caching_sha2_password認證插件提供更多的密碼加密方式,並且在加密方面具有更好的表現,目前MySQL8.0選用caching_sha2_password作為默認的認證插件,MySQL5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL8.0的加密認證方式,最終導致連接問題。
MySQL存儲引擎現在負責提供自己的分區處理程序,而MySQL伺服器不再提供通用分區支持,InnoDB和NDB是唯一提供MySQL8.0支持的本地分區處理程序的存儲引擎。如果分區表用的是別的存儲引擎,存儲引擎必須進行修改。要麼將其轉換為InnoDB或NDB,要麼刪除其分區。通過MySQLmp從5.7獲取的備份文件,在導入到8.0環境前,需要確保創建分區表語句中指定的存儲引擎必須支持分區,否則會報錯。
MySQL8.0的默認字元集utf8mb4,可能會導致之前數據的字元集跟新建對象的字元集不一致,為了避免新舊對象字元集不一致的情況,可以在配置文件將字元集和校驗規則設置為舊版本的字元集和校驗規則。
MySQL8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動伺服器會引入與標識符的排序和比較方式不一致的問題。
要避免MySQL8.0上的啟動失敗,MySQL配置文件中的sql_mode系統變數不能包含NO_AUTO_CREATE_USER。
從MySQL5.7.24和MySQL8.0.13開始,MySQLmp從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLmp創建的轉儲文件,以刪除NO_AUTO_CREATE_USER。
在MySQL8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的復制場景中,如果語句使用到廢棄的SQL Mode會導致復制異常。
在執行到MySQL8.0.3或更高版本的in-place升級時,BACKUP_ADMIN許可權自動授予具有RELOAD許可權的用戶。
<lower_case_table_names>
https://dev.mysql.com/doc/refman/8.0/en/server-systemvariables.html#sysvar_lower_case_table_names
本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、資料庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。
Ⅸ 怎麼將oracle資料庫的數據遷移
遷移的話,直接導出一個庫的dmp文件,之後導入到另外一個庫裡面就可以了(導出和導入資料庫版本必須一直,否則導入可能會報錯)。
遷移數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 將資料庫中的表table1 、table2導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2)
4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
Ⅹ 如何遷移完整SQL資料庫到另外一台伺服器
現在大部分伺服器都用的SQL資料庫.但是有時候想要換台配置好點的伺服器時,如何把原來伺服器上的資料庫,完好無損的拷貝到另外台伺服器呢,包括一些配置信息和用戶登錄信息.本經驗以SQL 2005為例教大家遷移完整資料庫到另外一台伺服器.
https://jingyan..com/article/9f7e7ec080d1b36f28155422.html