- 1、mysql如何創建多個實例,求步驟,謝謝,急求
- 2、unix下mysql數據庫如何利用工具進行數據備份
- 3、如何同步兩個mysql數據庫中所有的表
- 4、一台mysql實例 可以創建多少mysql數據庫
大多情況下,需要可靠而有效地克隆 MySQL 實例數據。這包括 MySQL 高可用的解決方案,其中需要在將實例加入組複製集群之前配置實例,或者在經典複製模型中將其添加為 Slave。
為複製拓撲而創建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 服務器,通過網絡將備份傳輸到我們想要添加到複製集的新 MySQL 節點,然後在該節點上恢復備份並手動啟動 MySQL 服務器。為了高可用,最好還要將其正確設置備份的 GTID,並啟動並運行群集。涉及的手動步驟數量過多不利於高可用。CLONE 插件解決了這個問題並簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節點並在發生時觀察克隆進度。無需手動處理多個步驟並維護自己的基礎架構來配置新的 MySQL 節點。
MySQL 8.0.17 引入了 CLONE SQL 語句,使當前的 MySQL 服務器成為另一個運行在不同節點的 MySQL 服務器的「克隆」。我們將執行 clone 語句的服務器實例稱為「受體」。克隆的源服務器實例稱為「供體」。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數據和元數據,以替換受體中的數據。
成功執行 CLONE SQL 語句後,將自動重新啟動受體服務器。重新啟動涉及恢復克隆的快照數據,就像用老方法複製數據一樣。恢復完成後,受體就是供體的克隆版,隨時可以使用!
這裡有一些關於克隆過程的重要注意事項。
不克隆 MySQL 配置參數,並且受體保留所有原始配置參數,如克隆之前。這樣做是因為許多配置可能特定於節點(例如 PORT),因此保留它們似乎是一個不錯的選擇。另一方面,一些存儲配置確實需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數不匹配,CLONE 將報告錯誤。
CLONE 插件不會克隆二進制日誌。
CLONE 插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創建的表將被克隆為空表。克隆基礎架構的設計允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經實現並經過測試。
克隆會阻止供體中的所有並發 DDL。
需要注意的事實是受體放棄所有數據以及任何二進制日誌,以便成為供體實例的克隆。在執行 CLONE 之前,如果認為有必要,需要備份當前受體數據。
用以備份的工具
1.
mysqldump
2.
mysqlhotcopy
3.mysqlsnapshot
4.ibbackup
聯機備份
.VS.
脫機備份
聯機備份通常使用在不能接受數據庫停機的情況下,一般來說,脫機備份速度快,並且發生錯誤的幾率少,我們不用擔心數據庫正在執行事務,鎖表等容易發生一致性問題的發生。如果你幸運的可以停下數據庫或者有一個主從方式的數據庫,請使用脫機方式備份。
Data
Dump
vs
Raw
backups
Data
dump
輸出一系列SQL
語句序列,可以在後來用來重新創建數據庫的結構並恢複數據。mysqldump
是這個領域的首選工具,他可以用在任意類型的表上面,無論是本地的還是網絡的。當然,由於要產生很多額外的SQL語句,導出結果將是一個很大的文件並且佔用很多CPU資源,最重要的是,當數據恢復後需要一次完全的索引重建。
更有效率的方法是是對MySQL數據庫的物理文件做一次快照(snapshot)。因為我們跳過了很多轉化步驟,因此處理起來比較高效。
做一個MyISM數據表的備份只要拷貝磁盤上數據文件和索引文件。對InnoDB,需要備份對應表空間和關聯的事務日誌。
mysqldump
/
mysqlhotcopy
/
mysqlsnapshot
/
ibbackup
mysqldump
–
(online,
dump)
–
最一般的工具,他會通過鎖表的方式從一個聯機數據庫中做數據導出並寫到指定的文件中(磁盤或網絡上)。他只適合小的數據庫。
#
typical
mysql
dump
backup
and
restore
usage
mysqldump
-u
root
-pPassword
-x
–all-databases
db_dump.sql
mysql
-u
root
-pPassword
db_dump.sql
#
dump
into
『backup』
folder
(local
machine),
into
two
text
files
data,
table_structure
mysqldump
-T
backup
–fields-terminated-by=』,』
database-name
-u
root
-pPassword
#
compress
the
dumped
data
on
the
fly
mysqldump
-u
root
-pPassword
–all-databases
|
bzip2
-c
db_dump.bz2
mysqlhotcopy
–
(online,
raw)
將對由
ISAM或MyISAM
表構成的數據庫做一個完全的物理備份。他的操作方式:對所有表獲取一個只讀鎖=做文件拷貝=釋放鎖。
#
perform
an
online
backup
into
/backup/location
mysqlhotcopy
-u
root
-p
password
database_name
/backup/location
mysqlsnapshot
–
(online,
raw)
一個非常好的工具用來在聯機方式下獲得MySQL數據庫的一個快照。可以配置它來壓縮數據,並/或
為每一個數據庫提供一個分離的tar文件。
不過他只適合
MyISAM
類型數據庫。
#
save
a
full
database
snapshot
of
an
online
database
into
/backup/location
mysqlsnapshot
-u
root
-pPassword
-s
/backup/location
#
restore
a
snapshot
tar
-xvf
/backup/location/db.tar
ibbackup
–
(online,
raw)
可以對使用InnoDB和MyISAM表的任何數據庫做聯機備份。是一個很好的工具就是要收費.當然如果你是一個InnoDB的用戶,還是值得花錢購買的。
#
perform
online
backup
of
MyISAM
/
InnoDB
tables
ibbackup
/etc/my.cnf
/etc/ibbackup.cnf
#
restore
recent
backup
(as
configured
in
ibbackup.cnf)
ibbackup
–restore
/etc/ibbackup.cnf
cp,
scp,
nc
–
(offline,
raw)
如果你可以停下數據庫,則可以使用這幾個工具直接拷貝數據庫目錄下的文件。是獲取數據庫快照的最安全方法。
用數據庫快照就能實現啊.
Oracle快照原理及實現總結
Oracle數據庫的快照是一個表,它包含有對一個本地或遠程數據庫上一個或多個表或視圖的查詢的結果。對於中大型數據庫,業務數據庫里所有的數據同步到另外一個處理服務器上最佳的選擇還是使用SnapShot方式,即快照的方式。
由於工作需要,今天需要將業務數據庫里所有的數據同步到另外一個處理服務器上。在做方案的時候,想了很多方法,當然最快的辦法還是使用物理熱備的方式。
但是我個人認為如果對於中大型數據庫(我們的數據庫有300G左右)最佳的選擇還是使用SnapShot方式,即快照的方式。
Oracle數據庫的快照是一個表,它包含有對一個本地或遠程數據庫上一個或多個表或視圖的查詢的結果。也就是說快照根本的原理就是將本地或遠程數據庫上的一個查詢結果保存在一個表中。
以下是我建立的Snapshot,目的是從業務數據庫上將數據Copy到處理數據庫上,是不同的兩個服務器之間對數據copy。
第一步:在處理服務器上的Oracle終端,建立database link,業務數據庫服務器SID為TEST
create database link TEST_DBLINK.US.ORACLE.COM
connect to AMICOS identified by AMICOS
using ‘test’;
第二步:在業務數據庫上對應的表建立快照日誌
Create snapshot log on A_Table;
第三步:建立Snapshot 快照名稱為:Test_SnapShot
Create snapshot Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24
as select * from A_Table@TEST_DBLINK
說明:REFRESH是刷新方法
刷新方式有:COMPLETE和FAST兩種,而START WITH是說明開始執行的時間。
Next是下次執行的時間
而AS以後是構成快照的查詢方法。
相關的方法:
更改快照
ALTER SNAPSHOT Test_SnapShot
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/2;
手動刷新快照 在命令界面執行:
EXEC DBMS_SNAPSHOT.REFRESH(‘Test_SnapShot ‘,’C’);
第一個參數是要刷新的快照名
第二個參數是刷新的方式,F—-FAST, C—COMPLETE
查看快照最後刷新的日期
SELECT NAME,LAST_REFRESH
FROM ALL_SNAPSHOT_REFRESH_TIMES;
最後非常的方案:
1:為需要做Snapshot的表建立Snapshot日誌
create snapshot log on t1 with rowid; 這裡使用ROWID建立日記的參數
2:採用Fast的方式建立快照,使用rowid做為參考參數
create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select * from fb_test_b@my_dblink;
最好能按照rowid來建立快照。要不然就必須要為表建立Primary Key。
本質上對創建數據庫沒有限制,可以使用實例副本進行創建。
大多情況下,需要可靠而有效地克隆 MySQL 實例數據。這包括 MySQL 高可用的解決方案,其中需要在將實例加入組複製集群之前配置實例,或者在經典複製模型中將其添加為 Slave。
為複製拓撲而創建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 服務器,通過網絡將備份傳輸到我們想要添加到複製集的新 MySQL 節點,然後在該節點上恢復備份並手動啟動 MySQL 服務器。為了高可用,最好還要將其正確設置備份的 GTID,並啟動並運行群集。涉及的手動步驟數量過多不利於高可用。CLONE 插件解決了這個問題並簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節點並在發生時觀察克隆進度。無需手動處理多個步驟並維護自己的基礎架構來配置新的 MySQL 節點。
MySQL 8.0.17 引入了 CLONE SQL 語句,使當前的 MySQL 服務器成為另一個運行在不同節點的 MySQL 服務器的「克隆」。我們將執行 clone 語句的服務器實例稱為「受體」。克隆的源服務器實例稱為「供體」。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數據和元數據,以替換受體中的數據。
成功執行 CLONE SQL 語句後,將自動重新啟動受體服務器。重新啟動涉及恢復克隆的快照數據,就像用老方法複製數據一樣。恢復完成後,受體就是供體的克隆版,隨時可以使用!
這裡有一些關於克隆過程的重要注意事項。
不克隆 MySQL 配置參數,並且受體保留所有原始配置參數,如克隆之前。這樣做是因為許多配置可能特定於節點(例如 PORT),因此保留它們似乎是一個不錯的選擇。另一方面,一些存儲配置確實需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數不匹配,CLONE 將報告錯誤。
CLONE 插件不會克隆二進制日誌。
CLONE 插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創建的表將被克隆為空表。克隆基礎架構的設計允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經實現並經過測試。
克隆會阻止供體中的所有並發 DDL。
需要注意的事實是受體放棄所有數據以及任何二進制日誌,以便成為供體實例的克隆。在執行 CLONE 之前,如果認為有必要,需要備份當前受體數據。
原創文章,作者:RX41R,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127074.html