• 沒有找到結果。

第 11 章 伺服器與資料庫管理

N/A
N/A
Protected

Academic year: 2021

Share "第 11 章 伺服器與資料庫管理"

Copied!
79
0
0

加載中.... (立即查看全文)

全文

(1)

- CH11

主從式資料庫系統 1

第 11 章

伺服器與資料庫管理

(2)

本章宗旨

介紹 MySQL 之權限功能、工作原理與權限類

介紹權限之授權與撤除指令及應用方式

簡介伺服器工作環境參數與管理

簡介日誌檔產生方式與用途

簡介伺服器管理指令

簡介災難預防與復原之意義與處理指令

Administrator 伺服器管理應用軟體使用說明

(3)

- CH11

主從式資料庫系統 3

大 綱

11-1 帳號與存取權限管理 11-2 伺服器系統環境管理 11-3 日誌檔管理

11-4 mysqladmin -伺服器管理命令 11-5 災難預防與復原

11-6 設定維護排程計劃

11-7 Administrator 應用簡介

(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 權限驗證

(5)

- CH11

主從式資料庫系統 5

11-1-1 權限的功能

權限的主要功能

認證使用者是否有權登入伺服器

執行諸如 Select 、 Insert 、 Update 、 Delete 等資料處理作業時,認證是否有權開啟資料表 和處理資料

進階的權限管理功能,在於驗證相關人員是否 可以將權限授與他人使用

(6)

11-1-2 權限工作原理

MySQL 將存取權限控制分為兩個階段

階段一:伺服器先查核使用者是否被允許連線。

階段二:假如有連線權利,而且也成功的連線,使 用者每發出每一道 SQL 指令時, MySQL 將檢查 是否有足夠權限去處理該項作業

(7)

- CH11

主從式資料庫系統 7

11-1-2 權限工作原理

( 續 )

連線後假如權限有被變更過(不管是自己變更

,或是他人變更),變更的權限並不會立即發 生作用

除非已執行【 Flush Privileges; 】指令, MyS QL 才會重新讀取權限資料並置於記憶體

(8)

11-1-2 權限工作原理

( 續 )

MySQL 將所有授權資訊儲存在 ” mysql” 資料 庫內的資料表

其中 tables_priv 和 columns_priv 兩個資料表用來 存放資料處理權限資料,這些資料表用於階段二之 查核

User, Db 及 Host 三個資料表用來存放連線權限資 料,這些資料表用於階段一和二之查核

(9)

- CH11

主從式資料庫系統 9

11-1-2 權限工作原理

( 續 )

權限資料表用法

登錄在” user” 資料表之使用者,在指定的” host

” 登入時,這個使用者將可以處理位於伺服器上的 資料庫(若所有權限都設為’ Y’ ),此權限形同

Supervisor” 權限

登錄在 ” Db” 資料表之使用者,在指定的” host

” 登入時,這個使用者將可以處理指定的資料庫,

包含此資料庫內的全部資料表

(10)

11-1-2 權限工作原理 ( 續 )

若需要從不同的主機連線來處理指定的資料庫時,

可以使用” host” 資料表設定主機與資料庫。假如 以這個方式工作,請將” Db” 資料表之” host” 欄 位保留空白

“tables_priv” 與” columns_pri” 權限設定意義與”

Db” 類似,不過它們可以指定更詳細的權限。假如 使用者有權處理特定資料表,此意味他也有權處理 該資料表之全部欄位

(11)

- CH11

主從式資料庫系統 11

11-1-3 權限類型

權限使用時機

Select, Insert, Update 和 Delete 可用於處理指 定資料庫內現存資料表的紀錄操作

Create 使用於建立新的資料庫或資料表, Dro p 則用於刪除現存的資料庫或資料表

Index 使用於建立和刪除索引表,擁有 Create 資料表權限的人,同時擁有 Index 權限

(12)

11-1-3 權限類型

( 續 )

權限使用時機

Alter 使用於改變資料表結構或重新命名

Grant 可用於將自己擁有的權限授與他人

File 用於以” Load Data Infile” 和” Sele ct” 指令在伺服器上讀寫檔案

(13)

- CH11

主從式資料庫系統 13

11-1-3 權限類型

( 續 )

Reload 權限又分成: flush-hosts, flush-logs, flus h-privileges, flush-status, flush-tables, flush-threa ds, refresh, reload

reload 用於通知伺服器重新載入權限資料表到記憶

flush-privileges 與 reload 類似

refresh 用來關閉和重開日誌檔,以及沖回所有資料

Fulsh-XXX 功能與 refresh 類似,可以附帶案例

(14)

11-1-3 權限類型

( 續 )

shutdown 用於關閉伺服器,無對應的 SQL 指 令可用

processlist 用於顯示目前正在伺服器上工作的 執行緒,使用者隨時都可以顯示自己啟動的執 行緒並刪除它,但是只有擁有 Process 權限的 人才能查看由他人啟動的執行緒,而擁有 Supe r 權限的人才能使用 Kill 來刪除由他人啟動的執 行緒

Create Temporary Table 權限使用於以關鍵字

(15)

- CH11

主從式資料庫系統 15

11-1-3 權限類型

( 續 )

Lock Tables 用來鎖住資料表,擁有 Select 權限 的人,才能執行 Locak Tables 。資料表被鎖定 後,其他人無法讀取資料表

Replication Client 用於執行” Show Master Stat us” 和” Show Slave Status” 指令

Replication Slave 用於授權給備用伺服器之使用 者,而這些人必須已連線至主伺服器,若未經授 權,備用伺服器將無法要求更新主伺服器之資料

(16)

11-1-3 權限類型

( 續 )

Show Databases 用於檢視指名的資料庫之全 部資訊

若無此權限,執行此指令只能看到那些有被授權 之資料表相關資訊

假如啟動伺服器時,若有搭配 ” --skip-show-dat abase” 參數,縱使有此授權,也無法檢視資料庫 相關資訊

(17)

- CH11

主從式資料庫系統 17

1. 完整授權

1.1 授權給使用者” monty” ,以驗證密碼” Happy” 從 loca l host 登入,並享有 Grant 權限(形同 monty 具有 supervi sor 之權限)

指令: 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'@'%'I DENTIFIED BY ' Happy ' WITH GRANT OPTION;

(18)

1. 完整授權

( 續 )

1.3 授權給使用者: admin , 無驗證密碼,可從 local h ost 登入,享有 Reload 和 Process 管理者之權限,可 使用 mysqladmin 主控端指令來執行 reload, refresh, flush-XXX 工作,但是他無權處理任何資料

指令:

GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';

(19)

- CH11

主從式資料庫系統 19

1. 完整授權 ( 續 )

1.4 替使用者 ” dummy” 預設一個從 Local host 登入之帳 戶,但不給他任何權限(使用 Usage 參數之效果),權 限則可留待以後再以部份授權方式加入

指令:

GRANT USAGE ON *.* TO 'dummy'@'localhost';

(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('local host','custom',PASSWORD('obscure'));

(21)

- CH11

主從式資料庫系統 21

2. 部份授權

( 續 )

範例二: INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD ('obscure'));

範例三: INSERT INTO db (Host,Db,User,Select_p riv,Insert_priv,Update_priv,Delete_priv,Create_pri v,Drop_priv)VALUES('localhost','bankaccount','cu stom', 'Y','Y','Y','Y','Y','Y');

(22)

2. 部份授權 ( 續 )

範例四: INSERT INTO db (Host,Db,User,Select_p riv,Insert_priv,Update_priv,Delete_priv,Create_pri v,Drop_priv)VALUES('whitehouse.gov','expense s','custom', 'Y','Y','Y','Y','Y','Y');

啟用權限指令: FLUSH PRIVILEGES;

(23)

- 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 U ser=’' 帳號’ and Host='host_name';

(24)

11-1-5 密碼設定與變更

1. 事前設立暗碼型密碼

Grant….IDENTIFIED BY '’ 密碼’ ; 改為下 列型式即可

Grant….IDENTIFIED BY Password('’ 密碼’ );

使用 Insert 指令設立帳戶時,仍須使用 Passw ord('’ 密碼’ ) 指令型式,將密碼轉成暗碼

(25)

- CH11

主從式資料庫系統 25

11-1-5 密碼設定與變更

( 續 )

2. 事後設立暗碼型密碼

Set Password For ‘Jeffrey@%’ = Password(‘

密碼’ );

說明:替使用者” Jeffrey” 設立或變更密碼

(只限 root 使用者)

Set Password = Password(‘ 密碼’ );

說明:替使用者” Jeffrey” 設立或變更密碼

(只限 Jeffrey 本人)

(26)

11-1-5 密碼設定與變更

( 續 )

3. 變更密碼

指令:

UPDATE user SET Password = PASSWORD (' 密碼 ')WHERE Host = '%' AND User = 'Jeffre y';

(27)

- CH11

主從式資料庫系統 27

11-1-6 啟用權限

MySQL 啟用全部或部份權限方式

起動 mysqld 時,所有權限資料表將被載入記憶體

,所有權限將自動生效

當伺服器重新載入權限資料表時,下列連線中主控 端之權限將受到影響:

主控端在下一次執行資料表或欄位資料時,資料表或 欄位權限才生效

主控端在下一次執行 Use Database 時,資料庫權限 才生效

主控端在下一次連線時,完整權限和新的密碼才生效

(28)

11-1-6 啟用權限

( 續 )

執行 Grant, Revoke, 或 Set Password 指令後

,伺服器將立即重新載入相關的權限資料表

執行 Insert, Update, 或 Delete 指令,必須搭配

Flush Privileges;” 指令,通知伺服器重新載 入相關的權限資料表,新的權限才生效

(29)

- CH11

主從式資料庫系統 29

11-1-7 伺服器連線

主控端與伺服端之連線指令

mysql –h Host – u User –pPassword

其中 ” -h” 代表指定連線主機參數

Host 代表主機名稱,可用數字碼,或是網域名稱

”-u” 代表使用者帳號參數

User 為使用者帳號

”-p” 表示密碼參數

Password 為使用者自己設定之密碼,” -p” 和密碼間不 能有空格

若主控端與伺服端位於同一台電腦,則 – h Host 部分 可以省略

(30)

11-1-8 主機及其他設定值

user 資料表上之 host 欄位,其輸入資料可使 用下列型式

使用主機名稱、 IP 代碼,或是 localhost

使用主機名稱型式時,可搭配” %” 萬用字元,

例如單一字元” %” 表示所有主機,” %.mysq l.com” 表示符合” mysql.com” 網域的所有主

使用 IP 型式時,也可以搭配” %” 萬用字元,

(31)

- 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 欄位 保留空白,將被視為” %” 型式

(32)

11-1-8 主機及其他設定值

( 續 )

其他權限資料表之 host 欄若保留空白,將被視 為” %” 型式

user 權限資料表之 user 欄若保留空白,將被視 為匿名帳號

tables_priv 和 columns_priv 之 db, table_nam e, column_name 三個欄位不得使用” %” 字元

,也不能保留空白

(33)

- CH11

主從式資料庫系統 33

11-1-9 權限驗證

階段一之權限驗證過程如下

讀取 user 資料表紀錄

依據 host 及 user 將紀錄排序

比對主機,若有相符之主機資料,取出帳號及 密碼與登入資料比對,資料皆符合時,即通過 驗證

(34)

11-2 伺服器系統環境管理

11-2-1 系統環境參數設定

系統參數值設定方式分成下列三種型式,型式一 用於命令列,型式二用於參數檔,型式三用於應 用程式。

型式一: -- 參數名稱 = 參數值,或 -- 參數名稱 型式二: 參數名稱 = 參數值,或 參數名稱

型式三: SET GLOBAL 參數名稱 = 參數值;

(35)

- CH11

主從式資料庫系統 35

11-2-1 系統環境參數設定

下列參數格式具有相同效果

關閉效果

--disable-column-names

--skip-column-names

--column-names=0

開啟效果

--column-names

--enable-column-names

--column-names=1

(36)

11-2-2 系統環境參數型式

各種常用系統環境參數請參見書本說明

(37)

- CH11

主從式資料庫系統 37

11-3 日誌檔管理

11-3-1 產生日誌檔 11-3-2 日誌檔內容

(38)

11-3-1 產生日誌檔

啟動 mysqld 伺服器時,可搭配系統環境參數 將執行過程之信息記錄在日誌檔

日誌檔可用下列指令強制關閉及重新開起新檔

SQL 指令: Flush Logs;

命令列指令: mysqladmin flush-logs, 或 mysq ladmin refresh

(39)

- CH11

主從式資料庫系統 39

日誌檔類型

檔案類型 預設檔名 儲存內容

錯誤日誌 主機名 .err 記錄伺服器啟動、運作及停止時遭遇的問題 isam 日誌 自定檔名 用於 ISAM 和 MyISAM 資料表除錯階段之所有

改變資料

查詢日誌 主機名 .log 記錄主控端連線及執行 SQL 之相關信息,可用 於追蹤問題發生原因

異動資料 主機名 -bin.log 記錄所有會改變資料之 SQL 指令,這些信息也 可用於備用伺服器之資料更新

慢速查詢 主機名 -slow.log 記錄所有查詢耗費時間大於 lon_query_time 之 指令,或是未使用索引表之指令

(40)

11-3-2 日誌檔內容

1. 錯誤日誌檔

錯誤日誌檔內容包含伺服器啟動與停止時間,以及運作期間 發生的錯誤資料

2. 查詢日誌檔

查詢日誌檔用於記錄主控端連線及執行 SQL 之相關信息,

可用於追蹤問題發生原因

3. 異動資料日誌檔

異動資料日誌檔記錄所有會改變資料之 SQL 指令,同時記 錄更新資料耗費的時間

4. 慢速查詢日誌檔

(41)

- CH11

主從式資料庫系統 41

異動資料日誌檔

異動資料日誌檔之主要用途,在於資料更新後若需復 原資料,可直接從日誌檔取得復原資料之相關訊息,

這些信息也可用於備用伺服器之資料更新

次啟動伺服器或執行 Flush Logs 時,系統即自動產 生一個新的日誌檔,檔名均相同,但是延伸名會以流 水號遞增

假如日誌檔太大時(大於預設值 max_binlog_size )

,系統即自動產生新的日誌檔

(42)

異動資料日誌檔

( 續 )

執行大型交易型資料的話,日誌資料則不會被分割在 兩個日誌檔

異動資料日誌檔可搭配” --log-bin-index” 參數,系統 將自動產生一個索引檔,用來記錄相關日誌檔之關係。

當伺服器在運作時,不要去編輯索引檔,以免伺服器 造成混淆

(43)

- CH11

主從式資料庫系統 43

異動資料日誌檔

( 續 )

可使用【 Reset Master 】指令來刪除所有異 動資料日誌檔,或使用【 PURGE MASTER L OGS 】來刪除部份異動資料日誌檔

指令:

PURGE MASTER LOGS TO 'mysql-bin.010';

PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';

(44)

異動資料日誌檔

( 續 )

刪除部份異動資料日誌檔程序

SHOW SLAVE STATUS 指令查看那個日誌檔正被 讀取中

SHOW MASTER LOGS 指令查看主伺服器有那些 日誌檔

選出最近的日誌檔,該檔將是系統還要使用的目標

備份將要刪除的日誌檔

(45)

- CH11

主從式資料庫系統 45

異動資料日誌檔

( 續 )

刪除日誌檔時,請先確認無備份伺服器還要使 用這些日誌檔

理想的刪除規則為,每天執行一次【 mysqlad min flush-logs 】,然後將三天以上的日誌檔 以【 Purge Master Logs 】指令刪除

Purge 指令可同時整理索引檔。

(46)

異動資料日誌檔

( 續 )

記錄資料更新指令時,可針對特定資料庫做選 別,選別參數有兩種型式

--binlog-do-db = DB_Name :若更新指令之處理 對象資料庫非現用資料庫時,該指令不被記錄 --binlog-ignore-db = DB_Name :若更新指令之 處理對象資料庫非現用資料庫時,該指令將被 記錄

(47)

- CH11

主從式資料庫系統 47

異動資料日誌檔

( 續 )

使用下述指令檢視日誌檔內容:。

近端伺服器: mysqlbinlog 日誌檔名

遠端伺服器: mysqlbinlog 日誌檔名 – R -h 伺服器所在主機名稱

或使用下述指令更新特定的伺服器:

mysqlbinlog 日誌檔名 | mysql -h 伺服器名

(48)

11-4 mysqladmin 伺服器管理命令

11-4-1 用途與語法

mysqladmin 是一個主控端應用程式,用來執 行伺服器之管理作業,諸如伺服器之環境設定 和提示現狀信息,增刪資料庫,以及其他作業

(49)

- CH11

主從式資料庫系統 49

11-4-1 用途與語法

mysqladmin 語法:

c:\mysql\bin> mysqladmin [options] command [c ommand-option] command ...

其中

[options] 為選項參數

command 為操作資料庫指令

[command-option] 為指令選項參數

指令型式及參數選項請參看書本說明

(50)

11-5 災難預防與復原

備份資料庫可預防因突發事故造成資料無法復 原之損失

適時的維護資料表,則有助於提升系統效率

(51)

- CH11

主從式資料庫系統 51

11-5 災難預防與復原

( 續 )

11-5-1 資料庫備份

備份資料庫之方式,可分成完整、漸增或局部 資料表三種情形

完整備份時,必須確認資料庫已無任何執行緒 使用它

資料表備份時,須確認所有異動資料含索引已 被完整寫回磁碟

(52)

1. 前置處理

為了使備份資料能維持一致性,備份前應先執 行下列指令,將相關資料表之索引資料寫回磁

Lock Tables 資料表 1 Read, 資料表 2 Read …;

Flush Tables With Read Lock;

Unlock Tables;

(53)

- CH11

主從式資料庫系統 53

1. 前置處理

( 續 )

下列指令可用來檢視 MyISAM 資料表之狀態 信息

myisamchk –d 資料表名:提示資料表一般資訊 myisamchk –d -v 資料表名:提示資料表一般資

訊及檔案配置資訊

myisamchk –eis 資料表名:提示資料表重要資 訊,須檢視整個資料表,所以較費時。

myisamchk –eiv 資料表名:與 -eis 類似,但索 引結構資訊更詳盡

(54)

2. 完整備份

執行完整備份時,請先停止伺服器,然後重新 啟動並搭配 ” log-bin” 參數,重新設定備份 日誌起始點

完整備份指令

以主控端應用程式 mysqldump (在命令列下執 行)執行完整備份工作

備份結果為一專案檔型式

(55)

- CH11

主從式資料庫系統 55

3. 完整備份範例

範例 1 : c:\mysql\bin> mysqldump --opt db_na me -r backup-file.sql

說明:將資料庫 db_name 以 mysqldump( 搭配 opt 參數 ) 完整下載,並儲存在專案檔 backup-f ile.sql 。此專案檔可用下列指令,將將資料庫 d b_name 以 mysql 命令列指令,建立在其他主 機上

建檔指令: c:\mysql\bin> mysql db_name < b ackup-file.sql

(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

(57)

- CH11

主從式資料庫系統 57

3. 完整備份範例

( 續 )

範例 4 :一次將所有資料庫下載至專案檔。

指令: c:\mysql\bin> mysqldump --all-databas es -r all_databases.sql

範例 5 :若儲存引擎為 InnoDB 時,改用下列指 令:

指令: c:\mysql\bin> mysqldump --all-databas es --single-transaction -r all_databases.sql

(58)

4. 漸增式備份

採用漸增式備份時,伺服器須在— log-bin 模 式下執行,以便取得相關的備份線索資訊(前 次完整備份或漸增備份之完成位置)

執行備份工作前,先執行 Flush Logs 指令,轉 回適當之日誌檔

拷貝所須的日誌檔

前次為完整備份時,拷貝全部

若為漸增式,可能只需一個最近的日誌檔

(59)

- CH11

主從式資料庫系統 59

5. 局部備份

局部備份乃針對個別資料表加以備份

使用下列指令來局部備份

指令 1 : BACKUP TABLE tbl_name [, tbl_na me] ... TO ‘/path/to/backup/directory’;

說明:此指令可同時拷貝數個資料表至指定目錄,

指名資料表所屬之 `.frm‘ 及 `.MYD’ 檔案將被複製

`.MYI‘ 可利用前面兩個檔案來重新索引後取得

指令 2 : SELECT * INTO OUTFILE 'file_na me' FROM tbl_name;

(60)

11-5-2 復原資料

1. 重建資料庫

指令: c:\mysql\bin> mysql db_name < backu p-file.sql

說明: backup-file.sql 是以 mysqldump 命令產 生之專案檔

(61)

- 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 RE PLACE…;

說明:將以 SELECT INTO 指令備份的資料,重新 載入對應的資料表。若資料表有 Primary 或 Uniqu e 型索引表,舊鍵值紀錄將被新紀錄取代

(62)

11-5-2 復原資料

( 續 )

復原資料時,請先以 Repair Table 資料表或 mysqlaheck –r 資料表指令檢查資料表, 99.9

﹪ 的 MyISAM 資料表問題都可以克服

無法解決問題時,請改用下列方式處理:

重新載入前次以 mysqldump 下載之備份資料。

執行下列指令來更新資料

c:\mysql\bin>mysqlbinlog 對應日誌檔名 | mysql

(63)

- CH11

主從式資料庫系統 63

11-5-3 資料表維護與損壞復原

1. 分析資料表指令 (ANALYZE TABLE )

語法: ANALYZE [LOCAL | NO_WRITE_TO_

BINLOG] TABLE tbl_name [, tbl_name] ...

說明:可用於分析資料表及重建索引表,事前 須先以讀取鎖定方式鎖表。適用於所有型態資 料表

(64)

2. 檢查資料表

指令 (CHECK TABLE)

語法: CHECK TABLE tbl_name [, tbl_name]

... [option] ...

說明:可用於檢查資料表及或提示錯誤資訊,

適用於所有 MyISAM 和 InnoDB 型態資料表

其中 option 有下列選項

{QUICK | FAST | MEDIUM | EXTENDED | CHAN GED}

(65)

- CH11

主從式資料庫系統 65

檢查資料表選項參數

型式 代表意義

QUICK 不做資料列掃描以檢查不正確之連結

FAST 只檢查未正常關閉的資料表

CHANGED 只檢查資料有變更或未正常關閉的資料表

MEDIUM 資料列掃描以維持正確之連結,同時檢查紀錄與索引之 checksum

EXTENDED 完整檢查,需耗費很長的時間

(66)

3. 整理資料表

指令 (OPTIMIZE TABLE)

語法: OPTIMIZE [LOCAL | NO_WRITE_TO_

BINLOG] TABLE tbl_name [, tbl_name] ...

說明:紀錄為不定長度的資料表,有大量資料 被刪除時,可用此道指令將紀錄重新連結(刪 除空洞)。前述資料表若經常要做更新處理時

,可於每週或每月處理一次 OPTIMIZE

(67)

- CH11

主從式資料庫系統 67

3. 整理資料表

( 續 )

OPTIMIZE TABLE 將依下述過成程來處理資料

檢查是否有刪除位置或紀錄被分段儲存,有則 修復它

檢查索引是否未排序,若未排序則重新排序

檢查統計資料是否正確,不正確則更正之

(68)

4. 修復資料表

指令 (REPAIR TABLE)

語法: REPAIR [LOCAL | NO_WRITE_TO_BINL OG] TABLE tbl_name [, tbl_name] ... [QUICK] [E XTENDED] [USE_FRM]

說明:此道指令只適用於 MyISAM 資料表,可用 於修復損壞的資料表。其中各選項參數意義簡述如

QUICK :只修復索引樹

EXTENDED :以逐列方式重建索引

(69)

- CH11

主從式資料庫系統 69

5. mysqlcheck

前述 1~4 指令也可改用 mysqlchk 主控端命令 來處理,此命令只用來處理 MyISAM 資料表,

執行命令時,伺服器不需要停止

指令型式

c:\mysql\bin> mysqlcheck [options] db_name [tables]

c:\mysql\bin> mysqlcheck [options] --database s DB1 [DB2 DB3...]

c:\mysql\bin> mysqlcheck [options] --all-datab ases

(70)

11-6 設定維護排程計劃

維護排程建議

對於重要資料表,應定期以 Check, Repair, Optimi ze 指令檢查

搭配 – myisam-recover 參數來起動伺服器,在 資料處理人員正式處理資料表前,即完成資料表檢 查和修復工作

定期執行維修計畫,例如每天一次(每天均需更新 處理的資料表),或每週一次(較不重要的資料 表)

(71)

- CH11

主從式資料庫系統 71

11-7 Administrator 應用簡介

Administrator 是一個 MySQL 伺服器之管理程

可在檔案總管視窗內點取 MySQLAdministrato r 後,開啟畫面如圖 11-1 所示

輸入帳號密碼後,即可聯上 MySQL 伺服器,

接著出現圖 11-2 畫面

(72)

11-7 Administrator 應用簡介

( 續 )

(73)

- CH11

主從式資料庫系統 73

11-7 Administrator 應用簡介

( 續 )

Administrator 之主要功能分成 File 、 Edit 、 V iew 、 Tools 及 Help ,各主功能項下尚有子選

11-3 為各子項功能之綜合圖示,系統預設 主畫面為 View 之選項作業畫面

(74)

子項功能之綜合圖示

(75)

- CH11

主從式資料庫系統 75

Administrator 功能介紹

File

New Instance Connection :建立新的連線範例

Reconnect :重新連線

Copy Active Page as Text :複製現用的案例

Close :關檔及結束

(76)

Administrator 功能介紹

Edit :標準的剪貼簿功能

View

Server Information :列示伺服器連線資訊

Service Control :啟動服務控制

Startup Variables :設定啟動作業系統變數,包括:

General Parameters :一般用途,包括允許以 TCP/IP 連線、 TCP Port 、預設資料庫路徑、預設索引鍵及排 序緩衝區,以及預設儲存引擎

MyISAM : MyISAM 資料表,包括新增、鎖表及全文

(77)

- CH11

主從式資料庫系統 77

Administrator 功能介紹

Startup Variables :

 InnoDB : InnoDB 資料表,包括緩衝資料區容量、記 憶體緩衝區容量、資料表路徑及檔名、日誌檔路徑及 檔名、日誌檔容量、執行緒同步連線數

 Performace :快取空間調整

 Log Files :日誌檔工作條件及屬性設定

 Replication :備用伺服器工作條件及屬性設定

 Networking :網路連線參數設定

 Security :安全條件設定

 Advanced :進階變數如字元集、快取管理等

(78)

Administrator 功能介紹

View

User Administration :用戶管理

Server Connections :執行緒及用戶連線管理

Health :提示系統運作狀態健檢資訊、系統狀態變數及 系統變數

Server Logs :伺服器日誌檔管理

Replication Status :備用伺服器狀態資訊

Backup :備援專案管理及備援工作排程

Restore :復原工作管理(須搭配備援專案檔)

(79)

- 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 :將設定參數設為現用狀態資訊或 予以拋棄

參考文獻

相關文件

我們首先介紹一個 Host Filtering 架構如圖 2,假設有一張正確的色情網址列表,列表的內 容為色情網站的域名;將此列表建入 private local root DNS 的

1

Potential knowledge management contributions to human performance technology research and practice Educational.. Technology”,Research

二、首頁連結建立作業程序 (1) 業務部 客服 人員林小青的 日常工作 ,主要為 接聽 客戶 來電 、記錄並解決問題。 情境說明

收款單產生差額的原因:常出現在外幣帳款處理時,因立帳及沖帳時點之匯率不同而產生匯差,可設定兌換損失、利益科目。 方式二

(一)規劃建置衛生署藥品交互作用資料庫,資料庫參 考來源以 FACTS AND COMPARISONS 公司所出版 之『DRUG INTERACTION

[r]