91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

xtrabackup 備份還原單庫/表

發布時間:2020-07-21 01:27:46 來源:網絡 閱讀:30420 作者:geamover 欄目:MySQL數據庫

        使用 mysqldump 邏輯備份還原單個數據庫/表非常方便。但是,當數據量比較大的時候,對邏輯備份進行恢復的時間太長了。這個時候選擇物理備份的方式能大大縮短其中時間。


        使用 xtrabackup 進行全庫物理備份還原非常簡單,無須對其表空間(tablespace)進行重新導入。

        

        xtrabackup 全庫備份還原步驟:

    • 創建備份

      $ xtrabackup --backup --target-dir=/data/backups/

    •  準備備份

      $ xtrabackup --prepare --target-dir=/data/backups/

    • 還原備份

      $ xtrabackup --copy-back --target-dir=/data/backups/

      $ chown -R mysql:mysql /var/lib/mysql


        單庫/表備份還原步驟:

    • 創建備份

      xtrabackup --backup --datadir=/var/lib/mysql --target-dir=/data/backups/ --tables="^test[.]. * "

    • 準備備份

      $ xtrabackup --prepare --target-dir=/data/backups/

    • 導出表結構

      $ mysqldump  -d ^test > test.sql

    • 導入表結構

      $ mysql  test < test.sql

    • 釋放表空間

      # mysql -e "set foreign_key_checks=0;alter table test.* discard tablespace;"

    • 復制文件到數據目錄

      # cp -f /data/backups/*.cfg /data/backups/*.ibd /data/backups/*.frm /var/lib/mysql/test

    • 修改屬主

      # chown -R mysql:mysql /var/lib/mysql/test

    • 導入表空間

      # mysql -e "set foreign_key_checks=0;alter table test.* import tablespace;analyze table test.*;"

        如果兩個實例都具有 GA(通用可用性)狀態并且它們的版本在同一個系列中,則從另一個 MySQL 服務器實例導入表空間文件將起作用。 否則,該文件必須已在與其導入的服務器實例相同的服務器實例上創建。



        以下是一個通過 xtrabackup 對單庫進行備份還原的腳本

#!/bin/bash

# by geamover on 2017-12-26
# last updated on 2018-05-08
# This is for backup one DB to the orther DB on the same server by xtrabackup.

BK_DIR=/data/backup/`date +%F`/$1	# 備份路徑
MT=$BK_DIR/$1.sql					# 元數據
DT=/data/mysql/data/				# 數據目錄
SK=/tmp/mysql.sock					# mysql.sock
PW=123456							# mysql 密碼

if [ $# -ne 2 ]; then
	echo -e "\e[1;31mUsage:\e[0m $0 source_DB destination_DB"
	exit 1
fi
mysql -u root -p"$PW" -e "use $1;" &> /dev/null
if [ $? != 0 ]; then 
	echo "There is no database $1, please check!"
	exit 1
fi
echo "It will drop databae $2, are you sure continue?"
echo -e "\e[1;31my\e[0m for continue, any orther for exit: " 
read input
if [ $input == "y" ]; then
	echo "Go on!"
else 
	echo "Cancled!"
	exit
fi

if [ -d $BK_DIR ];then 
	rm -rf $BK_DIR/*
else mkdir -p $BK_DIR
fi
echo "From $1 to $2" | tee -a xtra.log
echo `date "+%F %T"`" Backing up databae $1 to $BK_DIR" | tee -a xtra.log
xtrabackup --backup -u root -p"$PW" --socket=$SK --databases="$1" --parallel=8 --target-dir=$BK_DIR &>> xtra.log
JD=`tail -n 1 xtra.log | awk '{print $3$4}'`
if [ $JD == "completedOK!" ]; then
	echo `date "+%F %T"`" Back up databae $1 to $BK_DIR completed OK!"
else 
	echo `date "+%F %T"`" Back up databae $1 to $BK_DIR failed!"
	exit 1
fi

echo `date "+%F %T"`" Prepare the backup."| tee -a xtra.log
xtrabackup --prepare --export --parallel=8 --target-dir=$BK_DIR &>> xtra.log
JD=`tail -n 1 xtra.log | awk '{print $3$4}'`
if [ $JD == "completedOK!" ]; then
	echo `date "+%F %T"`" Prepare up databae $1 to $BK_DIR completed OK!"
else 
	echo `date "+%F %T"`" Prepare up databae $1 to $BK_DIR failed!"
	exit 1
fi


echo `date "+%F %T"`" Dump the metadata of $1 to $MT."
# --set-gtid-purged=OFF 如果開啟 GTID 請指定該選項導出元數據
mysqldump -u root -p"$PW" -d $1 > $MT

echo "Drop database $2 if exists.Then create it and import metadata."
mysql -u root -p"$PW" -e "Drop database if exists $2;create database $2;use $2;source $MT;" &> /dev/null


for i in $(grep "CREATE TABLE" $MT | awk '{print $3}' | sed "s#\`##g")
	do
	mysql -u root -p"$PW" -e "set foreign_key_checks=0;alter table $2.$i discard tablespace;" &> /dev/null 
	cp -f $BK_DIR/$1/$i.cfg $BK_DIR/$1/$i.ibd $BK_DIR/$1/$i.frm $DT$2/ 
	chown -R mysql:mysql $DT$2/ 
	mysql -u root -p"$PW" -e "set foreign_key_checks=0;alter table $2.$i import tablespace;analyze table $2.$i;" &> /dev/null 
done


echo `date "+%F %T"`" From $1 to $2 done." | tee -a xtra.log

# delete the backup
rm -rf $BK_DIR


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秀山| 平利县| 嵩明县| 中西区| 宣城市| 石门县| 湖南省| 梁平县| 文山县| 新乡市| 将乐县| 嘉善县| 安图县| 张北县| 白水县| 红安县| 凌源市| 巴青县| 扎赉特旗| 扶风县| 巨野县| 霍林郭勒市| 静宁县| 镇平县| 白朗县| 大厂| 连云港市| 齐河县| 双流县| 皋兰县| 阿荣旗| 宁乡县| 南丰县| 三门县| 木兰县| 金昌市| 太保市| 梧州市| 满城县| 昌平区| 虞城县|