欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

MySQL備份與恢復(fù)

1 備份概覽

按備份方法分類:

  • Hot Backup(熱備)

    在線備份,不影響數(shù)據(jù)庫運(yùn)行

  • Cold Backup(冷備)

    離線備份,通過拷貝數(shù)據(jù)庫物理文件

  • Warm Backup(溫備)

    在線進(jìn)行,但需要加讀鎖保證數(shù)據(jù)一致性

按備份文件內(nèi)容分類:

  • 邏輯備份

    備份后的內(nèi)容是可讀的,通常形式為SQL語句的文本文件,或是表內(nèi)的實(shí)際數(shù)據(jù)

    優(yōu)勢:呈現(xiàn)直觀,適用于升級、遷移等工作,缺點(diǎn):恢復(fù)用時(shí)較長

  • 裸文件備份

    拷貝數(shù)據(jù)庫的物理文件,不關(guān)心數(shù)據(jù)庫的運(yùn)行狀態(tài),通常這類備份恢復(fù)的時(shí)間較短

按備份數(shù)據(jù)庫的內(nèi)容分類:

  • 完全備份:對當(dāng)前數(shù)據(jù)庫的完整備份

  • 增量備份:在完全備份的基礎(chǔ)上,對更新的數(shù)據(jù)進(jìn)行備份

  • 日志備份:指的是對數(shù)據(jù)庫二進(jìn)制日志的備份

2 冷備

備份內(nèi)容:數(shù)據(jù)表結(jié)構(gòu)定義文件(*.frm)、共享表空間文件(ibdata)、獨(dú)立表空間文件(*.ibd)、重做日志文件(ib_logfile),建議增加配置文件(my.cnf)

優(yōu)勢:

  • 備份簡單,僅需拷貝相關(guān)文件
  • 備份文件有利于在不同操作系統(tǒng)、不同MySQL版本之間恢復(fù)
  • 恢復(fù)簡單,僅需把文件恢復(fù)到指定位置
  • 恢復(fù)速度快,無需執(zhí)行SQL語句,無需重建索引

劣勢:

  • 備份文件較大
  • 跨平臺(tái)、操作系統(tǒng)、軟件版本可能會(huì)出現(xiàn)問題

3 邏輯備份

3.1 mysqldump

mysqldump -uroot -p [arguments] > file_name
#arguments參數(shù)
--all-databases #備份所有數(shù)據(jù)庫
--databases dbx #備份指定數(shù)據(jù)庫
--single-transaction dbx #備份數(shù)據(jù)庫的整體架構(gòu),事務(wù)控制保證備份的一致性
--lock-tables #一般用于MyISAM,備份時(shí)僅可讀
--lock-all-tables #對所有架構(gòu)所有表上鎖
--add-drop-databases #在create前先運(yùn)行drop,需配合--alldatabases使用
#通過轉(zhuǎn)存的文件建立一個(gè)salve replication
#value=1 轉(zhuǎn)存文件中記錄CHANGE MASTER語句
#value=2 CHANGE MASTER語句寫成注釋
--master-data[=value]?
--events #備份事件調(diào)度器
--routines #備份存儲(chǔ)過程和函數(shù)
--triggers #備份觸發(fā)器
--hex-blob #將binary、varbinary、blog、bit列類型備份為16進(jìn)制的格式
--tab=path #產(chǎn)生tab分割的數(shù)據(jù)文件,可使用--fields-terminated-by改變分隔符
--where #導(dǎo)出給定條件的數(shù)據(jù)

3.2 SELECT … INTO OUTFILE

SELECT [column1],[column2] ...
INTO
#導(dǎo)出的文件名稱需擁有mysql用戶權(quán)限且文件不存在
OUTFILE 'filename'
{#fields or columns
#列分隔符
TERMINATED BY 'string'
#對于字符串的包含符
[OPTIONALLY] ENCLOSED BY 'char'
#轉(zhuǎn)譯符
ESCAPED BY 'char'
}
{#lines
STARTING BY 'string'
TERMINATED BY 'string'
}
FROM TABLE WHERE ...

3.3 邏輯備份的恢復(fù)

mysqldump備份的文件為邏輯SQL語句,可用以下兩種方法恢復(fù)

#在shell中執(zhí)行
mysql -uroot -p < xxx.sql
#在MySQL交互命令行執(zhí)行
mysql> source xxx.sql

3.4 LODA DATA INFILE

通過mysqldump --tab或select into outfile導(dǎo)出的數(shù)據(jù)需通過以下的命令導(dǎo)入

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'filename'
[REPLACE | IGNORE]
INTO TABLE tb_name
[CHARACTER SET charset_name]
#[FIELDS | COLUMNS]
TERMINATED BY 'string'
[OPTIONALLY] ENCLOSED BY 'char'
ESCAPED BY 'char'
#[LINES]
STARTING BY 'string'
TERMINATED BY 'string'
#[IGNORE NUMBER LINES]
col_name or user_var
SET col_name = expr

使用LOAD DATA INFILE導(dǎo)入需擁有FILE權(quán)限

mysql> load data infile 'xx.txt' into table a;

mysql> load data infile 'xx.txt' into table a;

4 binlog備份

在配置文件啟動(dòng)binlog日志服務(wù)

#查看
mysqlbinlog mysqlbin-xxx.xxx
#還原
mysqlbinlog binlog.000001 | mysql -uroot -p test

因binlog為邏輯備份日志,可在MySQL命令行窗口使用source命令導(dǎo)入

也可設(shè)置偏移量指定二進(jìn)制日志的位置,以跳過某些不想被恢復(fù)的語句

mysqlbinlog --start-position=10000 --stop-position=12000 | mysql -uroot =p test

也可使用–start-datetime和–stop-datetime

5 熱備

5.1 Ibackup

備份InnoDB表原理:

  • 記錄備份開始的重做日志文件LSN
  • 拷貝共享表空間文件和獨(dú)立表空間文件
  • 拷貝后記錄重做日志的檢查點(diǎn)LSN
  • 拷貝備份期間的重做日志

優(yōu)點(diǎn):

  • 在線備份,不阻塞SQL語句
  • 備份性能好,通過復(fù)制數(shù)據(jù)庫物理表空間文件和重做日志文件
  • 支持壓縮備份
  • 跨平臺(tái)支持

恢復(fù)流程:

  • 恢復(fù)表空間文件
  • 應(yīng)用重做日志文件恢復(fù)InnoDB存儲(chǔ)引擎表

5.2 Xtrabackup

Xtrabackup是一個(gè)對InnoDB做數(shù)據(jù)備份的工具,支持在線熱備份(備份時(shí)不影響數(shù)據(jù)讀寫),是商業(yè)備份工具InnoDB Hotbackup的一個(gè)很好的替代品

5.2.1 全量備份
  • 備份
  • #備份
    /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --user=root --password=pass --host=127.1 --slave-info --tmpdir=/mysql/bak/full/ /mnt/sdfs/xxxx

    • 恢復(fù)
    • #1.停庫,清空data目錄
      mysqladmin -uroot -h127.1 -P3306 -p'123456' shutdown;
      rm -rf /mysql/data/*;

      #2.恢復(fù)-應(yīng)用日志
      /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --apply-log --user=root --password=pass --host=127.1 /mnt/sdfs/***

      #3.恢復(fù)-拷貝文件
      /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --user=root ?--password=pass --host=127.1 --copy-back /mnt/sdfs/***

      #4.文件修改權(quán)限
      chown -R mysql:mysql /mysql

      #5.啟動(dòng)實(shí)例
      mysqld_safe --defaults-file=/home/mysql/etc/my.cnf &

      #6.[從庫]從庫需重新連接master
      change master to
      ? ? master_host='192.168.100.20',
      ? ? master_user='repl',
      ? ? master_port=3306,
      ? ? master_password='123456',
      ? ? master_log_file='mysql-bin.000001',
      ? ? master_log_pos=307;

      #7.[從庫]從庫啟動(dòng)復(fù)制進(jìn)程
      start slave; ? 啟動(dòng)連接

      5.2.2 增量備份

      增量備份依賴于全備份,xtrabackup通過比較全備的終點(diǎn)與當(dāng)前的LSN,生成區(qū)間內(nèi)的備份文件,備份時(shí)也存在redo日志監(jiān)控線程,備份過程中的增加的LSN也會(huì)寫入日志中

    • /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --user=root --host='127.0.0.1' --password='123456' --incremental ?/root/back --incremental-basedir=/opt/back/2022-05-13_17-46-53

      可進(jìn)行多次增備,恢復(fù)需依次準(zhǔn)備

    • #準(zhǔn)備全備份日志
      /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --apply-log --redo-only ?/opt/back/2022-05-13_17-33-14
      #準(zhǔn)備增備日志
      /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --apply-log --redo-only ?/opt/back/2022-05-13_17-33-14 --incremental-dir=/opt/back/2022-05-13_17-33-14
      #再次準(zhǔn)備整體
      /usr/local/percona-xtrabackup-2.4.3-Linux-x86_64/bin/innobackupex --apply-log ?/opt/back/2022-05-13_17-33-14

      5.3 快照備份

      基于LVM對分區(qū)執(zhí)行快照工作,Linux在硬盤和分區(qū)上建立一個(gè)邏輯層提高分區(qū)管理的靈活性,將離散的磁盤分區(qū)連接成一個(gè)整塊的卷組,形成存儲(chǔ)池

      LVM使用寫時(shí)復(fù)制技術(shù)創(chuàng)建快照,創(chuàng)建時(shí)僅拷貝元數(shù)據(jù),不存在數(shù)據(jù)操作,創(chuàng)建過程較快。創(chuàng)建成功后,原始卷上有寫操作時(shí)快照會(huì)跟蹤原始卷的變化,將數(shù)據(jù)在改變之前拷貝到快照預(yù)留空間中,稱之寫時(shí)復(fù)制

      6 復(fù)制

      6.1 復(fù)制原理

      復(fù)制是MySQL提供的一種高可用、高性能的方案,用于建立大型應(yīng)用,步驟分為三步:

      • 主服務(wù)器將數(shù)據(jù)更新到二進(jìn)制日志中
      • 從服務(wù)器把主服務(wù)器的而二進(jìn)制日志拷貝到自己的中繼日志中
      • 從服務(wù)器重做中繼日志,將更新應(yīng)用到自己的數(shù)據(jù)庫中

      同步的過程是異步的,基本上也是實(shí)時(shí)進(jìn)行的,取決于主服務(wù)器的壓力

      從服務(wù)器有兩個(gè)線程,

      • I/O線程:讀取主服務(wù)器的二進(jìn)制日志,并保存為中繼日志
      • SQL線程:復(fù)制執(zhí)行中繼日志

      6.2 快照+復(fù)制的備份架構(gòu)

      復(fù)制用于備份的主要功能:

      • 數(shù)據(jù)分布
      • 讀取負(fù)載均衡
      • 數(shù)據(jù)庫備份
      • 高可用與故障轉(zhuǎn)移

      為解決數(shù)據(jù)誤操作的問題,可以在從服務(wù)器建立分區(qū)快照,避免復(fù)制對誤操作的處理能力

      MySQL備份與恢復(fù)

文章鏈接: http://www.qzkangyuan.com/9797.html

文章標(biāo)題:MySQL備份與恢復(fù)

文章版權(quán):夢飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請注明來源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程投稿分享

MySQL鎖機(jī)制

2022-9-6 12:49:07

建站教程投稿分享

MySQL備份與恢復(fù)

2022-9-7 15:31:05

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個(gè)人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 登封市| 北票市| 叶城县| 冕宁县| 治多县| 平邑县| 稷山县| 湖州市| 南京市| 道真| 小金县| 青海省| 曲麻莱县| 余干县| 日照市| 琼中| 阿拉善盟| 顺义区| 郸城县| 永平县| 巴楚县| 肃南| 株洲市| 罗城| 法库县| 洛宁县| 昌邑市| 昭平县| 柯坪县| 彰化市| 赤峰市| 资溪县| 潢川县| 吉安市| 连云港市| 陕西省| 五大连池市| 巫山县| 鹿邑县| 榆社县| 濮阳市|