首页 > 代码库 > mysql数据库种类介绍及 mysqldump备份数据

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景。以高性能和使用便利为目一 

的功能特异化的数据库产品


Nosql特点:

Noosql数据库存储不需要固定的表结构

1 他不是否定关系数据库,而是作为关系数据库的一个重要补充

2 Nosql为了高性能高并发而产生的

3 Nosql典型产品memcache(纯内存) 一重启就丢数据

  redis(持久化缓存)  持久化缓存  

  mongodb   


二  非关系型数据库种类:

1 键值存储数据库

2 列存储数据库

3 面向文档的数据库  mongodb 

4 图形数据库


三 关系型数据库

1  oracle主要应用范围:传统大企业 大公司 政府 金融 证券

关系型数据库比较笨重一个软件很大 几个G左右

2  mysql数据库互联网公司最常用的公司 适用于大中小型网站,开源,体积小速度快成本低等特点

3 mariaDB 数据库诞生  mysql被收购  

4 SQL server 数据库 微软开发的大型数据库 和sybase合作开发

5 access和offcices 绑定的一个入门级小型的桌面数据库,性能和安全性一般,可提供个人管理或者小型网站之用


四 数据库的备份


【1】sql语句如何优化:

1 抓慢sql  show for testlist 执行一下查看慢的  给慢sql添加索引  2 在配置文件里添加参数 添加索引  增加慢sql的查询日志收集  脚本切割  分析定时任务发给db 


【2】 网站打开慢 给出排查方法,如何使因为导致数据库慢导致,如何排查解决?分析并举例

思路:

负载均衡到web服务器                      web到存储                  php到数据库           web到数据库 

访问静态网页一下                         动态网页慢php问题                                uptime可定负载均衡高

慢 则是负载高 cpu高  查看io              cure慢的话是存储问题                             创建索引  创建sql慢查询日志

   



测试环境 生产环境  开发环境

五  数据库备份:


  mysqldump -u 用户名 -p 数据库名  表名 >备份的文件名

mysqldump -uroot -poldboy123  -S/data/3306/mysql.sock -B oldboy oldboy-gbk >/opt/bak_$(data +%F).sql

 

  -B 参数的作用  不加-B 第一个是库 后面都是表  加上-B 第一个是库 后面的都是表

--compact 减少输出 但不用于生产


六 mysqldump的工作原理

利用mysqldump命令把数据备份的过程,就是直接拿mysql数据库里面的数据以逻辑的sql语句的形式直接输出或者生成备份的过程

mysql分库脚本


mysql -uroot -poldboy123 -e "show databases;"|egrep -v "_schema|atabase"|sed -r ‘s#^(.*)#mysqldump  -uroot -poldboy123 --events -B \1 |gzip >/opt/\1.sql.gz#g‘|bash

备份单个表:

mysqldump -uroot -poldboy23 -S /data/3306/mysql.scok oldboy test --compact



分表备份:

mysqldump -u 用户名 -p 数据库名 表名 > 备份的文件名

mysqldump -uroot -poldboy student >/opt/table1.sql


备份多个表:


mysqldump -u 用户名 -p 数据库名 表名1 表名2 > 备份的文件名

分表备份缺点:文件多 很碎


备份表结构:-d 

利用mysqldump -d参数只备份表的结构 备份oldboy库的所有表的结构


备份表数据 -t  备数据库里面的数据







七 刷新binlog参数  参数-F

mysqldump用于定时对某一时刻的数据全备,例如00 点进行备份

增量备份:当有数据写入到数据库时,还会同时把更新出的sql语句写入到对应的文件。这个文件叫做binlog文件

例子:

10点丢失数据需要恢复数据:

1  00点时刻备份的.sql数据还原到数据库,这时数据库恢复到了00点

2  00-10点数据,就需要binlog里恢复

binlog文件生效则需要log-bin

-F 作用:binlog日志 生成新的而文件  将来新的增量恢复从这个文件开始

--master-data 在备份语句里添加CHANGES MASTER 语句及binlog文件

及位置点信息

当--master-data=http://www.mamicode.com/1时 可执行的change master语句 一般等于1时做的是从库

当--master-data=http://www.mamicode.com/2时 注释的change master语句 一般用于做单纯的增量恢复

--master-data 除了增量恢复确定临界点外 做主从复制时作用更大


八 mysqldump的关键参数说明:

mysqldump的参数:

-B 备份多格库

-t 只备份数据

-d 只备份表结构

-T 分离库表和数据成不同的文件,数据是文本,非sql语句

-A 备份所有库

-L --lock-all-tables 锁表

备份时一定要锁表,在某一时刻数据库不能更新

当--master-data=http://www.mamicode.com/1时 可执行的change master语句 一般等于1时做的是从库

当--master-data=http://www.mamicode.com/2时 注释的change master语句 一般用于做单纯的增量恢复

--master-data 除了增量恢复确定临界点外 做主从复制时作用更大

--single-transaction  适合innodb属无数据库备份

InnoDB 表在备份时  通常启用选项  --single-transaction来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别:repeataable read 以确保本次会话dump时 。不会看到其他会话已经提交了数据

-q --quick   ACID会话隔离数据  -enevts事务性是innoDB独有的特性  事物有隔离性 


未完待续。。。。。。。

本文出自 “小辛” 博客,谢绝转载!

mysql数据库种类介绍及 mysqldump备份数据