文章目錄
運維DBA工作內容
- 初級DBA:
安裝配置,基本使用,基本故障處理 - 中級DBA:
體系結構、備份策略涉及,故障恢復,基礎高可用的運維(搭建、監控、故障處理、架構演變)、基礎優化(索引、執行計劃、慢日誌) - 高級DBA:
高可用架構(設計、實施、運維)、高性能架構(讀寫分離,分庫、分表,分佈式)、整體數據庫優化(基於業務的SQL優化)
MySQL學習框架
- MySQL簡介及部署
- MySQL體系結構
- MySQL基礎管理
- SQL應用
- Information_schema獲取元數據
- 索引及執行計劃
- MySQL存儲引擎
- MySQL日誌管理
- MySQL備份與恢復
- MySQL主從複製及架構演變
- MySQL高可用架構
- MySQL高性能架構
- MySQL優化
- MySQL5.7及8.0高可用新特性
數據庫管理系統
什麼是數據
數據(data)是事實或觀察的結果,是對客觀事物的邏輯歸納,是用於表示客觀事物的未經加工的的原始素材。
數據可以是連續的值,比如聲音、圖像,稱爲模擬數據。也可以是離散的,如符號、文字,稱爲數字數據。
在計算機系統中,數據以二進制信息單元0,1的形式表示。
數據的定義:數據是指對客觀事件進行記錄並可以鑑別的符號,是對客觀事物的性質、狀態以及相互關係等進行記載的物理符號或這些物理符號的組合。
它是可識別的、抽象的符號。
數據庫管理系統(Database Management System) (需要了解)
特點:
高效/安全
種類:
RDBMS:關係型數據庫
NoSQL:非關係型數據庫
RDBMS與NOSQL (需要熟悉)
- RDBMS和NoSQL基本特點
- 產品介紹(熟悉)
- RDBMS:
種類: Oracle、mysql、mssql(SQL Server)、PG(postgresql)
特點: 以多張二維表的方式來存儲,又給多張表建立了一定關係.數據安全性要求較高的應用場景
- NoSQL:
種類: redis、mongodb、memcache、Hbase、neo4j
特點: 簡單,快,適合做緩存數據庫針對性能要求較高,數據安全性要求不是太高的場景,一般是配合RDBMS使用的產品
關係型與非關係型數據庫的對比
Oracle產品介紹
Oracle:
10g 11g 12c 18c
(需要了解)
MySQL:
5.6 5.7 8.0
(需要熟悉)
補充:5.6 ----->5.6.38 5.6.38 ,GA6個月以上的版本
5.7 ----->5.7.17版本以上:5.7.18,5.7.20 , GA6個月以上的版本
GA=穩定版本
MySQL獲取與安裝方式介紹
-
RPM、Yum:
安裝方便、安裝速度快,無法定製(需要了解)
-
二進制:
不需要安裝,解壓即可使用,不能定製功能(需要熟悉)
-
編譯安裝:
可定製,安裝慢。(需要熟悉)
4個步驟:
1.解壓(tar)
2.生成(./configure)
3.編譯(make)
4.安裝(make install)5.5之前:./configure make make install
5.5之後:cmake gmake
-
先編譯,然後製作rpm,製作yum庫,然後yum安裝.
(需要熟悉)
簡單、速度快、可定製,比較複雜 製作時間長 -
企業選擇安裝方式
中小企業:以上方式都可以,運維偏向編譯,dba偏向選擇
大型企業:可以選擇第4種安裝方式
源碼編譯安裝MySQL
安裝前準備
- 下載好5.6.38
百度雲提取:5.6.38版本
提取碼: ht2b
上傳到服務器上
- 安裝依賴包
yum install -y ncurses-devel libaio-devel
安裝cmake
代替了之前的./config
yum install cmake -y
- 創建用戶
useradd -s /sbin/nologin -M mysql
id mysql
創建目錄
mkdir -p /application
開始安裝mysql-5.6.38
cd /server/tools/
ls -l mysql-5.6.38.tar.gz
# 儘量去官方下載
- 解壓壓縮包
tar xf mysql-5.6.38.tar.gz
cd mysql-5.6.38
- 開始cmake編譯安裝
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
-DMYSQL_DATADIR=/application/mysql-5.6.38/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
- 編譯參數說明
#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
#數據存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.38/data \
#socket文件存放位置,需要提前創建好tmp文件
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校驗規則
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他額外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存儲引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#啓用zlib庫支持(zib、gzib相關)
-DWITH_ZLIB=bundled \
#啓用SSL庫支持(安全套接層)
-DWITH_SSL=bundled \
#啓用本地數據導入支持
-DENABLED_LOCAL_INFILE=1 \
#編譯嵌入式服務器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允許下載,否則會安裝報錯。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默認爲禁用)
-DWITH_DEBUG=0
- cmake幹了什麼?
1、做了些預配置
2、影響了編譯後的程序(編譯過程會將cmake指定的配置信息硬編碼到程序文件中)
mysqld
mysql
mysql_install_db
mysqldump
mysqladmin
mysqld_safe
等。
- 什麼是一套完整的數據庫管理系統?
從文件角度來講:
軟件部分------>/application/mysql-5.6.38 #軟件安裝部分
數據部分------>/application/mysql/data #數據存放目錄,使用前需要使用mysql_install_db
初始化,
- 生產環境中如何升級(瞭解):
以5.7.20爲例
1、裝新的軟件5.7.20
2、軟連接
3、升級數據
注:生產中一般選擇遷移升級的方式(自己總結)
在升級的的時候注意要做好備份,有回退方案
- 開始make安裝
make && make install
- 做一個軟連接
ln -s /application/mysql-5.6.38/ /application/mysql
- 進入目錄
cd /application/mysql/support-files
- 拷貝啓動腳本到init.d
cp mysql.server /etc/init.d/mysqld
#授權
chmod 700 /etc/init.d/mysqld
- 拷貝配置文件
cp my-default.cnf /etc/my.cnf
- 授權
chown -R mysql.mysql /application/mysql-5.6.38/data/
- 給軟連接也授權
chown -R mysql.mysql /application/mysql
- 給socket目錄授權
chown -R mysql.mysql /application/mysql-5.6.38/
- 初始化
cd /application/mysql/scripts
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
- 創建tmp目錄存放socket文件
mkdir -p /application/mysql/tmp
- 增加變量
echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
- 啓動
/etc/init.d/mysqld start
- 查看是否啓動成功
#端口
netstat -lntup |grep 330
#進程
ps -ef|grep mysql
- 設置root密碼
mysqladmin password 123456
#或者
mysqladmin -uroot -p password 123456
Enter password:#舊密碼