複製mysql完整資料庫(mysql 複製庫)

本文目錄一覽:

如何複製mysql資料庫到另一台電腦上?

這種架構一般用在以下三類場景

1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源複製架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源複製之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。

2. 用來聚合前端多個 Server 的分片數據。

同樣,按照數據切分方向來講,屬於水平切分。比如圖 3,按照年份拆分好的數據,要做一個匯總數據展現,那這種架構也非常合適。實現方法稍微複雜些:比如所有 Server 共享同一資料庫和表,一般為了開發極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。

3. 匯總併合並多個 Server 的數據

第三類和第一種場景類似。不一樣的是不僅僅是數據需要匯總到目標端,還得合併這些數據,這就比第一種來的相對複雜些。比如圖 4,那這樣的需求,是不是也適合多源複製呢?答案是 YES。那具體怎麼做呢?

如何將mysql的一個完整資料庫全部複製到另外一個資料庫?

如果從庫上表 t 數據與主庫不一致,導致複製錯誤,整個庫的數據量很大,重做從庫很慢,如何單獨恢復這張表的數據?通常認為是不能修復單表數據的,因為涉及到各表狀態不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:

場景 1

如果複製報錯後,沒有使用跳過錯誤、複製過濾等方法修復主從複製。主庫數據一直在更新,從庫數據停滯在報錯狀態(假設 GTID 為 aaaa:1-100)。

修復步驟:

在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000);

恢復到從庫;

啟動複製。

這裡的問題是複製起始位點是 aaaa:101,從庫上表 t 的數據狀態是領先其他表的。aaaa:101-10000 這些事務中只要有修改表 t 數據的事務,就會導致複製報錯 ,比如主鍵衝突、記錄不存在(而 aaaa:101 這個之前複製報錯的事務必定是修改表 t 的事務)

解決辦法:啟動複製時跳過 aaaa:101-10000 這些事務中修改表 t 的事務。

正確的修復步驟:

1. 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000),恢復到從庫;

2. 設置複製過濾,過濾表 t:

CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = (‘db_name.t’);

3. 啟動複製,回放到 aaaa:10000 時停止複製(此時從庫上所有表的數據都在同一狀態,是一致的);

START SLAVE UNTIL SQL_AFTER_GTIDS = ‘aaaa:10000’;

4. 刪除複製過濾,正常啟動複製。

注意事項:這裡要用 mysqldump –single-transaction –master-data=2,記錄備份快照對應的 GTID

場景 2

如果複製報錯後,使用跳過錯誤、複製過濾等辦法修復了主從複製。主、從庫數據一直在更新。

修復步驟:

在主庫上備份表 t (假設備份快照 GTID為 aaaa:1-10000);

停止從庫複製,GTID為 aaaa:1-20000;

恢復表 t 到從庫;

啟動複製。

這裡的問題是複製起始位點是 aaaa:20001,aaaa:10000-20000 這些事務將不會在從庫上回放,如果這裡面有修改表 t 數據的事務,從庫上將丟失這部分數據。

解決辦法:從備份開始到啟動複製,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務。

正確修復步驟:

對錶 t 加讀鎖;

在主庫上備份表 t;

停止從庫複製,恢復表 t;

啟動複製;

解鎖表 t。

如果是大表,這裡可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。

linux複製mysql整個庫dump命令

1、mysqldump被複制的資料庫名稱-u用戶名-p–add-drop-table|mysql複製到的資料庫名稱-u用戶名。

2、然後依次輸入第一個用戶名的密碼和第二個用戶名的密碼即可。

怎麼快速複製千萬級的Mysql資料庫表

我google了一下大概有一下幾個方法,

1.複製表結構及數據到新表

CREATE TABLE 新表 SELECT * FROM 舊錶

2.只複製表結構到新表

CREATE TABLE 新表 SELECT * FROM 舊錶 WHERE 1=2

即:讓WHERE條件不成立.

3.複製舊錶的數據到新表(假設兩個表結構一樣)

INSERT INTO 新表 SELECT * FROM 舊錶

4.複製舊錶的數據到新表(假設兩個表結構不一樣)

INSERT INTO 新表(欄位1,欄位2,…….) SELECT 欄位1,欄位2,…… FROM 舊錶

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284914.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:42
下一篇 2024-12-22 15:42

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 打造照片漫畫生成器的完整指南

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29
  • 伺服器安裝Python的完整指南

    本文將為您提供伺服器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 微信小程序和Python數據交互完整指南

    本篇文章將從多個方面介紹如何在微信小程序中實現與Python的數據交互。通過本文的學習,您將掌握如何將微信小程序與後台Python代碼結合起來,實現更豐富的功能。 一、概述 微信小…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29

發表回復

登錄後才能評論