跨伺服器備份:
伺服器a:192.168.5.193
測試資料庫testdb
伺服器b:192.168.5.194
目標:將伺服器a上的測試資料庫定時備份到伺服器b中
需要技術:mysqldump + crontab
步驟:1.修改mysql遠端連線訪問許可權
修改mysql的配置檔案/mysql/my.conf,將bind-address後面增加遠端訪問ip位址或者禁掉這句話就可以讓遠端機登陸訪問了。
2.增加伺服器授權使用者
在伺服器a上:
create user 'username'@'host' identified by 'password';
說明:username:你將建立的使用者名稱
host:指定該使用者在哪個主機上可以登陸,如果是本地使用者可用localhost,如果想讓該使用者可以從任意遠端主機登陸,可以使用萬用字元%
password:該使用者的登陸密碼,密碼可以為空,如果為空則該使用者可以不需要密碼登陸伺服器
grant privileges on databasename.tablename to 'username'@'host'
說明:privileges:使用者的操作許可權,如select,insert,update等,如果要授予所的許可權則使用all
databasename:資料庫名
tablename:表名,如果要授予該使用者對所有資料庫和表的相應操作許可權則可用表示,如.*
本測試例項mysql語句為:
create user 'why'@'192.168.5.194' identified by '123456';
grant privileges on *.* to 'why'@'192.168.5.194';
flush privileges; /*重新整理一下許可權*/
這樣就建立了如下的使用者許可權表,在伺服器端檢視一下,命令為:
3.在伺服器b上編寫如下指令碼
#!/bin/bash
my_user=why #伺服器b的使用者(必須是已經授權的)
my_pass=123456 #伺服器a的使用者密碼
my_host=192.168.5.193 #要連線的伺服器a
my_db1=testdb #想要匯出的伺服器a的資料庫(需要授權)
mm_dir=/home/fabric/backup/t2.sql #匯出的位址
mysqldump_cmd=/usr/bin/mysqldump #mysqldump的可執行指令位址
local_usr=root #本地資料庫的使用者名稱
local_pass=000000 #本地資料庫的密碼
mysql_cmd=/usr/bin/mysql #mysql的可執行指令位址
$mysqldump_cmd -h $my_host -u $my_user -p$my_pass $my_db1 > $mm_dir
$mysql_cmd -u $local_usr -p$local_pass $my_db1 < $mm_dir
在命令列下進行測試,看看是否能夠備份。
檢視伺服器a上的資料,這裡的圖形化工具是mysql workbench(使用起來還不錯)
執行如上指令碼後,檢視伺服器b的資料。
/可以看到這裡備份成功了/
使用crontab進行定時備份
crontab -e後
1 * * * * ~/backupdatabases.sh
以上命令使得,每小時的第一分鐘,對資料庫進行備份,當然也可以隨意修改一些時間。
資料庫容災方案
也稱資料庫雙活 資料庫複製,即在本地或異地部署乙個與生產庫完全相同的災備資料庫,當生產庫由於各種原因 錯誤操作 系統軟體錯誤 病毒 硬體故障 斷電 火災 等 發生故障時,災備資料庫可以立刻接管原有應用,對外正常提供服務。進行資料庫容災需要考慮以下問題 1 本地容災還是異地容災,異地容災的網路頻寬及穩...
簡單閒聊 資料庫容災方案
也稱資料庫雙活 資料庫複製,即在本地或異地部署乙個與生產庫完全相同的災備資料庫,當生產庫由於各種原因 錯誤操作 系統軟體錯誤 病毒 硬體故障 斷電 火災 等 發生故障時,災備資料庫可以立刻接管原有應用,對外正常提供服務。進行資料庫容災需要考慮以下問題 1 本地容災還是異地容災,異地容災的網路頻寬及穩...
資料庫容災性解決方案綜述
資料庫容災性解決方案綜述 目前資料庫容災 目的的都是儘量減少或避免因災難的發生而造成的損失。它是乙個系統工程,備份與恢復就是這一系統工程的兩個重要組成部分。除此之外,還有許多具體的工作,像備份 的保管 存放,容災演練等都是容災中要做的。從廣義上講,任何有助於提高系統可用性的努力,都可被稱為容災。資料...