Backup

對正在執行的 mariadb 伺服器進行完整備份並恢復,但沒有一個數據庫可見

  • June 7, 2019

我正在建立一個 mariadb galera 集群以最終將生產切換到。但是,我沒有能力停止生產實例,所以我嘗試使用我遇到的各種解決方法來設置它。目前設置依賴於一對 mariadb 伺服器作為主/從對。我添加了第三台 mariadb 伺服器,並且正在將完整備份恢復到第三台空伺服器。

為了備份伺服器,我執行了以下操作:

mysqldump -u root -p --all-databases --master-data=2 | gzip > backup.sql.gz

新伺服器準備好後,我恢復了數據庫:

zcat backup.sql.gz  | mysql -u root --port=3309 --socket=/var/run/mysqld/mysqld400.sock

當我登錄 mysql 並顯示數據庫時,除了預設數據庫(資訊、性能和 mysql)之外,我看不到任何其他內容。我停止並重新啟動了 mariadb,它仍然是一樣的。我還需要指向剛剛恢復的數據的另一個步驟嗎?

無論您採取何種方法,至少都會有短暫的停機時間。

你有 M->S,想要 GGG,對嗎?

要從 M->S 獲取另一個從站,請停止從站,複製磁碟,更改 server_id,啟動它們,讓複製趕上。主人不下去,但你會有S<-M->S。但這仍然不是您所需要的。

認為(但不確定)這就是方法。(這裡沒有很多Galera的幫助,所以我會給你多於沒有。)

  1. 可選擇保持對您的 1 個從屬設備的讀取訪問權限。
  2. 阻止大師。
  3. 將 Master 引導到第一個 Galera 節點。
  4. 停止奴隸。
  5. 將 Slave 變成第二個 Galera 節點。
  6. 如果您有另一個奴隸,請對其執行 4 和 5。如果不給 Galera 一台空機器,讓它建立第三個節點。

步驟 6 可以替換為設置“garbd”節點——這可能要快得多,因為不需要數據。您可以執行第 7 步來建構“真實”節點並擺脫 garbd。

所以事實證明問題是我沒有正確登錄到實例,這就是我看不到數據庫的原因。

我用這個登錄:

mysql -u root -p --port=3309

當我應該用這個登錄時:

mysql -u root -p -s -h 127.0.0.1 --port=3309

所以事實證明備份/恢復工作,唯一奇怪的是一個顯示數據庫;不會返回格式良好的表格,但會顯示所有數據庫。

引用自:https://dba.stackexchange.com/questions/239796