实时搜索: mysql如何备份

mysql如何备份

548条评论 2335人喜欢 3579次阅读 336人点赞
...

如何做好MySQL的备份: 手机备份我一直使用的是腾讯手机管家
可以把手机上重要的文件备份到微云网盘,
打开腾讯手机管家--更多--微云网盘备份。
它的备份功能很好,它的同步助手:
可以整合通讯录备份功能,实现通讯录永不丢失哟

如何利用Navicat创建MySQL数据库备份文件: 备份手机里面的数据可以使用腾讯手机管家的微云软件来进行备份
进入主界面点击更多,从里面找到微云软件
先进行微云软件的下载安装,之后登陆微云软件的界面
把需要备份的东西进行上传就可以完成备份了
还原的话只需要登录微云账号进行恢复就可以了

如何使用crontab每天自动备份Mysql数据库: 1、建立自动备份脚本
为了使数据库备份和恢复的符合我们的实际要求(备份保留七天,每天凌晨备份一次),用一段符合要求的Shell脚本来实现整个备份过程的自动化。
[root@mysqltest ~]# vim mysql-backup.sh
#!/bin/bash
##作者:Barlow##
##最后修订:2013-6-25##
#脚本作用:备份Mysql数据库
#
#设定备份保留天数K
K=7
#
TODAY=`date '+%Y%m%d'`
KDAY=`date -d "$TODAY - $K day" '+%Y%m%d'`
BACKDIR=/var/mysqlbak/$TODAY
KDAYDIR=/var/mysqlbak/$KDAY
mkdir -p $BACKDIR
#
# The Password of MySQL
ROOTPASS=******* ##将*替换为实际mysql数据库的root密码
#
# Get the Name of Database
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
#
# Backup with Database
for dbname in $DBLIST
do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done
#
#删除过期备份
if [ -d "$KDAYDIR" ];then
rm -rf $KDAYDIR
exit
fi
改变脚本权限,root具有完全权限,其他用户没有任何权限:
[root@mysqltest ~]# chmod 700 mysql-backup.sh
运行一次脚本:
[root@mysqltest ~]# ./mysql-backup.sh
查看运行结果:
[root@mysqltest ~]# ll /var/mysqlbak/20130625/
mysql/ wordpress/
[root@mysqltest ~]# ll /var/mysqlbak/20130625/
总用量 8
drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 mysql
drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 wordpress
可以看到备份已经成功完成。
2、创建自动任务每天运行
[root@mysqltest ~]# crontab -e
00 01 * * * /root/mysql-backup.sh
##每天凌晨1点运行一次

如何将linux中mysql备份恢复: 一般是即时备份。做主从。或者是每天增量备份。
本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本.

本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数.

每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失.

希望你明白这个脚本要干什么工作!

脚本描述

每7天备份一次所有数据,每天备份binlog,也就是增量备份.

(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)

作者对shell脚本不太熟悉,所以很多地方写的很笨 :)

开启 bin log

在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:

[mysqld]
log-bin

这个日志的主要作用是增量备份或者复制(可能还有其他用途).

如果想增量备份,必须打开这个日志.

对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.

在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).

所以如果从来不备份,开启日志可能没有必要.

完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.

完整备份脚本

如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了.

#!/bin/sh

BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log

DATE=`date +%Y%m%d`

echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile

cd $BakDir

DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz

mysqldump --quick --all-databases --flush-logs
--delete-master-logs --lock-all-tables
> $DumpFile

echo "Dump Done" >> $LogFile

tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

echo "[$GZDumpFile]Backup Success!" >> $LogFile

rm -f $DumpFile

#delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.
cd $BakDir/daily

rm -f *

cd $BakDir

echo "Backup Done!"

echo "please Check $BakDir Directory!"

echo "copy it to your local disk or ftp to somewhere !!!"

ls -al $BakDir
上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下.

注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动操作.

增量备份

增量备份的数据量比较小,但是要在完整备份的基础上操作,用户可以在时间和成本上权衡,选择最有利于自己的方式.

增量备份使用bin log,脚本如下:

#!/bin/sh

#
# mysql binlog backup script
#

/usr/bin/mysqladmin flush-logs

DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily

###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名
HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

##计算行数,也就是文件数
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done

NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "skip exist $base"
else
echo "copying $base"
cp $base $BAKDIR
fi
fi
done

echo "backup mysql binlog ok"
增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.
因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.

注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成.

访问设置

脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqldump都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个.my.cnf文件,内容如下

[mysqladmin]
password =password
user= root
[mysqldump]
user=root
password=password
注:设置本文件只有root可读.(chmod 600 .my.cnf )

此文件说明程序使用mysql的root用户备份数据,密码是对应的设置.这样就不需要在脚本里写用户名和密码了.

自动运行

为了让备份程序自动运行,我们需要把它加入crontab.

有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.
一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.

如何定时备份远程mysql数据库: 在百度里面搜索“多备份”,注册一个账号
登陆成功后,找到数据库备份

进行数据库远程授权:要备份成功,得先对数据库进行远程授权,允许备份主机远程访问你的数据库。

填写你的数据库IP,数据库用户名,密码等参数信息

选择存储位置,备份频率等
至此,数据库备份任务就创建成功了。然后,多备份就会自动定时的帮你备份你的数据库。

怎么linux下定时备份mysql数据库备份: 1、查看磁盘空间情况:

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!
存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs 1.9G 92K 1.9G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home123456123456

2、创建备份目录:

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;
cd /home
mkdir backup
cd backup123123

3、创建备份Shell脚本:

注意把以下命令中的DatabaseName换为实际的数据库名称;
当然,你也可以使用其实的命名规则!
vi bkDatabaseName.sh11

输入/粘贴以下内容:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql1212

对备份进行压缩:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz1212

注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;

4、添加可执行权限:
chmod u+x bkDatabaseName.sh11

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;
./bkDatabaseName.sh11

5、添加计划任务

检测或安装 crontab

确认crontab是否安装:
执行 crontab 命令如果报 command not found,就表明没有安装
# crontab
-bash: crontab: command not found

如何避免mysql在备份的时候出现慢查询:

你好, 一 加速备份 1、 加了single-transaction参数 备份时 需要先flush table with read lock 这个过程中会有一个锁表的过程,如果有事务或语句正在执行,没有结束,那么备份进程会一直等待,并且阻塞别的事务,那么也会影响业务。所以要先确...

如何利用wdcp面板备份并还原mysql数据库,这个有点难: 目前需要手动还原,把数据库备份文件解压到mysql数据库文件目录下,默认的mysql数据库文件目录:/www/wdlinux/mysql/var.具体操作步骤如下:
把备份好的数据库下载到本地,然后在需要搬迁网站还原数据的时候,先建立数据库用户,然后需要先暂停数据库链接。
service mysqld stop
然后把我们备份好的数据库压缩包上传到所在当前MYSQL版本中的var目录中对应的数据库名称中,需要解压到当下文件。
service mysqld restart
然后还需要重启MYSQL链接。
备注:这样备份MySQL感觉很麻烦,可以借用第三方工具来备份MySQL,如多备份、帝国备份王之类的

  • gta5牛在哪

    RS和GIS的区别是什么: 两者都是3S技术之一RS是遥感(Remote Sensing),是通过人造地球卫星上的遥测仪器把对地球表面实施感应遥测和资源管理的监视(如树木、草地、土壤、水、矿物、农家作物、鱼类和野生动物等的资源管理)结合起来的一...

    881条评论 4676人喜欢 3018次阅读 754人点赞
  • mds剑仙的女朋友是谁

    RSI 指标是几条线的 ?: 嘿嘿 这个很简单哦一般的mt4的平台是单线不过可以添加自定义指标可以下载的 在装进去就可以了你那macd也是单线的吧kd双线的对不这种都没关系下载 添加 就可以了要是找不到的话 管我要我的都是自己加的。。还有些其他指...

    935条评论 4222人喜欢 2402次阅读 915人点赞
  • matlab 滑动平均默认几个数

    excel怎么提取特定字符串前后的数据: 查找特定字符串“abc”前的字符串:=LEFT(A1,FIND("abc",A1)-1)查找特定字符串“abc”后的字符串:=RIGHT(A1,LEN(A1)-FIND("abc",A1)-LEN("abc")+1)...

    740条评论 5196人喜欢 4015次阅读 814人点赞
  • 2013年江西省注册有限公司资金需要多少

    asp中<%=rs(" ")%> 什么意思: asp中<%=rs(" ")%>就是取得数据库的值。比如数据库有一个字段为word那么要取得word的值 就写成<%=rs("word")%> ...

    414条评论 4487人喜欢 3736次阅读 217人点赞
  • 16号排卵怀孕孩子是谁的

    电机RS什么意思: RS:R指的是电机的形状是圆形的,S指的是电机内碳粒的材质,S是石墨碳粒,55指的是电机的直径,0指的是电机用转子的槽数是3个槽的,P是高性能,H表示轴是后出的,在端子相反的那端。PH的电机特性比较硬, ...

    303条评论 5247人喜欢 6590次阅读 814人点赞
  • ppt如何加入图片

    ASP 中“rs”什么意思?: 变量,将记录集的集合给了一个变量RS当然你也可以定义其它的变量 rss rst ms ds ist 都可以,只要不是关键字就行,以字母开始。set rs=server.createobject("adodb....

    333条评论 6148人喜欢 2678次阅读 484人点赞