• ADADADADAD

    如何使用mysqldump备份异机恢复数据库[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:15:32

    作者:文/会员上传

    简介:

    使用mysqldump备份异机恢复数据库1、创建测试数据库mysql> create database allen;Query OK, 1 row affected (0.01 sec)mysql> use allen;Database changedmysql> create t

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    使用mysqldump备份异机恢复数据库

    1、创建测试数据库
    mysql> create database allen;
    Query OK, 1 row affected (0.01 sec)

    mysql> use allen;
    Database changed
    mysql> create table tab1 (ID tinyint unsigned not null primary key auto_increment,Name char(20) not null unique key,Age tinyint unsigned,Gender char(1) default 'M');
    Query OK, 0 rows affected (0.38 sec)

    mysql> insert into tab1 (Name,Age,Gender) values ('Zhang WuJi',26,'M'),('Zhao Min',24,'F');
    Query OK, 2 rows affected (0.05 sec)
    Records: 2 Duplicates: 0 Warnings: 0


    2、完全备份allen数据库
    [root@mysql ~]# mysqldump -uroot -puplooking --lock-all-tables --routines --events --triggers --master-data=2 --flush-logs --databases allen > /backup/allen_`date +

    %F`.sql


    3、基于二进制日志(上一次完全备份到目前日志所处的位置)做增量备份
    mysql> create table tab2 (ID tinyint unsigned not null primary key auto_increment,Name char(20) not null unique key,Age tinyint unsigned,Gender char(1) default 'M');
    Query OK, 0 rows affected (0.34 sec)

    mysql> insert into tab2 (Name,Age,Gender) values ('Liang ShanBo',26,'M'),('Zhu YingTai',24,'F'),(3,'Feng Songtao',25,M);
    Query OK, 2 rows affected (0.08 sec)
    Records: 2 Duplicates: 0 Warnings: 0

    mysql> show master status; --增量备份时日志位置
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000006 | 812 | | |
    +------------------+----------+--------------+------------------+

    [root@mysql ~]# mysqlbinlog --start-position=107 /binlog/mysql-bin.000006 > /backup/allen_increment.sql
    说明:--start-position=107 是上一次完备时日志的位置(可以查看完备文件内容得到),缺省--stop-position参数时默认到当前日志


    4、再次向allen数据库中插入数据,然后删除allen数据库
    mysql> insert into tab2 (Name,Age,Gender) values ('Zhu BaJie',26,'M'),('Sun WuKong',24,'F');
    mysql> drop database allen;


    5、导出从上次增量备份时日志到要恢复的时间点(删除allen数据库之前)之间的日志
    [root@mysql ~]# mysqlbinlog --start-position=812 --stop-position=1084 /binlog/mysql-bin.000006 > /backup/allen_1084.sql
    说明:1、--start-position=812为上面查看获得,--stop-position=1084从二进制日志记录获得
    2、/backup/allen_1084.sql文件可以修改,如果这段日志中间存在误操作(如删除一条数据),可以将该误操作注释掉


    6、将备份的文件拷贝到要恢复的数据库服务器,进行恢复
    [root@mysql ~]# scp -p /backup/allen_* 192.168.122.11:/backup/
    目标服务器上进行数据恢复
    mysql> source /backup/allen_2016-06-25.sql
    mysql> source /backup/allen_increment.sql
    mysql> source /backup/allen_1084.sql

    7、查看数据
    mysql> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | allen |
    | mysql |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.03 sec)

    mysql> use allen
    Database changed
    mysql> show tables;
    +-----------------+
    | Tables_in_allen |
    +-----------------+
    | tab1 |
    | tab2 |
    +-----------------+
    2 rows in set (0.00 sec)

    mysql> select * from tab2;
    +----+--------------+------+--------+
    | ID | Name | Age | Gender |
    +----+--------------+------+--------+
    | 1 | Liang ShanBo | 26 | M |
    | 2 | Zhu YingTai | 24 | F |
    | 3 | Feng Songtao | 25 | M |
    | 4 | Sun WuKong | 24 | F |
    +----+--------------+------+--------+
    4 rows in set (0.02 sec)
    注:tab2表中没有Zhu BaJie这条数据记录是因为我对/backup/allen_1084.sql做了修改,如下:
    #insert into tab2 (Name,Age,Gender) values ('Zhu BaJie',26,'M'),('Sun WuKong',24,'F')
    insert into tab2 (Name,Age,Gender) values ('Sun WuKong',24,'F')

    如何使用mysqldump备份异机恢复数据库.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqldump