亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
1234下一頁
最近訪問板塊 發(fā)新帖
查看: 45713 | 回復(fù): 38
打印 上一主題 下一主題

MYSQL服務(wù)維護(hù)筆記 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2002-12-17 00:10 |只看該作者 |倒序?yàn)g覽
http://www.chedong.com/tech/mysql.html
MYSQL服務(wù)維護(hù)筆記

作者: 車東 chedong@bigfoot.com

最后更新:2002-08-23 17:56:46

版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請務(wù)必標(biāo)明原始出處和作者信息

使用MYSQL服務(wù)的一些經(jīng)驗(yàn),主要從以下幾個(gè)方面考慮的MYSQL服務(wù)規(guī)劃設(shè)計(jì)。
1 MYSQL服務(wù)的安裝/配置的通用性;
2 系統(tǒng)的升級和數(shù)據(jù)遷移方便性;
3 備份和系統(tǒng)快速恢復(fù);

MYSQL服務(wù)器的規(guī)劃
=================
為了以后維護(hù),升級備份的方便和數(shù)據(jù)的安全性,最好將MYSQL程序文件和數(shù)據(jù)分別安裝在“不同的硬件”上。
/
/usr             <== 操作系統(tǒng)         }==>; 硬盤1
/home/mysql      <== mysql應(yīng)用程序
...
/data/app_1/     <== 應(yīng)用數(shù)據(jù)和腳本   }==>; 硬盤2
/data/app_2/
/data/app_3/

mysql服務(wù)的安裝和服務(wù)的啟動:
MYSQL一般使用當(dāng)前STABLE的版本,盡量不使用--with-charset=選項(xiàng),我感覺with-charset只在按字母排序的時(shí)候才有用,這些選項(xiàng)會對數(shù)據(jù)的遷移帶來很多麻煩。
configure --prefix=/home/mysql
make
make install

服務(wù)的啟動和停止
================
1 復(fù)制缺省的mysql/var/mysql到 /data/app_1/目錄下,
2 MYSQLD的啟動腳本:start_mysql.sh
#!/bin/sh
rundir=`dirname &quot;$0&quot;`
echo &quot;$rundir&quot;
/home/mysql/bin/safe_mysqld --user=mysql --pid-file=&quot;$rundir&quot;/mysql.pid --datadir=&quot;$rundir&quot;/var &quot;$@&quot;\
-O max_connections=500 -O wait_timeout=600 -O key_buffer=32M --port=3402 --socket=&quot;$rundir&quot;/mysql.sock &amp;

注釋:
--pid-file=&quot;$rundir&quot;/mysql.pid  --socket=&quot;$rundir&quot;/mysql.sock --datadir=&quot;$rundir&quot;/var
目的都是將相應(yīng)數(shù)據(jù)和應(yīng)用臨時(shí)文件放在一起;
-O 后面一般是服務(wù)器啟動全局變量優(yōu)化參數(shù),有時(shí)候需要根據(jù)具體應(yīng)用調(diào)整;
--port: 不同的應(yīng)用使用PORT參數(shù)分布到不同的服務(wù)上去,一個(gè)服務(wù)可以提供的連接數(shù)一般是MYSQL服務(wù)的主要瓶頸;

修改不同的服務(wù)到不同的端口后,在rc.local文件中加入:
/data/app_1/start_mysql.sh
/data/app_2/start_mysql.sh
/data/app_3/start_mysql.sh
注意:必須寫全路徑

3 MYSQLD的停止腳本:stop_mysql.sh
#!/bin/sh
rundir=`dirname &quot;$0&quot;`
echo &quot;$rundir&quot;
/home/mysql/bin/mysqladmin -u mysql -S&quot;$rundir&quot;/mysql.sock shutdown

使用這個(gè)腳本的好處在于:
1 多個(gè)服務(wù)啟動:只需要修改腳本中的--port=參數(shù)。單個(gè)目錄下的數(shù)據(jù)和服務(wù)腳本都是可以獨(dú)立打包的。
2 所有服務(wù)相應(yīng)文件都位于/data/app_1/目錄下:比如:mysql.pid mysql.sock,當(dāng)一臺服務(wù)器上啟動多個(gè)服務(wù)時(shí),多個(gè)服務(wù)不會互相影響。但都放到缺省的/tmp/下則有可能被其他應(yīng)用誤刪。
3 當(dāng)硬盤1出問題以后,直接將硬盤2放到一臺裝好MYSQL的服務(wù)器上就可以立刻恢復(fù)服務(wù)(如果放到my.cnf里則還需要備份相應(yīng)的配置文件)。

服務(wù)啟動后/data/app_1/下相應(yīng)的文件和目錄分布如下:
/data/app_1/
            start_mysql.sh 服務(wù)啟動腳本
            stop_mysql.sh  服務(wù)停止腳本
            mysql.pid      服務(wù)的進(jìn)程ID
            mysql.sock     服務(wù)的SOCK
            var/           數(shù)據(jù)區(qū)
               mysql/      用戶庫
               app_1_db_1/ 應(yīng)用庫
               app_2_db_2/
               ...
/data/app_2/
           ...   

查看所有的應(yīng)用進(jìn)程ID:
cat /data/*/mysql.pid

查看所有數(shù)據(jù)庫的錯誤日志:
cat /data/*/var/*.err

個(gè)人建議:MYSQL的主要瓶頸在PORT的連接數(shù)上,因此,將表結(jié)構(gòu)優(yōu)化好以后,相應(yīng)單個(gè)MYSQL服務(wù)的CPU占用仍然在10%以上,就要考慮將服務(wù)拆分到多個(gè)PORT上運(yùn)行了。

服務(wù)的備份
==========
盡量使用MYSQL DUMP而不是直接備份數(shù)據(jù)文件,以下是一個(gè)按weekday將數(shù)據(jù)輪循備份的腳本:備份的間隔和周期可以根據(jù)備份的需求確定
/home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>;/path/to/backup/db_name.`data +%w`.dump.gz
因此寫在CRONTAB中一般是:
* 6 * * * /home/mysql/bin/mysqldump -S/data/app_1/mysql.sock -umysql db_name | gzip -f>;/path/to/backup/db_name.`data +\%w`.dump.gz
注意:
1 在crontab中'%'需要轉(zhuǎn)義成'\%'
2 根據(jù)日志統(tǒng)計(jì),應(yīng)用負(fù)載最低的時(shí)候一般是在早上6點(diǎn)

先備份在本地然后傳到遠(yuǎn)程的備份服務(wù)器上,或者直接建立一個(gè)數(shù)據(jù)庫備份帳號,直接在遠(yuǎn)程的服務(wù)器上備份,遠(yuǎn)程備份只需要將以上腳本中的-S /path/to/msyql.sock改成-h IP.ADDRESS即可。

數(shù)據(jù)的恢復(fù)和系統(tǒng)的升級
======================
日常維護(hù)和數(shù)據(jù)遷移:在數(shù)據(jù)盤沒有被破壞的情況下
硬盤一般是系統(tǒng)中壽命最低的硬件。而系統(tǒng)(包括操作系統(tǒng)和MYSQL應(yīng)用)的升級和硬件升級,都會遇到數(shù)據(jù)遷移的問題。
只要數(shù)據(jù)不變,先裝好服務(wù)器,然后直接將數(shù)據(jù)盤(硬盤2)安裝上,只需要將啟動腳本重新加入到rc.local文件中,系統(tǒng)就算是很好的恢復(fù)了。

災(zāi)難恢復(fù):數(shù)據(jù)本身被破壞的情況下
確定破壞的時(shí)間點(diǎn),然后從備份數(shù)據(jù)中恢復(fù)。

應(yīng)用的設(shè)計(jì)要點(diǎn)
==============

非用數(shù)據(jù)庫不可嗎?
數(shù)據(jù)庫的確可以簡化很多應(yīng)用的結(jié)構(gòu)設(shè)計(jì),但本身也是一個(gè)系統(tǒng)資源消耗比較大的應(yīng)用。所以很多應(yīng)用如果沒有很高的實(shí)時(shí)統(tǒng)計(jì)需求的話,完全可以先記錄到文件日志中,定期的導(dǎo)入到數(shù)據(jù)庫中做后續(xù)統(tǒng)計(jì)分析。如果還是需要記錄2維表結(jié)構(gòu),結(jié)構(gòu)足夠簡單的話可以使用DBM結(jié)構(gòu)。即使需要使用數(shù)據(jù)庫的,應(yīng)用如果沒有太復(fù)雜的數(shù)據(jù)完整性需求的化,完全可以不使用那些支持外鍵的商業(yè)數(shù)據(jù)庫,
數(shù)據(jù)庫服務(wù)的主要瓶頸:單個(gè)服務(wù)的連接數(shù)
對于一個(gè)應(yīng)用來說,如果數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)能夠按照數(shù)據(jù)庫原理的范式來設(shè)計(jì)的話,并且已經(jīng)使用了最新版本的MYSQL,并且按照比較優(yōu)化的方式運(yùn)行了,那么最后的主要瓶頸一般在于單個(gè)服務(wù)的連接數(shù),即使一個(gè)數(shù)據(jù)庫可以支持并發(fā)500個(gè)連接,最好也不要把應(yīng)用用到這個(gè)地步,因?yàn)椴l(fā)連接數(shù)過多數(shù)據(jù)庫服務(wù)本身用于調(diào)度的線程的開銷也會非常大了。所以如果應(yīng)用允許的話:讓一臺機(jī)器多跑幾個(gè)MYSQL服務(wù)分擔(dān)。將服務(wù)均衡的規(guī)劃到多個(gè)MYSQL服務(wù)端口上:比如app_1 ==>; 3301 app_2 ==>; 3302...app_9 ==>; 3309。一個(gè)1G內(nèi)存的機(jī)器跑上10個(gè)MYSQL是很正常的。讓10個(gè)MYSQLD承擔(dān)1000個(gè)并發(fā)連接效率要比讓2個(gè)MYSQLD承擔(dān)1000個(gè)效率高的多。當(dāng)然,這樣也會帶來一些應(yīng)用編程上的復(fù)雜度;
使用單獨(dú)的數(shù)據(jù)庫服務(wù)器(不要和前臺WEB服務(wù)搶內(nèi)存),MYSQL擁有更多的內(nèi)存就可能能有效的進(jìn)行結(jié)果集的緩存;
應(yīng)用盡量使用PCONNECT和polling機(jī)制,用于節(jié)省MYSQL服務(wù)建立連接的開銷;
表的橫向拆分:讓最常被訪問的10%的數(shù)據(jù)放在一個(gè)小表里,90%的歷史數(shù)據(jù)放在一個(gè)歸檔表里,數(shù)據(jù)中間通過定期“搬家”和定期刪除無效數(shù)據(jù)來節(jié)省。這樣對于應(yīng)用來說總是在10%數(shù)據(jù)中進(jìn)行選擇,比較有利于數(shù)據(jù)的緩存,不要指望MYSQL中對單表記錄數(shù)在10萬級以上還有比較高的效率。
表的縱向拆分(過渡范化):將所有的定長字段(char, int等)放在一個(gè)表里,所有的變長字段(varchar,text,blob等)放在另外一個(gè)表里,2個(gè)表之間通過主鍵關(guān)聯(lián),這樣,定長字段表可以得到很大的優(yōu)化(甚至可以使用HEAP表類型,數(shù)據(jù)完全在內(nèi)存中存取),這里也說明另外一個(gè)原則,對于我們來說,盡量使用定長字段可以通過空間的損失換取訪問效率的提高。MYSQL之所以支持多種表類型,實(shí)際上是針對不同應(yīng)用提供了不同的優(yōu)化方式;
仔細(xì)的檢查應(yīng)用的索引設(shè)計(jì),甚至在服務(wù)啟動中加入 --log-slow-queries[=file]用于跟蹤分析應(yīng)用瓶頸。
 

參考文檔:

MYSQL的命令行選項(xiàng)請參考:
http://www.mysql.com/doc/C/o/Command-line_options.html

<<返回

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2003-06-04 10:00 |只看該作者

MYSQL服務(wù)維護(hù)筆記

good!
巴豆 該用戶已被刪除
3 [報(bào)告]
發(fā)表于 2003-09-16 09:21 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2004-01-15 22:13 |只看該作者

MYSQL服務(wù)維護(hù)筆記

你的mysql規(guī)劃怎么和安裝Oracle的規(guī)劃很類似么,
呵呵,搞Oracle出身吧 ? ^_^

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-05-05 17:47 |只看該作者
為什么說“盡量使用MYSQL DUMP而不是直接備份數(shù)據(jù)文件”

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-05-09 00:18 |只看該作者
原帖由 bs 于 2007-5-5 17:47 發(fā)表
為什么說“盡量使用MYSQL DUMP而不是直接備份數(shù)據(jù)文件”


直接備份數(shù)據(jù)文件,備份時(shí),保證數(shù)據(jù)庫服務(wù)程序(mysqld)是關(guān)閉的,導(dǎo)入時(shí)要保證 mysql軟件完全一致(至少版本號完全一致,編譯參數(shù)一致,環(huán)境變量一致,配置一致)。

不想停機(jī)/暫停Mysql服務(wù)來在線備份數(shù)據(jù),那只有選擇 solid for mysql 數(shù)據(jù)庫引擎了。

[ 本帖最后由 likuku 于 2007-5-9 00:21 編輯 ]

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-12-22 10:21 |只看該作者
來遲了,用戶已經(jīng)被刪除

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-12-23 15:48 |只看該作者
來遲了,用戶已經(jīng)被刪除
lynnteng0 發(fā)表于 2010-12-22 10:21



   
好多都給刪除了

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-12-23 19:49 |只看該作者
我要

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-12-25 14:28 |只看該作者
雖然看不到貼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP