1. 程式人生 > >Mysql_innobackupex全備份+binlog進行恢復(可用)

Mysql_innobackupex全備份+binlog進行恢復(可用)



準備備份檔案:全備份+binlog進行恢復:
配置好MySQL
解壓MySQL的安裝檔案,把安裝檔案的bin目錄配置到環境變數檔案裡面
把/usr/local/mysql/bin新增到PATH路徑下。
[[email protected] ~]# cat /root/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
export PATH
執行生效配置檔案:
source  /root/.bash_profile

檢視備份檔案
[[email protected] 102]# ll
-rw-r-----  1 root  root  72087554560 Jun 15 10:18 all.tar
drwxr-xr-x 11 mysql mysql        4096 Jul  3 13:09 base_all
-rw-r-----  1 root  root     40555266 Jun 15 10:06 master-bin.000318
-rw-r-----  1 root  root        83286 Jun 15 10:06 master-bin.000319
-rw-r-----  1 root  root        83286 Jun 15 10:06 master-bin.000320
-rw-r-----  1 root  root      1884620 Jun 15 10:06 master-bin.000321
-rw-r-----  1 root  root       598372 Jun 15 10:06 master-bin.000322
-rw-r-----  1 root  root       492040 Jun 15 10:06 master-bin.000323
-rw-r-----  1 root  root      6725783 Jun 15 10:06 master-bin.000324

解壓全備份:
[[email protected] 102]#tar -xvf  /data/102/all.tar  -C  /data/102/base_all

複製生產環境的配置檔案,一定要複製,不然有可能會報各種錯誤。特別是資料檔案目錄要和生產環境一致。
[[email protected] 102]# cat /etc/my.cnf
[client]
port = 3306
socket =/data/mysql/data/mysql.sock
#default-character-set=gbk

[mysql]
no-auto-rehash

[mysqld]
## enable autocommit
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true
character_set_server = gbk
auto_increment_increment= 2
auto_increment_offset   = 1
lower_case_table_names=1
# system
basedir=/usr/local/mysql
datadir=/data/mysql/data/
max_allowed_packet=134217728
max_connections=8192
max_user_connections=8000
open_files_limit=65535
pid_file=/data/mysql/data/mysqld.pid
port=3306
server_id=128
skip_name_resolve=ON
socket=/data/mysql/data/mysql.sock
tmpdir=/data/mysql/tmp

# binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=15
log-bin=/data/mysql/log/binlog/master-bin
log-bin-index=/data/mysql/log/binlog/master-bin.index
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#relay
#relay-log=/data/mysql/log/relaylog/slave-relay-bin
#relay-log-index=/data/mysql/log/relaylog/slave-relay-bin.index


# LOGGING #
log_error                      = /data/mysql/log/alert.log
log_queries_not_using_indexes  = 1
slow_query_log                = 1
slow_query_log_file            = /data/mysql/log/slow.log
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#slave#
slave_skip_errors=OFF
log_slave_updates=ON

# innodb #
innodb_log_group_home_dir=/data/mysql/log/iblog
innodb_data_home_dir=/data/mysql/log/iblog
innodb_adaptive_flushing=1
#innodb_additional_mem_pool_size=20M
innodb_buffer_pool_instances=8
innodb_change_buffering=inserts
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 4
innodb_log_file_size          = 100M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
innodb_buffer_pool_size        = 5G
#innodb_file_format=Barracuda
#innodb_file_io_threads=4
innodb_flush_neighbors=0
innodb_io_capacity=200
innodb_lock_wait_timeout=5
innodb_log_buffer_size=64M
innodb_lru_scan_depth=2048
innodb_max_dirty_pages_pct=60
innodb_old_blocks_time=1000
innodb_online_alter_log_max_size=200M
innodb_open_files=200
innodb_print_all_deadlocks=1
innodb_purge_threads=4
innodb_read_ahead_threshold=0
innodb_read_io_threads=8
innodb_rollback_on_timeout=0
innodb_sort_buffer_size=2M
innodb_spin_wait_delay=6
innodb_stats_on_metadata=0
innodb_strict_mode=1
innodb_sync_array_size=256
innodb_sync_spin_loops=30
innodb_thread_concurrency=64
innodb_use_native_aio=0
innodb_write_io_threads=8
innodb_support_xa=1


給配置檔案準備好目錄和許可權
[[email protected] 102]#mkdir  -p  /data/mysql/data/
[[email protected] 102]# mkdir -p /data/mysql/tmp
[[email protected] 102]# mkdir -p /data/mysql/log/binlog
[[email protected] 102]# mkdir -p /data/mysql/log/iblog
[[email protected] 102]# chown -R mysql:mysql /data/mysql/data/
[[email protected] 102]# chown -R mysql:mysql /data/mysql/tmp
[[email protected] 102]# chown -R mysql:mysql /data/mysql/log/binlog
[[email protected] 102]# chown -R mysql:mysql /data/mysql/log/iblog
[[email protected] 102]# touch /data/mysql/log/alert.log
[[email protected] 102]# chown mysql:mysql  /data/mysql/log/alert.log

 
準備(prepare)一個完全備份, --apply-log  , /data/102/base_all2為全備份的目錄
[[email protected] 102]#innobackupex --defaults-file=/etc/my.cnf  --apply-log?  /data/102/base_all

拷貝檔案到/etc/my.cnf配置檔案的資料目錄下:
 [[email protected] base_all]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/102/base_all/

檢視binlog的資訊
[[email protected] base_all]# cat xtrabackup_binlog_info
master-bin.000318       37811760

啟動MySQL
[[email protected] 102]# chown -R mysql:mysql /data/mysql/data/
[[email protected] base_all]#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

檢視MySQL的程序是否存在
[[email protected] base_all]#ps -ef|grep mysql

恢復binlog日誌資料:
[[email protected] base_all]# mysqlbinlog /data/102/master-bin.000318 --start-position='37811760' |mysql -uroot -p
[[email protected] base_all]#mysqlbinlog /data/102/master-bin.000319 | mysql -uroot -p -P3306
[[email protected] base_all]# mysqlbinlog /data/102/master-bin.000321 |mysql -uroot -p  -P3306
[[email protected] base_all]# mysqlbinlog /data/102/master-bin.000321 |mysql -uroot -p  -P3306
[[email protected] base_all]# mysqlbinlog /data/102/master-bin.000322 |mysql -uroot -p  -P3306
[[email protected] base_all]# mysqlbinlog /data/102/master-bin.000323 |mysql -uroot -p  -P3306

相關推薦

Mysql_innobackupex備份+binlog進行恢復(可用)

準備備份檔案:全備份+binlog進行恢復:配置好MySQL解壓MySQL的安裝檔案,把安裝檔案的bin目錄配置到環境變數檔案裡面把/usr/local/mysql/bin新增到PATH路徑下。[[email protected] ~]# cat /root/.

使用xtrbackup/mysqldump備份+binlog備份恢復到最近一個時間點

先用xtrabackup做全備: innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=123 /home/backup/xtrabackup/ 全備完成之後新建sanguoyanyi表,並插入

用Mysqldump實現備份+binlog的數據還原

備份 mysql 隨著業務量的增長,數據庫也是成倍增長,原來一直使用的全庫備份不再適合現在的數據庫了,動輒就備份10G-20G,太占用磁盤空間,所以就考慮用更簡潔更快速更節省磁盤空間的備份方法,這就想到了使用binlog日誌來進行備份和恢復,下面是具體實施的方法:環境介紹:操作系統:Centos

MySQL數據庫 分表分庫備份及批量恢復如何進行

eight -- sim /bin/bash nbsp AR ble height l數據庫 腳本實現#!/bin/bashfor db_name in `mysql -e "show databases;"|sed 1d` do mkdir

實驗:模擬場景中誤刪除mysql數據庫表,然後使用備份以及二進制日誌文件恢復操作

skip images 目錄 mysqldump 系統 cde tables ransac 環境 一、實驗環境: 1、準備兩臺虛擬機,一臺用於破壞數據庫,一臺用於還原,兩臺在同一個網絡 2、兩臺最小化安裝centos 7系統,並直接yum安裝maraidb數據庫 3、準備一

oracle11g簡單的物理備份恢復

1.檢視所有資料檔案 select * from dba_data_files; C:\ORACLE\ORADATA\ORCL\USERS01.DBF C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF C:\ORACLE\ORADATA\ORCL\S

rman對oralce資料進行備份

第一:登入rman 執行rman target / 可進入rman 第二:檢視和刪除備份 進入rman後 執行list backup命令 可以看到所有的備份集,以及存放目錄 執行delete backupset bsid 可以刪除某一個備份 bsid 是備份集的id,在

利用binlog進行日誌恢復

過濾檢視記錄 [[email protected]]# /usr/bin/mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000001 | more 全部執行 [[email protected]

利用xtrabackup進行增量備份和增量恢復的實驗

一.xtrabackup下載安裝 下載:http://www.percona.com/redir/downloads/XtraBackup 並解壓到/usr/local下: tar -xvf percona-xtrabackup-2.0.7-552.tar.gz -C /u

mysql5.6使用xtrabackup和binlog進行完全恢復

1、連輸mysql,檢視mysql版本:[[email protected] binlog]$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; o

Oracle Database 12c RMAN量+增量備份+歸檔日誌恢復詳解

Oracle可以非常方便的把資料庫恢復到具體某個時間的狀態,而且還支援全備和多級增備,備份無需停止應用服務。比起DB2需要手動逐級恢復增量備份和歸檔日誌,RMAN是非常簡單好用的資料庫商業解決方案。下面是我的環境:作業系統:CentOS 6.7Oracle版本:Oracle

Mysql binlog備份資料及恢復資料,學會這個,我在也不怕刪庫跑路啦~

導讀   我一直都主張,技多不壓身(沒有學不會的技術,只有不學習的人),多學一項技能,未來就少求人一次。網上經常聽到xxx刪庫跑路,萬一真的遇到了,相信通過今天的學習,也能將資料再恢復回來~~~   當然啦,備份資料/還原資料也是挺重要的,可以看我另一篇:點我直達   如果感覺這樣還不安全,可以考慮授予使用者

Git系列七之備份遷移 升級 恢復管理

nss 安裝git host load centos -perm 文件拷貝 node chm 0.Gitlab安裝 1.安裝和配置必要的依賴關系在CentOS7,下面的命令將在系統防火墻打開HTTP和SSH訪問。 yum install curl openssh-ser

mysql 數據庫定時備份 增量/備份

重新 console select 顯示 邏輯 chang 應該 sta 服務 實驗樓的 MySQL 數據庫需要設計一個自動備份方案,能夠每周執行一次全備份,每天執行一次增量備份。 數據庫名稱為 shiyanlou,管理的用戶名為 shiyanlou,密碼為 shiyanl

跳過丟失歸檔進行恢復

sequence spec sed mine rdb 跳過 ora- value corrupt 在我們恢復的時候,發現中間缺失歸檔,大部分dba覺得從缺失的歸檔開始以後的歸檔都無法進行恢復。可是我們從很規的方式,改動數據文件相應的信息是能夠跳過該缺失的歸檔,而且利

sqlserver備份,差異備份和日誌備份

serve center 圖片 正常 gravity 完整備份 bsp nts == 差異備份是以上一個全備為基點,這個期間所有差異數據的備份。 日誌備份是基於前一個全備+日誌備份為基點,這個期間的事務日誌的備份。(日誌備份用於確保還原數據庫到某個時間點)

如何將阿裏雲mysql RDS備份文件恢復到自建數據庫

進程 .cn nec 寫到 rds 原因 indent bit edge 參考地址:https://help.aliyun.com/knowledge_detail/41817.html PS:目前恢復只支持 Linux 下進行。Linux下恢復的數據文件,無論 Windo

mysql系列之6--------使用第三方工具-percona來備份mysql和恢復

文件目錄 restart form rpm 導入 完全備份 mys 只需要 schema 使用第三方工具來備份mysql-----percona一、前期準備工作: 1、安裝依賴包:yum -y install perl-Digest-MD5 perl-DBD-

mysql-binlog日誌恢復數據庫

rop mysql- master share int 查看 start row 分享圖片 mysqlbinlog常見的選項有以下幾個:--start-datetime:從二進制日誌中讀取指定等於時間戳或者晚於本地計算機的時間--stop-datetime:從二進制日誌中

MySQL第四天(用戶授權與撤銷,完全備份和完全恢復

運維day04一、用戶授權與撤銷數據庫管理員密碼設置?1.1修改數據庫管理員本機登錄密碼[root@db2 ~]# mysqladmin -hlocalhost -uroot -p password "123456"Enter password: mysqladmin: [Warning]