使用innobackupex回覆數據備份

初次發帖,沒技術含量,勿噴。
mysql

wget到innobackupex的rpm包,安裝好。
linux

innobackupex版本V1.5.1,mysql版本5.1.61sql

拿到一個2014-2-17.tar.gz的DB壓縮包,先解壓數據庫

tar -zxf 2014-2-17.tar.gzsocket

新建一個空目錄:mkdir ~/mysql/data
spa

從/etc目錄下複製一個my.cnf到~/mysql/data目錄下,cp /etc/my.cnf ~/mysql/dataserver

權限的問題我就很少說了,用過linux你們都會。get

而後修改拷貝過來的my.cnf,將datadir=~/mysql/data,socket=~/mysql/data/mysql.sockit

而後到數據備份目錄下找到xtrabackup.logfile,這個文件是還原數據的依據。innodb

查看一下backup-my.cnf,將裏面的一些innodb的默認參數設置也複製粘貼到~/mysql/data/my.cnf中、

如今~/mysql/data/my.cnf中的內容應該是以下:

[mysqld]

datadir=~/mysql/data

socket=~/mysql/data/mysql.sock

#[mysql.server]

user=mysql

#basedir=~/mysql/data

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

innodb_data_file_path=ibdata1:10M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=5242880

#innodb_fast_checksum=0

#innodb_page_size=16384

#innodb_log_block_size=512


[mysqld_safe]

datadir=~/mysql/data

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid


#[client]

#socket=/var/lib/mysql/mysql.sock

切到~/backup/2014-2-17目錄下,執行數據恢復的命令

innobackupex --copy-back --defaults-file=./mysql/data/my.cnf .

這裏的--copy-back的意思就是解壓後存放到以./mysql/data/my.cnf默認配置的路徑下。

而後就是要重建恢復後的數據庫,修改mysql訪問的數據庫。

先停掉mysql的服務,pkill -9 mysqld或者service mysqld stop

刪掉~/mysql/data下面的mysql文件夾

而後mysql_install_db --datadir=`pwd` --user=root

修改~/mysql/data的屬主 chown -R mysql.mysql ~/mysql

修改my.cnf文件將socket=/var/lib/mysql/mysql.sock

修改my.cnf的權限,chmod 660 ~/mysql/data/my.cnf

而後啓動你剛剛建好的數據庫的服務:/usr/bin/mysqld_safe --defaults-file=my.cnf &

這裏說一下,正常狀況你輸mysql就進入linux的數據庫了,但那個是默認數據庫,你會找不到你

剛剛恢復的數據。也就是說,你改了服務端客戶端是不知道的,除非你修改默認訪問的數據庫,要修改

/etc/init.d/mysqld文件。

仍是手動啓吧,要知道mysql只是封裝了的mysqld_safe的命令合集。啓動以後ps ax|grep mysqld就能夠看到你按照

新建的數據庫路徑啓動的服務。

輸入mysql -uroot 便可進入剛剛新建的數據庫。

另外告訴你們一個技巧,若是你遇到了錯誤,又沒提示你什麼錯誤,你能夠查看/var/log/mysqld.log文件看最後幾行

會有錯誤的記錄的。

相關文章
相關標籤/搜索