阿东的笔记_  工具
## 数据库备份归档,还原 #### mysqldump ``` Bash # 仅导出表结构 mysqldump -h localhost -uroot -p -d database table > table.sql # 导出表结构和数据‘ mysqldump -h localhost -uroot -p database table --where="id<100" > table.sql # 或者 mysqldump -uroot -p --databases db1 db2 --tables tb1 tb2 tb3 > table.sql ``` #### mysql ``` Bash mysql -uroot -p -Damdb < table.sql ``` #### shell 定时备份归档 backup.sh ``` Bash #!/bin/bash # 要备份的数据库名,多个数据库用空格分开 dbname=(db1 db2) # 备份文件要保存的目录 basepath='/opt/backup/mysqldata/' #用户名及密码 dbuser='root' dbpwd='xxxxxx' if [ ! -d "$basepath" ]; then mkdir -p "$basepath" fi # 循环databases数组 for db in ${dbname[*]} do # 备份数据库生成SQL文件 /bin/nice -n 19 /usr/bin/mysqldump -h127.0.0.1 -u$dbuser -p$dbpwd --databases $db > $basepath$db-$(date +%Y%m%d).sql # 将生成的SQL文件压缩 /bin/nice -n 19 tar zPcf $basepath$db-$(date +%Y%m%d%H%M).sql.tar.gz $basepath$db-$(date +%Y%m%d).sql #将备份文件copy到远程备份机 #/usr/bin/scp -r $basepath$db-$(date +%Y%m%d%H%M).sql.tar.gz root@xxx.xxx.xxx.xxx:/opt/mysqlbackup/ # 删除7天之前的备份数据 find $basepath -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \; done # 删除生成的SQL文件 rm -rf $basepath/*.sql ```
adddge@sohu.com  | 桂ICP备2022009838号-2