nysql_2

备份常用操作基本命令
1、备份命令mysqldump格式
   格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 
2、备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump  --add-drop-table -uusername -ppassword -database databasename > backupfile.sql
3、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword -database databasename | gzip > backupfile.sql.gz
4、备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
5、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql仅仅备6、仅备份份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
7、备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
8、还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
9、还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
10、将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename
11、–master-data 和–single-transaction
   在mysqldump中使用–master-data=2,会记录binlog文件和position的信息 。–single-transaction会将隔离级别设置成repeatable-commited
12、导入数据库
常用source命令,用use进入到某个数据库,mysql>source d:\test.sql,后面的参数为脚本文件。
13、查看binlog日志
查看binlog日志可用用命令 mysqlbinlog  binlog日志名称|more
14、general_log
General_log记录数据库的任何操作,查看general_log 的状态和位置可以用命令show variables like “general_log%”  ,开启general_log可以用命令set global general_log=on

A定时 备份并导入 B的MySQL数据库
机器A的用户和机器B的用户创建ssh互相信任,避免使用scp命令时需要输入密码;使用ssh-keygen和ssh-copy-id命令实现。
A: 生成ssh公钥和ssh私钥
ssh-keygen
把本地主机的公钥复制到远程主机的authorized_keys文件上
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
测试通过ssh无密码登录
ssh [email protected]
B: ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
ssh [email protected]
用ssh登录后退出的方法:在程序中输入exit,如果一次无法退出需要多尝试几次。

机器A:(使用root用户操作)
创建目录,脚本
mkdir -p /home/root/backup
cd /home/root/backup
touch backmv.sh backultrax.sh putBack.sh
mkdir backhistory

backmv.sh文件(移动文件)
vi backmv.sh
#!/bin/bash
/bin/mv /home/root/backup/ultrax_.sql.gz /home/root/backup/backhistory
backultrax.sh文件(备份数据库)
vi backultrax.sh
/usr/bin/mysqldump -uroot -p521365 ultrax --skip-lock-tables |gzip > /home/root/backup/ultrax_$(date +%Y%m%d_%H%M%S).sql.gz
putBack.sh文件(上传到机器B)
#!/bin/bash
/usr/bin/scp /home/root/backup/ultrax_
.sql.gz [email protected]:/home/root/backup/backnow

修改脚本的权限
chmod u+x backmv.sh
chmod u+x backultrax.sh
chmod u+x putBack.sh

定时(在/home/root/backup目录下创建)

crontab -e

*/9 * * * * /home/root/backup/backultrax.sh
*/9 * * * * /home/root/backup/putBack.sh
*/9 * * * * /home/root/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。

service crond start

chkconfig crond on

查看

service crond status

chkconfig crond --list

机器B:(使用root用户操作)
创建目录,脚本
mkdir -p /home/root/backup
cd /home/root/backup
touch backcp.sh backmv.sh backzip.sh reduction.sh
mkdir backnow backuphistory

backcp.sh文件(复制)
vi backcp.sh
#!/bin/bash
/bin/cp $(echo $(find /home/root/backup/backnow -name ‘ultrax*’)) /home/root/backup/backuphistory
backzip.sh文件(解压)
vi backzip.sh
#!/bin/bash
/bin/gunzip $(echo $(find /home/root/backup/backnow -name ‘ultrax*’))
reduction.sh文件(还原)
vi reduction.sh
#!/bin/bash
/usr/bin/mysql -uroot -p521365 back_ultrax < $(echo $(find /home/root/backup/backnow -name 'ultrax_.sql’))
backmv.sh文件(移动)
vi backmv.sh
#!/bin/bash
/bin/mv /home/root/backup/backnow/
.sql /home/root/backup/backuphistory

修改脚本的权限

chmod u+x backcp.sh

chmod u+x backmv.sh

chmod u+x backzip.sh

chmod u+x reduction.sh

定时(在/home/root/backup目录下创建)

crontab -e

*/10 * * * * /home/root/backup/backcp.sh
*/10 * * * * /home/root/backup/backzip.sh
*/10 * * * * /home/root/backup/reduction.sh
*/10 * * * * /home/root/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。
#systemctl start crond.service
#systemctl enable crond.service
查看

service crond status

chkconfig crond --list

猜你喜欢

转载自blog.csdn.net/qq_41906344/article/details/82951294