mysql数据库维护(备份和还原)和性能提高
为了有效防止数据丢失,并将损失降到最低,应对数据库服务器做维护。数据库维护,包括数据备份,还原,导出和导入操作。
1. MySQL数据库备份
所谓数据库维护,主要包含备份数据,还原数据和数据库迁移,对于MySQL来说,还包括数据库对象表的导出和导入。
1.1 通过复制数据文件实现数据备份
造成数据损失的原因很多,主要包含如下几个方面:
a. 存储介质故障:保存数据库文件的磁盘设备损坏,用户没有数据库备份导致数据彻底丢失。
b. 用户的错误操作:如误删了某些重要数据,甚至整个数据库。
c. 服务器的彻底瘫痪,系统需要重建。
由于MySQL服务器中的数据文件是基于磁盘的文本文件,所以最简单,最直接的备份操作就是数据库文件直接复制出来。该种方式对InnoDB存储引擎的表不合适,只适合存储引擎为MyISAM的表。
1.2 通过命令mysqldump实现数据备份
有三种形式:备份一个数据库,备份多个数据库,备份所有数据库。
1.2.1 备份一个数据库
mysqldump -u username -p dbname
table1 table2...tablen > backupname.sql
示例如下:
备份数据库company下的表t_dept;
mysqldump -u root -p company t_dept > d:\t_dept_back.sql
1.2.2 备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 ... dbname3 > backupname.sql
示例如下:
备份数据库company数据库和companynew数据库:
mysqldump -u root -p --databases company companynew> d:\database_company_back.sql
1.2.3 备份所有数据库
mysqldump -u username -p --all > backupname.sql
示例如下:
备份所有数据库:
mysqldump -u root -p --all > c:\all_database_back.sql
2. MySQL数据还原
2.1 通过复制数据文件实现数据还原
在通过复制数据文件这种方式实现数据还原时,必须保证两个MySQL数据库的主版本号一致,因为只有MySQL数据库主版本号一致时,才能保证两个MySQL数据库的文件类型是相同的。由于通过复制数据文件实现数据备份时,对存储引擎类型为I:nnoDB的表不可用,仅对存储引擎为MyISAM类型的表有效。因此通过复制数据文件实现数据还原时,也只对存储类型为MyISAM类型的表有效。
注意:MySQL数据库服务器的版本号,第一个数字表示主版本号。
2.2 通过命令mysql实现数据还原
mysqldump -u -username -p [dbname] < backname.sql
示例如下:
还原数据库company中的表t_dept:
mysqldump -u -root -p t_dept < t_dept_back.sql
3.MySQL数据库表导出到文本文件
3.1 执行SELECT ... INTO OUTFILE 实现导出到文本文件
SELECT [file_name] FROM table_name [where condition] INTO OUTFILE 'file_name' [OPTION]
示例如下:
实现将表t_dept里的所有数据导出到文件t_dept里:
SELECT * FROM t_dept INTO OUTFILE 'c:/t_dept_1.txt' FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';
上述实现了将表t_dept里的所有数据导出到文件t_dept_1.txt文件里,而且还设置了相应的显示格式。
3.2 执行命令mysqldump实现导出到文本文件
mysqldump -u root -p Password -T file_directory dbname table_name[option];
示例如下:
将相应的数据导出到文本文件t_dept.txt里:
mysqldump -u root -proot -T c:\company t_dept;
上述实现将表t_dept里的所有数据导出到文件t_dept里。
3.3 执行命令mysql实现导出到文本文件
mysql -u root -p Password -e"SELECT [file_name] FROM table_name " dbname > file_name;
示例如下:
mysql -u root -p root -e"SELECT * FROM t_dept" company> c:/t_dept.txt;
4. MySQL实现文本文件导入到数据库表
4.1 执行"LOAD DATA INFILE"命令实现文本文件导入到数据库表
LOAD DATA[LOCAL] INFILE file_name INTO TABLE table_name [OPTION];
示例如下:
LOAD DATA INFILE 'c:/t_dept.txt' INTO TABLE t_dept FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' TERMINATED BY '\r\n';
4.1 执行命令mysqlimport实现导入文本文件
mysqlimport -u root -p Password[--LOCAL] dbname file_name[OPTION]
示例如下:
mysqlimport -u root -p root company c:t_dept.txt FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';
5. 数据库迁移
5.1 相同版本的MySQL数据库之间的迁移
该种数据库迁移最容易实现。
5.2 不同版本的MySQL数据库之间的迁移
两种方式:低版本向高版本和高版本向低版本。
5.3 不同数据库之间的迁移
由于不同数据库之前的差异性,没有普遍适用的办法。
6. 数据性能优化
(备注):
备注1:
备份和还原的备注:如果所有的操作均是对远程数据库的操作,则在-u前面加-h ip即可。如需要操作192.168.1.101数据库的数据,写法是:
mysql -h 192.168.1.101 -u root -p -e"SELECT * FROM t_dept" company> c:/t_dept.txt;
备注2:
使用命令mysqldump进行导出数据到本地磁盘,执行该命令的时候不要进入mysql的控制台再使用,这样会报outfiledisabled错误。而是直接使用MYSQL/bin目录下的mysqldump.exe,通过windows的命令进入。
mysql数据库维护(备份和还原)和性能提高的更多相关文章
- day 50 MySQL数据备份与还原(mysqldump)
MySQL数据备份与还原(mysqldump) 一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Databas ...
- MySQL的备份和还原
MySQL的备份和还原 备份:副本 RAID1,RAID10:保证硬件损坏而不会业务中止: DROP TABLE mydb.tb1; 备份类型: 热备份.温备份和冷备 ...
- MySQL学习——备份和还原
MySQL学习——备份和还原 摘要:本文主要学习了如何备份和还原数据库. 部分内容来自以下博客: https://www.cnblogs.com/chenmh/p/5300370.html 常用命令 ...
- 转 MySQL 数据备份与还原
MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html 一.数据备份 1.使用mysqldump命令备份 mysqldum ...
- Linux下MySQL的备份与还原
Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...
- Mysql数据库备份和还原常用的命令
Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...
- [转]MySQL数据库备份和还原的常用命令小结
MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...
- mysql数据备份和还原命令
mysql数据库备份和还原 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfil ...
- MySQL的备份与还原
原文:MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | c ...
随机推荐
- 洛谷P2464 [SDOI2008] 郁闷的小j [分块]
题目传送门 郁闷的小j 题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也 ...
- jquery DOM操作(一)
上一篇文章是记录了jquery中选择器的作用,这里只要记录下jquery中的DOM操作,还是按照上篇的格式来. 下面是测试用的html代码,接下来DOM的操作会在下面的代码下进行. <body& ...
- 分布式锁的理解,java自带的锁为什么会失效
前段时间在发送短信的代码块上通过网上找的工具类基于Redis实现了分布式锁的功能 对应的链接https://www.cnblogs.com/c-h-y/p/9391602.html 周末想细细看一下. ...
- XamarinForms教程构建XamarinForms开发环境
构建XamarinForms开发环境 所谓Xamarin.Forms的开发环境,就是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE.对于任何的程 ...
- POJ3450 Corporate Identity
后缀数组. 解决多个字符串的最长公共子串. 采用对长度的二分,将子串按height分组,每次判断是否在每个字符串中都出现过. 复杂度O(NlogN) By:大奕哥 #include<cstrin ...
- NOIP2018提高组题解
D1T1:铺设道路 回忆NOIP2013D2T1 积木大赛,发现这两题唯一的区别就是一个是造山一个是填坑,而把填坑的操作反序就是造山,所以可以直接使用那道题的方法. 具体方法是,从左到右每次考虑新的一 ...
- [BZOJ4826][HNOI2017]影魔(主席树)
4826: [Hnoi2017]影魔 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 669 Solved: 384[Submit][Status][ ...
- POJ 3764 The xor-longest Path trie树解决位运算贪心
http://poj.org/problem?id=3764 题意 : 一颗树,每个边有个值,在树上找一条简单路径,使得这条路径上的边权异或值最大 先找到所有节点到一点的距离 , 显然dis( x ...
- BZOJ2754 [SCOI2012]喵星球上的点名 SA+莫队+树状数组
题面 戳这里 题解 首先先把所有给出的姓名和询问全部接在一起,建出\(height\)数组. 某个串要包含整个询问串,其实就相当于某个串与询问串的\(lcp\)为询问串的长度. 而两个后缀\(Suff ...
- php -- 解决php连接sqlserver2005中文乱码问题(附详细解决方法)
@_@~~ --php5.2 --phpstudy --apache --sqlserver2005 @_@~~问题描述 问题一:php连接sqlsever2005,输入中文,然后查询sqlserve ...