操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊


    份和恢復

    備份類型:


    完全備份,部分備份


    完全備份:整個數(shù)據(jù)集


    1 部分備份:只備份數(shù)據(jù)子集,如部分庫或表


    完全備份、增量備份、差異備份


    2增量備份:僅備份最近一次完全備份或增量備份(如果存在增量)以來變化的數(shù)據(jù),備份較快,還原復雜


    3差異備份:僅備份最近一次完全備份以來變化的數(shù)據(jù),備份較慢,還原簡單


    注意:二進制日志文件不應該與數(shù)據(jù)文件放在同一磁盤


    備份和恢復

    冷、溫、熱備份


    冷備:讀寫操作均不可進行

    溫備:讀操作可執(zhí)行;但寫操作不可執(zhí)行


    熱備:讀寫操作均可執(zhí)行

    MyISAM:溫備,不支持熱備


    InnoDB:都支持


    物理和邏輯備份


    物理備份:直接復制數(shù)據(jù)文件進行備份,與存儲引擎有關,占用較多的空間,速度快


    邏輯備份:從數(shù)據(jù)庫中“導出”數(shù)據(jù)另存而進行的備份,與存儲引擎無關,占用空間少,速度慢,可能丟失精度


    備份時需要考慮的因素

    溫備的持鎖多久


    備份產生的負載


    備份過程的時長


    恢復過程的時長


    備份什么

    數(shù)據(jù)


    二進制日志、InnoDB的事務日志


    程序代碼(存儲過程、函數(shù)、觸發(fā)器、事件調度器)


    服務器的配置文件


    備份工具

    cp, tar等復制歸檔工具:物理備份工具,適用所有存儲引擎;只支持冷備;完全和部分備份


    LVM的快照:先加鎖,做快照后解鎖,幾乎熱備;借助文件系統(tǒng)工具進行備份


    mysqldump:邏輯備份工具,適用所有存儲引擎,溫備;支持完全或部分備份;對InnoDB存儲引擎支持熱備,結合binlog的增量備份


    xtrabackup:由Percona提供支持對InnoDB做熱備(物理備份)的工具,支持完全備份、增量備份


    MariaDB Backup: 從MariaDB 10.1.26開始集成,基于PerconaXtraBackup 2.3.8實現(xiàn)


    mysqlbackup:熱備份, MySQL Enterprise Edition組件


    mysqlhotcopy:PERL 語言實現(xiàn),幾乎冷備,僅適用于MyISAM存儲引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp來快速備份數(shù)據(jù)庫


    冷備份

    有局限,需要停服務,影響生產,不建議使用。


    把數(shù)據(jù)庫遷移到一個干凈的主機兩臺主機的版本一樣。


    步驟:


    1 停干凈主機的數(shù)據(jù)庫服務 systemctl stop mariadb


    2 進出 /var/lib/mysql/ 打包所有的文件tar -Jcvf /data/mysql.bak.tar.xz /var/lib/mysql


    3 拷貝打包的文件給另一臺干凈主機


    scp /data/mysql.bak.tar.xz 192.168.32.11:/data;為確保兩邊配置文件相同應該拷貝配置文件。


    4 在干凈主機/var/lib/mysql/下解壓縮/data文件下的 mysql.bak.tar.xz文件。


    5 注意解壓后文件屬性問題。


    (注意chown -R mysql.mysql )


    5 重啟服務 systemctl start mariadb


    基于LVM的備份

    步驟:

    1 fdisk /dev/sda 創(chuàng)建分區(qū) m、P、n、t、w


    2 partprobe 同步


    3 pvcreate /dev/sda6 創(chuàng)建物理卷


    vgcreate vg_data /dev/sda6 在設備上創(chuàng)建卷組 卷組名為vg_data


    4 創(chuàng)建邏輯卷(這里要創(chuàng)建兩個一個放數(shù)據(jù),一個放日志)


    lvcreate -n mysqldata -L 2G vg_data 名字為mysqldata 大小為2G 在vg_data 上


    lvcreate -n binlog -L 4G vg_data(同上)


    5查看卷組信息 lvs


    6 格式化文件系統(tǒng)


    mkfs.xfs /dev/vg_data/mysqldata


    mkfs.xfs /dev/vg_data/binlog


    blkid


    7 創(chuàng)建文件用于掛載


    mkdir /vg_data/{binlog,mysqldata} -pv


    8 掛載


    mount /dev/vg_data/binlog /vg_data/binlog/


    mount /dev/vg_data/mysqldata /vg_data/mysqldata/


    9 修改配置文件


    vim /etc/my.cnf


    innodb_file_per_table


    datadir=/vg_data/mysqldata


    log_bin=/vg_data/binlog/mysql-bin


    10 查看文件屬性 /vg_data/


    ll /vg_data


    chown -R mysql.mysql /vg_data


    11 重啟服務


    systemctl restar mariadb


    12 導入新數(shù)據(jù) mysql < hellodb


    13 請求鎖定所有表


    mysql -e 'flush tables with read lock'


    14 記錄二進制日志文件及事件位置


    mysql -e 'show master logs' > bin.log


    cat bin.log


    15創(chuàng)建快照 lvcreate -p r -s -n snap_mysql -L 1G /dev/vg_data/mysqldata


    16釋放鎖 mysql -e 'unlock tables'


    17 掛載快照卷,執(zhí)行數(shù)據(jù)備份(由于uuid相同)用這個方式掛載


    mount -o nouuid,norecovery /dev/vg_data/snap_mysql /mnt


    18 備份完成后,刪除快照卷


    cp -av /mnt/* /data/


    umount /mnt


    lv


    lvremove /dev/vg_data/snap_mysql


    lvs


    19 制定好策略,通過原卷備份二進制日志


    cd /vg_data/binlog/ 進入二進制文件日志存放目錄


    mysql -e 'show binary logs' 顯示日志


    cd /root


    cat bin.log 記錄備份的編號記錄為7697


    mysqlbinlog --start-position-7697 mysql-bin.000001 > /root/logbin.sql


    導出7697后的記錄為mysql-bin.000001


    20 導入數(shù)據(jù) 在這之前要關閉數(shù)據(jù)庫二進制數(shù)據(jù)庫日志


    show variables like '%log_bin';


    set aql_log_bin=off;


    source /root/binlog.sql; 導入數(shù)據(jù)


    開啟二進制日志


    set sql_log_bin=on;


    備份和恢復

    邏輯備份工具:mysqldump, mydumper, phpMyAdmin


    Schema和數(shù)據(jù)存儲在一起、巨大的SQL語句、單個巨大的備份文件


    mysqldump工具:客戶端命令,通過mysql協(xié)議連接至mysql服務器進行備份


    mysqldump [OPTIONS] database [tables]


    mysqldump [OPTIONS] –B DB1 [DB2 DB3...]


    mysqldump [OPTIONS] –A [OPTIONS]


    mysqldump


    mysqldump hellodb 只顯示文本信息,如果要備份要從定向到一個文件中


    mysqldump hellodb > /data/hellodb_bak.sql


    mysqldump常見選項:

    -A, --all-databases 備份所有數(shù)據(jù)庫,含create database


    -B , --databases db_name… 指定備份的數(shù)據(jù)庫,包括create database語句


    mysqldump -B hellodb > /data/bak_B.sql(這樣文件特別大,因為是文本可以壓縮)所以有以下


    mysqldump -B hellodb | gzip > /data/helldb_bak.sql.gz


    -E, --events:備份相關的所有event scheduler


    -R, --routines:備份所有存儲過程和自定義函數(shù)


    --triggers:備份表相關觸發(fā)器,默認啟用,用--skip-triggers,不備份觸發(fā)器


    --default-character-set=utf8 指定字符集


    --master-data[=#]: 此選項須啟用二進制日志


    備份二進制日志時記錄二進制日志位置


    1:所備份的數(shù)據(jù)之前加一條記錄為CHANGE MASTER TO語句,非注釋,不指定#,默認為1(涉及到主從復制)


    mysqldump -A --master-data=1 > all.sql


    有記錄備份的位置


    2:記錄為注釋的CHANGE MASTER


    TO語句此選項會自動關閉--lock-tables功能,自動打開-x | --lock-all-tables功能(除非開啟--single-transaction)


    mysqldump -A --master-data=2 > all.sql


    注釋了備份的位置


    備份和恢復

    mysqldump常見選項:

    -F, --flush-logs:備份前滾動日志,鎖定表完成后,執(zhí)行flush logs命令,生成新的二進制日志文件,配合-A 或 -B 選項時,會導致刷新多次數(shù)據(jù)庫。建議在同一時刻執(zhí)行轉儲和日志刷新,可通過和--single-transaction或-x,--master-data 一起使用實現(xiàn),此時只刷新一次日志。


    mysqldum -F -B hellodb > all.sql


    mysql -e 'show master logs';


    -d, --no-data 只備份表結構


    -t, --no-create-info 只備份數(shù)據(jù),不備份create table


    -n,--no-create-db 不備份create database,可被-A或-B覆蓋


    --flush-privileges 備份mysql或相關時需要使用 刷新權限


    -f, --force 忽略SQL錯誤,繼續(xù)執(zhí)行


    --hex-blob 使用十六進制符號轉儲二進制列,當有包括BINARY,VARBINARY,BLOB,BIT的數(shù)據(jù)類型的列時使用,避免亂碼


    -q, --quick 不緩存查詢,直接輸出,加快備份速度


    分庫備份腳本(一個數(shù)據(jù)庫備份在一個獨立的文件中)在生成中要備份mysql數(shù)據(jù)庫中因為這里面放的是用戶賬號密碼還有一些其他的、、、

    (1)mysql -e 'show databases' | grep -Ev '^Database|info|performanc'|while read dbname;do mysqldump -B $dbname | gzip > /data/${dbname}_bak'date +%F`.gz;done


    (2)mysql -e 'show databases' | grep -Ev '^Database|info|performanc' |sed -r 's@(.*)@mysqldump -B | gzip > /data/__bak'date +%F`.gz@' |bash


    (3)for db in 'mysql -e 'show databases' | grep -Ev '^Database|info|performanc''; do mysqldump -B $db |gzip > /data/${db}_bak'date +%F`.gz;done


    MyISAM備份

    支持溫備;不支持熱備,所以必須先鎖定要備份的庫,而后啟動備份操作


    鎖定方法如下:


    -x,--lock-all-tables:加全局讀鎖,鎖定所有庫的所有表,同時加--singletransaction或--lock-tables選項會關閉此選項功能。


    注意:數(shù)據(jù)量大時,可能會導致長時間無法并發(fā)訪問數(shù)據(jù)庫。


    -l,--lock-tables:對于需要備份的每個數(shù)據(jù)庫,在啟動備份之前分別鎖定其所有表,默認為on,--skip-lock-tables選項可禁用,對備份MyISAM的多個庫,可能會造成數(shù)據(jù)不一致。


    注:以上選項對InnoDB表一樣生效,實現(xiàn)溫備,但不推薦使用


    生產環(huán)境實戰(zhàn)備份策略

    InnoDB建議備份策略


    mysqldump –uroot –A –F –E –R --single-transaction --master-data=1 --flush-privileges --triggers--default-character-set=utf8 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql


    簡化:


    InnoDB建議備份策略


    mysqldump –uroot –A –F --single-transaction --master-data=1 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql


    MyISAM建議備份策略


    mysqldump –uroot –A –F –E –R –x --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql


    簡化


    mysqldump –uroot –A –F –x --master-data=1 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql


    實驗:完全備份,并還原至最新狀態(tài)

    1 準備


    vim /etc/my.cnf


    [mysqld]


    log-bin=/data/binlog/mysql-bin


    datadir=/var/lib/mysql


    2 備份


    mysqldump -A -F --single-transaction --master-data=2 | gzip > /data/all.sql.gz


    繼續(xù)修改數(shù)據(jù)


    3 模擬破壞


    systemctl stop mariadb


    rm -rf /var/lib/mysql/*


    還原時禁止用戶訪問數(shù)據(jù)庫


    iptables


    4 還原到備份時狀態(tài)


    systemctl start mariadb


    gzip -d /data/all.sql.gz


    mysql >set sql_log_bin=off;


    source /data/all.sql;


    5 還原到最新狀態(tài)


    grep "CHANGE MASTER" /data/all.sql 查看position mysql-bin.000002 245


    cd /data/binlog/


    mysqlbin --start-position=245 mysql-bin.000002 > /data/incr.sql


    mysqlbin mysql-bin.000003 >> /data/incr.sql


    mysqlbin mysql-bin.000004 >> /data/incr.sql


    mysql > set sql_log_bin=off;


    source /data/incr.sql;


    set sql_log_bin=on;


    6 開放用戶訪問數(shù)據(jù)庫


    實驗:恢復誤刪除的表

    1 準備,二進制日志功能啟用


    2 完全備份


    mysqldump -A -F --single-transaction --master-data=2 |gzip > /data/all.sql.gz


    3 修改數(shù)據(jù)庫


    4 刪除表10:00


    drop table testlog 刪除表


    5 修改數(shù)據(jù)庫10:10


    6 flush tables with read lock


    加全局鎖禁止用戶訪問用戶數(shù)


    7 還原到備份時狀態(tài)


    systemctl stop mariadb 停服務


    rm -rf /var/lib/mysql/*


    systemctl start mariadb


    gzip -d /data/all.sql.gz


    進入mysql


    set sql_log_bin=off;


    source /data/all.sql;


    8 分析二進制日志,找到drop table 指令


    grep -i "change master" /data/all.sql 245 mysql-bin.000002


    mysqlbinlog --start-position=245 mysql-bin.000002 > /data/incr.sql


    vim /data/incr.sql


    找到drop table 指令,注釋此指令


    mysqlbinlog mysql-bin.000003 >> /data/incr.sql


    mysqlbinlog mysql-bin.000004 >> /data/incr.sql


    9 還原到最新狀態(tài)


    進入mysql


    set sql_log_bin=off;


    source /data/incr.sql;


    set sql_log_bin=on;


    10 復查數(shù)據(jù)完整


    11 開放用戶訪問


    xtrabackup 備份

    Xtrabackup:percona提供的mysql數(shù)據(jù)庫備份工具,惟一開源的能夠對innodb和xtradb數(shù)據(jù)庫進行熱備的工具。


    特點:


    備份還原過程快速、可靠


    備份過程不會打斷正在執(zhí)行的事務


    能夠基于壓縮等功能節(jié)約磁盤空間和流量


    自動實現(xiàn)備份檢驗


    開源,免費


    Xtrabackup2.2版之前包括4個可執(zhí)行文件:


    1 innobackupex: Perl 腳本


    2 xtrabackup: C/C++ 編譯的二進制


    3 xbcrypt: 加解密


    4 xbstream: 支持并發(fā)寫的流文件格式


    xtrabackup版本升級到2.4后,相比之前的2.1有了比較大的變化:innobackupex 功能全部集成到 xtrabackup 里面,只有一個binary程序,另外為了兼容考慮,innobackupex作為 xtrabackup的軟鏈接,即xtrabackup現(xiàn)在支持非Innodb表備份,并且Innobackupex在下一版本中移除,建議通過xtrabackup替換innobackupex。

    xtrabackup 是用來備份 InnoDB 表的,不能備份非 InnoDB 表,和 MySQLServer 沒有交互。


    innobackupex 腳本用來備份非 InnoDB 表,同時會調用 xtrabackup 命令來備份 InnoDB 表,還會和 MySQL Server 發(fā)送命令進行交互,如加全局讀鎖(FTWRL)、獲取位點(SHOW SLAVE STATUS)等。即innobackupex是在xtrabackup 之上做了一層封裝實現(xiàn)的。


    雖然目前一般不用 MyISAM 表,只是 MySQL 庫下的系統(tǒng)表是 MyISAM 的,因此備份基本都通過 innobackupex 命令進行。


    Xtrabackup備份原理

    備份開始時首先會開啟一個后臺檢測進程,實時檢測mysq redo的變化,一旦發(fā)現(xiàn)有新的日志寫入,立刻將日志記入后臺日志文件xtrabackup_log中,之后復制innodb的數(shù)據(jù)文件一系統(tǒng)表空間文件ibdatax,復制結束后,將執(zhí)行flush tables with readlock,然后復制.frm MYI MYD等文件,最后執(zhí)行unlocktables,最終停止xtrabackup_log


    Xtrabackup增量備份介紹

    xtrabackup增量備份的原理是:


    1)、首先完成一個完全備份,并記錄下此時檢查點LSN;


    2)、然后增量備份時,比較表空間中每個頁的LSN是否大于上次備份的LSN,若是則備份該頁并記錄當前檢查點的LSN。


    增量備份優(yōu)點:


    1)、數(shù)據(jù)庫太大沒有足夠的空間全量備份,增量備份能有效節(jié)省空間,并且效率高;


    2)、支持熱備份,備份過程不鎖表(針對InnoDB而言),不阻塞數(shù)據(jù)庫的讀寫;


    3)、每日備份只產生少量數(shù)據(jù),也可采用遠程備份,節(jié)省本地空間;


    4)、備份恢復基于文件操作,降低直接對數(shù)據(jù)庫操作風險;


    5)、備份效率更高,恢復效率更高。


    Xtrabackup用法

    備份:innobackupex [option] BACKUP-ROOT-DIR


    1 --user:該選項表示備份賬號


    2 --password:該選項表示備份的密碼


    3 --host:該選項表示備份數(shù)據(jù)庫的地址


    4 --databases:該選項接受的參數(shù)為數(shù)據(jù)庫名,如果要指定多個數(shù)據(jù)庫,彼此間需要以空格隔開;如:"xtra_test dba_test",同時,在指定某數(shù)據(jù)庫時,也可以只指定其中的某張表。如:"mydatabase.mytable"。該選項對innodb引擎表無效,還是會備份所有innodb表


    5 --defaults-file:該選項指定從哪個文件讀取MySQL配置,必須放在命令行第一個選項位置


    6 --incremental:該選項表示創(chuàng)建一個增量備份,需要指定--incremental-basedir


    7 --incremental-basedir:該選項指定為前一次全備份或增量備份的目錄,與--incremental同時使用


    8 --incremental-dir:該選項表示還原時增量備份的目錄


    9 --include=name:指定表名,格式:databasename.tablename


    Prepare:innobackupex --apply-log [option] BACKUP-DIR


    選項說明:


    1 --apply-log:一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復操作,因為備份的數(shù)據(jù)中可能會包含尚未提交的事務或已經提交但尚未同步至數(shù)據(jù)文件中的事務。因此,此時數(shù)據(jù)文件仍處理不一致狀態(tài)。此選項作用是通過回滾未提交的事務及同步已經提交的事務至數(shù)據(jù)文件使數(shù)據(jù)文件處于一致性狀態(tài)


    2 --use-memory:和--apply-log選項一起使用,當prepare 備份時,做crashrecovery分配的內存大小,單位字節(jié),也可1MB,1M,1G,1GB等,推薦1G


    3 --export:表示開啟可導出單獨的表之后再導入其他Mysql中


    4 --redo-only:此選項在prepare base full backup,往其中合并增量備份時候使用,但不包括對最后一個增量備份的合并


    Xtrabackup還原 將要還原的數(shù)據(jù)拷到數(shù)據(jù)庫目錄。

    innobackupex --copy-back [選項] BACKUP-DIR


    innobackupex --move-back [選項] [--defaults-group=GROUP-NAME]BACKUP-DIR


    選項說明:


    1--copy-back:做數(shù)據(jù)恢復時將備份數(shù)據(jù)文件拷貝到MySQL服務器的datadir


    2--move-back:這個選項與--copy-back相似,唯一的區(qū)別是它不拷貝文件,而是移動文件到目的地。這個選項移除backup文件,用時候必須小心。使用場景:沒有足夠的磁盤空間同事保留數(shù)據(jù)文件和Backup副本。


    還原注意事項:

    1.datadir目錄必須為空。除非指定innobackupex --force-non-emptydirectorires選項指定,否則--copy-backup選項不會覆蓋


    2.在restore之前,必須shutdown MySQL實例,不能將一個運行中的實例restore到datadir目錄中


    3.由于文件屬性會被保留,大部分情況下需要在啟動實例之前將文件的屬主改為mysql,這些文件將屬于創(chuàng)建備份的用戶


    chown -R mysql:mysql /data/mysql


    以上需要在用戶調用innobackupex之前完成


    --force-non-empty-directories:指定該參數(shù)時候,使得innobackupex --

    copy-back或--move-back選項轉移文件到非空目錄,已存在的文件不會被覆

    蓋。如果--copy-back和--move-back文件需要從備份目錄拷貝一個在

    datadir已經存在的文件,會報錯失敗


    備份生成的相關文件

    使用innobakupex備份時,其會調用xtrabackup備份所有的InnoDB表,復制所有關于表結構定義的相關文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相關文件,同時還會備份觸發(fā)器和數(shù)據(jù)庫配置信息相關的文件。這些文件會被保存至一個以時間命名的目錄中,在備份時,innobackupex還會在備份目錄中創(chuàng)建如下文件:


    (1)xtrabackup_info:innobackupex工具執(zhí)行時的相關信息,包括版本,備份選項,備份時長,備份LSN(log sequence number日志序列號),BINLOG的位置


    (2)xtrabackup_checkpoints:備份類型(如完全或增量)、備份狀態(tài)(如是否已經為prepared狀態(tài))和LSN范圍信息,每個InnoDB頁(通常為16k大小)都會包含一個日志序列號LSN。LSN是整個數(shù)據(jù)庫系統(tǒng)的系統(tǒng)版本號,每個頁面相關的LSN能夠表明此頁面最近是如何發(fā)生改變的


    (3)xtrabackup_binlog_info:MySQL服務器當前正在使用的二進制日志文件及至備份這一刻為止二進制日志事件的位置,可利用實現(xiàn)基于binlog的恢復


    (4)backup-my.cnf:備份命令用到的配置選項信息


    (5)xtrabackup_logfile:備份生成的日志文件


    示例:舊版Xtrabackup完全備份及還原

    1 在原主機innobackupex --user=root /backups


    scp -r /backups/2018-02-23_11-55-57/目標主機:/data/


    2 在目標主機


    innobackupex --apply-log /data/2018-02-23_11-55-57/


    systemctl stop mariadb


    rm -rf /var/lib/mysql/*


    innobackupex --copy-back /data/2018-02-23_11-55-57/


    chown -R mysql.mysql /var/lib/mysql/


    systemctl start mariadb


    示例:新版Xtrabackup完全備份及還原

    mkdir /backups 創(chuàng)建文件夾


    1 在原主機做完全備份到/backups下


    xtrabackup --backup --target-dir=/backups/


    scp -r /backups/* 目標主機:/backups


    2 在目標主機上


    1)預準備:確保數(shù)據(jù)一致,提交完成的事務,回滾未完成的事務


    xtrabackup --prepare --target-dir=/backups/


    2)復制到數(shù)據(jù)庫目錄


    注意:數(shù)據(jù)庫目錄必須為空,MySQL服務不能啟動


    xtrabackup --copy-back --target-dir=/backups/


    3)還原屬性


    chown -R mysql:mysql /var/lib/mysql


    4)啟動服務


    systemctl start mariadb


    Xtrabackup安裝

    下載安裝xtrabackup


    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar


    yum 安裝 yum install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm -y


    which xtrabackup 路徑


    innobackupex -v 顯示版本


    創(chuàng)建測試數(shù)據(jù)

    mysql> create database test;


    Query OK, 1 row affected (0.00 sec)


    mysql> use test;


    Database changed


    mysql> create table T1 (name varchar(10) not null,sex varchar(10) not null);


    Query OK, 0 rows affected (0.15 sec)


    mysql> insert into T1 values('zhang','man');


    Query OK, 1 row affected (0.01 sec)


    mysql> insert into T1 values('zhan','man');


    Query OK, 1 row affected (0.01 sec)


    mysql> insert into T1 values('sun','woman');


    Query OK, 1 row affected (0.00 sec)


    新版Xtrabackup完全,增量備份及還原

    1 備份過程

    備份過程生成三個備份目錄


    mkdir /backups


    mkdir /backups/{base,inc1,inc2}


    tree /backups/{base,inc1,inc2}


    1)完全備份:xtrabackup --backup --target-dir=/backups/base


    2)第一次修改數(shù)據(jù)


    3)第一次增量備份


    xtrabackup --backup --target-dir=/backups/inc1 --incrementalbasedir=/backups/base


    4)第二次修改數(shù)據(jù)


    5)第二次增量


    xtrabackup --backup --target-dir=/backups/inc2 --incrementalbasedir=/backups/inc1


    6)scp -r /backups/* 目標主機:/backups/


    2還原過程

    1)預準備完成備份,此選項--apply-log-only阻止回滾未提完成的事務


    xtrabackup --prepare --apply-log-only --target-dir=/backups/base


    2)合并第1次增量備份到完全備份,


    xtrabackup --prepare --apply-log-only --target-dir=/backups/base --incremental-dir=/backups/inc1


    3)合并第2次增量備份到完全備份:最后一次還原不需要加選項--apply-log-only


    xtrabackup --prepare --target-dir=/backups/base --incremental-dir=/backups/inc2


    4)復制到數(shù)據(jù)庫目錄,注意數(shù)據(jù)庫目錄必須為空,MySQL服務不能啟動


    xtrabackup --copy-back --target-dir=/data/backups/base


    5)還原屬性:chown -R mysql:mysql /var/lib/mysql


    6)啟動服務:systemctl start mariadb


    Xtrabackup單表導出和導入

    1 單表備份

    innobackupex --include='hellodb.students' /backups


    2備份表結構

    mysql -e 'show create table hellodb.students' > student.sql


    3刪除表

    mysql -e 'drop table hellodb.students‘


    4 innobackupex --apply-log --export /backups/2018-02-23_15-03-23/


    5 創(chuàng)建表


    mysql>CREATE TABLE students (StuID int(10) unsigned NOT NULL AUTO_INCREMENT,Name varchar(50) NOT NULL,Agetinyint(3) unsigned NOT NULL,Gender enum('F','M') NOT NULL,ClassID tinyint(3) unsigned DEFAULT NULL,TeacherID int(10) unsigned DEFAULT NULL,PRIMARY KEY (StuID)) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8


    6 刪除表空間


    alter table students discard tablespace;


    7 cp /backups/2018-02-23_15-03-23/hellodb/students.{cfg,exp,ibd}/var/lib/mysql/hellodb/


    8 chown -R mysql.mysql /var/lib/mysql/hellodb/


    9 mysql>alter table students import tablespace;

    Win10用時間久了有時候會變得越來越慢,一款優(yōu)秀的第三方系統(tǒng)優(yōu)化軟件必不可少。Dism++是一款功能強大且輕巧易用的小工具,集系統(tǒng)清理、系統(tǒng)優(yōu)化、系統(tǒng)熱備、驅動管理等功能于一身。最關鍵的是,它不像數(shù)字軟件那樣N多廣告,也沒有插件捆綁和全家桶、全程綠色無流氓,且只有3MB大小……

    Dism++的主頁非常簡潔,點擊中間的“Dism++ x86/x64/ARM64”即可下載。壓縮包里共包含三個版本,x86、x64和ARM64版,正如我剛才所說的,這是綠色版,解壓后就能運行。


    Dism++主頁


    接下來,咱們來說一說Dism++的強大功能吧。

    1. 空間回收

    這是日常使用頻繁最高的一項功能,畢竟C盤三天兩頭鬧“罷工”總是讓人很心煩。Dism++的清理范圍很廣,可以看到無論Windows安裝記錄、臨時文件、DMP文件,還是系統(tǒng)傳遞優(yōu)化、下載緩存、NET程序集緩存,統(tǒng)統(tǒng)可以被掃描并快速清理。就像小編自己的這臺電腦,平時用得也算精心了,系統(tǒng)清理也經常在做,可仍然被Dism++掃出4-5個GB的“巨型垃圾”,也是醉了。而且你不用擔心Dism++的清理會誤刪除掉一些重要文件,它會在用戶勾選到一些敏感文件時智能彈出提示,還是很貼心的一項設計。


    系統(tǒng)清理


    2. 禁用Windows Defender

    系統(tǒng)優(yōu)化也是Dism++中做得比較不錯的一個地方,展開標簽后,你會發(fā)現(xiàn)這里包含了很多的優(yōu)化方案。比方說禁用Windows Defender、關閉在應用商店中查找關聯(lián)應用、關閉商店鎖屏推廣、關閉多嘴的小娜……,大多都是同類軟件中較為少見的專門針對Win10的優(yōu)化模塊。值得一提的是,Dism++將所有功能都設計成了按鈕樣,除了操作更方便以外,也更便于優(yōu)化過度后的快速恢復。


    包含著很多Win10系統(tǒng)專用的優(yōu)化選項


    除此之外,這里還包含著一項關閉Windows Update的選項。不得不說,這正是很多小伙伴遍尋已久的功能,當然對于它大家還是根據(jù)自己的實際需求來定吧,畢竟關閉自動更新有時會導致系統(tǒng)無法接收到微軟的安全更新,從而為系統(tǒng)造成隱患。


    關閉Windows Update


    3. 熱備系統(tǒng)

    這個應該算是Dism++的黑科技了,你可以把它看作是ghost(一款系統(tǒng)備份工具)的Windows版。整體思路和ghost也沒啥兩樣,當你裝好系統(tǒng)后,通過“常用工具”→“工具箱”→“系統(tǒng)備份”將系統(tǒng)備份下來,等待系統(tǒng)出現(xiàn)故障或者小毛病時,再利用相同的步驟將備份恢復回去。短短幾步,電腦就能輕松恢復正常。而它的最大看點,則是備份可以在電腦正常運行時開啟,也就是說你在看看電影,或者制作一份PPT時,也不會耽誤系統(tǒng)備份的正常運行。

    系統(tǒng)熱備


    后記

    相比我們平時接觸的一些系統(tǒng)維護工具,Dism++無疑是里面最簡單的一個,沒有向導、沒有漂亮的UI,甚至連名字也不是特別的響亮,但它的功能卻是小編接觸的所有軟件中最實用的一個。如果你厭倦了各種全家桶式的安全工具,不妨試一試它,相信一定會喜歡上它的。

    ?

網(wǎng)站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有