1 / 17

第六類

第六類. 資料庫備份與回復. MySql 資料庫備份. 分為兩種: Binary Copy ( 又稱過 hotcopy )( 直接複製資料庫檔案 ) Dump Database ( 將資料庫輸出成為文字檔 ) MySQL 在安裝時即有提供一系列的客戶端程式 ( Client Program ) ,例如: 操控 Server 的 mysqladmin 執行 SQL 指令的 mysql 轉換 binary log 用的 mysqlbinlog 備份資料庫的 mysqldump. Mysqldump 使用方法. 語法:

eliora
Download Presentation

第六類

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六類 資料庫備份與回復

  2. MySql資料庫備份 • 分為兩種: • Binary Copy (又稱過hotcopy)(直接複製資料庫檔案) • Dump Database (將資料庫輸出成為文字檔) • MySQL在安裝時即有提供一系列的客戶端程式(Client Program),例如: • 操控 Server 的 mysqladmin • 執行 SQL 指令的 mysql • 轉換 binary log 用的 mysqlbinlog • 備份資料庫的 mysqldump

  3. Mysqldump使用方法 • 語法: • --lock-all-tables:備份時將正在備份的資料庫裡的資料表全部鎖定,以確保資料的一致性。 • -u root:使用 root 帳號進行備份 • -p:需要輸入密碼 mysqldump --lock-all-tables -u root -p 資料庫名稱 > example.sql 

  4. Binary Log的還原機制 • 若有定期備份資料庫,當資料庫損壞時可還原,但還是有可能造成部份資料遺失,如『最後一次備份』到『資料庫損壞前』之間的資料。 • 利用BinaryLog機制可以讓遺失的資料降低 • 第九類資料,MySql 5.0有四種log: • error log:包含啟動停止和警急錯誤訊息 • general query log: 用戶端的連線與斷線的訊息 • binary log: 包含所有可能修改資料的SQL語法 (有利於進行資料回復) • slow log:包含執行時間超過long_query_time秒數的sql語法, log-queries-not-using-indexes有指定,則會紀錄沒使用INDEX的SQL語法

  5. Binary Log的還原機制 • 啟用 Binary Log • 修改 MySQL Server 的系統設定檔(eg. /etc/my.cnf) • 在 [mysqld] 區塊中加上log-bin=mysql-bin 選項 • 使用 mysqlbinlog將 Binary Log 轉換成可執行的 SQL 指令 [mysqld]log-bin=mysql-bin

  6. 備份及還原指令 • 備份指令 • 還原指令 • REPLACE指令會覆寫任何在來源與目的表格中,具有唯一或主要鍵值紀錄的資料。 mysql> SELECT * INTO OUTFILE '/tmp/forums-db-users.sql' FROM phpbb_users; mysql> load data infile '/tmp/forums-db-users.sql' replace into table forums-db.phpbb_users;

  7. 設定MySql時區 • 伺服器啟動時試圖確定主機的時區,用它來設置system_time_zone系統變數,以便校對資料庫損壞與備份的時間。 mysql> set global time_zone= ‘SYSTEM’;

  8. MySql指令 • 登入mysql: • mysql> mysql–u username–p password; • 授與權限 • mysql> grant 權限on 物件(如表格)to 使用者; • 撤銷權限 • mysql> revoke權限on 物件from使用者; • 新增使用者 • create user、grant • 權限設定完成 • FLUSH PRIVILEGES;

  9. 範例 • 授與任何權限給使用者 • GRANT ALL ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; • 授與針對db_name資料的某些權限給使用者 • GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';

  10. MySQL密碼編碼 • MySQL4.1與之前的資料庫,密碼編碼方式不相容 • 官網說明:http://dev.mysql.com/doc/refman/4.1/en/old-client.html • 若要用舊的編碼方法,必須使用以下兩個 • set password功能 • OLD_PASSWORD方法

More Related