array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 备份与恢复 - 爱码网
逻辑备份:
mysqldump [options] db_name [tables]
mysqldump [options] --databases DB1 [DB2  DB3]
mysqldump [options] --all-database

举例:
1)备份所有数据库
mysqldump -uroot -p --all-database > all.sql
2)备份数据库 test
mysqldump -uroot -p test > test.sql
3)备份数据库 test 下的表 emp
mysqldump -uroot -p test emp > emp.sql
4)备份数据库 test 下的表 emp 和 dept
mysqldump -uroot -p test emp dept > emp_dept.sql
5)备份数据库 test 下的所有表为 以逗号 分割的文本,备份到 /tmp
mysqldump -uroot -p -T /tmp test emp --fields-terminated-by ','

myisam 存储引擎在备份的时候需要加上 -l 参数,表示将所有表加上读锁,在备份期间,所有表将只能读而不能进行数据更新
innodb 引擎采用选项 --single-transaction ,使得innodb 引擎得到一个快照,使得备份的数据能够保证一致性


恢复:
mysql -uroot -p dbname < bakfile
此时备份恢复后的数据并不完整,需要将备份后执行的日志进行重做
mysqlbinlog binlog-file | mysql -uroot -p test

举例:
1.mysql -uroot -p -l -F test > test.dmp
-l 表示给所有表加读锁,-F 表示生成一个新的日志文件
2.当数据库崩溃的时候恢复数据
mysql -uroot -p test < test.dmp
执行 mysqlbinlog 恢复自 mysqldump 备份以来的 binlog
mysqlbinlog localhost-bin.000015 | mysql -uroot -p test

不完全恢复——————————————————————————
基于时间点恢复:
将数据库恢复到 上一次备份的数据,mysql -uroot -p test < test.emp
再对 binlog 日志进行恢复。。。执行到 10:00:00 之前,然后跳过 10:00:00 的时间点
1.首先将数据恢复到故障前
mysqlbinlog --stop-date="2016-07-14 9:59:59" /data01/mysql/mysql-bin.000012 | mysql -uroot -p
2.跳过故障时的时间点,继续执行后面的 binlog 
mysqlbinlog --start-date="2016-07-14 10:01:00" /data01/mysql/mysql-bin.000012 | mysql -uroot -p

基于位置恢复:(相对于 基于时间点恢复更精确)
1.首先进行 binlog 日志确定位置查找:
mysqlbinlog --start-date="2016-07-14 9:55:00" --stop-date="2016-07-14 10:05:00" /data01/mysql/mysql-bin.000012 > /tmp/mysql_restore.sql
2.记录下错误操作的sql 位置号,假设为268312 和 268315
mysqlbinlog --stop-position="268312" /data01/mysql/mysql-bin.000012 | mysql -uroot -p
mysqlbinlog --start-position="268315" /data01/mysql/mysql-bin.000012 | mysql -uroot -p

物理备份和恢复:
冷备份:
备份:停掉数据库,cp 数据文件和日志文件到备份的目录。对于 myisam 和 innodb 存储引擎都适合,但是不实用
恢复:停掉数据库,cp 数据文件,重启,使用 mysqlbinlog 工具恢复自备份以来所有 binlog

热备份:
myisam:
1.使用 mysqlhotcopy 工具
mysqlhotcopy db_name [/path/to/new_directory]
--allowold  如果备份路径下含有同名备份,则将旧的备份目录 rename 为目录名 _old
--addtodest 如果备份路径下存在同名目录,则仅仅将新的文件加入目录
--noindices  不备份所有的索引文件
--flushlog  表被锁定后刷新日志

也可以使用 mysqlhotcopy -help 查看帮助

2.手工锁表 copy
首先所有数据表加读锁
flush tables for read;
然后cp 数据文件到 备份目录

innodb 存储引擎:
ibbackup  要钱

表的导入导出
导出:
1.select ...into outfile... 命令导出数据
select * from tablename into outfile 'target_file' [option];

fields terminated by 'string' (字段分隔符,默认为 制表符 '\t')
fields optionally enclosed by 'char' (字段引用符)
fields escaped by ‘char’ (转义字符,默认为 '\')
liens starting by 'string' (每行前都加此字符串,默认'')
lines terminated by 'string' (行结束符,默认为 '\n')

1.select * from emp into outfile '/tmp/emp.txt' fields terminated by "," enclosed by '"';
备份与恢复
2.select * from emp into outfile '/tmp/emp.txt' fields terminated by "," optionally enclosed by '"';
备份与恢复
3.对表 emp 中 的name 更新为含 "\", 字段分隔符,记录分隔符的数据,然后导出
update emp set name='\\"##!aa' where id=1;
select * from emp into outfile '/tmp/emp.txt' fields terminated by "," optionally enclosed by '"';
备份与恢复
此时 \ 被转义为 \\ 
4.将字段 id 为1 的name 更新为含有字段分隔符 “,”的字符串
update emp set name='\\"#,#,!aa' where id = 1;
select * from emp into outfile '/tmp/emp.txt' fields terminated by "," optionally enclosed by '"';
备份与恢复备份与恢复
此时因为字段被 " " 包含,所以 ',' 没有被转义
5.select * from emp into outfile '/tmp/emp.txt' fields terminated by ",";
备份与恢复

导入:
方法一、
load data infile ... 命令
load data [local] infile 'filename' into table tablename [option]
option 选项:
备份与恢复
1.load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"';
2.不希望加载文件中的前两行
load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' ignore 2 lines;
3.文件中的列顺序和表中的列顺序不符,或者只想加载部分列
load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' ignore 2 lines (id,content,name);
备份与恢复
4.希望将 id 列的内容 +10 后再加载到表中
load data infile '/tmp/emp.txt' into table emp fields terminated by ',' enclosed by '"' set id=id+10;
备份与恢复

方法2 
mysqlimport -uroot -p [--LOCAL] dbname order_tab.txt [option]

备份与恢复备份与恢复

mysqlimport -uroot test /tmp/emp.txt --fields-terminated-by=',' --fields-enclosed-by='"'

















相关文章: