第 11 章 伺服器與資料庫管理
DESCRIPTION
第 11 章 伺服器與資料庫管理. 本章宗旨. 介紹 MySQL 之權限功能、工作原理與權限類型 介紹權限之授權與撤除指令及應用方式 簡介伺服器工作環境參數與管理 簡介日誌檔產生方式與用途 簡介伺服器管理指令 簡介災難預防與復原之意義與處理指令 Administrator 伺服器管理應用軟體使用說明. 大 綱. 11-1 帳號與存取權限管理 11-2 伺服器系統環境管理 11-3 日誌檔管理 11-4 mysqladmin -伺服器管理命令 11-5 災難預防與復原 11-6 設定維護排程計劃 - PowerPoint PPT PresentationTRANSCRIPT
- CH11主從式資料庫系統 1
第 11 章 伺服器與資料庫管理
- CH11主從式資料庫系統 2
本章宗旨 介紹 MySQL 之權限功能、工作原理與權限類型 介紹權限之授權與撤除指令及應用方式 簡介伺服器工作環境參數與管理 簡介日誌檔產生方式與用途 簡介伺服器管理指令 簡介災難預防與復原之意義與處理指令 Administrator 伺服器管理應用軟體使用說明
- CH11主從式資料庫系統 3
大 綱11-1 帳號與存取權限管理 11-2 伺服器系統環境管理 11-3 日誌檔管理 11-4 mysqladmin -伺服器管理命令 11-5 災難預防與復原 11-6 設定維護排程計劃 11-7 Administrator 應用簡介
- CH11主從式資料庫系統 4
11-1 帳號與存取權限管理11-1-1 權限的功能 11-1-2 權限工作原理 11-1-3 權限類型 11-1-4 使用者授權與權限撤除 11-1-5 密碼設定與變更 11-1-6 啟用權限 11-1-7 伺服器連線 11-1-8 主機及其他設定值 11-1-9 權限驗證
- CH11主從式資料庫系統 5
11-1-1 權限的功能 權限的主要功能
認證使用者是否有權登入伺服器 執行諸如 Select 、 Insert 、 Update 、 Delete等資料處理作業時,認證是否有權開啟資料表和處理資料 進階的權限管理功能,在於驗證相關人員是否可以將權限授與他人使用
- CH11主從式資料庫系統 6
11-1-2 權限工作原理 MySQL 將存取權限控制分為兩個階段
階段一:伺服器先查核使用者是否被允許連線。 階段二:假如有連線權利,而且也成功的連線,使用者每發出每一道 SQL 指令時, MySQL 將檢查是否有足夠權限去處理該項作業
- CH11主從式資料庫系統 7
11-1-2 權限工作原理 ( 續 )
連線後假如權限有被變更過(不管是自己變更,或是他人變更),變更的權限並不會立即發生作用 除非已執行【 Flush Privileges; 】指令, MyS
QL 才會重新讀取權限資料並置於記憶體
- CH11主從式資料庫系統 8
11-1-2 權限工作原理 ( 續 )
MySQL 將所有授權資訊儲存在 ” mysql” 資料庫內的資料表 其中 tables_priv 和 columns_priv 兩個資料表用來存放資料處理權限資料,這些資料表用於階段二之查核 User, Db 及 Host 三個資料表用來存放連線權限資料,這些資料表用於階段一和二之查核
- CH11主從式資料庫系統 9
11-1-2 權限工作原理 ( 續 )
權限資料表用法 登錄在” user” 資料表之使用者,在指定的” host
” 登入時,這個使用者將可以處理位於伺服器上的資料庫(若所有權限都設為’ Y’ ),此權限形同 ” Supervisor” 權限 登錄在 ” Db” 資料表之使用者,在指定的” host”登入時,這個使用者將可以處理指定的資料庫,包含此資料庫內的全部資料表
- CH11主從式資料庫系統 10
11-1-2 權限工作原理 ( 續 ) 若需要從不同的主機連線來處理指定的資料庫時,可以使用” host” 資料表設定主機與資料庫。假如以這個方式工作,請將” Db” 資料表之” host” 欄位保留空白 “tables_priv” 與” columns_pri” 權限設定意義與”
Db” 類似,不過它們可以指定更詳細的權限。假如使用者有權處理特定資料表,此意味他也有權處理該資料表之全部欄位
- CH11主從式資料庫系統 11
11-1-3 權限類型 權限使用時機
Select, Insert, Update 和 Delete 可用於處理指定資料庫內現存資料表的紀錄操作 Create 使用於建立新的資料庫或資料表, Dro
p 則用於刪除現存的資料庫或資料表 Index 使用於建立和刪除索引表,擁有 Create資料表權限的人,同時擁有 Index 權限
- CH11主從式資料庫系統 12
11-1-3 權限類型 ( 續 )
權限使用時機 Alter 使用於改變資料表結構或重新命名 Grant 可用於將自己擁有的權限授與他人 File 用於以” Load Data Infile” 和” Sele
ct” 指令在伺服器上讀寫檔案
- CH11主從式資料庫系統 13
11-1-3 權限類型 ( 續 )
Reload 權限又分成: flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload
reload 用於通知伺服器重新載入權限資料表到記憶體 flush-privileges 與 reload 類似 refresh 用來關閉和重開日誌檔,以及沖回所有資料表 Fulsh-XXX 功能與 refresh 類似,可以附帶案例
- CH11主從式資料庫系統 14
11-1-3 權限類型 ( 續 )
shutdown 用於關閉伺服器,無對應的 SQL 指令可用 processlist 用於顯示目前正在伺服器上工作的執行緒,使用者隨時都可以顯示自己啟動的執行緒並刪除它,但是只有擁有 Process 權限的人才能查看由他人啟動的執行緒,而擁有 Supe
r 權限的人才能使用 Kill 來刪除由他人啟動的執行緒 Create Temporary Table 權限使用於以關鍵字” TEMPORARY” 來建立暫存表
- CH11主從式資料庫系統 15
11-1-3 權限類型 ( 續 )
Lock Tables 用來鎖住資料表,擁有 Select 權限的人,才能執行 Locak Tables 。資料表被鎖定後,其他人無法讀取資料表 Replication Client 用於執行” Show Master Stat
us” 和” Show Slave Status” 指令 Replication Slave 用於授權給備用伺服器之使用者,而這些人必須已連線至主伺服器,若未經授權,備用伺服器將無法要求更新主伺服器之資料
- CH11主從式資料庫系統 16
11-1-3 權限類型 ( 續 )
Show Databases 用於檢視指名的資料庫之全部資訊 若無此權限,執行此指令只能看到那些有被授權之資料表相關資訊 假如啟動伺服器時,若有搭配 ” --skip-show-dat
abase” 參數,縱使有此授權,也無法檢視資料庫相關資訊
- CH11主從式資料庫系統 17
1. 完整授權1.1 授權給使用者” monty” ,以驗證密碼” Happy” 從 loca
l host 登入,並享有 Grant 權限(形同 monty具有 supervisor 之權限) 指令: GRANT ALL PRIVILEGES ON *.* TO 'monty'@'loc
alhost'IDENTIFIED BY ' Happy ' WITH GRANT OPTION;1.2 避免匿名者權限會蓋掉monty 在 Local host 之權限,應增加一組權限,如下:
指令: GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'IDENTIFIED BY ' Happy ' WITH GRANT OPTION;
- CH11主從式資料庫系統 18
1. 完整授權 ( 續 )
1.3 授權給使用者: admin , 無驗證密碼,可從 local host 登入,享有 Reload 和 Process 管理者之權限,可使用 mysqladmin 主控端指令來執行 reload, refresh, 和 flush-XXX 工作,但是他無權處理任何資料
指令: GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
- CH11主從式資料庫系統 19
1. 完整授權 ( 續 )
1.4 替使用者 ” dummy” 預設一個從 Local host 登入之帳戶,但不給他任何權限(使用 Usage 參數之效果),權限則可留待以後再以部份授權方式加入 指令: GRANT USAGE ON *.* TO 'dummy'@'localhost';
- CH11主從式資料庫系統 20
2. 部份授權2.1 設立帳戶並授與部分權限範例(例如只允許處理 bankac
count 資料庫) 指令: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON bankaccount.* TO 'custom'@'localhost' IDENTIFIED BY 'obscure';
2.2 使用 Insert 設立帳戶並授與部分權限範例,反之可使用Delete 撤除授權 範例一: INSERT INTO user (Host,User,Password)VALUES('localhost','custom',PASSWORD('obscure'));
- CH11主從式資料庫系統 21
2. 部份授權 ( 續 )
範例二: INSERT INTO user (Host,User,Password)VALUES('whitehouse.gov','custom',PASSWORD('obscure'));範例三: INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)VALUES('localhost','bankaccount','custom', 'Y','Y','Y','Y','Y','Y');
- CH11主從式資料庫系統 22
2. 部份授權 ( 續 )
範例四: INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)VALUES('whitehouse.gov','expenses','custom', 'Y','Y','Y','Y','Y','Y');
啟用權限指令: FLUSH PRIVILEGES;
- CH11主從式資料庫系統 23
3. 撤除權限 3.1 撤除帳號
指令一: Drop User ‘ 帳號 1’, ‘ 帳號 2’ …; 指令二: REVOKE priv_type [(column_list)] [, pri
v_type [(column_list)]] ... ON {tbl_name | * | *.* | db_name.*} FROM 帳號 1 [, 帳號 2] ...
指令三: REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
指令四: DELETE FROM mysql.userWHERE User=’' 帳號’ and Host='host_name';
- CH11主從式資料庫系統 24
11-1-5 密碼設定與變更1. 事前設立暗碼型密碼
將 Grant….IDENTIFIED BY '’ 密碼’ ; 改為下列型式即可 Grant….IDENTIFIED BY Password('’ 密碼’ ); 使用 Insert 指令設立帳戶時,仍須使用 Passw
ord('’ 密碼’ ) 指令型式,將密碼轉成暗碼
- CH11主從式資料庫系統 25
11-1-5 密碼設定與變更 ( 續 )
2. 事後設立暗碼型密碼 Set Password For ‘Jeffrey@%’ = Password(‘密碼’ ); 說明:替使用者” Jeffrey” 設立或變更密碼(只限 root 使用者) Set Password = Password(‘ 密碼’ ); 說明:替使用者” Jeffrey” 設立或變更密碼(只限 Jeffrey本人)
- CH11主從式資料庫系統 26
11-1-5 密碼設定與變更 ( 續 )
3. 變更密碼指令: UPDATE user SET Password = PASSWORD
(' 密碼 ')WHERE Host = '%' AND User = 'Jeffrey';
- CH11主從式資料庫系統 27
11-1-6 啟用權限 MySQL 啟用全部或部份權限方式
起動 mysqld 時,所有權限資料表將被載入記憶體,所有權限將自動生效當伺服器重新載入權限資料表時,下列連線中主控端之權限將受到影響:
主控端在下一次執行資料表或欄位資料時,資料表或欄位權限才生效 主控端在下一次執行 Use Database 時,資料庫權限才生效 主控端在下一次連線時,完整權限和新的密碼才生效
- CH11主從式資料庫系統 28
11-1-6 啟用權限 ( 續 )
執行 Grant, Revoke, 或 Set Password 指令後,伺服器將立即重新載入相關的權限資料表 執行 Insert, Update, 或 Delete 指令,必須搭配” Flush Privileges;” 指令,通知伺服器重新載入相關的權限資料表,新的權限才生效
- CH11主從式資料庫系統 29
11-1-7 伺服器連線 主控端與伺服端之連線指令
mysql –h Host – u User –pPassword 其中 ” -h” 代表指定連線主機參數 Host代表主機名稱,可用數字碼,或是網域名稱 ”-u” 代表使用者帳號參數 User 為使用者帳號 ”-p” 表示密碼參數 Password 為使用者自己設定之密碼,” -p” 和密碼間不能有空格 若主控端與伺服端位於同一台電腦,則 – h Host 部分可以省略
- CH11主從式資料庫系統 30
11-1-8 主機及其他設定值user 資料表上之 host 欄位,其輸入資料可使用下列型式
使用主機名稱、 IP代碼,或是 localhost 使用主機名稱型式時,可搭配” %”萬用字元,例如單一字元” %” 表示所有主機,” %.mysq
l.com” 表示符合” mysql.com”網域的所有主機 使用 IP 型式時,也可以搭配” %”萬用字元,例如” 144.155.166.%”
- CH11主從式資料庫系統 31
11-1-8 主機及其他設定值 ( 續 )
使用 IP 型式時,可搭配遮罩格式 例如 ” 192.58.197.0 /255.255.255.0” ,此意味從主機” 192.58.197.0” 到” 192.58.197.255” ,都被視為合法主機 db 資料表之 host 欄位若為空白時,將以 host 資料表中對應之 host 與 db 紀錄作為權限依據。若 db 欄位保留空白,將被視為” %” 型式
- CH11主從式資料庫系統 32
11-1-8 主機及其他設定值 ( 續 )
其他權限資料表之 host 欄若保留空白,將被視為” %” 型式 user 權限資料表之 user 欄若保留空白,將被視為匿名帳號 tables_priv 和 columns_priv 之 db, table_nam
e, column_name 三個欄位不得使用” %”字元,也不能保留空白
- CH11主從式資料庫系統 33
11-1-9 權限驗證階段一之權限驗證過程如下
讀取 user 資料表紀錄依據 host 及 user 將紀錄排序比對主機,若有相符之主機資料,取出帳號及密碼與登入資料比對,資料皆符合時,即通過驗證
- CH11主從式資料庫系統 34
11-2 伺服器系統環境管理11-2-1 系統環境參數設定系統參數值設定方式分成下列三種型式,型式一用於命令列,型式二用於參數檔,型式三用於應用程式。
型式一: -- 參數名稱 = 參數值,或 -- 參數名稱 型式二: 參數名稱 = 參數值,或 參數名稱 型式三: SET GLOBAL 參數名稱 = 參數值;
- CH11主從式資料庫系統 35
11-2-1 系統環境參數設定下列參數格式具有相同效果
關閉效果 --disable-column-names --skip-column-names --column-names=0
開啟效果 --column-names --enable-column-names --column-names=1
- CH11主從式資料庫系統 36
11-2-2 系統環境參數型式各種常用系統環境參數請參見書本說明
- CH11主從式資料庫系統 37
11-3 日誌檔管理11-3-1 產生日誌檔 11-3-2 日誌檔內容
- CH11主從式資料庫系統 38
11-3-1 產生日誌檔 啟動 mysqld 伺服器時,可搭配系統環境參數將執行過程之信息記錄在日誌檔 日誌檔可用下列指令強制關閉及重新開起新檔
SQL 指令: Flush Logs; 命令列指令: mysqladmin flush-logs, 或 mysq
ladmin refresh
- CH11主從式資料庫系統 39
日誌檔類型檔案類型 預設檔名 儲存內容錯誤日誌 主機名 .err 記錄伺服器啟動、運作及停止時遭遇的問題isam日誌 自定檔名 用於 ISAM和MyISAM資料表除錯階段之所有改變資料查詢日誌 主機名 .log 記錄主控端連線及執行 SQL之相關信息,可用於追蹤問題發生原因異動資料 主機名 -bin.log 記錄所有會改變資料之 SQL指令,這些信息也可用於備用伺服器之資料更新慢速查詢 主機名 -slow.log 記錄所有查詢耗費時間大於 lon_query_time之指令,或是未使用索引表之指令
- CH11主從式資料庫系統 40
11-3-2 日誌檔內容1. 錯誤日誌檔
錯誤日誌檔內容包含伺服器啟動與停止時間,以及運作期間發生的錯誤資料2. 查詢日誌檔
查詢日誌檔用於記錄主控端連線及執行 SQL 之相關信息,可用於追蹤問題發生原因 3. 異動資料日誌檔
異動資料日誌檔記錄所有會改變資料之 SQL 指令,同時記錄更新資料耗費的時間 4. 慢速查詢日誌檔
所有查詢指令處理時間超過狀態變數 ” long_query_time” 設定值者,將被記錄在慢速查詢日誌檔
- CH11主從式資料庫系統 41
異動資料日誌檔異動資料日誌檔之主要用途,在於資料更新後若需復原資料,可直接從日誌檔取得復原資料之相關訊息,這些信息也可用於備用伺服器之資料更新 毎次啟動伺服器或執行 Flush Logs 時,系統即自動產生一個新的日誌檔,檔名均相同,但是延伸名會以流水號遞增 假如日誌檔太大時(大於預設值 max_binlog_size ),系統即自動產生新的日誌檔
- CH11主從式資料庫系統 42
異動資料日誌檔 ( 續 )
執行大型交易型資料的話,日誌資料則不會被分割在兩個日誌檔異動資料日誌檔可搭配” --log-bin-index” 參數,系統將自動產生一個索引檔,用來記錄相關日誌檔之關係。當伺服器在運作時,不要去編輯索引檔,以免伺服器造成混淆
- CH11主從式資料庫系統 43
異動資料日誌檔 ( 續 )
可使用【 Reset Master 】指令來刪除所有異動資料日誌檔,或使用【 PURGE MASTER LOGS 】來刪除部份異動資料日誌檔
指令:PURGE MASTER LOGS TO 'mysql-bin.010';PURGE MASTER LOGS BEFORE '2003-04-02
22:46:26';
- CH11主從式資料庫系統 44
異動資料日誌檔 ( 續 )
刪除部份異動資料日誌檔程序 SHOW SLAVE STATUS 指令查看那個日誌檔正被讀取中 SHOW MASTER LOGS 指令查看主伺服器有那些日誌檔 選出最近的日誌檔,該檔將是系統還要使用的目標檔備份將要刪除的日誌檔 執行刪除日誌檔
- CH11主從式資料庫系統 45
異動資料日誌檔 ( 續 )
刪除日誌檔時,請先確認無備份伺服器還要使用這些日誌檔理想的刪除規則為,每天執行一次【 mysqlad
min flush-logs 】,然後將三天以上的日誌檔以【 Purge Master Logs 】指令刪除Purge 指令可同時整理索引檔。
- CH11主從式資料庫系統 46
異動資料日誌檔 ( 續 )
記錄資料更新指令時,可針對特定資料庫做選別,選別參數有兩種型式--binlog-do-db = DB_Name :若更新指令之處理對象資料庫非現用資料庫時,該指令不被記錄--binlog-ignore-db = DB_Name :若更新指令之處理對象資料庫非現用資料庫時,該指令將被記錄
- CH11主從式資料庫系統 47
異動資料日誌檔 ( 續 )
使用下述指令檢視日誌檔內容:。近端伺服器: mysqlbinlog 日誌檔名遠端伺服器: mysqlbinlog 日誌檔名 – R -h 伺服器所在主機名稱
或使用下述指令更新特定的伺服器:mysqlbinlog 日誌檔名 | mysql -h 伺服器名
- CH11主從式資料庫系統 48
11-4 mysqladmin伺服器管理命令11-4-1 用途與語法
mysqladmin 是一個主控端應用程式,用來執行伺服器之管理作業,諸如伺服器之環境設定和提示現狀信息,增刪資料庫,以及其他作業
- CH11主從式資料庫系統 49
11-4-1 用途與語法mysqladmin 語法:
c:\mysql\bin> mysqladmin [options] command [command-option] command ...
其中 [options] 為選項參數 command 為操作資料庫指令 [command-option] 為指令選項參數指令型式及參數選項請參看書本說明
- CH11主從式資料庫系統 50
11-5 災難預防與復原 備份資料庫可預防因突發事故造成資料無法復原之損失適時的維護資料表,則有助於提升系統效率
- CH11主從式資料庫系統 51
11-5 災難預防與復原 ( 續 )
11-5-1 資料庫備份備份資料庫之方式,可分成完整、漸增或局部資料表三種情形完整備份時,必須確認資料庫已無任何執行緒使用它資料表備份時,須確認所有異動資料含索引已被完整寫回磁碟
- CH11主從式資料庫系統 52
1. 前置處理為了使備份資料能維持一致性,備份前應先執行下列指令,將相關資料表之索引資料寫回磁碟
Lock Tables 資料表 1 Read, 資料表 2 Read …;Flush Tables With Read Lock;Unlock Tables;
- CH11主從式資料庫系統 53
1. 前置處理 ( 續 )
下列指令可用來檢視 MyISAM 資料表之狀態信息myisamchk –d 資料表名:提示資料表一般資訊myisamchk –d -v 資料表名:提示資料表一般資訊及檔案配置資訊myisamchk –eis 資料表名:提示資料表重要資訊,須檢視整個資料表,所以較費時。myisamchk –eiv 資料表名:與 -eis 類似,但索引結構資訊更詳盡
- CH11主從式資料庫系統 54
2. 完整備份執行完整備份時,請先停止伺服器,然後重新啟動並搭配 ” log-bin” 參數,重新設定備份日誌起始點完整備份指令
以主控端應用程式 mysqldump (在命令列下執行)執行完整備份工作備份結果為一專案檔型式
- CH11主從式資料庫系統 55
3. 完整備份範例範例 1 : c:\mysql\bin> mysqldump --opt db_na
me -r backup-file.sql 說明:將資料庫 db_name 以 mysqldump(搭配
opt 參數 )完整下載,並儲存在專案檔 backup-file.sql 。此專案檔可用下列指令,將將資料庫 db_name 以 mysql 命令列指令,建立在其他主機上
建檔指令: c:\mysql\bin> mysql db_name < backup-file.sql
- CH11主從式資料庫系統 56
3. 完整備份範例 ( 續 )
範例 2 :直接從特定伺服器資料下載至另一伺服器上 指令: c:\mysql\bin> mysqldump --opt db_na
me | mysql --host=遠端主機 -C db_name範例 3 :一次將數個資料庫下載至專案檔
指令: c:\mysql\bin> mysqldump --databases 資料庫 1 [ 資料庫 2 ...] -r my_databases.sql
- CH11主從式資料庫系統 57
3. 完整備份範例 ( 續 )
範例 4 :一次將所有資料庫下載至專案檔。 指令: c:\mysql\bin> mysqldump --all-databas
es -r all_databases.sql範例 5 :若儲存引擎為 InnoDB 時,改用下列指令:
指令: c:\mysql\bin> mysqldump --all-databases --single-transaction -r all_databases.sql
- CH11主從式資料庫系統 58
4. 漸增式備份採用漸增式備份時,伺服器須在— log-bin模式下執行,以便取得相關的備份線索資訊(前次完整備份或漸增備份之完成位置)執行備份工作前,先執行 Flush Logs 指令,轉回適當之日誌檔拷貝所須的日誌檔
前次為完整備份時,拷貝全部 若為漸增式,可能只需一個最近的日誌檔
- CH11主從式資料庫系統 59
5. 局部備份局部備份乃針對個別資料表加以備份使用下列指令來局部備份
指令 1 : BACKUP TABLE tbl_name [, tbl_name] ... TO ‘/path/to/backup/directory’;
說明:此指令可同時拷貝數個資料表至指定目錄,指名資料表所屬之 `.frm‘ 及 `.MYD’ 檔案將被複製,`.MYI‘ 可利用前面兩個檔案來重新索引後取得
指令 2 : SELECT * INTO OUTFILE 'file_name' FROM tbl_name;
- CH11主從式資料庫系統 60
11-5-2 復原資料1. 重建資料庫
指令: c:\mysql\bin> mysql db_name < backup-file.sql
說明: backup-file.sql 是以 mysqldump 命令產生之專案檔
- CH11主從式資料庫系統 61
11-5-2 復原資料 ( 續 )
2. 復原資料表 指令 1 : RESTORE TABLE tbl_name [, tbl_n
ame] ... FROM ‘/path/to/backup/directory’; 說明:將以 Backup 指令備份的資料表復原,只能用於資料表不存在的情況,若資料表已存在時,將產生錯誤
指令 2 : LOAD DATA INFILE FILE_name REPLACE…;
說明:將以 SELECT INTO 指令備份的資料,重新載入對應的資料表。若資料表有 Primary 或 Unique 型索引表,舊鍵值紀錄將被新紀錄取代
- CH11主從式資料庫系統 62
11-5-2 復原資料 ( 續 )
復原資料時,請先以 Repair Table 資料表或mysqlaheck –r 資料表指令檢查資料表, 99.9﹪的 MyISAM 資料表問題都可以克服
無法解決問題時,請改用下列方式處理: 重新載入前次以 mysqldump下載之備份資料。 執行下列指令來更新資料
c:\mysql\bin>mysqlbinlog 對應日誌檔名 | mysql
- CH11主從式資料庫系統 63
11-5-3 資料表維護與損壞復原1. 分析資料表指令 (ANALYZE TABLE )
語法: ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
說明:可用於分析資料表及重建索引表,事前須先以讀取鎖定方式鎖表。適用於所有型態資料表
- CH11主從式資料庫系統 64
2. 檢查資料表指令 (CHECK TABLE)
語法: CHECK TABLE tbl_name [, tbl_name] ... [option] ...
說明:可用於檢查資料表及或提示錯誤資訊,適用於所有 MyISAM 和 InnoDB 型態資料表 其中 option 有下列選項
{QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
- CH11主從式資料庫系統 65
檢查資料表選項參數 型式 代表意義
QUICK 不做資料列掃描以檢查不正確之連結FAST 只檢查未正常關閉的資料表CHANGED 只檢查資料有變更或未正常關閉的資料表
MEDIUM 資料列掃描以維持正確之連結,同時檢查紀錄與索引之checksum
EXTENDED 完整檢查,需耗費很長的時間
- CH11主從式資料庫系統 66
3. 整理資料表指令 (OPTIMIZE TABLE)
語法: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
說明:紀錄為不定長度的資料表,有大量資料被刪除時,可用此道指令將紀錄重新連結(刪除空洞)。前述資料表若經常要做更新處理時,可於每週或每月處理一次 OPTIMIZE
- CH11主從式資料庫系統 67
3. 整理資料表 ( 續 )
OPTIMIZE TABLE 將依下述過成程來處理資料表 檢查是否有刪除位置或紀錄被分段儲存,有則修復它 檢查索引是否未排序,若未排序則重新排序 檢查統計資料是否正確,不正確則更正之
- CH11主從式資料庫系統 68
4. 修復資料表指令 (REPAIR TABLE)
語法: REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
說明:此道指令只適用於 MyISAM 資料表,可用於修復損壞的資料表。其中各選項參數意義簡述如下 QUICK :只修復索引樹 EXTENDED :以逐列方式重建索引 USE_FRM :依據 `.frm' 檔案重建索引表
- CH11主從式資料庫系統 69
5. mysqlcheck前述 1~4 指令也可改用 mysqlchk 主控端命令來處理,此命令只用來處理 MyISAM 資料表,執行命令時,伺服器不需要停止指令型式
c:\mysql\bin> mysqlcheck [options] db_name [tables]
c:\mysql\bin> mysqlcheck [options] --databases DB1 [DB2 DB3...]
c:\mysql\bin> mysqlcheck [options] --all-databases
- CH11主從式資料庫系統 70
11-6 設定維護排程計劃維護排程建議
對於重要資料表,應定期以 Check, Repair, Optimize 指令檢查
搭配 –myisam-recover 參數來起動伺服器,在資料處理人員正式處理資料表前,即完成資料表檢查和修復工作 定期執行維修計畫,例如每天一次(每天均需更新處理的資料表),或每週一次(較不重要的資料表)經常需要增刪紀錄之資料表,每月處理一次 Optim
ize
- CH11主從式資料庫系統 71
11-7 Administrator 應用簡介Administrator 是一個 MySQL 伺服器之管理程式可在檔案總管視窗內點取 MySQLAdministrato
r 後,開啟畫面如圖 11-1 所示輸入帳號密碼後,即可聯上 MySQL 伺服器,接著出現圖 11-2畫面
- CH11主從式資料庫系統 72
11-7 Administrator 應用簡介( 續 )
圖 11-1 圖 11-2
- CH11主從式資料庫系統 73
11-7 Administrator 應用簡介( 續 )
Administrator 之主要功能分成 File 、 Edit 、 View 、 Tools 及 Help ,各主功能項下尚有子選項
圖 11-3 為各子項功能之綜合圖示,系統預設主畫面為 View 之選項作業畫面
- CH11主從式資料庫系統 74
子項功能之綜合圖示
圖 11-3
- CH11主從式資料庫系統 75
Administrator 功能介紹File
New Instance Connection :建立新的連線範例 Reconnect :重新連線 Copy Active Page as Text :複製現用的案例 Close :關檔及結束
- CH11主從式資料庫系統 76
Administrator 功能介紹 Edit :標準的剪貼簿功能 View
Server Information :列示伺服器連線資訊 Service Control :啟動服務控制 Startup Variables :設定啟動作業系統變數,包括:
General Parameters :一般用途,包括允許以 TCP/IP連線、 TCP Port 、預設資料庫路徑、預設索引鍵及排序緩衝區,以及預設儲存引擎 MyISAM : MyISAM 資料表,包括新增、鎖表及全文檢索屬性設定,排序檔案容量
- CH11主從式資料庫系統 77
Administrator 功能介紹– Startup Variables :
InnoDB : InnoDB 資料表,包括緩衝資料區容量、記憶體緩衝區容量、資料表路徑及檔名、日誌檔路徑及檔名、日誌檔容量、執行緒同步連線數Performace :快取空間調整Log Files :日誌檔工作條件及屬性設定Replication :備用伺服器工作條件及屬性設定Networking :網路連線參數設定Security :安全條件設定Advanced :進階變數如字元集、快取管理等
- CH11主從式資料庫系統 78
Administrator 功能介紹 View
User Administration :用戶管理 Server Connections :執行緒及用戶連線管理 Health :提示系統運作狀態健檢資訊、系統狀態變數及系統變數 Server Logs :伺服器日誌檔管理 Replication Status :備用伺服器狀態資訊 Backup :備援專案管理及備援工作排程 Restore :復原工作管理(須搭配備援專案檔) Catalogs :資料庫目錄管理
- CH11主從式資料庫系統 79
Administrator 功能介紹Tools :參數設定工具
MySQL Command Line Client : MySQL 主控端應用視窗MySQL System Tray Monitor :系統監控視窗Windows Command Line :主控端應用視窗 (Windows 介面 )Options :選項參數設定,包括:
Administrator :管理者權限 General Options :諸如字體大小、視窗狀態等 Connections :連線資訊 Editors :資料表與索引表預設值
Manage Connections :與 Options 同Save Current Connection :將設定參數設為現用狀態資訊或予以拋棄