甲骨人-MySQL网络课-day01


1、MySQL简介mysql


一、MySQL运维DBA工做内容:linux

初级DBA:
    安装配置,基本使用,基本故障处理    
中级DBA:
体系结构、备份策略设计,故障恢复,基础高可用的运维(搭建、监控、故障处理、架构演变)、基础优化(索引、执行计划、慢日志)redis

高级DBA:
高可用架构(设计、实施、运维)、高性能架构(读写分离,分库、分表,分布式)、总体数据库优化(基于业务的SQL优化)sql

二、甲骨人-MySQL-网络班课程框架
1、MySQL5.7 简介及安装部署
2、体系结构和管理
3、SQL语句使用
4、元数据获取-Information_schema
5、基础优化——索引及执行计划管理
6、InnoDB存储引擎
7、日志管理
8、备份恢复、迁移
9、MySQL主从复制
10、MySQL传统高可用——MHA
11、MySQL读写分离——Atlas
十二部分、MySQL分库分表-MyCAT
十三部分、MySQL5.7新型高可用方案——MGR,Innodb Cluster
十四部分、优化
NoSQL:
一、redis
二、Mongodb数据库

三、MySQL版本选择
3.1 企业版(收费版本)
3.2 社区版(开源版本)
GA:稳定的发布版
3.3 行业中对MySQL版本的使用状况
    5.6  :老的环境    ----->60%
    5.7  :新的环境    ----->40%
建议:尽可能选择GA6个月-12之间的产品
3.4 MySQL的获取    (下载)
社区版----->5.7---->5.7.17之后版本----->5.7.20
rpm   --->rpm -ivh  xxx.rpm    yum    不建议
通用的二进制包  ----->linux_genric版本(绿色版,解压完就能用)  企业建议使用
源码包     ----->Source code(能够定制一些,二次开发的功能)    大企业会用到的vim

补充:
    perconaDB:咱们建议可使用它的一些工具,percona-tookit
    MariaDB:tokuDB存储引擎,zabbix这种应用经常使用的缓存


2、MySQL5.7 二进制安装过程
0、系统版本
[root@temp ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)安全

一、MySQL安装以前的准备工做bash

1.1 安装依赖包:
yum  install  -y   ncurses-devel libaio-devel服务器

1.2 检查防火墙
iptables 
selinux
ip   hosts  主机名

二、上传软件并解压软件
mkdir /data/
useradd mysql
cd /data
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar 
rm -rf mysql-5.7.20-linux-glibc2.12-x86_64.tar
rm -rf mysql-test-5.7.20-linux-glibc2.12-x86_64.tar.gz 
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 

三、初始化数据(至关于dbca)
cd /data/mysql/bin
(方法1)
./mysqld --initialize  --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql
官方建议的:初始化完成以后,会生成临时密码
而且开启安全策略(密码长度、密码过时时间180天、密码复杂度)

(方法2)
./mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql


四、书写简易配置文件(二进制包须要手工写一个配置文件)

vim /etc/my.cnf
[mysqld]
basedir=/data/mysql 
datadir=/data/mysql/data 
socket=/tmp/mysql.sock 
log_error=/data/mysql/data/mysql.err
user=mysql
[mysql]
socket=/tmp/mysql.sock 

五、启动mysql数据库
cd  /data/mysql/support-files
./mysql.server start
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld restart

六、验证数据库
6.1 修改环境变量
 vim .bash_profile
export PATH=/data/mysql/bin:$PATH
source  .bash_profile 

6.2 登录数据库
mysql 
===============================================
3、MySQL体系结构及管理
一、服务器端客户端模型

Client  ---->  Server

在Linux中提供了两种链接协议:
(1)本地链接数据库使用:
Socket: 
mysql -uroot -p   -S   /tmp/mysql.sock
(2)远程链接
TCPIP:远程链接
mysql -uroot -p   -h 10.0.0.200 -P 3306

二、实例构成

mysql 单进程多线程的工做模式
    mysqld后台进程(老板)
            ----->Master Thread(经理)
                   ------>一堆线程(小弟)
    预分配的内存结构(办公室)        

mysql实例=mysqld进程+Master thread+一堆线程+预分配的内存结构    

    
三、mysqld服务构成

一条SQL语句的执行过程:

(1)链接层
      mysql  -uroot  -p  -h 10.0.0.200 -P 3306
    (1.1)提供链接协议(socket、TCPIP)
    (1.2)用户名密码验证
    (1.3)提供专用的链接线程(接受SQL、范围执行结果)
    select table_schema,table_name ,engine from information_schema.tables 
    where table_schema='mysql';
    
(2)SQL层
    (2.1) 语法验证
    (2.2) 权限验证
    (2.3) 语义检查(DDL、DML、DCL、DQL)
    (2.4) 专用的解析器,解析对应的类型的SQL语句,生成执行计划
    (2.5) 优化器基于代价,选择一个代价最低的执行计划
    (2.6) 执行器(负责执行优化器选择执行计划),获得一个结果(获取数据的方法)。
    (2.7) 提供了查询缓存 (SQLid+结果)query_cache,默认关闭的状态。Redis(Tair)缓存数据库配合使用。
    (2.8) 提供查询日志 
(3)存储引擎层(File system)
     拿着上层传送过来的,获取数据的方法,从磁盘取数据。

四、物理存储结构(了解) 库    ---->   目录 表    ---->   多个文件构成(不通存储引擎,存储方式不一样)

相关文章
相关标签/搜索