E7数据库备份和恢复
一、实验目的
在Mysql上,学习如何备份数据库和恢复的各种方法。
二、实验要求:
1、基本硬件配置:英特尔Pentium III 以上,大于4G内存;
2、软件要求:Mysql;
3、时间:1小时;
4、撰写实验报告并按时提交。
三、实验内容:
Problem 1 查看状态
show master status;
show slave status\G;
show variables like ‘%secure%’;
my.ini中的secure-file-priv改为“”
Problem 2 表格数据备份和恢复
select * into OUTFILE “d:\test.sql” fields terminated by ‘,’ lines terminated by ’ ’ from example.emp;
load data infile “d:\test.sql” into table example.emp fields terminated by ‘,’ lines terminated by ’ ';
\要先删除主键
主键上是有名为primary的索引的,并且关联了外键,这个时候是无法对这个被参照的对象进行修改(删除)的。所以要先删除外键,然后在删除主键
Problem 3 使用mysqldump进行数据备份
1、备份整个Mysql所有数据库
mysqldump -u root -p --all-databases --lock-all-tables>d:\mysqldbs.sql
show master status;
create database test;
切换到d:
source d:/mysqldbs.sql;
show master logs;
reset master;
flush logs;
show master logs;
show binlog events in ‘mysql-bin.000003’;
’
2、备份某个数据库
mysqldump -u root -p --databases example --lock-all-tables>f:\database\data\example.sql
mysqldump -u root -p --databases example>f:\database\data\example_1.sql.gz
3、备份某些table
mysqldump -u root -p --databases example --tables emp>f:\database\data\example_emp.sql
mysqldump -u root -p --databases example --tables emp dept>f:\database\data\example_emp_dept.sql
3.导出表及结构
mysqldump -u root -p -d --databases example --tables emp dept>f:\database\data\example_struct.sql
4.某些表除外其余表都需导出(只是导出结构)
mysqldump database -u username -ppassword --tables table_name1 table_name2 table_name3>D:\db_script.sql
mysqldump -u root -p --databases example --ignore-table=example.dept>f:\database\example_1.sql
4、恢复数据库或者表格数据
mysql>source f:\database\example_emp.sql;
mysql>source f:\database\example_struct.sql;
mysql>flush logs;
5、备份与恢复
mysqldump -u root -p --databases example --lock-all-tables>f:\database\data\example.sql
show master logs;
改变数据
flush logs;
改变数据
恢复:
mysql>source f:\database\data\example.sql;
mysqlbinlog --no-defaults f:\database\data\mysql-bin.000002 | mysql -u root -p
Problem 4 使用二进制日志进行备份和恢复
mysqldump -u root -p --databases example --lock-all-tables>f:\database\data\example.sql
更新数据
flush logs;(变为’mysql-bin.000007’)
show binlog events in ‘mysql-bin.000010’\G;
source f:\database\data\example.sql;
mysqlbinlog --no-defaults F:\database\data\mysql-bin.000009 | mysql -u root –p
mysqlbinlog --no-defaults F:\database\data\mysql-bin.000006 | mysql -u root –p
516 837
mysqlbinlog --no-defaults --stop-position=1279 d:\database\binlog.000008 | mysql -u root -p
mysqlbinlog --no-defaults --start-position=516 --stop-position=837 f:\database\data\mysql-bin.000010| mysql -u root -p
Problem 5 请设计一个数据库恢复的综合实验,按次序完成以下功能:
1、数据库example做一次完全备份;
2、至少两个操作修改、insert或删除emp数据,然后做一次增量备份x;
3、 至少三个操作:修改某些数据op1、删除emp表格1号部门的所有数据op2、insert数据op3,然后再做一次增量备份x+1;
现在假设操作3中的删除emp表格1号部门的所有数据op2是属于误操作,请设计备份和恢复方案并实现之。