Mysql備份III

Mysql備份III

Mysqldump和mysqldumper

A備份和恢復所有庫

$ time mysqldumo –all-databases > /mysql/backup/date.time.database.dump.sql
$ echo $?
$ ls -lah /mysql/backup/date.time.database.dump.sql
$ time mysql -u[user] -p -f < date.time.database.dump.sql > 
date.time.database.dump.sql.out 2>&1
$echo $?
$ls -lah date.time.database.dump.sql.out

$/usr/local/mysql/bin/mysqldump -S /tmp/mysql.sock -u root -p password -A
>/mysql/backup/ date.time.database.dump.sql
$mysql -S /tmp/mysql.sock -p password < /mysql/backup/ date.time.database.dump.sql

B備份和恢復一個庫

$/usr/local/mysql/bin/mysqldump -S /tmp/mysql.sock -u root -p password databasename
(這里是庫名)
>/mysql/backup/ date.time.databasename.dump.sql
$Mysql -S /tmp/mysql.sock -u root -p password databasename < /mysql/backup/ date.time.databasename.dump.sql

Or

Mysql>create database databasename;
Mysql>use databasename;
Mysql>system pwd
/mysql/backup
Mysql>source /mysql/backup/ date.time.databasename.dump.sql
Mysql>show tables;

C備份和恢復一個表

$/usr/local/mysql/bin/mysqldump -S /tmp/mysql.sock -u root -p password databasename
(這里是庫名) tablename(表名)
>/mysql/backup/ date.time.databasename.tablename.port.dump.sql

$Mysql -S /tmp/mysql.sock -u root -p password databasename < /mysql/backup/ date.time.databasename.tablename.port.dump.sql

ScriptS:

#!/bin/bash
#bakup mysql dbTables; usefree; not responsible;
#
#author lethe  6/15/2016
#QQ:914576241
#www.lethe.com.cn
#
#



echo -n "inputdbname:"
read dbname
echo "$dbname"
echo -n "inputdbuser:"
read user
echo “$user”
echo -n "inputpassword:"
read password
user=“$user”
password=“$password”
dbname=“$dbname”
cm= “mysql -S /tmp/mysql.sock -u “$user” -p “$password””
dm=” /usr/local/mysql/bin/mysqldump -S /tpm/mysql.sock -u $user -p $password”
#dbname=“datebasename”
dbakpath=“/mysql/backup/$dbname”
#dbakpath=“back up path”
#
#$cm -e “flash tables with read lock;”
#lock
#
#
if ["$dbname" = "" ]
echo “dbname null”
exit 1
fi
if [!-d”$dbakpath”]
then
mkdir -p “$dbakpath”
fi
cd “$dbakpath”
#tables
$cm -e “use  $dbname; show tables;”| grep -v Tables_in_ > ./table_list.txt
date=`date +%Y_%m_%d`
while read line
do
echo xxxx$line
#data
$dm $dbname ${line} > $dbakpath/${line}_$date.sql
done <./table_list.txt
rm -f ./table_list.txt
#del temp file
#ls -a /var/lib/mysql/mysql-bin* |grep -v mysql-bin.index|sort|head -1|awk’{print$5,$9}’|awk-F ‘/’’{printf $1,$5}’> $dbakpath_$date_position.txt
#
#cm -e “unlock tables;”

D備份和恢復表結構

$ mysqldump–all-databases –no-data 
> /mysql/backup/date.time.database.dumpschema.sql
$ echo $?
$ ls -lah /mysql/backup/date.time.database.dumpschema.sql
$ time mysql -u[user] -p -f < date.time.database.dumpschema.sql > 
date.time.database.dumpschema.sql.out 2>&1
$echo $?
$ls -lah date.time.database.dumpschema.sql.out

E備份和恢復存儲過程和觸發器

$ mysqldump–all-databases –no-data –no-create-info –events –routines 
> /mysql/backup/date.time.database.dumpobjects.sql
$ echo $?
$ ls -lah /mysql/backup/date.time.database.dumpobjects.sql
$ time mysql -u[user] -p -f < date.time.database.dumpobjects.sql > 
date.time.database.dumpobjects.sql.out 2>&1
$echo $?
$ls -lah date.time.database.dumpobjects.sql.out


$/usr/local/mysql/bin/mysqldump -S /tmp/mysql.sock -u root -p password -R –triggers -d -E -A > /mysql/backup/time.date.datebasename.triggereventsfunctions.dump.sql
$/usr/local/mysql/bin/mysql -S /tmp/mysql.sock -u root -p password <
/mysql/backup/time.date.datebasename.triggereventsfunctions.dump.sql

數據恢復過程中閃退需要檢查字符集和環境需要手工修改文件修復

ScriptS:

#!/bin/bash
#clean passed days old backup;back up DB; usefree; not responsible;
#
#author lethe  6/15/2016
#QQ:914576241
#www.lethe.com.cn
#
echo -n "inputdbname:"
read dbname
echo "$dbname"
echo -n "inputdbuser:"
read user
echo “$user”
echo -n "inputpassword:"
read password

echo -n "del back before x days :"
read passday
passday=”$passday”
user=“$user”
password=“$password”
dbname=“$dbname”

dbakpath=“/mysql/backup/$dbname”
cm= “mysql -S /tmp/mysql.sock -u “$user” -p “$password””
dm=” /usr/local/mysql/bin/mysqldump -S /tpm/mysql.sock -u $user -p $password”
#
#$cm -e “flash tables with read lock;”
#lock
#
#
#
if [!-d ”$dbakpath”]
then
mkdir -p “$dbakpath”
echo “$dbakpath not exsit create already”>>  ./dbak.log 
fi

cd “$dbakpath”
date=`date +%Y_%m_%d`
#lbday=”last back up data”
lbday=` date +"%Y_%m_%d" -d "-${passday} day"`
mkdir ./$lbday
ls ./$lbday/*  >> dbak.log 
cp *_lbday.sql ./$lbday
rm -rf *_$lbday.sql 
rm -rf ./$lbday
echo “del ok” >>  ./dbak.log

if [!-d”$date”]
then
mkdir -p “$date”
cp /var/lib/mysql/my.cnf  $dbakpath/$date/my.cnf.$date
echo “$date not exsit create already”>>  ./dbak.log 
fi

cd $date


#Oldbackupdir=odir

$cm -e “show databases;”|grep -vE “( Databases|_schema)” >  $dbackpath/db_list
$cm -e “use $dbname show tables;”|grep -v Table_in  > $dbackpath/table_list

############################################


while read dbname
do
############################################
echo $dbname
if [! -d”$dbackpath/$date/$dbname”];then
mkdir -p $dbackpath/$date/$dbname
fi

$cm -e “use $dbname show tables;”|grep -vE”(Tables_in|general_log|slow_log)” Table_in  >  $dbackpath/table_list


############################################
while read tablename
do
#echo $tablename
#$dm$dbname$tablename -R –events --triggers >$dbackpath/$date/$dbname/$
{tablename}.sql

$dm$dbname$tablename -R –events -- triggers > $dbackpath/$date/$dbname/$tablename
.sql

done  < $dbackpath/table_list


############################################
done  <  $dbackpath/db_list

rm -rf $dbackpath/db_list
rm -rf $dbackpath/table_list
#ls -a /var/lib/mysql/mysql-bin* |grep -v mysql-bin.index|sort|head -1|awk’{print$5,$9}’|awk-F ‘/’’{printf $1,$5}’> $dbakpath_$date_position.txt
#
#cm -e “unlock tables;”
mysql備份.PartI.pdf

原創文章,作者:雙慶 李,如若轉載,請注明出處:http://www.www58058.com/18010

(0)
雙慶 李雙慶 李
上一篇 2016-06-09 20:23
下一篇 2016-06-09 22:15

相關推薦

  • linux添加用戶

    今天給大家說一下linux添加用戶,大家可能覺得添加用戶很簡單,’adduser 用戶名’就這個命令搞掂了。那么大家知道這個命令幫我們完成了那些事情呢,今天就給大家普及一下 添加一個linux用戶需要關系到以下幾個文件: 保存用戶組的/etc/group文件。 保存用戶ID和密碼的/etc/passwd文件。 在home目錄下生產一個…

    Linux干貨 2017-05-28
  • Linux系統管理基礎

        一、Linux系統初識             1、用戶界面           &nbsp…

    Linux干貨 2015-04-14
  • Linux基礎——文件管理

    Linux基礎——文件管理 文件管理及常用命令詳解       Linux文件系統是以/為基本的倒置樹狀結構,我們來進一步學習下文件或者目錄的操作和管理命令:  目錄相關操作:cd、pwd、mkdir、rmdir 目錄及文件檢索:ls 復制、移動、刪除:cp、mv、rm…

    Linux干貨 2016-09-27
  • Linux 基礎(三)——用戶管理&正則表達式

    1、  列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d " " -f1 | uniq 2、  取出最后登錄到當前系統的用戶的相關信息。 last -1 | cut -d " " -f1 | head -1 | id 3、  …

    Linux干貨 2016-11-08
  • Linux 基礎知識(二)

    一、Linux文件管理類命令的使用方法及其相關示例演示? 1、文件管理 2、文件查看 二、Bash特性詳解 1、命令行展開 (1)在/tmp目錄下創建:a_c,a_d,b_c,b_d 方法一:mkdir -pv {a,b}_{c,d} (2)在/tmp目錄下創建mylinux目錄,其結構如下:         方法一:…

    Linux干貨 2016-09-26
  • 馬哥網絡教育班21期-第一周課程練習

      一、計算機的組成及其功能 1.1計算機的組成      1946年美籍匈牙利科學家馮·諾依曼提出存儲程序原理,把程序本身當作數據來對待,程序和該程序處理的數據用同樣的方式存儲,并確定了存儲程序計算機的五大組成部分,分別為運算器、控制器、存儲器、輸入設備和輸出設備。 1.2計算機的組成 控制器(Contro…

    Linux干貨 2016-07-12
欧美性久久久久