成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數據遷移那些事兒

數據庫 MySQL
在平時工作中,經常會遇到數據遷移的需求,比如要遷移某個表、某個庫或某個實例。根據不同的需求可能要采取不同的遷移方案,數據遷移過程中也可能會遇到各種大小問題。本篇文章,我們一起來看下 MySQL 數據遷移那些事兒,希望能幫助到各位。

[[396807]]

本文轉載自微信公眾號「MySQL技術」,作者MySQL技術。轉載本文請聯系MySQL技術公眾號。

前言:

在平時工作中,經常會遇到數據遷移的需求,比如要遷移某個表、某個庫或某個實例。根據不同的需求可能要采取不同的遷移方案,數據遷移過程中也可能會遇到各種大小問題。本篇文章,我們一起來看下 MySQL 數據遷移那些事兒,希望能幫助到各位。

1.關于數據遷移

首先引用下維基百科中對數據遷移的解釋:

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

數據遷移是任何系統實現、升級或集成的關鍵考慮因素,通常以盡可能自動化的方式執行,從而將人力資源從繁瑣的任務中解放出來。

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

對于 MySQL 數據庫,也會經常碰到數據遷移的需求,比如說從測試庫遷到開發庫,或者從一臺機器遷移到另一臺機器,可能只是遷移一張表,也可能需要遷移整個數據庫實例。對于不同的需求可能要采取不同的遷移方案,但總體來講,MySQL 數據遷移方案大致可以分為物理遷移和邏輯遷移兩類。

2.遷移方案及注意點

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

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

相比來說,邏輯遷移適用范圍更廣,無論是部分遷移還是全量遷移,都可以使用邏輯遷移。邏輯遷移中使用最多的就是通過 mysqldump 等備份工具導出再導入了。

mysqldump 同樣適用于不同版本不同配置之間的遷移,不過全量遷移時,筆者不建議使用 -A 參數備份全部數據庫,特別是對于不同版本之間遷移,可能某些系統庫稍有不同,遷移后容易出現未知問題。若使用 mysqldump 進行全量遷移,可以按照下面步驟操作:

  1. # 原庫執行 得到的創建數據庫語句在新庫執行 (排除系統庫) 
  2. SELECT 
  3.   CONCAT( 'CREATE DATABASE IF NOT EXISTS ''`', SCHEMA_NAME, '`'' DEFAULT CHARACTER SET ', DEFAULT_CHARACTER_SET_NAME, ';' ) AS CreateDatabaseQuery  
  4. FROM 
  5.   information_schema.SCHEMATA  
  6. WHERE 
  7.   SCHEMA_NAME NOT IN ( 'information_schema''performance_schema''mysql''sys' ); 
  8.    
  9.  # 原庫執行 得到的創建用戶語句在新庫執行 (排除系統用戶) 
  10.  SELECT 
  11.   CONCAT( 'create user \''USER'\'@\'', HOST, '\'' ' IDENTIFIED BY PASSWORD \'', authentication_string, '\';' ) AS CreateUserQuery  
  12. FROM 
  13.   mysql.`user`  
  14. WHERE 
  15.   `UserNOT IN ( 'root''mysql.session''mysql.sys' ); 
  16.    
  17. # 原庫執行 show grants 得到用戶權限 然后逐一在新庫執行 (也可以復制那幾張權限表到新庫) 
  18. show grants for 'testuser'@'%'
  19.  
  20. # 至此 新環境已經存在要遷移的庫和用戶 只是沒有數據 
  21. # 原環境使用mysqldump備份除系統庫外的所有庫  
  22. mysqldump  -uroot -pxxxx -R -E --single-transaction --databases db1 db2 > db.sql 
  23.  
  24. # 然后導入新環境 
  25. mysql -uroot -pxxxx < db.sql 

對于遷移部分庫和部分表,也可以采用上方類似方案,只是備份時要按需備份,下面列舉出幾種常見的 mysqldump 備份場景:

  1. # 備份單個庫 
  2. mysqldump -uroot -pxxxxx -R -E --single-transactio --databases db1 > db1.sql 
  3.  
  4. # 備份部分表 
  5. mysqldump -uroot -pxxxxx --single-transaction db1 tb1 tb2 > tb12.sql 
  6.  
  7. # 排查某些表 
  8. mysqldump -uroot -pxxxxx db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > db1.sql 
  9.  
  10. # 只備份結構或數據 
  11. mysqldump -uroot -pxxxxx testdb --no-data > testdb_jiegou.sql 
  12. mysqldump -uroot -pxxxxx testdb --no-create-info > testdb_data.sql 

總得來說,使用 mysqldump 方案更加靈活,為了快速遷移,我們應該盡量減少備份內容,比如說排除無用的日志表。對于一些大表,我們也可以采用單獨遷移的方案,比方說,db1 中的 tb1 表特別大,我們可以在備份時先排除 tb1,對于大表 tb1 ,可以使用 LOAD DATA 方式或舍棄再導入表空間的方式來遷移。

數據遷移過程中,可能會遇到各種錯誤,一步步去解決即可。建議在新庫創建好用戶并授予好權限后再遷移,這樣可以避免出現視圖及函數導入錯誤,因為視圖及函數有個定義者的概念。新環境執行導入時,最好使用 root 等具有 SUPER 權限的管理員用戶,也可以避免一些因權限產生的問題。

遷移完成后,對于新環境,我們還應該再次進行檢查,比如表的個數是否相同,隨機抽查幾張表,數據是否相同、是否有亂碼等。只有確定無誤才大功告成。

總結:

本篇文章介紹了 MySQL 數據庫數據遷移相關方案及注意點,總結如下思維導圖:

圖片

 

責任編輯:武曉燕 來源: MySQL技術
相關推薦

2022-08-04 10:18:32

棧遷移?寄存器內存

2022-02-08 17:39:04

MySQL服務器存儲

2022-06-20 05:40:25

數據庫MySQL查詢

2018-02-02 13:58:59

數據存儲

2018-10-22 09:22:53

2013-12-26 14:23:03

定位系統GPS監測

2021-06-09 13:28:40

密碼安全身份認證數據安全

2018-09-26 06:50:19

2021-06-02 08:33:31

TPCTPC-H系統

2011-02-25 14:35:00

2021-11-11 23:16:33

前端數據格式Web

2013-09-09 10:54:24

2023-04-11 07:34:40

分布式系統算法

2024-08-12 08:41:40

2019-11-20 10:00:56

開源侵權版權

2022-02-18 19:24:15

性能優化代碼

2021-03-18 09:01:53

軟件開發軟件選型

2024-11-18 15:30:53

Linux目錄權限

2022-12-25 10:47:52

2016-03-02 09:34:03

runtime消息ios開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人黄色 | 日韩精品1区2区3区 成人黄页在线观看 | 成人免费网视频 | 精品国产欧美 | 超碰91在线 | 免费看的黄网站 | 97伦理影院 | 国产一区二区三区四区 | 亚洲第1页 | 欧美一级二级三级 | 羞羞的视频在线 | 精品91久久| 国产亚洲精品久久久优势 | 99久久精品国产一区二区三区 | 中文字幕亚洲精品在线观看 | 久久精品国产一区二区三区 | 日本免费在线观看视频 | 国产精品美女久久久av超清 | 噜噜噜噜狠狠狠7777视频 | 日韩精品久久一区二区三区 | 精品久久九九 | 一区二区三区四区av | 成人三级在线播放 | 成人精品鲁一区一区二区 | 日韩欧美在线视频 | 欧美综合一区 | 久久久美女 | 亚洲二区视频 | 九九热免费视频在线观看 | 亚洲电影一区二区三区 | 3p视频在线观看 | 91久久精品视频 | 久久久久久国产免费视网址 | 日本免费一区二区三区 | 久久亚洲精品国产精品紫薇 | 欧美精品1区 | av在线一区二区 | 亚洲国产成人精品女人久久久 | 亚洲欧美日韩在线 | 久久精品国产一区 | 欧美成人一区二区 |