
如果是linux/unix,可参考如下方法:
1.使用 awk:
可以先到原数据库中使用 'show tables' 查看数据库表的列表,注意,此列表已经按照字母排序,例如:
table1
table2
table3
然后使用awk 来过滤sql语句,假设你要恢复 table2 表,可以使用下面的语句:
awk ‘/^-- Table structure for table .table2./,/^-- Table structure for table .table3./{print}’ mydumpfile.sql >/tmp/recovered_table.sql
2.使用sed:
与上面类似,假设你要恢复 table2 表,可以使用下面的语句:
cat mydumpfile.sql | sed -n -e '/Table structure for table .test1./,/Table structure for table .test2./p' >/tmp/extracted_table.sql
一、对于Windows主机==============
假想环境:
MySQL
安装位置:C:\MySQL
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:D:\db_backup\
@echo
off
C:\MySQL\bin\mysqladmin
-u
root
–password=123456
shutdown
C:\MySQL\bin\mysqldump
–opt
-u
root
–password=123456
bbs
>
D:\db_backup\bbs.sql
C:\MySQL\bin\mysqld-nt
将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
二、对于Linux主机
===========
假想环境:
MySQL
安装位置:/usr/local/mysq
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:/var/db_backup/
#!
/bin/bash
/usr/local/mysql/bin/mysqladmin
-u
root
–password=123456
shutdown
/usr/local/mysql/bin/mysqldump
–opt
-u
root
–password=123456
bbs
>
/var/db_backup/bbs.sql
/usr/local/mysql/bin/mysqld_safe
–user=mysql
&
将上述代码保存在/usr/local/sbin/backup_db.sh
对该脚本赋予执行权限:
#
chmod
755
/usr/local/sbin/backup_db.sh
加入crontab中自动执行:
#
crontab
-e
加入:
0
5
*
*
*
/usr/local/sbin/backup_db.sh
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)