第1章 DBA職業(yè)介紹
1.什么是DBA
數(shù)據(jù)庫管理員
2.DBA分級和職責
初級:
安裝配置
基本使用
基本故障處理
中級: 運維在這里就可以
體系結構
備份策略
故障恢復
基礎優(yōu)化(索引狠半,執(zhí)行計劃判耕,慢日志)
高可用架構(搭建,監(jiān)控,故障處理堂鲜,架構演變)
高級:
高可用架構(設計,實施贬派,運維)
高性能架構(讀寫分離麦锯,分庫,分表佑附,分布式)
整體數(shù)據(jù)庫優(yōu)化(基于業(yè)務的SQL優(yōu)化)
3.運維對數(shù)據(jù)庫的掌握
基礎的SQL語句
MySQL索引及執(zhí)行計劃
MySQL存儲引擎
MySQL日志管理
MySQL備份與恢復
MySQL主從復制及架構演變
4.常見數(shù)據(jù)庫產(chǎn)品介紹
關系型數(shù)據(jù)庫: MySQL Oracle
非關系型數(shù)據(jù)庫: Redis MongoDB Elasticsearch
云數(shù)據(jù)庫: RDS
第2章 MySQL版本選擇
1.版本選擇
https://downloads.mysql.com/archives/
5.5
5.6?
5.7 用的最多
8.0
2.安裝方法
yum
rpm
編譯
二進制包? 推薦方法
第3章 MySQL安裝部署
1.下載并解壓軟件
tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
ln -s mysql-5.7.28 mysql
2.配置環(huán)境變量
echo 'PATH=$PATH:/opt/mysql/bin' >> /etc/profile
source /etc/profile
mysql -V
3.清除遺留環(huán)境
rpm -qa|grep mariadb
yum remove mariadb-libs -y
rm -rf /etc/my.cnf
4.安裝mysql依賴包
yum install -y libaio-devel
5.創(chuàng)建數(shù)據(jù)目錄及mysql普通用戶并授權
mkdir /data -p
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /data/
chown -R mysql.mysql /opt/mysql*
6.初始化數(shù)據(jù)庫
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql_3306/
7.編輯mysql配置文件
cat> /etc/my.cnf <<EOF
[mysqld]
port=3306
user=mysql
basedir=/opt/mysql
datadir=/data/mysql_3306
socket=/tmp/mysql_3306.sock
[mysql]
socket=/tmp/mysql_3306.sock
EOF
8.準備啟動腳本并啟動數(shù)據(jù)庫
cp /opt/mysql/support-files/mysql.server? /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
netstat -lntup|grep 3306
9.配置root密碼
mysqladmin password 123 -S /tmp/mysql_3306.sock
10.登陸MySQL
mysql -uroot -p123
mysql>
第4章 MySQL多實例部署
1.創(chuàng)建數(shù)據(jù)目錄并更改授權
mkdir -p /data/mysql_3307/
mkdir -p /data/mysql_3308/
chown -R mysql.mysql /data/
2.初始化多實例數(shù)據(jù)
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql_3307/
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql_3308/
3.創(chuàng)建配置文件
cat > /data/mysql_3307/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql/
datadir=/data/mysql_3307/
socket=/data/mysql_3307/mysql.sock
log_error=/data/mysql_3307/mysql.log
port=3307
EOF
cat > /data/mysql_3308/my.cnf <<EOF
[mysqld]
basedir=/opt/mysql/
datadir=/data/mysql_3308/
socket=/data/mysql_3308/mysql.sock
log_error=/data/mysql_3308/mysql.log
port=3308
EOF
4.創(chuàng)建多實例啟動腳本
cat >/etc/systemd/system/mysqld_3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3307/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld_3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3308/my.cnf
LimitNOFILE = 5000
EOF
5.啟動多實例
systemctl daemon-reload
systemctl start mysqld_3307
systemctl start mysqld_3308
netstat -lntup
6.多實例設置密碼
mysqladmin password 123 -S /data/mysql_3307/mysql.sock
mysqladmin password 123 -S /data/mysql_3308/mysql.sock
7.連接測試
方法1: 指定sock連接
mysql -uroot -p123 -S /data/mysql_3307/mysql.sock
mysql -uroot -p123 -S /data/mysql_3308/mysql.sock
方法2: 指定IP+端口
mysql -uroot -p123 -h127.0.0.1 -P3307
mysql -uroot -p123 -h127.0.0.1 -P3308
打開3006端口數(shù)據(jù)庫