成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

建立MySQL數據庫日常維護規范

運維 數據庫運維 MySQL
本節演示了如何建立一個MySQL數據維護維護規范,并且給出了一個簡單的腳本例子,可能無法適應不同的主機的情況,讀者可以自己設計適合自己的腳本。

相關文章:

如何進行MySQL數據庫表的故障檢測

如何修復MySQL數據庫表

如何對MySQL數據庫表進行鎖定

如何對MySQL數據庫日志文件進行維護

建立一個數據庫表維護規范

在一個定期基礎而非等到問題出現才實施數據庫表的檢查是一個好主意。應該考慮到建立一個預防性維護的時間表,以協助自動問題,是你可以采取措施進行修正:

執行常規的數據庫備份并允許更新日志。

安排定期的常規表檢查。通過檢查表,將減少使用備份的機會。這個工作,在Windows下使用計劃任務,Unix使用cron作業(一般從運行服務器所示用的該帳號的crontab文件中調用),并且很容易實現。

例如,你作為mysql用戶運行服務器,則可以從mysql的crontab文件中建立定期檢查。如果你不知道如何使用cron,應使用下列命令查看相關的Unix手冊頁:

$man cron
$man crontab

作為服務器啟動前的系統引導期間檢查數據庫表。及其可能會因早期的崩潰而重新啟動。如果這樣的花,數據庫表可能已被毀壞,應該對它進行徹底檢查。

創建一個適用于定期維護的腳本

為了運行自動的表檢查,可以編寫一個腳本,將目錄改變為服務器數據目錄并對所有的數據庫表進行myisamchk和isamchk。如果你只有MyISAM表或者只有ISAM表,則只需要其中一個程序,可以將無關的那個程序從腳本中注釋掉。

該教本可以被cron調用,或者在系統啟動期間被調用。

為維護目的,你能使用myisamchk -s檢查桌子。-s,--silent選項使myisamchk和isamchk以沉默模式運行,只有當錯誤出現時,才僅僅打印消息。另外myisamchk支持--fast選項,該選項允許程序跳過自上次檢查以來沒有被修改過的人和表。

1. 一個簡單的腳本

例如,一個較為容易理解的簡單腳本,它在服務器目錄中檢查所有表(DATADIR應該修改成對應你系統的合適的值):

#!/bin/sh
cd DATADIR
myisamchk  --silent  --fast  */*.MYI
isamchk  --silent  */*.ISM

2. 一個較為復雜的腳本

實用此腳本的一個潛在的問題時:如果有許多表,通配符模式‘*/*.MYI’和‘*/*.ISM’可能會由于“too many arguments(參數過多)”或者命令行超過shell允許的長度而無法使用。腳本可以進一步修改為(同樣,DATADIR修改為適合你系統上的值):

#!/bin/sh
datadir=DATADIR
find $dtatdir –name “*. MYI” -print | xargs myisamchk  --silent  --fast
find $dtatdir –name “*. ISM” -print | xargs isamchk  --silent

當然你也可以在腳本中指定多個數據庫目錄。

3. 如何執行腳本

假定你將腳本存為check_tables,應該確保它是可執行的,當然建議你首先切換到專用戶mysql:

$su mysql
$vi check_tables(編輯腳本,你也可以使用你喜歡的編輯器)
$chmod +x check_tables

手工執行,檢測你的腳本是否有錯誤:

$check_tables

在理想情況下應該沒有輸出結果。如果系統不支持外部鎖定,游客蒽那個服務器將在你檢查表時改變它。此時,腳本可能會把實際沒有問題的表報告呈有問題的。如果系統能夠支持外部鎖定,則該問題就不會出現。

#p#

在unix中用cron定期檢查表

以下將說明如何建立腳本,使它通過cron并在系統啟動期間執行。在這小節的例子中,筆者假定把腳本安裝在/usr/local/mysql/bin中,你需要修改該過程來檢查每個服務器數據目錄中的表。你可以使用不同的check_tables拷貝來進行,或者通過修改它來接受一個命令行參數進行,該參數指定了想要檢查的數據目錄。

假定對mysql用戶從crontab文件中調用腳本check_tables。

1. 首先用該用戶的身份注冊

$su mysql

2. 生成一個臨時文件,捕獲已經調度的任務

$crontab –l>/tmp/entries

3. 在生成的文件最后一行添加內容

把這一行0 0 * * 0  /usr/local/mysql/bin/check_tables加到臨時文件的最后一行:

$echo  “0  0  *  *  0  /usr/local/mysql/bin/check_tables” >>/tmp/entries

它告訴cron在每個星期日的凌晨0時運行此選項。可以按要求改變時間或安排。有關這些選項的格式,參閱crontab的手冊頁。

4. 重新安排調度

$crontab /tmp/entries

如果檢查后有任何信息,cron作業通常生成一個郵件消息給用戶。由于使用--silent選項,只有表存在錯誤時,才會有輸出,也才會有郵件信息,因此不會產生大量無用郵件信息。(你現在應該明白,腳本采用--silent選項的原因)

對于這樣定期的維護,你的服務器最好支持外部鎖定,這樣在檢查表時,就不會發生訪問沖突的情況。如果無法做到這一點,你最好在沒有用戶使用服務器的時候維護,例如凌晨。

在系統啟動期間檢查表

如果你使用的是BSD風格的系統,例如OpenBSD,FreeBSD等,并且已經將服務器的啟動命令增加到/etc/rc.local,要在啟動期間檢查表,可以在啟動服務器前從相應的文件中調用check_tables。

如果對于使用Sytem V風格的啟動方法的系統,例如,大多數的商業Unix系統,其啟動方法是從/etc/rc.d目錄之一調用mysql.server腳本,則在數據庫啟動前檢查表的過程比較復雜,因為這些目錄中的腳本必須理解start和stop參數。

例如,象這樣編寫腳本,取名mysql.check當參數時start時調用check_tables,當參數是stop時什么也不做:

#!/bin/sh
#See hou we sere called
case  “$1”  in
  start)
    echo –n “Checking MySQL tables:”
    if  [ -x /usr/local/mysql/bin/check_tables ] ; then
      /usr/local/mysql/bin/ check_tables
    fi
    ;;
  stop)
    #don’t do anything
    ;;
  *)
    echo “Usage:$o{start|stop}”
    exit 1
  esac
  exit 0

現在你可以安裝mysql.check了,該過程類似乎在第二章介紹的讓服務器自動啟動的安裝mysql.server的過程。必須給mysql.check一個運行級目錄中較低的前綴號,才能使它在mysql.server前運行。例如,如果在運行級目錄中以S99mysql.server連接到mysql.server,則應該以S98mysql.check鏈接到mysql.check。

由于Linux集中了BSD和Sytem V系統的優點,所以,上面兩種方法完全適用于Linux。為了簡便起見,一般使用第一個方法。

【編輯推薦】

  1. 如何進行MySQL數據庫表的故障檢測
  2. 如何對MySQL數據庫表進行鎖定
  3. 如何修復MySQL數據庫表
  4. 如何對MySQL數據庫日志文件進行維護
  5. 如何在.NET中使用MySQL數據庫
責任編輯:楊鵬飛 來源: 51CTO整理
相關推薦

2011-05-25 09:20:24

Oracle數據庫

2011-06-14 15:11:59

ORACLE

2009-01-07 09:46:18

InformixOnline數據庫

2011-05-12 13:15:36

數據庫日常維護

2009-12-21 16:07:52

ADO.NET數據庫

2019-11-07 14:46:09

數據庫MySQL命令

2011-03-24 16:38:00

Exchange數據庫維護

2010-05-11 18:57:53

MYSQL數據庫命名

2011-03-03 10:00:14

ProFTPD建立MySQL

2009-02-02 17:21:58

日志文件維護MySQL日志文件

2010-05-12 15:26:05

MySQL數據庫日志

2011-05-26 15:53:59

數據庫更新維護

2010-11-29 11:51:59

Sybase數據庫維護

2010-06-12 17:48:45

MySQL數據庫表

2011-03-21 13:53:45

數據庫開發書寫規范

2011-04-07 10:50:47

數據庫編程注釋規范

2009-06-18 16:29:00

牛新莊數據庫

2022-12-23 07:48:23

多數據庫Citus集群

2010-06-10 14:49:56

MySQL鏡像數據庫

2011-08-01 16:31:29

MySQL數據庫外鍵
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 羞羞涩涩在线观看 | 国产视频一视频二 | av在线免费观看网址 | 999久久久久久久久6666 | 国产免费一区二区 | 黄网站免费观看 | 精品九九| 国产精品免费看 | h视频免费在线观看 | 精品久久久av | 大陆一级毛片免费视频观看 | 一区在线视频 | 国产中文字幕av | 999久久久精品 | 一区二区三区四区不卡视频 | 人妖一区| 91精品在线播放 | 99精品欧美一区二区三区综合在线 | 国产 日韩 欧美 中文 在线播放 | 亚洲免费精品 | 91av国产在线视频 | 紧缚调教一区二区三区视频 | 九九久久国产 | 米奇7777狠狠狠狠视频 | 在线观看国产视频 | 国产色片 | 在线中文字幕亚洲 | 国产极品91| 国产精品九九九 | 精品一区二区三区不卡 | 亚洲精品永久免费 | 香蕉视频在线播放 | 青青草av| 亚洲国产精品美女 | 欧美一区二区三区久久精品 | 亚洲人成人一区二区在线观看 | 国产精品观看 | 欧美久久一区 | 一区二区三区四区在线视频 | 91久色 | 日日日日日日bbbbb视频 |