mysqldump備份命令
#mysqldump -uroot -p123456 test > test.sql #mysqldump -uroot -p123456 -B test > test.sql #這兩個的差別:-B將創建的數據庫名也會備份下來 #mysqldump -uroot -p123456 -B test | gzip > test.sql.gz 備份庫並壓縮
mysqldump的備份原理:
實際上就是把數據從mysql庫裏以邏輯的sql語句的形式直接輸出或者生成備份的文件過程。屬於邏輯備份。
物理備份:直接對文件進行打包。
#mysqldump -uroot -p123456 -B test xpg | gzip > test.sql.gz #同時備份多個庫
分庫備份的意思何在?
如果一個庫的數據的數據出現問題,僅僅將這個庫的數據導入進去就好,分庫的意義
備份單個表:
#mysqldump -uroot -p123456 dbname tablename > test.sql #備份一個庫裏面的一個表 #mysqldump -uroot -p123456 dbname tablename1 tablename2 > test.sql #備份一個庫裏面的多個表 #mysqldump -uroot -p123456 -d dbname tablename > test.sql #只是備份一個表的結構,不備份數據 #mysqldump -uroot -p123456 -t dbname tablename > test.sql #只是備份一個表的數據
備份數據庫裏面的所有數據:-A
#mysqldump -uroot -p123456 -A -B --events | gzip > test.sql.gz
--master-data=1 這個標記了當前的binlog日誌記錄的位置,恢復數據就是從這個日誌的master_log_pos後面開始恢復。
#mysqldump -uroot -p123456 --master-data=1 test > test.sql
innodb:存儲引擎( --single-transaction:鎖表)
#mysqldump -uroot -p“” -A -B --master-data=1 --single-transaction | gzip >/opt/all.sql.gz
08-利用source恢復mysql數據講解及實戰
source 需要登錄到數據庫裏面。
mysql>drop database dbname; 刪除一個庫。
mysql>system ls /opt #查看opt下面有什麽文件
mysql>source /opt/...sql
09 分庫備份後mysql如何分庫恢復實踐
當你備份時沒有使用-B。恢復是必須指定庫
#mysql -uroot -p‘123456’ dbname < /opt/mysql_bak.sql
如果是壓縮的備份文件。
可以先使用gzip -d 壓縮文件。然後在導入。
10-mysql進程-狀態-在線修改參數重要指示講解
-e:交互顯示
設置全局變量使用set global key_buffer_size=..,重啟後失效
小結:生產常用命令
show global status:查看整個數據庫運行狀態信息,很重要分析並要做好監控
show full processlist:查看正在執行的完整的sql語句
set global key_buffer_size=32777218 不重啟數據庫調整數據庫參數,直接生效,重啟後失敗
show variables:查看數據庫的參數信息
11-mysqlbinlog命令介紹及實戰講解
mysqlbinlog--》解析mysql的binlog日誌
binglog日誌是什麽?
在data下面。mysql-bin.index是binlog日誌文件的索引
作用是:從來記錄mysql內部增刪改查等對mysql數據庫有更新的記錄。select不會記錄。
binglog會記錄所有庫所有表的操作日誌。不能分開記錄相關庫的binlog日誌
通常情況所有的庫日誌都在一個binlog裏面。
所以要進行拆庫:這樣將一個的庫日誌導入到新的文件裏面
#mysqlbinlog -d test mysql-bin.000001 > test.sql #將test庫的binlog日誌導入到test.sql
mysqldump備份命令