自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Fedora MySQL完整備份數(shù)據(jù)的恢復(fù)

系統(tǒng) Linux
如果你的Fedora MySQL服務(wù)器不允許停止服務(wù),那么我們可以使用Fedora MySQL的熱備份工具:Fedora MySQLldump,它的原理是把數(shù)據(jù)庫(kù)內(nèi)的內(nèi)容全部用sql語(yǔ)句進(jìn)行描述,這樣做的好處是我們導(dǎo)出來(lái)的這些sql語(yǔ)句只需簡(jiǎn)單的批量修改一些和別的數(shù)據(jù)庫(kù)不兼容的地方,就能把Mysql的數(shù)據(jù)導(dǎo)出到oracle等其它數(shù)據(jù)庫(kù)內(nèi)

Fedora MySQL對(duì)于電腦使用的玩家的常用軟件,然后我就學(xué)習(xí)及深入的研究Fedora MySQL,在這里和大家一起探討Fedora MySQL的使用方法,希望對(duì)大家有用。

一、實(shí)驗(yàn)環(huán)境

系統(tǒng)版本:Fedora 10 MySQL版本: Fedora MySQL 5.0

二、Fedora MySQL完整備份

如果你的數(shù)據(jù)庫(kù)允許停止服務(wù)并且需要備份數(shù)據(jù)量很大,你可以停止服務(wù)后直接復(fù)制數(shù)據(jù)庫(kù)對(duì)應(yīng)的文件:/var/lib/mysql/database 這樣的每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)于一個(gè)實(shí)際的目錄,直接復(fù)制備份即可。

如果你的Fedora MySQL服務(wù)器不允許停止服務(wù),那么我們可以使用Fedora MySQL的熱備份工具:Fedora MySQLldump,它的原理是把數(shù)據(jù)庫(kù)內(nèi)的內(nèi)容全部用sql語(yǔ)句進(jìn)行描述,這樣做的好處是我們導(dǎo)出來(lái)的這些sql語(yǔ)句只需簡(jiǎn)單的批量修改一些和別的數(shù)據(jù)庫(kù)不兼容的地方,就能把Mysql的數(shù)據(jù)導(dǎo)出到oracle等其它數(shù)據(jù)庫(kù)內(nèi)。

mysqldump -uroot -p test > /tmp/test.sql 這條語(yǔ)句導(dǎo)出了test表到test.sql文件中,我們來(lái)看下導(dǎo)出的主要內(nèi)容吧:

  1. -- Table structure for table `books`   
  2. DROP TABLE IF EXISTS `books`;   
  3. SET @saved_cs_client = @@character_set_client;   
  4. SET character_set_client = utf8;   
  5. CREATE TABLE `books` (   
  6. `id` int(11) default NULL,   
  7. `name` text,   
  8. `publish` date default NULL,   
  9. `author` text   
  10. ENGINE=MyISAM DEFAULT CHARSET=latin1;   
  11. SET character_set_client = @saved_cs_client;   
  12. -- Dumping data for table `books`   
  13. LOCK TABLES `books` WRITE;   
  14. INSERT INTO `books` VALUES (0,'Go to China','2002-10-21','Jim');  


我們可以看到創(chuàng)建表和插入數(shù)據(jù)的sql語(yǔ)句。

三、Fedora MySQL數(shù)據(jù)的恢復(fù)

有了完整備份和二進(jìn)制日志,如果發(fā)生一些誤操作或數(shù)據(jù)庫(kù)當(dāng)機(jī),我們就能夠利用完全備份以及二進(jìn)制日志來(lái)把我們發(fā)生誤操作之前的內(nèi)容恢復(fù)出。舉例:我們?cè)谕暾麄浞莺?,?duì)數(shù)據(jù)庫(kù)有刪除和更新記錄等操作,隨后有人誤操作,把整個(gè)表全部清空,我們現(xiàn)在來(lái)恢復(fù)到清空前的狀態(tài)。首先,實(shí)驗(yàn)的前提是在打來(lái)了二進(jìn)制日志的情況下,去/etc/my.conf下,添加:log-bin=BinLog binlog-do-db=test

當(dāng)服務(wù)重新運(yùn)行起來(lái)之后,進(jìn)入Fedora MySQL

  1. mysql>show master status;  
  2.  
  3. +---------------------+---------------+--------------------+-------------------------------+   
  4.  
  5. | File                | Position      | Binlog_Do_DB       | Binlog_Ignore_DB              |   
  6.  
  7. +---------------------+---------------+--------------------+-------------------------------+   
  8.  
  9. | BinLog.000003       | 98            | test               |                               |   
  10.  
  11. +---------------------+---------------+--------------------+-------------------------------+   

提示我們test這個(gè)數(shù)據(jù)庫(kù)當(dāng)前在用BinLog.000003這個(gè)二進(jìn)制日志記錄。下面,我們開(kāi)始模擬一些操作:

  1. mysql> insert into books set   
  2. -> id=2,   
  3. -> name='Learn C++',   
  4. -> publish='2003-01-12',   
  5. -> author='jak'   
  6. -> ;   
  7. mysql> update books set author='Jerry' where id=0; delete from books;  

誤操作以后,我們發(fā)現(xiàn)數(shù)據(jù)全部清空了,下面開(kāi)始回復(fù)。首先是恢復(fù)到完全備份:Fedora MySQLdump -uroot -p test < /tmp/test.sql 接下來(lái),我們用二進(jìn)制日志來(lái)恢復(fù)后來(lái)一直到清除表以前的操作:首先我們看下完全備份文件的時(shí)間戳:stat /tmp/test.sql | grep Change Change: 2009-05-22 21:56:42.000000000 +0800 可以看到,完全備份完成的時(shí)間是2009-05-22 21:56:42,我們使用這個(gè)時(shí)間作為二進(jìn)制日志回復(fù)的開(kāi)始時(shí)間。

接下來(lái),我們需要知道清空表的那個(gè)操作執(zhí)行的時(shí)間:mysqlbinlog /var/lib/mysql/BinLog.000003我們找到delete from books這條句子,查看時(shí)間。#090522 22:24:12 server id 1 end_log_pos 532 Query thread_id=3 exec_time=0 error_code=0 SET TIMESTAMP=1243002252/*!*/; delete from books

可見(jiàn)刪除發(fā)生的時(shí)間為090522 22:24:12這樣,我們就確定了開(kāi)始的時(shí)間和結(jié)束的時(shí)間,接下來(lái)開(kāi)始重新執(zhí)行完全備份到發(fā)生誤操作這段時(shí)間內(nèi)的這些操作。mysqlbinlog --start-date="2009-05-22 21:56:42" --stop-date="2009-05-22 22:24:12" /var/lib/mysql/BinLog.000003 | mysql -uroot -p執(zhí)行完后,我們?nèi)?shù)據(jù)庫(kù)內(nèi)可以驗(yàn)證一下。

由于二進(jìn)制日志對(duì)操作的時(shí)間記錄精確到秒,如果我們一秒內(nèi)發(fā)生多個(gè)操作就不能這樣了,我們可以用另外一個(gè)選項(xiàng)。mysqlbinlog --start-position=”****” --stop-position=”*****” /var/lib/mysql/BinLog.000003 | mysql -uroot以上的****表示對(duì)應(yīng)的操作在二進(jìn)制日志內(nèi)的POS數(shù)值,我們需要自己從日志中得到這個(gè)數(shù)據(jù)來(lái)確定,讀者可以嘗試之。

四、AB復(fù)制

Ab復(fù)制可以使兩個(gè)數(shù)據(jù)庫(kù)服務(wù)器在運(yùn)行中保持某個(gè)庫(kù)或全部庫(kù)內(nèi)容的一致,其原理基于Fedora MySQL的二進(jìn)制日志會(huì)不斷的記錄對(duì)數(shù)據(jù)庫(kù)的所有操作,只要我們初期兩個(gè)數(shù)據(jù)庫(kù)內(nèi)容一致的話,讓主服務(wù)器打開(kāi)某個(gè)庫(kù)的二進(jìn)制日志、從數(shù)據(jù)庫(kù)在相同的庫(kù)內(nèi)容的基礎(chǔ)上接受主服務(wù)的日志并執(zhí)行相同的操作。主服務(wù)器IP:192.168.0.32 從服務(wù)器IP:192.168.0.21

1、首先我們需要打開(kāi)主服務(wù)器需要同步的庫(kù)的二進(jìn)制日志功能:修改/etc/my.conf

[mysqld]
server-id=1 //修改服務(wù)器ID log-bin=BinLog //二進(jìn)制日志文件名binlog-do-db=test //對(duì)test這個(gè)庫(kù)執(zhí)行二進(jìn)制日志操作接下來(lái)我們重啟主服務(wù)器,并且添加一個(gè)授權(quán)用戶讓從服務(wù)器獲取日志使用:

service mysqld restart;Fedora MySQL>grant replication slave,reload,super on test.* to slave@192.168.0.21 identified by 'slavepass'mysql>flush privileges #刷新授權(quán)表以上操作完成后我們從從服務(wù)器使用新賬戶登錄一下主服務(wù)器,檢驗(yàn)是否連接成功。mysql -uslave -pslavepass -h191.168.0.21

2、從服務(wù)器的設(shè)置稍復(fù)雜一些,首先是修改/etc/my.conf

增加這些內(nèi)容:

  1. [mysqld]  
  2. server-id=2 
  3. master-host=192.168.0.32  
  4. master-user=slave 
  5. master-password=slavepass 

Fedora MySQL配置完成后,我們需要重啟服務(wù):

  1. service mysqld restart進(jìn)入從服務(wù)器的mysql客戶端,  
  2. mysql>start slave;  
  3. mysql>load data from master;  
  4. mysql>show slave status"G; #顯示從服務(wù)器狀態(tài) 

Fedora MySQL上面的命令的返回結(jié)果:

  1. Slave_IO_State: Waiting for master to send event   
  2. Master_Host: 192.168.0.32 #主服務(wù)器IP地址  
  3. Master_User: slave #用戶名  
  4. Master_Port: 3306   
  5. Connect_Retry: 60   
  6. Master_Log_File: BinLog.000002 #讀取的主服務(wù)器的二進(jìn)制日志  
  7. Read_Master_Log_Pos: 98 #讀取到的二進(jìn)制日志的位置  
  8. Relay_Log_File: mysqld-relay-bin.000006   
  9. Relay_Log_Pos: 232   
  10. Relay_Master_Log_File: BinLog.000002   
  11. Slave_IO_Running: Yes #IO是否已經(jīng)啟動(dòng)  
  12. Slave_SQL_Running: Yes #SQL是否已經(jīng)啟動(dòng) 

3、Fedora MySQL測(cè)試服務(wù)是否正常

我們看到以上的從Fedora MySQL服務(wù)器狀態(tài)后,可以在主服務(wù)器操作test這個(gè)庫(kù),增加表,插入數(shù)據(jù),刪除更新等操作都會(huì)在從服務(wù)器上全部復(fù)制出來(lái)。

【編輯推薦】

  1. Fedora mysql安裝如何啟動(dòng)設(shè)置
  2. Fedora funambol架設(shè)自己的syncml服務(wù)器
  3. Fedora xpdf大概的執(zhí)行步驟
  4. Fedora Core 5菜單結(jié)構(gòu)安裝或是反安裝需要軟件
  5. Fedora skin使用了絕對(duì)字型
責(zé)任編輯:佚名 來(lái)源: csdn
相關(guān)推薦

2011-08-15 09:48:30

MySQL數(shù)據(jù)庫(kù)完整備份增量備份

2020-05-22 07:00:00

合成完整備份備份數(shù)據(jù)

2011-08-15 09:19:22

2010-10-12 17:23:40

MySQL命令行

2017-07-10 14:26:03

Mysql數(shù)據(jù)備份數(shù)據(jù)恢復(fù)

2018-10-15 14:28:21

SQLServer容災(zāi)備份

2021-09-13 15:31:28

戴爾

2022-04-06 15:19:32

數(shù)據(jù)庫(kù)MySQL一致性

2018-09-11 10:30:18

MySQL存儲(chǔ)引擎數(shù)據(jù)備份

2011-03-17 16:42:00

2024-04-12 13:57:51

2010-06-09 13:47:31

MySQL直接備份數(shù)據(jù)

2023-12-07 15:12:52

2021-06-09 08:05:02

Linux 備份數(shù)據(jù)

2021-06-18 10:28:56

Linuxrsync命令

2010-06-07 14:09:12

mysqldump備份

2017-02-10 10:40:29

macOSTime MachinGitlab

2015-07-27 09:33:26

備份數(shù)據(jù)加密工具

2020-11-12 09:38:31

安全數(shù)據(jù)勒索軟件

2010-05-13 14:37:26

MySQL備份數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)