记一次使用mysqldump阿里rds数据备份

    技术2022-07-11  116

    记一次使用mysqldump阿里rds数据备份

    记一次使用mysqldump阿里rds数据备份

    记一次使用mysqldump阿里rds数据备份

    首先感谢 https://blog.csdn.net/u014135369/article/details/81302526 这位兄弟的指导.以下都是参考这位兄弟修改的,在此感谢. 由于rds在阿里的内网环境.必须用ssh登录才行,登录方式

    ssh 192.168.1.1

    脚本

    #!/bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup # # Database info DB_USER="jrw" #mysql login name DB_PASS="xxx" #password DB_HOST="192.111.11.11" #db_address 这里注意可以用ip也可以用rds示例的名字例如:xx.xx.rds.aliyuncs.com DB_NAME="uat" #db_name DB_ZFBM="--default-character-set=utf8" #character DB_TABLE="sys_user" #table name # Others vars BIN_DIR="/usr/local/mysql/bin" #the mysql bin path BCK_DIR="/home/dbbak/backup" #the backup file directory DATE=`date +%F` #--skip-lock-tables zg backup #$BIN_DIR/mysqldump -u $DB_USER -p$DB_PASS $DB_ZFBM $DB_NAME $DB_TABLE | gzip > $BCK_DIR/db_$DATE.sql.gz #data beifen $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST -P3306 $DB_ZFBM $DB_NAME --set-gtid-purged=off | gzip > $BCK_DIR/uat_db_$DATE.sql.gz #sql back #$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST -P3306 $DB_ZFBM $DB_NAME $DB_TABLE --set-gtid-purged=off > $BCK_DIR/uat_db_$DATE.sql # #find $BCK_DIR -name "db_*.sql" -type f -mtime +3 -exec rm {} \; > /dev/null 2>&1 find $BCK_DIR -name "db_*.gz" -type f -mtime +3 -exec rm {} \; > /dev/null 2>&1

    以上有几个地方需要注意:

    mysqldump:必须现在myslq的运行目录才行 命令 which mysql [root@slave backup]# which mysql /usr/local/mysql/bin/mysql

    新版本需要加上-P端口号,否则连接失败的.这个位置耽误了我好久.(注意P是大写)

    set-gtid-purged=off这句不加的话会出现警告(Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don’t want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.) 至于原因我没仔细调查.

    如果你运行脚本权限不够请尝试

    chmod +x bakmysql.sh

    最后执行验证

    sh uatDBBak.sh [root@slave dbbak]# ls backup uatDBBak.sh [root@slave dbbak]# sh uatDBBak.sh mysqldump: [Warning] Using a password on the command line interface can be insecure. [root@slave dbbak]#

    执行成功.有警告请忽略.也可以成功的

    Processed: 0.011, SQL: 9