第六類

17
第第第 資資資資資資資資

description

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

Transcript of 第六類

Page 1: 第六類

第六類資料庫備份與回復

Page 2: 第六類

MySql 資料庫備份分為兩種:

Binary Copy ( 又稱過 hotcopy)( 直接複製資料庫檔案 )

Dump Database ( 將資料庫輸出成為文字檔 )

MySQL 在安裝時即有提供一系列的客戶端程式(Client Program) ,例如:操控 Server 的 mysqladmin執行 SQL 指令的 mysql轉換 binary log 用的 mysqlbinlog備份資料庫的 mysqldump

Page 3: 第六類

Mysqldump 使用方法語法:

--lock-all-tables :備份時將正在備份的資料庫裡的資料表全部鎖定,以確保資料的一致性。

-u root :使用 root 帳號進行備份-p :需要輸入密碼

mysqldump --lock-all-tables -u root -p 資料庫名稱 > example.sql 

Page 4: 第六類
Page 5: 第六類

Binary Log 的還原機制若有定期備份資料庫,當資料庫損壞時可還原,但還

是有可能造成部份資料遺失,如『最後一次備份』到『資料庫損壞前』之間的資料。

利用 Binary Log 機制可以讓遺失的資料降低

第九類資料,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 語法

Page 6: 第六類

Binary Log 的還原機制啟用 Binary Log

修改 MySQL Server 的系統設定檔 (eg. /etc/my.cnf)

在 [mysqld] 區塊中加上 log-bin = mysql-bin 選項

使用 mysqlbinlog 將 Binary Log 轉換成可執行的 SQL 指令

[mysqld]log-bin=mysql-bin

Page 7: 第六類
Page 8: 第六類

備份及還原指令備份指令

還原指令

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;

Page 9: 第六類
Page 10: 第六類
Page 11: 第六類

設定 MySql 時區伺服器啟動時試圖確定主機的時區,用它來設置

system_time_zone 系統變數,以便校對資料庫損壞與備份的時間。

mysql> set global time_zone = ‘SYSTEM’;

Page 12: 第六類

MySql 指令登入 mysql :

mysql> mysql –u username –p password;授與權限

mysql> grant 權限 on 物件 ( 如表格 ) to 使用者 ;撤銷權限

mysql> revoke 權限 on 物件 from 使用者 ;新增使用者

create user 、 grant權限設定完成

FLUSH PRIVILEGES;

Page 13: 第六類

範例授與任何權限給使用者

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';

Page 14: 第六類
Page 15: 第六類
Page 16: 第六類

MySQL 密碼編碼MySQL4.1 與之前的資料庫,密碼編碼方式不相容官網說明:

http://dev.mysql.com/doc/refman/4.1/en/old-client.html

若要用舊的編碼方法,必須使用以下兩個set password 功能OLD_PASSWORD 方法

Page 17: 第六類