MYSQL定時備份(一)
當Linxu伺服器進行定時備份時,需要配置scp服務。
如下:
本地伺服器(A)主伺服器
遠端伺服器(B)從伺服器
1,本地伺服器A執行ssh-keygen -t rsa,一直回車即可。出現這個頁面表示執行成功,會在/root/.ssh下生成id.rsa和id_rsa.pub兩個檔案。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fdipzone/.ssh/id_rsa): 這裡輸入要生成的檔名
Enter passphrase (empty for no passphrase): 這裡輸入密碼
Enter same passphrase again: 這裡重複輸入密碼
Your identification has been saved in /home/fdipzone/.ssh/id_rsa.
Your public key has been saved in /home/fdipzone/.ssh/id_rsa.pub.
The key fingerprint is:
f2:76:c3:6b:26:10:14:fc:43:e0:0c:4d:51:c9:a2:b0 fdipzone@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
| .+=*.. |
| . += + |
| o oo+ |
| E . . o |
| ..S. |
| .o . |
| .o + |
| ...oo |
| +. |
+-----------------+
2,把主服務A的id_rsa.pub檔案拷貝到遠端伺服器B的/root/.ssh下,如果遠端伺服器B的/root/.ssh的資料夾不存在,執行mkdir 檔名建立。通過ssh工具下載上傳的方式,也可以用scp拷貝,scp第一次是需要輸入密碼,複製完之後,信任關係就已經建立如下:
#/root/.ssh為資料夾路徑,127.0.0.1是備份伺服器IP。scp的同時會修改資料夾為authorized_keys
[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@127.0.0.1:/root/.ssh/authorized_keys
root@127.0.0.1's password:
id_rsa.pub 100% 408 41.7KB/s 00:00
[root@localhost .ssh]#
3,在Linux下Mysqldump備份資料,會提示輸入密碼。在my.cnf配置檔案中[client]模組下新增資料庫賬號和密碼,如下圖
[client]
port = 3306
default-character-set=utf8
user = root
password = 123456
4,在指定的路徑執行編寫好的shell指令碼,執行之前需要在遠端伺服器B建立/home/mysql_backup資料夾。因為scp相互信任步驟完成,my.cnf配置中已設定資料庫賬號和密碼,所以不需要在輸入密碼,如下圖:
[root@localhost home]# sh mysql_backup.sh
20201129-1445-test1.sql-tar.gz 100% 341KB 14.0MB/s 00:00
20201129-1445-test2.sql-tar.gz 100% 5483 387.3KB/s 00:00
20201129-1445-test3.sql-tar.gz 100% 31MB 31.3MB/s 00:01
20201129-1445-test4sql-tar.gz 100% 23KB 827.6KB/s 00:00
20201129-1445-test5.sql-tar.gz 100% 46MB 45.8MB/s 00:01
[root@localhost home]#
5,指令碼如下
#建立mysql備份目錄
file_dir="/home/mysql_backup"
if [ ! -d "$file_dir" ]; then
echo "建立資料夾"
mkdir $file_dir
else
echo "資料夾已存在,正在備份mysql,請等待。"
fi
rm -rf /home/mysql_backup/*
HOST=127.0.0.1
DATABASE1=test
BACKUP_DIR=/home/mysql_backup/ #備份資料庫檔案的路徑
LOGFILE=/home/mysql_backup/data_backup.log #備份資料庫指令碼的日誌檔案
DATE=`date +%Y%m%d-%H%M -d -3minute` #獲取當前系統時間-3分鐘
DUMPFILE1=$DATE-test.sql #需要備份的資料庫名稱
ARCHIVE1=$DUMPFILE1-tar.gz #備份的資料庫壓縮後的名稱
if [ ! -d $BACKUP_DIR ]; #判斷備份路徑是否存在,若不存在則建立該路徑
then
mkdir -p "$BACKUP_DIR"
fi
echo -e "\n" >> $LOGFILE
echo "------------------------------------" >> $LOGFILE
echo "BACKUP DATE:$DATE">> $LOGFILE
echo "------------------------------------" >> $LOGFILE
cd $BACKUP_DIR
#跳到備份路徑下
mysqldump -h$HOST -R --databases $DATABASE1 --hex-blob > $DUMPFILE1
#使用mysqldump備份資料庫
if [[ $? == 0 ]]; then
tar czvf $ARCHIVE1 $DUMPFILE1 >> $LOGFILE 2>&1
#判斷是否備份成功,若備份成功,則壓縮備份資料庫,否則將錯誤日誌寫入日誌檔案中去。
echo "$ARCHIVE1 BACKUP SUCCESSFUL!" >> $LOGFILE
rm -f $DUMPFILE1
else
echo “$ARCHIVE1 Backup Fail!” >> $LOGFILE
fi
scp /home/mysql_backup/* root@127.0.0.1:/home/mysql_backup/
6,到主伺服器A,遠端伺服器B指定的MYSQL備份目錄看下是否成功,備份成功!
7,接下來設定定時備份任務,在主伺服器A執行crontab -e,設定指令碼執行的時間,下面語句中的路徑及時間請根據實際情況填寫。如下
30 23 * * * /bin/bash /home/mysql_backup.sh
8,如未生效,執行 service crond reload 過載crond服務!
相關文章
- MySQL 定時備份MySql
- MySQL 定時增量備份MySql
- 定時備份MySQL資料庫MySql資料庫
- MYSQL定時任務-定時清除備份資料MySql
- Mysql定時備份資料指令碼MySql指令碼
- 實戰-MySQL定時增量備份(2)MySql
- Linux下Mysql定時自動備份LinuxMySql
- 實戰-MySQL定時全量備份(1)MySql
- linux mysql定時備份指令碼記錄LinuxMySql指令碼
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 定時備份 MySQL 並上傳到七牛MySql
- centos7定時備份mysql傳送郵件CentOSMySql
- 【乾貨】MySQL 資料庫定時備份總結MySql資料庫
- MySQL 資料庫定時備份的幾種方式MySql資料庫
- xtrabackup備份mysql以及建立自動定時任務MySql
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- MySQL資料庫定時備份的幾種實現方法MySql資料庫
- ORACLE常用定時備份指令碼Oracle指令碼
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- Mysql備份失敗案例(一)MySql
- 資料庫定時備份linux篇資料庫Linux
- docker mysql8.0 啟動,掛資料卷,定時備份,恢復~DockerMySql
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- mysql的冷備份與熱備份MySql
- Java實現定時備份檔案教程Java
- MySQL:xtrabackup備份MySql
- Mysql備份系列MySql
- Java備份MySQLJavaMySql
- gitlab自動定時備份檔案,備份失敗傳送郵件Gitlab
- 初探MySQL資料備份及備份原理MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL備份與主備配置MySql
- MySQL入門--備份與恢復(一)MySql
- 實現MySQL資料庫的實時備份MySql資料庫
- 資料庫定時備份winserver2012篇資料庫Server
- 【MySQL】MySQL備份和恢復MySql
- mysql每日備份for LinuxMySqlLinux