备份与还原Mysql

一、Windows版备份指令:

1、在C盘下创建一个目录,名称:Backup,然后将下面的代码保存为backup.bat

 
  
@echo 设置MySql数据库的IP

set  ipaddress=127.0.0.1



@echo 设置MySql数据库名

set  db_name1=lxyy_db



@echo 获取当天的日期格式yyyymmdd 20120311

set  backup_date=%date:~0,4%%date:~5,2%%date:~8,2%

set  backup_date1=date:~0,10



@echo 设置mysqldump 备份的参数

set  uid_test_db=-uroot -pdsideal -h %ipaddress% %db_name1%



@echo 使用mysqldump对指定的MySql进行备份

mysqldump %uid_test_db% -R -E -e -l -F  --max_allowed_packet=1048576 --net_buffer_length=16384 >%db_name1%_%backup_date%.sql 

@echo 用WinRar中的Rar命令对备份出的sql文件进行压缩,也可以换成其它的压缩命令

"C:\Program Files\WinRAR\Rar.exe" a %backup_date%.zip *.sql 



@echo 删除已压缩的备份文件

del *.sql
 
  
为什么会有上面的参数呢?

说明: mysql
> -umysql用户名 -pmysql密码 要导入到的数据库名<要导入MYSQL的SQL文件路径 这样导入将会非常快,之前数小时才能导入的sql现在几十秒就可以完成了。
-l :进行读锁
-F:生成新的日志文件。
导出时候注意点:
-e 使用包括几个VALUES列表的多行INSERT语法; --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小; --net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。 注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。 首先确定目标库的参数值
mysql>  show variables like 'max_allowed_packet'; 
备份与还原Mysql
--max_allowed_packet=4194304
 
mysql>show variables like 'net_buffer_length'; 

备份与还原Mysql

--net_buffer_length=16384

 根据参数值书写mysqldump命令,如: mysql>mysqldump -uroot -psupidea 要导入到的数据库名 goodclassification -e --max_allowed_packet=4194304 --net_buffer_length=16384 >要导入到的数据库名.net.sql

还原

使用命令行客户端连上mysql服务器,

mysql -uroot -pdsideal --default-character-set=utf8 --max_allowed_packet=1048576--net_buffer_length=16384


然后use lxyy_db进入需要还原的数据库,运行
source c:\lxyy_db_20130426.sql 
导入备份。


二、开源中国的备份数据库命令:
date_str=`date +%Y%m%d`

cd /data2/backup

mysqldump -h localhost -u oschina --password=xxxx -R -E -e --max_allowed_packet=1048576 --net_buffer_length=16384 oscdb| gzip > /data2/backup/oschina_$date_str.sql.gz

 

你可能感兴趣的:(mysql)