linux系统下mySQL数据库 备份方法和脚本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统下mySQL数据库 备份方法和脚本?相关的知识,希望对你有一定的参考价值。
linux系统下mysql数据库 备份方法和脚本?
我需要具体的操作方法和实例,最好有几种方法供选择,还有每种方法的优缺点,谢谢
1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > /存放路径/wcnc.sql
2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_users.sql
3.导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_db.sql
定义:
-d 没有数据
--add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库 常用source 命令 进入mysql数据库控制台:
如mysql -u root -p mysql>use 数据库
方法二、针对mysql数据表格式为MyISAM的
假如数据文件在/var/lib/mysql
那么直接写个脚本
cp -r /var/lib/mysql /备份到的文件夹路径
隔机备份用rsync增量,或定时完整备份。 参考技术A 数据库备份
1.创建个备份存储目录
mkdir /root/backup/
2.以下内容写到dbbackup.sh
#!/bin/bash
cd /root/backup/
mysqldump -uroot -pmima123 datatest >/root/backup/datatest`date +%Y-%m-%d`.sql
mysqldump -uroot -pmima123 datatest1 >/root/backup/datatest1`date +%Y-%m-%d`.sql
chmod +x dbbackup.sh 参考技术B 用mysqldump
linux 服务器系统怎么备份
linux系统下使用脚本定时备份数据库,代码如下:#!/bin/bash #Setting #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式 #默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第#18行,则默认以tag的方式备份#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz DBName=mysqlDBUser=rootDBPasswd=123456BackupPath=/home/wang/www/backup/mysql/mysqlbackupLogFile=/home/wang/www/backup/mysql/db.logDBPath=/var/lib/mysql/#BackupMethod=mysqldump#BackupMethod=mysqlhotcopy#BackupMethod=tar#Setting EndNewFile="$BackupPath"db$(date +%y%m%d).tgz DumpFile="$BackupPath"db$(date +%y%m%d) OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz echo "-------------------------------------------" >> $LogFile echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile echo "--------------------------" >> $LogFile #Delete Old Fileif [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi if [ -f $NewFile ] then echo "[$NewFile]The Backup File is exists,Can’t Backup!" >> $LogFile else case $BackupMethod in mysqldump*) if [ -z $DBPasswd ] then mysqldump -u $DBUser --opt $DBName > $DumpFile else mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile fi tar czvf $NewFile $DumpFile >> $LogFile 2>&1 echo "[$NewFile]Backup Success!" >> $LogFile rm -rf $DumpFile ;; mysqlhotcopy*) rm -rf $DumpFile mkdir $DumpFile if [ -z $DBPasswd ] then mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1 else mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1 fi tar czvf $NewFile $DumpFile >> $LogFile 2>&1 echo "[$NewFile]Backup Success!" >> $LogFile rm -rf $DumpFile ;; *) /etc/init.d/mysqld stop >/dev/null 2>&1 tar czvf $NewFile $DBPath >> $LogFile 2>&1 /etc/init.d/mysqld start >/dev/null 2>&1 echo "[$NewFile]Backup Success!" >> $LogFile ;; esacfiecho "-------------------------------------------"echo#lftp -f lftp.sh 如果有FTP可同时上传ftp中。再利用crontab命令生成/var/spool/cron/root 文件:#crontab –e //打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令//m h dom mon dow command //具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)//如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本) 参考技术A撸主,linux系统可以用tar打包的方式备份系统。
大概原理:
linux启动过程,‘开机’-‘读取bios设置’-‘从bios指定的硬盘mbr分区找引导’-‘根据引导加载内核并启动’-‘初始化内核&挂载磁盘’-‘启动其他程序’,可以大概理解为读取引导+启动,因此可以想办法把系统所有文件tar打包后,还原到目标机器,再写入引导修改相关参数设置即可
具体操作可以参考我的blog:linux系统整机备份
PS:限制条件,blog中只在centos5 6 7上测试通过,其他系统可能启动时加载的内容不同,需要修改对应的设置
以上是关于linux系统下mySQL数据库 备份方法和脚本?的主要内容,如果未能解决你的问题,请参考以下文章
求大神告知 linux系统下,JAVA如何操作mysql备份和还原。求源代码~~~~测试通过的加分。