亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫遷移的方法是什么

發布時間:2023-02-15 09:33:43 來源:億速云 閱讀:155 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹了mysql數據庫遷移的方法是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇mysql數據庫遷移的方法是什么文章都會有所收獲,下面我們一起來看看吧。

  • 簡介

數據遷移(data migration)是指選擇、準備、提取和轉換數據,并將數據從一個計算機存儲系統永久地傳輸到另一個計算機存儲系統的過程。此外, 
驗證遷移數據的完整性 和 退役原來舊的數據存儲 ,也被認為是整個數據遷移過程的一部分。

數據庫遷移的原因是多樣的,包括服務器或存儲設備更換、維護或升級,應用程序遷移,網站集成,災難恢復和數據中心遷移。

根據不同的需求可能要采取不同的遷移方案,但總體來講,MySQL數據遷移方案大致可以分為物理遷移和邏輯遷移兩類。
通常以盡可能自動化的方式執行,從而將人力資源從繁瑣的任務中解放出來
  • 遷移方案

物理遷移: 
物理遷移適用于大數據量下的整體遷移。使用物理遷移方案的優點是比較快速,但需要停機遷移并且要求 MySQL 版本及配置必須和原服務器相同,也可能引起未知問題。

物理遷移包括拷貝數據文件和使用 XtraBackup 備份工具兩種。

不同服務器之間可以采用物理遷移,我們可以在新的服務器上安裝好同版本的數據庫軟件,創建好相同目錄,建議配置文件也要和原數據庫相同,然后從原數據庫方拷貝來數據文件及日志文件,
配置好文件組權限,之后在新服務器這邊使用 mysqld 命令啟動數據庫。

邏輯遷移: 
邏輯遷移適用范圍更廣,無論是 部分遷移 還是 全量遷移 ,都可以使用邏輯遷移。邏輯遷移中使用最多的就是通過 mysqldump 等備份工具。
  • 遷移注意點

1. 相同版本的數據庫之間遷移注意點
指的是在主版本號相同的MySQL數據庫之間進行數據庫移動。

方式1: 因為遷移前后MySQL數據庫的 主版本號相同 ,所以可以通過復制數據庫目錄來實現數據庫遷移,但是物理遷移方式只適用于MyISAM引擎的表。對于InnoDB表,不能用直接復制文件的方式備份數據庫。
方式2: 最常見和最安全的方式是使用 mysqldump命令 導出數據,然后在目標數據庫服務器中使用MySQL命令導入。

# host1的機器中備份所有數據庫,并將數據庫遷移到名為host2的機器上
mysqldump –h host1 –uroot –p –-all-databases|mysql –h host2 –uroot –p
# “|”符號表示管道,其作用是將mysqldump備份的文件給mysql命令;“--all-databases”表示要遷移所有的數據庫。通過這種方式可以直接實現遷移

2. 不同版本的數據庫之間遷移注意點
例如,原來很多服務器使用5.7版本的MySQL數據庫,在8.0版本推出來以后,改進了5.7版本的很多缺陷,因此需要把數據庫升級到8.0版本

舊版本與新版本的MySQL可能使用不同的默認字符集,例如有的舊版本中使用latin1作為默認字符集,而最新版本的MySQL默認字符集為utf8mb4。如果數據庫中有中文數據,那么遷移過程中需要對默認字符集進行修改,不然可能無法正常顯示數據。

高版本的MySQL數據庫通常都會 兼容低版本 ,因此可以從低版本的MySQL數據庫遷移到高版本的MySQL數據庫。

3. 不同數據庫之間遷移注意點
不同數據庫之間遷移是指從其他類型的數據庫遷移到MySQL數據庫,或者從MySQL數據庫遷移到其他類型的數據庫。這種遷移沒有普適的解決方法。

遷移之前,需要了解不同數據庫的架構, 比較它們之間的差異 。不同數據庫中定義相同類型的數據的關鍵字可能會不同 。例如,MySQL中日期字段分為DATE和TIME兩種,而ORACLE日期字段只有DATE;SQLServer數據庫中有ntext、Image等數據類型,MySQL數據庫沒有這些數據類型;MySQL支持的ENUM和SET類型,這些SQL Server數據庫不支持。

另外,數據庫廠商并沒有完全按照SQL標準來設計數據庫系統,導致不同的數據庫系統的 SQL語句 有差別。例如,微軟的SQL Server軟件使用的是T-SQL語句,T-SQL中包含了非標準的SQL語句,不能和MySQL的SQL語句兼容。

不同類型數據庫之間的差異造成了互相 遷移的困難 ,這些差異其實是商業公司故意造成的技術壁壘。但是不同類型的數據庫之間的遷移并 不是完全不可能 。例如,可以使用 MyODBC 實現MySQL和SQL Server之間的遷移。MySQL官方提供的工具 MySQL Migration Toolkit 也可以在不同數據之間進行數據遷移。MySQL遷移到Oracle時,需要使用mysqldump命令導出sql文件,然后, 手動更改 sql文件中的CREATE語句
  • 誤刪行

1. 恢復數據比較安全的做法,是恢復出一個備份,或者找一個從庫作為臨時庫,在這個臨時庫上執行這些操作,然后再將確認過的臨時庫的數據,恢復回主庫。如果直接修改主庫,可能導致對數據的二次破壞 。
2. 把 sql_safe_updates 參數設置為 on 。這樣一來,如果我們忘記在delete或者update語句中寫where條件,或者where條件里面沒有包含索引字段的話,這條語句的執行就會報錯。如果確定要把一個小表的數據全部刪掉,在設置了sql_safe_updates=on情況下,可以在delete語句中加上where條件,比如where id>=0。
3. 代碼上線前,必須經過 SQL審計
  • truncate/drop :誤刪庫/表

這種情況下,要想恢復數據,就需要使用 全量備份 ,加 增量日志 的方式了。這個方案要求線上有定期的全量備份,并且實時備份binlog。
在這兩個條件都具備的情況下,假如有人中午12點誤刪了一個庫,恢復數據的流程如下:
1. 取最近一次全量備份,假設這個庫是一天一備,上次備份是當天 凌晨2點 ;
2. 用備份恢復出一個臨時庫 ;
3. 從日志備份里面,取出凌晨2點之后的日志;
4. 把這些日志,除了誤刪除數據的語句外,全部應用到臨時庫
  • 延遲復制備庫

如果有 非常核心 的業務,不允許太長的恢復時間,可以考慮搭建延遲復制的備庫。一般的主備復制結構存在的問題是,如果主庫上有個表被誤刪了,這個命令很快也會被發給所有從庫,進而導致所有從庫的數據表也都一起被誤刪了。

延遲復制的備庫是一種特殊的備庫,通過 CHANGE MASTER TO MASTER_DELAY = N 命令,可以指定這個備庫持續保持跟主庫有 N秒的延遲 。比如你把N設置為3600,這就代表了如果主庫上有數據被誤刪了,并且在1小時內發現了這個誤操作命令,這個命令就還沒有在這個延遲復制的備庫執行。這時候到這個備庫上執行stop slave,再通過之前介紹的方法,跳過誤操作命令,就可以恢復出需要的數據。
  • 預防誤刪庫/表的方法

1. 賬號分離 。這樣做的目的是,避免寫錯命令。比如:
只給業務開發同學DML權限,而不給truncate/drop權限。而如果業務開發人員有DDL需求的話,可以通過開發管理系統得到支持。
即使是DBA團隊成員,日常也都規定只使用 只讀賬號 ,必要的時候才使用有更新權限的賬號。

2. 制定操作規范 。比如:
在刪除數據表之前,必須先 對表做改名 操作。然后,觀察一段時間,確保對業務無影響以后再刪除這張表。
改表名的時候,要求給表名加固定的后綴(比如加 _to_be_deleted ),然后刪除表的動作必須通過管理系統執行。并且,管理系統刪除表的時候,只能刪除固定后綴的表。
  • rm:誤刪MySQL實例

對于一個有高可用機制的MySQL集群來說,不用擔心 rm刪除數據 了。只是刪掉了其中某一個節點的數據的話,HA系統就會開始工作,選出一個新的主庫,從而保證整個集群的正常工作。我們要做的就是在這個節點上把數據恢復回來,再接入整個集群。

關于“mysql數據庫遷移的方法是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“mysql數據庫遷移的方法是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

津南区| 嘉祥县| 资中县| 和龙市| 铜梁县| 达州市| 阳信县| 广昌县| 克东县| 澎湖县| 古丈县| 阜新市| 东兴市| 台南市| 平阴县| 玉溪市| 曲麻莱县| 横峰县| 新化县| 马山县| 阿合奇县| 家居| 长治县| 淮北市| 崇义县| 南平市| 宁化县| 庆安县| 三河市| 临潭县| 宜阳县| 木兰县| 嵩明县| 开封县| 柞水县| 新干县| 德令哈市| 弋阳县| 察隅县| 台州市| 富民县|