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
- RAC維護管理命令
- MySQL入門--表維護MySql
- Mysql常用的維護 SQLMySql
- [MySQL光速入門]029 資料庫管理和維護MySql資料庫
- Oracle AWR管理與維護Oracle
- mysql維護常用命令MySql
- ORACLE user profile配置/管理/維護Oracle
- oracle表空間管理維護Oracle
- MySQL日誌維護策略彙總MySql
- MySQL從庫維護經驗分享MySql
- Mysql optimize、Analyze、check、repair維護操作MySqlAI
- MYSQL 安裝維護注意事項MySql
- 【Mysql 學習】日誌的維護MySql
- 六、資料庫管理與維護資料庫
- oracle維護管理指令(不斷更新)Oracle
- 管理與維護Linux系統Linux
- Oracle Standby系統管理與維護Oracle
- ORACLE資料庫管理維護綱要Oracle資料庫
- 網路規劃設計管理維護
- Windows網路的管理與維護(轉)Windows
- MySQL 的索引型別及如何建立維護MySql索引型別
- 企業網路安全管理維護之探析
- MS SQL 日常維護管理常用指令碼(下)SQL指令碼
- RAC 11.2.0.3 維護命令(三) SRVCTL管理services
- 自動儲存管理ASM日常維護(一)ASM
- MS SQL 日常維護管理常用指令碼(上)SQL指令碼
- MySQL日誌維護的7大策略詳解MySql
- 經驗分享:MySQL日誌維護策略總結MySql
- Linux下MySQL安裝和日常維護(1)LinuxMySql
- Linux下MySQL安裝和日常維護(2)LinuxMySql
- Linux下MySQL安裝和日常維護(3)LinuxMySql
- LDAP落地實戰(一):OpenLDAP部署及管理維護LDA
- 專案二 管理與維護Linux系統Linux
- 專案二 管理與維護Linux系統Linux
- Oracle11g RAC常用操作 (維護及管理)Oracle
- 機房管理系列之防毒伺服器維護防毒伺服器
- 資料庫自動維護任務的管理資料庫