【数据库运维】mysql备份恢复练习
目录
数据库备份,数据库为school,素材如下
1.创建student和score表
2.为student表和score表增加记录
3.备份数据库school到/backup目录
4.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库
5.直接将MySQL数据库压缩备份
6.备份MySQL数据库某个(些)表。此例备份student表
7.同时备份多个MySQL数据库(其他数据库素材自行准备)
8.仅仅备份数据库结构
9.备份服务器上所有数据库
10.还原MySQL数据库
11.还原压缩的MySQL数据库
12.使用mydumper备份数据库
13.使用mydumper恢复数据库
数据库备份,数据库为school,素材如下
1.创建student和score表
CREATE TABLE student (id INT(10) NOT NULL UNIQUE PRIMARY KEY ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) ,birth YEAR,department VARCHAR(20) ,address VARCHAR(50));
创建score表,SQL代码如下:
CREATE TABLE score (id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,stu_id INT(10) NOT NULL ,c_name VARCHAR(20) ,grade INT(10));
2.为student表和score表增加记录
向
student
表插入记录的
INSERT
语句如下:
INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
向score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);INSERT INTO score VALUES(NULL,901, '英语', 80);INSERT INTO score VALUES(NULL,902, '计算机',65);INSERT INTO score VALUES(NULL,902, '中文',88);INSERT INTO score VALUES(NULL,903, '中文',95);INSERT INTO score VALUES(NULL,904, '计算机',70);INSERT INTO score VALUES(NULL,904, '英语',92);INSERT INTO score VALUES(NULL,905, '英语',94);INSERT INTO score VALUES(NULL,906, '计算机',90);INSERT INTO score VALUES(NULL,906, '英语',85);
3.备份数据库school到/backup目录
[root@node1 ~]# mysqldump -uroot -p123456 -B school --set-gtid-purged=OFF > /backup/db_school.sql
4.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库
[root@node1 ~]# mysqldump -uroot -p123456 --set-gtid-purged=OFF --add-drop-database school > /backup/db_school1.sql
5.直接将MySQL数据库压缩备份
[root@node1 ~]# mysqldump -uroot -p123456 -B school --set-gtid-purged=OFF | gzip > /backup/db_school3.sql.gz
6.备份MySQL数据库某个(些)表。此例备份student表
[root@node1 ~]# mysqldump -uroot --set-gtid-purged=OFF -p123456 school student > /backup/db_school4.sql
7.同时备份多个MySQL数据库(其他数据库素材自行准备)
[root@node1 ~]# mysqldump -uroot --set-gtid-purged=OFF -p123456 -B school it > /backup/db_school5.sql
8.仅仅备份数据库结构
[root@node1 ~]# mysqldump -uroot --set-gtid-purged=OFF -p123456 -d school > /backup/db_school6.sql
9.备份服务器上所有数据库
[root@node1 ~]# mysqldump -uroot --set-gtid-purged=OFF -p123456 -A > /backup/db_school7.sql
10.还原MySQL数据库
(1)删除数据库
mysql [(none)]>drop database school;
mysql [(none)]>show databases;
(2)还原数据库
[root@node1 ~]# mysql -uroot -p123456 < /backup/db_school.sql
(3) 查看结果
mysql [school]>show tables;
11.还原压缩的MySQL数据库
(1)删除数据库
mysql [school]>drop database school;
mysql [(none)]>show databases;
(2)还原压缩的数据库
[root@node1 backup]# zcat /backup/db_school3.sql.gz | mysql -uroot -p123456
(3)查看还原后的数据库的信息
mysql [school]>show tables;
12.使用mydumper备份数据库
[root@node1 backup]# mydumper -u root -p 123456 -B school -S /tmp/mysql.sock -o /backup/db_school9.sql
13.使用mydumper恢复数据库
(1)删除数据库
mysql [school]>drop database school;
(2)还原数据库
[root@node1 backup]# myloader -u root -p 123456 -S /tmp/mysql.sock -d /backup/db_school9.sql -B school
(3)查看还原后的结果
mysql [school]>show tables;