• 沒有找到結果。

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

參考文獻

相關文件

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境下,將給與的紙本或電子檔(如 excel

2.熟 悉 Microsoft Windows Server 作 業 系 統 、 Microsoft SQL Server 資料庫伺服器及網 頁伺服器等環境。. 3.具撰寫 JAVA

(二)使用 PHP 語言、MySQL 資料庫與 Apache 伺服軟體開發互

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制

Client: Angular 、 Cordova Server: Node.js(Express) 資料庫: MySQL. 套件管理: Node Package