最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)遷移相關總結

 更新時間:2021年04月29日 11:54:02   作者:MySQL技術  
這篇文章主要介紹了MySQL數(shù)據(jù)遷移的相關資料,幫助大家更好的理解和學習使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下

前言:

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

  1.關于數(shù)據(jù)遷移

首先引用下維基百科中對數(shù)據(jù)遷移的解釋:

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

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

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

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

  2.遷移方案及注意點

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

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

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

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

# 原庫執(zhí)行 得到的創(chuàng)建數(shù)據(jù)庫語句在新庫執(zhí)行 (排除系統(tǒng)庫)
SELECT
  CONCAT( 'CREATE DATABASE IF NOT EXISTS ', '`', SCHEMA_NAME, '`', ' DEFAULT CHARACTER SET ', DEFAULT_CHARACTER_SET_NAME, ';' ) AS CreateDatabaseQuery 
FROM
  information_schema.SCHEMATA 
WHERE
  SCHEMA_NAME NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' );
  
 # 原庫執(zhí)行 得到的創(chuàng)建用戶語句在新庫執(zhí)行 (排除系統(tǒng)用戶)
 SELECT
  CONCAT( 'create user \'', USER, '\'@\'', HOST, '\'' ' IDENTIFIED BY PASSWORD \'', authentication_string, '\';' ) AS CreateUserQuery 
FROM
  mysql.`user` 
WHERE
  `User` NOT IN ( 'root', 'mysql.session', 'mysql.sys' );
  
# 原庫執(zhí)行 show grants 得到用戶權限 然后逐一在新庫執(zhí)行 (也可以復制那幾張權限表到新庫)
show grants for 'testuser'@'%';

# 至此 新環(huán)境已經(jīng)存在要遷移的庫和用戶 只是沒有數(shù)據(jù)
# 原環(huán)境使用mysqldump備份除系統(tǒng)庫外的所有庫 
mysqldump  -uroot -pxxxx -R -E --single-transaction --databases db1 db2 > db.sql

# 然后導入新環(huán)境
mysql -uroot -pxxxx < db.sql

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

# 備份單個庫
mysqldump -uroot -pxxxxx -R -E --single-transactio --databases db1 > db1.sql

# 備份部分表
mysqldump -uroot -pxxxxx --single-transaction db1 tb1 tb2 > tb12.sql

# 排查某些表
mysqldump -uroot -pxxxxx db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > db1.sql

# 只備份結構或數(shù)據(jù)
mysqldump -uroot -pxxxxx testdb --no-data > testdb_jiegou.sql
mysqldump -uroot -pxxxxx testdb --no-create-info > testdb_data.sql

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

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

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

總結:

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

以上就是MySQL數(shù)據(jù)遷移相關總結的詳細內(nèi)容,更多關于MySQL數(shù)據(jù)遷移的資料請關注腳本之家其它相關文章!

相關文章

  • MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復數(shù)據(jù)

    MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復數(shù)據(jù)

    這篇文章主要介紹了MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL基礎入門教程之事務

    MySQL基礎入門教程之事務

    事務主要用于處理操作量大,復雜度高的數(shù)據(jù),下面這篇文章主要給大家介紹了關于MySQL基礎入門教程之事務的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • homeassistant數(shù)據(jù)存儲到mysql數(shù)據(jù)庫方式

    homeassistant數(shù)據(jù)存儲到mysql數(shù)據(jù)庫方式

    這篇文章主要介紹了homeassistant數(shù)據(jù)存儲到mysql數(shù)據(jù)庫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MySQL中LOW_PRIORITY含義和用法詳解

    MySQL中LOW_PRIORITY含義和用法詳解

    LOW_PRIORITY是MySQL中的一個關鍵字,它用于在執(zhí)行某些操作時改變這些操作的優(yōu)先級,本文主要介紹了MySQL中LOW_PRIORITY用法,感興趣的可以了解一下
    2024-07-07
  • mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總

    mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總

    這篇文章主要介紹了mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總的相關資料,需要的朋友可以參考下
    2015-10-10
  • navicat連接mysql報錯1251的解決方法

    navicat連接mysql報錯1251的解決方法

    這篇文章主要為大家詳細介紹了navicat連接mysql報錯1251的解決方法,文中解決方法介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • MySQL密碼策略管理插件validate_password用法詳解

    MySQL密碼策略管理插件validate_password用法詳解

    自MySQL5.6起,引入validate_password插件,用于密碼長度和強度管理,在MySQL8.0中,該插件通過服務器組件重新實現(xiàn),插件默認不允許密碼為用戶名,可設定最小長度和強度等級,還可要求密碼包含數(shù)字、大小寫字母和特殊字符
    2024-11-11
  • MySQL深分頁問題原理與三種解決方案

    MySQL深分頁問題原理與三種解決方案

    本文主要介紹了MySql深分頁問題原理與解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • MySQL函數(shù)date_format()日期格式轉換的實現(xiàn)

    MySQL函數(shù)date_format()日期格式轉換的實現(xiàn)

    本文主要介紹了MySQL函數(shù)date_format()日期格式轉換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • mysql安裝出現(xiàn)Install/Remove of the Service Denied!錯誤問題

    mysql安裝出現(xiàn)Install/Remove of the Service D

    這篇文章主要介紹了mysql安裝出現(xiàn)Install/Remove of the Service Denied!錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

林西县| 石河子市| 淮北市| 乐亭县| 巴林左旗| 新乡县| 随州市| 青神县| 林周县| 玛沁县| 龙胜| 买车| 宜兰市| 格尔木市| 凌源市| 抚顺县| 新宾| 乐亭县| 鹤庆县| 思南县| 永川市| 靖西县| 开封市| 沈阳市| 昌宁县| 汝城县| 翼城县| 易门县| 修武县| 耿马| 四川省| 潢川县| 长阳| 安丘市| 兴仁县| 卫辉市| 黄龙县| 德庆县| 金平| 鄱阳县| 乌鲁木齐县|