如何将阿里云的mysql(RDS)数据备份到本地

如题所述

本例以本地服务器为 RHEL6/x64 系统,备份文件存储路径为 /home/mysql/ 为例。

    下载云数据库 物理备份文件 并上传至目标服务器。备份文件获取方法请参见 下载备份数据。如果目标服务器可以访问源实例,您也可以使用 wget "url" 下载备份文件。其中 url 为备份文件下载地址。

    切换路径到备份文件所在路径。


    cd /home/mysql/

    解压备份文件。


    其中,filename.tar.gz 为备份文件名。

    tar vizxf filename.tar.gz

    检查解压后文件包含的数据库是否正确。


    系统显示如下,其中 db0dz1rv11f44yg2、mysql 和 test 为云数据库中存在的数据库。


    -rw-r--r-- 1 root root       269 Aug 19 18:15 backup-my.cnf

    drwxr-xr-x 2 root root      4096 Aug 21 10:31 db0dz1rv11f44yg2

    -rw-rw---- 1 root root 209715200 Aug  7 10:44 ibdata1

    drwxr-xr-x 2 root root      4096 Aug 21 10:31 mysql

    drwxr-xr-x 2 root root      4096 Aug 21 10:31 test

    -rw-r--r-- 1 root root        10 Aug 19 18:15 xtrabackup_binary

    -rw-r--r-- 1 root root        23 Aug 19 18:15 xtrabackup_binlog_info

    -rw-r--r-- 1 root root        77 Aug 19 18:15 xtrabackup_checkpoints

    -rw-r--r-- 1 root root      2560 Aug 19 18:15 xtrabackup_logfile

    -rw-r--r-- 1 root root        72 Aug 19 18:15 xtrabackup_slave_info

    cd filename/

    ll

    恢复数据文件。


    系统显示 innobackupex: completed OK!,则数据恢复成功。

    innobackupex --defaults-file=./backup-my.cnf --apply-log ./

    修改配置文件。将解压文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size注释掉,并且添加 datadir=/home/mysql,如下所示。


    # This MySQL options file was generated by innobackupex-1.5.1.

    # The MySQL Server

    [mysqld]

    innodb_data_file_path=ibdata1:200M:autoextend

    innodb_log_files_in_group=2

    innodb_log_file_size=524288000

    #innodb_fast_checksum=0

    #innodb_page_size=16364

    #innodb_log_block_size=512

    datadir=/home/mysql/

    重装 MySQL 系统库,取得数据库的 root 权限。


    系统显示如下,则 mysql 系统库重装成功。


    Installing MySQL system table...

    OK

    Filling help table...

    OK

    rm -rf mysql

    mysql_install_db --user=mysql --datadir=/home/mysql/

    修改文件属主。


    chown -R mysql:mysql /home/mysql/

    启动 mysqld 进程。


    mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &

    使用客户端登录数据库。


    mysql –u root –p

    验证数据库是否完整。


    系统显示入选,则数据库恢复成功。


    +--------------------+

    | Database           |

    +--------------------+

    | information_schema |

    | db0dz1rv11f44yg2   |

    | mysql              |

    | performance_schema |

    | test               |

    +--------------------+

    show databases;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-07
你用的是RDS还是ECS啊,如果是ECS上的数据库可以用 mysqldump备份出来,或者是phpmyadmin备份出来也很简单,mysqldump的导出方式是  mysqldump -u 用户名 -p 数据库名 > 导出的文件名 ,导出一个表就是 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 phpmyadmin这个不做介绍,很简单,RDS有相关的导出选项本回答被网友采纳
第2个回答  2018-07-05
写脚本比较麻烦,像这种云数据库备份到本地还不如直接备份到云端啊,也可以试试这款工具:木浪多备份,直接把mysql备份到各个云存储平台,默认就是增量备份,有需要的话可以下载到本地或直接在线就恢复了本回答被网友采纳
相似回答