九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
MySQL 備份和恢復(fù)策略
在數(shù)據(jù)庫表丟失或損壞的情況下,備份你的數(shù)據(jù)庫是很重要的。如果發(fā)生系統(tǒng)崩潰,你肯定想能夠?qū)⒛愕谋肀M可能丟失最少的數(shù)據(jù)恢復(fù)到崩潰發(fā)生時的狀態(tài)。本文主要對MyISAM表做備份恢復(fù)。

 

備份策略一:直接拷貝數(shù)據(jù)庫文件(不推薦)

備份策略二:使用mysqlhotcopy備份數(shù)據(jù)庫(完全備份,適合小型數(shù)據(jù)庫備份)

備份策略三:使用mysqldump備份數(shù)據(jù)庫(完全+增量備份,適合中型數(shù)據(jù)庫備份)

備份策略四:使用主從復(fù)制機(jī)制(replication)(實(shí)現(xiàn)數(shù)據(jù)庫實(shí)時備份)

 

腳本下載地址:點(diǎn)擊下載腳本

 

備份策略一、直接拷貝數(shù)據(jù)庫文件

直接拷貝數(shù)據(jù)文件最為直接、快速、方便,缺點(diǎn)是基本上不能實(shí)現(xiàn)增量備份。為了保證數(shù)據(jù)的一致性,需要在備份文件前,執(zhí)行以下 SQL 語句:

FLUSH TABLES WITH READ LOCK;

也就是把內(nèi)存中的數(shù)據(jù)都刷新到磁盤中,同時鎖定數(shù)據(jù)表,以保證拷貝過程中不會有新的數(shù)據(jù)寫入。這種方法備份出來的數(shù)據(jù)恢復(fù)也很簡單,直接拷貝回原來的數(shù)據(jù)庫目錄下即可。

 

備份策略二、使用mysqlhotcopy備份數(shù)據(jù)庫

mysqlhotcopy 是一個 PERL 程序,最初由Tim Bunce編寫。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或單個表的最快的途徑,但它只能運(yùn)行在數(shù)據(jù)庫文件(包括數(shù)據(jù)表定義文件、數(shù)據(jù)文件、索引文件)所在的機(jī)器上,并且mysqlhotcopy 只能用于備份 MyISAM表。

本備份策略適合于小型數(shù)據(jù)庫的備份,數(shù)據(jù)量不大,可以采用mysqlhotcopy程序每天進(jìn)行一次完全備份。

備份策略布置:

(1)、安裝DBD-mysql perl模塊,支持mysqlhotcopy腳本連接到MySQL數(shù)據(jù)庫。

shell> tar -xzvf  DBD-mysql-4.005.tar.gz

shell> cd DBD-mysql-4.005

shell> unset LANG

shell> perl Makefile.PL -mysql_config=/usr/local/mysql/bin/mysql_config -testuser=root -testpassword=UserPWD

shell> make

shell> make test

shell> make install

(2)、設(shè)置crontab任務(wù),每天執(zhí)行備份腳本

shell> crontab -e

/root/MySQLBackup/mysqlbackup.sh >/dev/null 2>&1

每天凌晨3:00執(zhí)行備份腳本。

 

mysqlbackup.sh注釋:

#!/bin/sh

# Name:mysqlbackup.sh

# PS:MySQL DataBase Backup,Use mysqlhotcopyscript.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定義變量,請根據(jù)具體情況修改

# 定義腳本所在目錄

scriptsDir=`pwd`

# 數(shù)據(jù)庫的數(shù)據(jù)目錄

dataDir=/usr/local/mysql/data/

# 數(shù)據(jù)備份目錄

tmpBackupDir=/tmp/tmpbackup/

backupDir=/tmp/mysqlbackup/

# 用來備份數(shù)據(jù)庫的用戶名和密碼

mysqlUser=root

mysqlPWD=111111

# 定義eMail地址

eMail=alter@somode.com


# 如果臨時備份目錄存在,清空它,如果不存在則創(chuàng)建它

if [[ -e $tmpBackupDir ]]; then

  rm -rf $tmpBackupDir/*

else

  mkdir $tmpBackupDir

fi

# 如果備份目錄不存在則創(chuàng)建它

if [[ ! -e $backupDir ]];then

  mkdir $backupDir

fi


# 清空MySQLBackup.log

if [[ -s MySQLBackup.log ]]; then

  cat /dev/null >MySQLBackup.log

fi


# 得到數(shù)據(jù)庫備份列表,在此可以過濾不想備份的數(shù)據(jù)庫

for databases in `find $dataDir -type d | \

  sed -e "s/\/usr\/local\/mysql\/data\///" | \

  sed -e "s/test//"`; do


  if [[ $databases == "" ]]; then

   continue

  else

# 備份數(shù)據(jù)庫

   /usr/local/mysql/bin/mysqlhotcopy --user=$mysqlUser--password=$mysqlPWD -q "$databases" $tmpBackupDir

   dateTime=`date "+%Y.%m.%d %H:%M:%S"`

    echo"$dateTime Database:$databases backup success!">>MySQLBackup.log

  fi

done


# 壓縮備份文件

date=`date -I`

cd $tmpBackupDir

tar czf $backupDir/mysql-$date.tar.gz ./


# 發(fā)送郵件通知

if [[ -s MySQLBackup.log ]]; then

  cat MySQLBackup.log | mail -s "MySQL Backup"$eMail

fi


# 使用smbclientmv.sh腳本上傳數(shù)據(jù)庫備份到備份服務(wù)器

# $scriptsDir/smbclientmv.sh

 

smbclientmv.sh注釋

#!/bin/sh

# Name:smbclientmv.sh

# PS:Move the data to Backup Server.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定義變量

# 備份服務(wù)器名

BackupServer="BackupServerName"

# 共享文件夾名

BackupShare="ShareName"

# 備份服務(wù)器的訪問用戶名和密碼

BackupUser="SMBUser"

BackupPW="SMBPassword"

# 定義備份目錄

BackupDir=/tmp/mysqlbackup

date=`date -I`


# Move the data to BackupServer

smbclient //$BackupServer/$BackupShare \

$BackupPW -d0 -W WORKGROUP -U $BackupUser \

-c "put $BackupDir/mysql-$date.tar.gz \

mysql-$date.tar.gz"


# Delete temp files

rm -f $BackupDir/mysql-$date.tar.gz

(3)、恢復(fù)數(shù)據(jù)庫到備份時的狀態(tài)
mysqlhotcopy 備份出來的是整個數(shù)據(jù)庫目錄,使用時可以直接拷貝到mysqld 指定的 datadir (在這里是/usr/local/mysql/data/)目錄下即可,同時要注意權(quán)限的問題,如下例:
shell> cp -rf db_name /usr/local/mysql/data/
shell> chown -R mysql:mysql /usr/local/mysql/data/ (將 db_name目錄的屬主改成 mysqld 運(yùn)行用戶)
本套備份策略只能恢復(fù)數(shù)據(jù)庫到最后一次備份時的狀態(tài),要想在崩潰時丟失的數(shù)據(jù)盡量少應(yīng)該更頻繁的進(jìn)行備份,要想恢復(fù)數(shù)據(jù)到崩潰時的狀態(tài)請使用主從復(fù)制機(jī)制(replication)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL數(shù)據(jù)庫的數(shù)據(jù)備份和恢復(fù)詳解 - 日志 - freebone - MySQL基地 ...
mysql備份并進(jìn)行加密腳本
MySQL數(shù)據(jù)庫常用的備份方法
Linux 環(huán)境下雙機(jī)(多機(jī))自動互備份方案
linux系統(tǒng)中mysql自動備份腳本
mysql的備份與修復(fù)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服