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.178linux.com/18010

(0)
双庆 李双庆 李
上一篇 2016-06-09 22:14
下一篇 2016-06-09 22:15

相关推荐

  • 一个“蝇量级” C 语言协程库

    协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以…

    Linux干货 2016-08-15
  • PXE批量部署linux操作系统

       前言    在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我们追求高逼格形象的技术人员来讲当然是不可以接受的,为此,pxe模式批量部署系统应运而生。   &n…

    Linux干货 2015-05-23
  • 关于touch/>/>>创建同名文件的总结

    一、简介 1、touch     即创建文件或修改文件时间     语法:touch [options] file-list 2、>     创建文件,可直接把内容生成到指定文件,会覆盖源文件中的内容;也可以直接生成一个空白文件。     语法:> file…

    2017-02-18
  • dd命令详解及实战应用

    dd简述 dd在linux中是 一个强大的命令,常用于拷贝大量数据,测试读写效能 ,清空硬盘数据(慎用),不仅如此,由于dd 允许以二进制方式读写,所以特别适合在原始设备上输入、输出。 dd与cp的区别 这里有必要说明一下,两个命令都可用于拷贝,但是级别却完全不一样:cp是文件级别的读取方式,而dd更底层,可以数据块级别去读取硬盘,由此可看出在效率…

    Linux干货 2017-04-04
  • 管道:管道符;cat和more命令 重定向:文件标识符:I/O重定向符号及其用法;exec命令;代码块重定向 命令行处理:命令行处理流程;eval命令 管道: 管道是Linux编程中最常用的技术之一,Shell编程中竖杠符号:“|” command1 | command2 | command3 | … |commandn command1到commandn表…

    Linux干货 2016-08-05
  • mysql备份之xtrabackup

    mysql备份之xtrabackup(建议用来备份innodb) 下载地址:https://www.percona.com/downloads/XtraBackup/ 安装xtrabackup [root@node1 ~]# yum install percona-xtrabackup 完全备份 节点一 修改配置文件,…

    Linux干货 2016-07-19