本文目錄一覽:
- 1、MySQL數據庫服務器逐漸變慢分析與解決方法分享
- 2、mysql數據庫和oracle數據庫的區別
- 3、怎麼把mysql一個數據庫從一台機器上 拷貝到另外一台
- 4、mysql如何共享數據庫
- 5、多個網站共用一個MySQL數據庫有影響嗎
- 6、在linux中導入sql文件的方法分享(使用命令行轉移mysql數據庫)
MySQL數據庫服務器逐漸變慢分析與解決方法分享
一、檢查系統的狀態
通過操作系統的一些工具檢查系統的狀態,比如CPU、內存、交換、磁盤的利用率,根據經驗或與系統正常時的狀態相比對,有時系統表面上看起來看空閑,這也可能不是一個正常的狀態,因為cpu可能正等待IO的完成。除此之外,還應觀注那些佔用系統資源(cpu、內存)的進程。
1.使用sar來檢查操作系統是否存在IO問題
#sar-u210—
即每隔2秒檢察一次,共執行20次。
結果示例:
註:在redhat下,%system就是所謂的%wio。
Linux2.4.21-20.ELsmp
(YY075)05/19/2005
10:36:07AMCPU%user%nice%system%idle
10:36:09AMall0.000.000.1399.87
10:36:11AMall0.000.000.00100.00
10:36:13AMall0.250.000.2599.49
10:36:15AMall0.130.000.1399.75
10:36:17AMall0.000.000.00100.00
其中:
%usr指的是用戶進程使用的cpu資源的百分比;
%sys指的是系統資源使用cpu資源的百分比;
%wio指的是等待io完成的百分比,這是值得觀注的一項;
%idle即空閑的百分比。
如果wio列的值很大,如在35%以上,說明系統的IO存在瓶頸,CPU花費了很大的時間去等待I/O的完成。Idle很小說明系統CPU很忙。像以上的示例,可以看到wio平均值為11,說明I/O沒什麼特別的問題,而idle值為零,說明cpu已經滿負荷運行了。
2.使用vmstat監控內存
cpu資源
[root@mysql1
~]#
vmstat
procs
———–memory———-—swap–
—–io—-–system–
—–cpu——
r
b
swpd
free
buff
cache
si
so
bi
bo
in
cs
us
sy
id
wa
st
72
25428
54712672264
14
43
53
59
1
198
vmstat
的輸出那些信息值得關注?
io
bo:
磁盤寫的數據量稍大,如果是大文件的寫,10M以內基本不用擔心,如果是小文件寫2M以內基本正常
①
CPU問題
下面幾列需要被察看,以確定cpu是否有問題
Processesinthe
run
queue
(procs
r)
Usertime
(cpu
us)
System
time
(cpu
sy)
Idle
time
(cpu
id)
問題情況:
如果processes
in
run
queue
(procs
r)的數量遠大於系統中cpu的數量,將會使系統便慢。
如果這個數量是cpu的4倍的話,說明系統正面臨cpu能力短缺,這將使系統運行速度大幅度降低
如果cpu的idle時間經常為0的話,或者系統佔用時間(cpu
sy)是用戶佔用時間(cpu
us)兩輩的話,系統面臨缺少cpu資源
解決方案
:
解決這些情況,涉及到調整應用程序,使其能更有效的使用cpu,同時增加cpu的能力或數量
②內存問題
主要查看頁導入的數值(swap中的si),如果該值比較大就要考慮內存,大概方法如下:
最簡單的,加大RAM
減少RAM的需求
3.磁盤IO問題
處理方式:做raid10提高性能
4.網絡問題
telnet一下MySQL對外開放的端口,如果不通的話,看看防火牆是否正確設置了。另外,看看MySQL是不是開啟了skip-networking的選項,如果開啟請關閉。
mysql數據庫和oracle數據庫的區別
1、體積不同。
Oracle它體積比較龐大,一般是用來開發大型應用(例如分布式)的。而MySQL的體積相對來說比較小,較之Oracle更容易安裝、維護以及管理,操作也簡單,最重要的是它是三個中唯一一個開源數據庫,但目前也屬於Oracle公司的產品了。
2、容量不同。
Oracle容量無限,根據配置決定;而MySQL使用MyISAM存儲引擎,最大表尺寸為65536TB。 MySQL數據庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由MySQL內部限制決定。
3、平台支持及速度的區別。
Oracle支持大多數平台;而MySQL支持各種平台,適合Linux。至於速度,Oracle在Linux下的性能,在少量數據時速度低於MySQL,在千萬級時速度快於MySQL。
4、數據庫崩潰造成的影響不同。
Oracle數據庫崩潰後恢復很麻煩,因為他把很多東西放在內存里;數據庫連接要慢些,最好用連接池;而MySQL使用缺省的IP端口,但是有時候這些IP也會被一些黑客闖入,使用MyISAM配置,不慎損壞數據庫,結果可能會導致所有的數據丟失。
5、性能的區別。
Oracle全面,完整,穩定,但一般數據量大,對硬件要求較高 ;而MySQL使用CPU和內存極少,性能很高,但擴展性較差。
6、授權價格區別。
Oracle價格較貴,例如Oracle 10G/11G 標準版 [10用戶]¥25600 ,Oracle 10G/11G 標準版 [1CPU無限用戶] ¥157600。而MySQL採用雙重授權,他們是GPL和MySQLAB制定的商業許可協議。如果你在一個遵循GPL的自由項目中使用 MySQL,那麼你可以遵循GPL協議免費使用MySQL。否則,你需要購買MySQLAB制定的那個商業許可協議。
怎麼把mysql一個數據庫從一台機器上 拷貝到另外一台
1、在B機器上裝mysql。
將A機器上的mysql/data下的你的數據庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢複數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT … INTO OUTFILE ’file_name’
mysql如何共享數據庫
你想如何共享你的mysql數據庫,如果在局域網,可以直接訪問mysql的,在命令提示符中輸入mysql
-h
(你的ip地址如)192.168.1.102
-u
root(用戶名)
-p123(登錄密碼)這種方式直接訪問數據庫(注意-p和你的密碼必須連在一起),至於你說的sql
2005
訪問,那必須兩台機器都安裝sql
2005,mysql中不需要。
多個網站共用一個MySQL數據庫有影響嗎
二個以上的網站共同使用一個MYSQL數據庫,這種方式可以是的,在建站實踐中可以執行,而且很多站長也是採用這種方式建過站。我們只需要保障每個網站的“MYSQL數據庫前綴名稱”不一樣就可以了。
多網站共享一個mysql數據庫,不會影響網站正常運行。非要說個影響的理由,個人認為就是數據庫表查詢的速度和安全有所下降,但是在我們的訪問使用,這個這種速度的差異,無法感覺到的。
多網站共享一個mysql數據庫,站長們最關心的應該就是mysql管理備份的問題。多網站共享一個數據庫後,極大方便了我們對數據庫備份操作,只需要備份一個數據庫即可,不用頻繁登錄切換。
在linux中導入sql文件的方法分享(使用命令行轉移mysql數據庫)
因導出sql文件
在你原來的網站服務商處利用phpmyadmin導出數據庫為sql文件,這個步驟大家都會,不贅述。
上傳sql文件
前面說過了,我們沒有在雲主機上安裝ftp,怎麼上傳呢?
打開ftp客戶端軟件,例如filezilla,使用服務器IP和root及密碼,連接時一定要使用SFTP方式連接,這樣才能連接到linux。注意,這種方法是不安全的,但我們這裡沒有ftp,如果要上傳本地文件到服務器,沒有更好更快的方法。
我們把database.sql上傳到/tmp目錄。
連接到linux,登錄mysql
使用putty連接到雲主機。putty的使用方法這裡就不介紹了。
連接之後,登錄mysql
複製代碼
代碼如下:
mysql
-u
root
-p
password:
注意,如果你之前建立了其他的mysql用戶,可以選擇合適的用戶登錄。關於mysql的命令行,你可以在其他地方學習。
把上傳上去的sql導入到數據庫中
按照下面的三個步驟,快速導入這個sql文件
複製代碼
代碼如下:
mysqluse
yourdatabasename;
mysqlset
names
utf8;
mysqlsource
/tmp/database.sql;
然後屏幕上就會不斷的滾,最後提示導入成功。
最後,記得將database.sql刪除。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/236058.html