天天看点

mysql数据库备份的方式以及注意事项

在项目更新中,涉及到数据库数据问题都会先进行数据备份,然后在修改数据,无论是修改表结构还是对数据的增删改,都必须要先备份数据,防止脚本错误,将数据库回滚到备份版本;

     在工作有有两种备份方式:

     方式一:整表备份,一般由于数据量比较大,但是修改数据只涉及单张表的脚本

    方式二:整库备份,这是比较通用的方式,将整个数据进行备份,当只涉及到单表或者多表数据回滚时,可以单独在备份sql中摘取要回滚的sql进行执行

下面是两种备份方式的sql语句;

一、整表备份

1.登录数据库

mysql -h 127.0.0.1 -P 3306  -u root -p  回车 数据数据库密码

-h 为 数据IP地址 ,-P 为数据库端口号, -u 是数据库登录账号  -p 是数据库的登录密码

2.创建备份表:

create table tbl_service_os_region_data_bak like tbl_service_os_region_data;

3.插入备份数据

insert into tbl_service_os_region_data_bak select * from tbl_service_os_region_data;

二、整库备份

.数据库备份

mysqldump -h 127.0.0.1 -P 3306  -u unismdb  -p  testdb>testdb-'date +%Y%m%d'.sql 

mysqldump  为备份命令  -h 为 数据IP地址 ,-P 为数据库端口号, -u 是数据库登录账号  -p 是数据库的登录密码,密码可以先不输入, testdb为要备份的数据库    testdb-'date +%Y%m%d'.sql 为备份后的数据库名称(数据库名称+当前时间年月日)

注意说明:

MySQLdump是MySQL自带的导出数据工具,即mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。Mysqldump是一个客户端逻辑备份的工作,备份的SQL文件可以在其他MySQL服务器上进行还原。

如需备份,则至少需要对该表的select权限,需要备份视图则需要改账户具有SHOW VIEW权限,触发器需要TRIGGER。如需锁表,则不可使用--single-transaction选项。其他权限暂未列出。

如需还原,则需要对应的执行权限,如create表,则需要对该库的create权限。

Mysqldump导出可以包括ALTER DATABASE与相关更改,其中包括导出元数据、更改字符编码,在导入对应文件时,相应的权限更改也会发生影响。如果在服务器上备份的表均为MyISAM,也可以使用mysqlhotcopy来完成任务。

从性能和伸缩性考虑,mysqldump的优势包括:在输出之前可以很方便的查看或编辑文件,你还可以克隆数据库与DBA的工作,或者将生产环境下的数据进行微小测试。这不是作为快速备份或可伸缩性很强的方案。即针对不同大小的数据需要安排合理时间,在需要还原时速度并不快,因为需要重新进行I/O、创建索引等。

对于大量数据来说,物理备份可能更为合适,因为它可以快速还原。