mysql 管理維護
mysql維護管理
1.刪除資料庫中test下的所有字首為tmp的表;
mysql -e "select concat('drop table test.',table_name,';') from information_schema.tables where table_schema='test' and table_name like 'tmp%';"|grep -v concat
2.將資料庫中test下所有儲存引擎為myisam的表改為innodb
mysql -e "select concat('alter table test1.',table_name,' engine=innodb;') from information_schema.tables where table_schema='test' and engine='MyISAM';"|grep -v concat
commit and chain
chain和release子句分別用來定義在事務提交或者回滾之後的操作,chain會立即啟動一個新事物,並且和剛才的事務具有相同的級別,
release則會斷開和客戶端的聯接;
start transaction命令開啟一個新的事物,會造成一個隱含的unlock tables被執行。
最好不要在同一個事務中使用不同的儲存引擎的表,通常情況下,只對提交的事務記錄到二進位制的日誌中,但是如果一個事務中包含非事務表,那麼回滾操作也會記錄到二進位制日誌中,保證slave的資料一致。
mysql升級
shell>mkdir dumpdir
shell>mysqldump --tab=dumpdir db_name
shell>mysqladmin create db_name
shell>cat dumpdir/*.sql |mysql db_name
shell>mysqlimport db_name dumpdir/*.txt
shell>cp -R /home/mysql_old/data/mysql /home/mysql_new/data/
shell>mysql_fix_privileges_tables;
shell>/etc/init.d/mysqld restart
binlog日誌
--binlog-do-db:該選項告訴主資料庫,如果當前的資料庫(USE選的的資料庫)是db_name,應該更新記錄到binlog日誌中。
--binlog-ignore-db:該選項告訴主伺服器,如果當前的資料庫(即USE選定的資料庫)是db_name,應該更新記錄到binlog日誌中。
--innodb-safe-binlog:此選項經常和--sync-binlog=N(每寫N次日誌同步到磁碟)一起配合使用,使得事務在日誌中的記錄更加安全。
set sql_log_bin=0:具有super許可權的客戶端可以透過此sql語句禁止將自己的語句寫入二進位制記錄。
查詢日誌
--log-output[=value,...]來進行控制,value值可以是table、file、none的一個或多個的組合。none的優先順序最高,如果有none其他不生效
general_log | OFF |
general_log_file | /mysql/data/localhost.log |
慢查詢日誌
slow_query_log | ON |
slow_query_log_file | /mysql/log/slowquery1.log |
執行時間超過引數long_query_time(s)設定的值並掃描的記錄數不小於min_examined_row_limit的所有sql語句的日誌
注:獲得表鎖定的時間不算作執行時間
預設情況下,管理語句和不使用索引進行查詢的語句不記錄在慢查詢日誌。要監控這兩類語句,可以分別透過引數--log-slow-admin-statement和log_queries_not_using_indexes
在mysql5.1.29以後,--log-slow-queries已經不推薦使用了
mysql> show variables like '%slow%';
+---------------------+---------------------------+
| Variable_name | Value |
+---------------------+---------------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /mysql/log/slowquery1.log |
+---------------------+---------------------------+
1.刪除資料庫中test下的所有字首為tmp的表;
mysql -e "select concat('drop table test.',table_name,';') from information_schema.tables where table_schema='test' and table_name like 'tmp%';"|grep -v concat
2.將資料庫中test下所有儲存引擎為myisam的表改為innodb
mysql -e "select concat('alter table test1.',table_name,' engine=innodb;') from information_schema.tables where table_schema='test' and engine='MyISAM';"|grep -v concat
commit and chain
chain和release子句分別用來定義在事務提交或者回滾之後的操作,chain會立即啟動一個新事物,並且和剛才的事務具有相同的級別,
release則會斷開和客戶端的聯接;
start transaction命令開啟一個新的事物,會造成一個隱含的unlock tables被執行。
最好不要在同一個事務中使用不同的儲存引擎的表,通常情況下,只對提交的事務記錄到二進位制的日誌中,但是如果一個事務中包含非事務表,那麼回滾操作也會記錄到二進位制日誌中,保證slave的資料一致。
mysql升級
shell>mkdir dumpdir
shell>mysqldump --tab=dumpdir db_name
shell>mysqladmin create db_name
shell>cat dumpdir/*.sql |mysql db_name
shell>mysqlimport db_name dumpdir/*.txt
shell>cp -R /home/mysql_old/data/mysql /home/mysql_new/data/
shell>mysql_fix_privileges_tables;
shell>/etc/init.d/mysqld restart
binlog日誌
--binlog-do-db:該選項告訴主資料庫,如果當前的資料庫(USE選的的資料庫)是db_name,應該更新記錄到binlog日誌中。
--binlog-ignore-db:該選項告訴主伺服器,如果當前的資料庫(即USE選定的資料庫)是db_name,應該更新記錄到binlog日誌中。
--innodb-safe-binlog:此選項經常和--sync-binlog=N(每寫N次日誌同步到磁碟)一起配合使用,使得事務在日誌中的記錄更加安全。
set sql_log_bin=0:具有super許可權的客戶端可以透過此sql語句禁止將自己的語句寫入二進位制記錄。
查詢日誌
--log-output[=value,...]來進行控制,value值可以是table、file、none的一個或多個的組合。none的優先順序最高,如果有none其他不生效
general_log | OFF |
general_log_file | /mysql/data/localhost.log |
慢查詢日誌
slow_query_log | ON |
slow_query_log_file | /mysql/log/slowquery1.log |
執行時間超過引數long_query_time(s)設定的值並掃描的記錄數不小於min_examined_row_limit的所有sql語句的日誌
注:獲得表鎖定的時間不算作執行時間
預設情況下,管理語句和不使用索引進行查詢的語句不記錄在慢查詢日誌。要監控這兩類語句,可以分別透過引數--log-slow-admin-statement和log_queries_not_using_indexes
在mysql5.1.29以後,--log-slow-queries已經不推薦使用了
mysql> show variables like '%slow%';
+---------------------+---------------------------+
| Variable_name | Value |
+---------------------+---------------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /mysql/log/slowquery1.log |
+---------------------+---------------------------+
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29620572/viewspace-1811659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《大型資料庫技術》MySQL管理維護資料庫MySql
- [MySQL光速入門]029 資料庫管理和維護MySql資料庫
- MySQL入門--表維護MySql
- Mysql常用的維護 SQLMySql
- ORACLE user profile配置/管理/維護Oracle
- 管理與維護Linux系統Linux
- MySQL從庫維護經驗分享MySql
- MySQL日誌維護策略彙總MySql
- 六、資料庫管理與維護資料庫
- 29. 使用MySQL之資料庫維護MySql資料庫
- MySQL 的索引型別及如何建立維護MySql索引型別
- 專案二 管理與維護Linux系統Linux
- 專案二 管理與維護Linux系統Linux
- LDAP落地實戰(一):OpenLDAP部署及管理維護LDA
- 集中管理伺服器軟體日常維護工具六款伺服器
- 【尚籌網IDEA版】06-管理員資訊維護Idea
- 字型圖示庫 iconfont、iconmoon 的維護管理與使用探索
- mc日常維護
- 基於裝置監控運維管理平臺實現預測性維護運維
- mysql知識點系列-索引全解密(型別、維護、優化)MySql索引解密型別優化
- 長期迭代的系統如何管理維護測試用例?
- 實景三維在園林養護管理上的應用
- PLC維護有何難處?如何實現遠端維護?
- 軟體的維護
- Oracle OGG日常維護Oracle
- PG日常維護(一)
- OGG日常維護文件
- ORACLE 11G 維護視窗和自動維護任務Oracle
- MySQL 安全防護MySql
- 維護區間資訊
- UPS系統維護方法
- oracle常用維護查詢Oracle
- Macaca 還在維護嗎?Mac
- 伺服器維護技巧伺服器
- 網管平臺(進階篇):網管系統的管理與維護
- 5S管理在辦公電腦日常維護中的應用
- 管理者的陷阱:總是試圖維護自己的正確性
- SAP PM 入門系列10 - 根據維護通知單建立維護訂單
- 如何做伺服器安全維護,網站安全維護怎麼做好伺服器網站