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=1時 可執行的change master語句  一般等於1時做的是從庫 

當--master-data=2時 註釋的change master語句     一般用於做單純的增量恢復

--master-data 除了增量恢復確定臨界點外 做主從複製時作用更大


八 mysqldump的關鍵參數說明:

mysqldump的參數:

-B 備份多格庫

-t 只備份數據

-d 只備份表結構

-T 分離庫表和數據成不同的文件,數據是文本,非sql語句

-A 備份所有庫

-L --lock-all-tables 鎖表

備份時一定要鎖表,在某一時刻數據庫不能更新

當--master-data=1時 可執行的change master語句  一般等於1時做的是從庫 

當--master-data=2時 註釋的change master語句     一般用於做單純的增量恢復

--master-data 除了增量恢復確定臨界點外 做主從複製時作用更大

--single-transaction  適合innodb屬無數據庫備份

InnoDB 表在備份時  通常啓用選項  --single-transaction來保證備份的一致性,實際上它的工作原理是設定本次會話的隔離級別:repeataable read 以確保本次會話dump時 。不會看到其他會話已經提交了數據

-q --quick   ACID會話隔離數據  -enevts事務性是innoDB獨有的特性  事物有隔離性 


未完待續。。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章