MySQL-lesson07-備份恢復(fù)

1防嗡、備份類型

熱備
在數(shù)據(jù)庫正常業(yè)務(wù)時(shí)所意,備份數(shù)據(jù)淮逊,并且能夠一致性恢復(fù)

冷備
關(guān)閉數(shù)據(jù)庫業(yè)務(wù),數(shù)據(jù)庫沒有任何變更的情況下扶踊,進(jìn)行備份數(shù)據(jù)

溫備
鎖表備份泄鹏,只能查詢不能恢復(fù)

2、備份方式

2.1 邏輯備份

基于SQL語句進(jìn)行備份
常用工具:mysqldump秧耗,mysqlbinlog

2.2 物理備份

基于磁盤文件備份
常用工具:xtrabackup

3备籽、備份策略

全備:全庫備份
增量:備份變化的數(shù)據(jù)
備份周期:定期備份

4、邏輯備份工具

4.1 mysqldump

1分井、mysqldump適合小于100G以下的數(shù)據(jù)量
2车猬、mysqldump原生態(tài)不支持增量,必須配合binlog實(shí)
現(xiàn)增量
3尺锚、對(duì)于大數(shù)據(jù)量的數(shù)據(jù)庫備份诈唬,從架構(gòu)上拆分,分別進(jìn)行備份

mysqldump優(yōu)點(diǎn):
1.備份可讀性強(qiáng)
2.文本形式備份缩麸,壓縮比較高
缺點(diǎn):恢復(fù)時(shí)間長(zhǎng)

1) 通用參數(shù)
-u -p -S -h -p

2) 備份專用參數(shù)
* -A 全備參數(shù)
mysqldump -uroot -p -A > /backup/full.sql

* -B 指定備份多個(gè)單庫铸磅,系統(tǒng)相關(guān)的庫不用備,只備份生產(chǎn)相關(guān)庫;適合于跨版本遷移
mysqldump -uroot -p -B oldboy world student >/backup/bak.sql

* 針對(duì)表的備份杭朱;備份world庫下的city,country表
mysqldump -uroot -p world city country >/backup/bak1.sql

* 加-B與不加-B參數(shù)的區(qū)別:是加-B多出創(chuàng)建語句和use語句阅仔;不加-B則沒有,這種備份恢復(fù)時(shí)弧械,必須庫事先存在八酒,并且use進(jìn)庫,才能source恢復(fù)

3) 特殊參數(shù)使用
-R      備份存儲(chǔ)過程及函數(shù)
--triggers    備份觸發(fā)器
-E       備份事件
mysqldump -uroot -p -A -R --triggers >/backup/full.sql
-F 刷新的binlog日志刃唐;有多少個(gè)生產(chǎn)庫羞迷,就會(huì)刷新多少個(gè)新的binlog日志;備份時(shí)加入 -F參數(shù)画饥,滾動(dòng)新的binlog日志衔瓮,新的binlog的起點(diǎn),就是下次備份起點(diǎn)抖甘;非必須

--master-data=2     以注釋的形式热鞍,保存?zhèn)浞輹r(shí)時(shí)間點(diǎn)的binlog的狀態(tài)信息(binlog文件名和位置點(diǎn))
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000035', MASTER_LOG_POS=194;

--single-transaction 支持innodb存儲(chǔ)引擎熱備功能,此參數(shù)自動(dòng)判斷:在不加--single-transaction ,啟動(dòng)所有表的溫備份薇宠,所有表都鎖定
對(duì)innodb可以不鎖表熱備偷办,對(duì)非innodb表可以實(shí)現(xiàn)自動(dòng)鎖表功能。

--max-allowed-packet=64M           //設(shè)置備份包允許的最大數(shù)據(jù)量大小澄港,非必須

mysqldump -uroot -p123   -A --master-data=2  --single-transaction -R  -E  --triggers --max_allowed_packet=64M  >/data/backup/full.sql

例句1:mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction >/backup/full.sql
功能:
(1) 以注釋的形式椒涯,保存?zhèn)浞蓍_始時(shí)間點(diǎn)的binlog的狀態(tài)信息
(2)對(duì)innodb可以不鎖表熱備
(3)對(duì)非innodb表可以實(shí)現(xiàn)自動(dòng)鎖表功能

例句2:mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction |gzip >/backup/all_$(date +%F-%T).sql.gz
適合多引擎混合備份命令;

恢復(fù):
gunzip /backup/all_2020-02-03-16:34:13.sql.gz
進(jìn)入數(shù)據(jù)庫
drop database world;
set sql_log_bin=0;
source /backup/all_2020-02-03-16:34:13.sql
注意:盡量不要在生產(chǎn)庫直接進(jìn)行恢復(fù)們可以先找一個(gè)測(cè)試庫回梧,驗(yàn)證沒問題废岂,把問題數(shù)據(jù)導(dǎo)出并導(dǎo)入生產(chǎn)庫。

報(bào)錯(cuò):mysqldump 備份時(shí)漂辐,報(bào)錯(cuò)socket文件路徑錯(cuò)誤
解決辦法:做軟連接
ln -s 源文件 目標(biāo)文件

數(shù)據(jù)量級(jí)大問題,gzip最大包為4M棕硫,超過4M報(bào)錯(cuò)髓涯;
解決方法:服務(wù)端參數(shù)只進(jìn)不出,修改沒有用哈扮;加上允許數(shù)據(jù)包的大小參數(shù):--max_allowed_packet=128M纬纪。
mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction --max_allowed_packet=128M |gzip >/backup/all_$(date +%F-%T).sql.gz

4.2 面試題

  1. 你們公司數(shù)據(jù)量多大?
    小數(shù)據(jù)量:30G-50G都可以滑肉。
    互聯(lián)網(wǎng)公司 數(shù)據(jù)量不要超過100G包各。
    zabbix除外,數(shù)據(jù)量較大靶庙。

  2. 備份多長(zhǎng)時(shí)間问畅?
    mysqldump 5分鐘25G
    10分鐘、20分鐘六荒、半個(gè)小時(shí)护姆;備份時(shí)長(zhǎng)的主要因素是IO,sata磁盤IO速度在80M左右掏击,固態(tài)盤更塊卵皂。
    備份多時(shí)間,恢復(fù)大概也要多長(zhǎng)時(shí)間砚亭。

  3. 什么工具備份灯变?
    mysqldump
    可以簡(jiǎn)單說一下備份策略,每天全備捅膘,每小時(shí)增備添祸。
    xtrabackup備份時(shí)間快于mysqldump

4.3 備份恢復(fù)案例

正在運(yùn)行的網(wǎng)站系統(tǒng),mysql數(shù)據(jù)庫寻仗,數(shù)據(jù)量25G膝捞,日業(yè)務(wù)增量10-15M。
備份方式:每天23:00,計(jì)劃任務(wù)調(diào)用mysqldump執(zhí)行全備腳本蔬咬。
故障時(shí)間:上午10點(diǎn)鲤遥,誤刪除一個(gè)表。

恢復(fù)思路:

  1. 掛出維護(hù)界面
  2. 找測(cè)試庫
  3. 恢復(fù)全備到測(cè)試庫
  4. 截取二進(jìn)制日志到誤刪除時(shí)間點(diǎn)林艘,恢復(fù)到測(cè)試庫
    起點(diǎn):master-data=2盖奈,找備份文件,獲取到日志名字和位置號(hào)
    終點(diǎn):分析最后一個(gè)binlog狐援,找到誤刪除事件位置點(diǎn)
  5. 驗(yàn)證數(shù)據(jù)钢坦,將故障表導(dǎo)出,導(dǎo)入會(huì)產(chǎn)生庫
  6. 開啟業(yè)務(wù)

模擬故障:
1啥酱、模擬全備
mysqldump -uroot -p -A -R --triggers --master-data=2 --single-transaction >/backup/all.sql

2爹凹、模擬業(yè)務(wù)
create database baidu charset utf8;
use baidu;
create table t1(id int);
insert into t1 values(1),(2),(3);
insert into t1 values(11),(12),(13);
update t1 set id=10 where id=1;

3、模擬10點(diǎn)數(shù)據(jù)誤刪除
drop database world;
drop database baidu;

4镶殷、準(zhǔn)備恢復(fù)
查看備份文件:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000013', MASTER_LOG_POS=819739;

截取二進(jìn)制日志:

# 查看當(dāng)前binlog文件
show master status;

# 找到drop之前的位置點(diǎn)
show binlog events in 'mysql-bin.000013';
| mysql-bin.000013 | 820513 | Xid         |         6 |      820544 | COMMIT /* xid=770 */ 
| mysql-bin.000013 | 820544 | Query       |         6 |      820639 | drop database world 
| mysql-bin.000013 | 820639 | Query       |         6 |      820734 | drop database baidu 

# 生產(chǎn)中查看最后10行方法:
show binlog events in 'mysql-bin.000013' limit 14,10;

5禾酱、截取binlog日志
mysqlbinlog --start-position=819739 --stop-position=820544 /data/mysql/mysql-bin.000013 >/backup/binlog.sql

6、開始恢復(fù)
關(guān)閉binlog日志記錄
set sql_log_bin=0;
恢復(fù)全備
soure /backup/all.sql
恢復(fù)增備
source /backup/binlog.sql
恢復(fù)記錄
set sql_log_bin=1;

5 物理備份工具

XBK(Percona Xtrabackup)
MEB(MySQL Enterprise Backup)

Xtrabackup優(yōu)點(diǎn):
1.類似于直接cp數(shù)據(jù)文件绘趋,不需要管邏輯結(jié)構(gòu)颤陶,相對(duì)來說性能較高
缺點(diǎn):
2.可讀性差
3.壓縮比低,需要更多磁盤空間
建議:>100G<TB

5.1 安裝

  1. 安裝依賴包
    yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev

  2. 下載并安裝
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

yum -y install percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

5.2 備份實(shí)現(xiàn)原理

  1. 對(duì)于非innodb引擎陷遮,鎖定表滓走,直接拷貝表的數(shù)據(jù)文件
  2. 對(duì)于innodb引擎,立即觸發(fā)checkpoint動(dòng)作帽馋,將內(nèi)存數(shù)據(jù)頁刷寫到磁盤的動(dòng)作拘泞;拷貝此時(shí)的數(shù)據(jù)文件(LSN=1000)昔榴,在此過程中產(chǎn)生的日志文件(to_lsn=1000 redo last_lsn=1020 和 undo)也進(jìn)行備份

熱備:備份某時(shí)間點(diǎn)的數(shù)據(jù)地同時(shí)节沦,將redo和undo也一并備份走了(備份過程中產(chǎn)生的變化也也備份)玻粪,將來恢復(fù)的時(shí)候會(huì)應(yīng)用redo和undo,實(shí)現(xiàn)一致性地恢復(fù)项秉,前提是支持事務(wù)地存儲(chǔ)引擎绣溜。

5.3 全備

只有全備和增備,沒有指定庫娄蔼、表備份
innobackupex --user=root --password=123 /backup

1怖喻、備份內(nèi)容介紹
xtrabackup_binlog_info //備份時(shí)間點(diǎn)二進(jìn)制日志的信息

xtrabackup_checkpoints //記錄備份信息
cat xtrabackup_checkpoints
backup_type = full-backuped //全備
from_lsn = 0 //從哪開始
to_lsn = 4600060 //結(jié)束
last_lsn = 4600060
compact = 0
recover_binlog_info = 0

xtrabackup_info //詳細(xì)顯示

xtrabackup_logfile //redo的日志文件,二進(jìn)制格式

2岁诉、備份到指定目錄
--no-timestamp //取消時(shí)間戳

  • 備份到指定目錄full
    innobackupex --user=root --password=123 --no-timestamp /backup/full

5.4 恢復(fù)全備

注意:恢復(fù)的路徑必須是空的锚沸,mysql不需要啟動(dòng)

  1. 停數(shù)據(jù)庫
    pkill mysqld

  2. 刪數(shù)據(jù)庫
    rm -rf /application/mysql/data/*

  3. 準(zhǔn)備恢復(fù),使用redo前滾涕癣,使用undo回滾哗蜈,保證數(shù)據(jù)一致性;
    innobackupex --apply-log /backup/full/

  4. 恢復(fù)數(shù)據(jù)
    第一種:將full目錄里的文件拷貝到 /application/mysql/data/
    cp -a * /application/mysql/data/

第二種:innobackupex --copy-back /backup/full/

  1. 修改權(quán)限
    chown -R mysql. /application/mysql/data/*

  2. 啟動(dòng)數(shù)據(jù)庫

5.5 增量備份

  1. 增量備份介紹
    基于上一次備份的增量備份,XBK需要將增量合并到全備中才能恢復(fù)距潘。
    優(yōu)點(diǎn):是節(jié)約空間和時(shí)間
    缺點(diǎn):依賴全備和上一次備份

  2. 增量備份策略設(shè)計(jì)及實(shí)現(xiàn)

# 全備
innobackupex --user=root --password=123 --no-timestamp /backup/full

# 周一模擬數(shù)據(jù)
create database full charset utf8;
use full
create table t1(id int);
insert into t1 values(1),(2),(3);
commit;

# 周一增量備份
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/full --incremental /backup/inc1

--incremental-basedir=/backup/full    //上次備份的路徑
--incremental      //打開增量備份的功能

# 周二數(shù)據(jù)模擬
create database inc1 charset utf8;
use inc1
create table t2(id int);
insert into t2 values(4),(5),(6);
commit;

# 周二增量備份
innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/inc1 --incremental /backup/inc2

# 查看三個(gè)備份的記錄信息
cat /backup/full/xtrabackup_checkpoints /backup/inc1/xtrabackup_checkpoints /backup/inc2/xtrabackup_checkpoints
==================================
backup_type = full-prepared
from_lsn = 0                   //起點(diǎn)
to_lsn = 4600060        
last_lsn = 4600060     //終點(diǎn)
compact = 0
recover_binlog_info = 0
==================================
backup_type = incremental
from_lsn = 4600060      //起點(diǎn)
to_lsn = 4615842    
last_lsn = 4615842       //終點(diǎn)
compact = 0
recover_binlog_info = 0
=================================
backup_type = incremental
from_lsn = 4615842     //起點(diǎn)
to_lsn = 4636357
last_lsn = 4636357    /終點(diǎn)
compact = 0
recover_binlog_info = 0
  1. 恢復(fù)準(zhǔn)備
    --apply-log //redo和undo都應(yīng)用炼列,檢查
    --redo-only //只應(yīng)用redo;最后一次增量不加音比,其它都要加 redo-only

恢復(fù)準(zhǔn)備:
innobackupex --apply-log --redo-only /backup/full
第一次增量合并并準(zhǔn)備俭尖,full的終點(diǎn)與inc1的終點(diǎn)一致
innobackupex --apply-log --redo-only --incremental-dir=/backup/inc1 /backup/full
第二次增量合并并準(zhǔn)備,full的終點(diǎn)與inc2的終點(diǎn)一致
innobackupex --apply-log --incremental-dir=/backup/inc2 /backup/full
全備再次準(zhǔn)備
innobackupex --apply-log /backup/full/

  1. 恢復(fù)數(shù)據(jù)
    pkill mysqld //停數(shù)據(jù)庫
    cd /application/mysql/data/
    rm -rf * //刪除數(shù)據(jù)
    innobackupex --copy-back /backup/full/ //拷貝回?cái)?shù)據(jù)

5.6 故障案例

  1. 背景:
    某大型網(wǎng)站洞翩,mysql數(shù)據(jù)庫稽犁,數(shù)據(jù)量500G,每日更新量100M-200M
    備份策略:xtrabackup骚亿,每周日23:00進(jìn)行全備已亥,周一到周六23:00進(jìn)行增量備份。
    故障場(chǎng)景:
    周三下午2點(diǎn)出現(xiàn)數(shù)據(jù)庫意外刪除表操作来屠。

  2. 思路
    1虑椎、周日全備+周一增備+周二增備
    2、進(jìn)行備份準(zhǔn)備
    3的妖、找到測(cè)試庫绣檬,使用備份恢復(fù)數(shù)據(jù)足陨,目前數(shù)據(jù)狀態(tài):周二晚上23:00時(shí)間點(diǎn)
    4嫂粟、截取周二備份時(shí)間點(diǎn)到周三誤刪除時(shí)間點(diǎn)之前的二進(jìn)制日志
    起點(diǎn):備份中會(huì)記錄
    終點(diǎn):分析日志文件事件
    5、恢復(fù)二進(jìn)制日志墨缘,導(dǎo)出故障表星虹,導(dǎo)入回生產(chǎn)庫。

  3. 恢復(fù)準(zhǔn)備
    (1) 全備:
    rm -rf /backup/*
    innobackupex --user=root --password=123 --no-timestamp /backup/full
    (2) 模擬周一數(shù)據(jù)
    create database day1 charset utf8;
    use day1
    create table t1(id int);
    insert into t1 values(1),(2),(3);
    commit;
    (3) 周一的增量備份
    innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/full --incremental /backup/inc1
    (4) 模擬周二數(shù)據(jù)
    create database day2 charset utf8;
    use day2
    create table t2(id int);
    insert into t2 values(1),(2),(3);
    commit;
    (5) 周二的增量備份
    innobackupex --user=root --password=123 --no-timestamp --incremental-basedir=/backup/inc1 --incremental /backup/inc2
    (6) 周三的數(shù)據(jù)變化
    create database day3 charset utf8;
    use day3
    create table t3(id int);
    insert into t3 values(1),(2),(3);
    commit;
    (7) 模擬下午2點(diǎn)的故障
    drop table t1;

  4. 恢復(fù)數(shù)據(jù)

思考問題:
如果誤刪除表只有1M镊讼,以上方案是否合適宽涌?
找到建表語句,將數(shù)據(jù)導(dǎo)回蝶棋;建個(gè)空表卸亮,將空表的ibd文件刪除,把備份的ibd改個(gè)權(quán)限玩裙,import進(jìn)去兼贸。

# 恢復(fù)單獨(dú)表
drop table city;
create table city like city_bak;
alter table city discard tablespace;
cp /backup/full/world/city.ibd  /application/mysql/data/world/
chown -R mysql.mysql  /application/mysql/data/world/city.ibd 
alter table city import  tablespace;

5.7 面試題

1、介紹以下邏輯備份和物理備份的不同點(diǎn)吃溅?它是怎么實(shí)現(xiàn)的溶诞?
邏輯備份:基于SQL語句的備份
物理備份:基于磁盤的數(shù)據(jù)文件的備份

2、mysqldump 和 xtrabackup 熱備是怎么實(shí)現(xiàn)的决侈?
mysqldump:對(duì)于innodb表螺垢,開啟一個(gè)專門的備份事務(wù),基于時(shí)間點(diǎn)的快照進(jìn)行熱備。

xtrabackup:備份某時(shí)間點(diǎn)的數(shù)據(jù)的同時(shí)枉圃,將redo和undo也一并備份走了(備份過程中產(chǎn)生的變化也也備份)功茴,在恢復(fù)時(shí)模擬CSR過程,將數(shù)據(jù)和日志恢復(fù)到一致狀態(tài)讯蒲,即可恢復(fù)狀態(tài)痊土。前提是支持事務(wù)地存儲(chǔ)引擎。

3墨林、備份參數(shù)的使用

4赁酝、DBA運(yùn)維人員在備份、恢復(fù)的職責(zé)
2.1設(shè)計(jì)備份旭等、容災(zāi)策略
2.2 定期的備份酌呆、容災(zāi)檢查
2.3 定期的故障恢復(fù)演練
2.4 數(shù)據(jù)損壞時(shí)的快速且準(zhǔn)確恢復(fù)
2.5 數(shù)據(jù)遷移工作

5、以下兩個(gè)命令的備份結(jié)果區(qū)別 搔耕?
mysqldump -uroot -p123 -B world >/data/backup/db1.sql
-B 庫備份隙袁,備份時(shí)把庫的建庫語句以及use庫的語句加進(jìn)去

mysqldump -uroot -p123 world >/data/backup/db2.sql
不加-B針對(duì)表級(jí)別備份,備份庫下所有表弃榨,不包含建庫語句
應(yīng)用時(shí)菩收,如果world庫不存在,需要手工創(chuàng)建鲸睛,并且use到world庫下再恢復(fù)娜饵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市官辈,隨后出現(xiàn)的幾起案子箱舞,更是在濱河造成了極大的恐慌,老刑警劉巖拳亿,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晴股,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肺魁,警方通過查閱死者的電腦和手機(jī)电湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹅经,“玉大人寂呛,你說我怎么就攤上這事∷脖ⅲ” “怎么了昧谊?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)酗捌。 經(jīng)常有香客問我呢诬,道長(zhǎng)涌哲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任尚镰,我火速辦了婚禮阀圾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狗唉。我一直安慰自己初烘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布分俯。 她就那樣靜靜地躺著肾筐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缸剪。 梳的紋絲不亂的頭發(fā)上吗铐,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音杏节,去河邊找鬼唬渗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奋渔,可吹牛的內(nèi)容都是我干的镊逝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼嫉鲸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼撑蒜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起充坑,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤减江,失蹤者是張志新(化名)和其女友劉穎染突,沒想到半個(gè)月后捻爷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡份企,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年也榄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片司志。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甜紫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骂远,到底是詐尸還是另有隱情囚霸,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布激才,位于F島的核電站拓型,受9級(jí)特大地震影響额嘿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜劣挫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一册养、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧压固,春花似錦球拦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拦键,卻和暖如春点弯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矿咕。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工抢肛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碳柱。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像莲镣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子的圆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容