十五、MySQL備份恢復(fù)及高可用

一、MySQL備份恢復(fù)

常用工具:

  • mysqldump:邏輯備份工具,適用所有存儲(chǔ)引擎,溫備;支持完全或部分備份;對InnoDB存儲(chǔ)引擎支持熱備,結(jié)合binlog的增量備份
  • xtrabackup:由Percona提供支持對InnoDB做熱備(物理備份)的工具,支持完全備份、增量備份

1.1 mysqldump工具

語法:
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] –B DB1 [DB2 DB3...]
mysqldump [OPTIONS] –A [OPTIONS]

選項(xiàng):
-A, --all-databases 備份所有數(shù)據(jù)庫,含create database
-B , --databases db_name… 指定備份的數(shù)據(jù)庫,包括create database語句
-E, --events 備份相關(guān)的所有event scheduler
-R, --routines 備份所有存儲(chǔ)過程和自定義函數(shù)
--triggers:備份表相關(guān)觸發(fā)器,默認(rèn)啟用,用--skip-triggers,不備份觸發(fā)器
--default-character-set=utf8 指定字符集
--master-data[=#]: 此選項(xiàng)須啟用二進(jìn)制日志
1:所備份的數(shù)據(jù)之前加一條記錄為CHANGE MASTER TO語句,非注釋,不指定#,默認(rèn)為1
2:記錄為注釋的CHANGE MASTER TO語句
此選項(xiàng)會(huì)自動(dòng)關(guān)閉--lock-tables功能,自動(dòng)打開-x | --lock-all-tables功能(除非開啟--single-transaction)
-F, --flush-logs 備份前滾動(dòng)日志,鎖定表完成后,執(zhí)行flush logs命令,生成新的二進(jìn)制日志文件,配合-A 或 -B 選項(xiàng)時(shí),會(huì)導(dǎo)致刷新多次數(shù)據(jù)庫。建議在同一時(shí)刻執(zhí)行轉(zhuǎn)儲(chǔ)和日志刷新,可通過和--single-transaction或-x,--master-data 一起使用實(shí)現(xiàn),此時(shí)只刷新一次日志

按存儲(chǔ)引擎分類:

  • MyISAM備份選項(xiàng):
    支持溫備;不支持熱備,所以必須先鎖定要備份的庫,而后啟動(dòng)備份操作
    鎖定方法如下:
    -x,--lock-all-tables:加全局讀鎖,鎖定所有庫的所有表,同時(shí)加--single-transaction或--lock-tables選項(xiàng)會(huì)關(guān)閉此選項(xiàng)功能
    注意:數(shù)據(jù)量大時(shí),可能會(huì)導(dǎo)致長時(shí)間無法并發(fā)訪問數(shù)據(jù)庫
    -l,--lock-tables:對于需要備份的每個(gè)數(shù)據(jù)庫,在啟動(dòng)備份之前分別鎖定其所有表,默認(rèn)為on,--skip-lock-tables選項(xiàng)可禁用,對備份MyISAM的多個(gè)庫,可能會(huì)造成數(shù)據(jù)不一致

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

  • InnoDB備份選項(xiàng): 支持熱備,可用溫備但不建議用
    --single-transaction
    此選項(xiàng)Innodb中推薦使用,不適用MyISAM,此選項(xiàng)會(huì)開始備份前,先執(zhí)行START TRANSACTION指令開啟事務(wù)
    此選項(xiàng)通過在單個(gè)事務(wù)中轉(zhuǎn)儲(chǔ)所有表來創(chuàng)建一致的快照。 僅適用于存儲(chǔ)在支持多版本控制的存儲(chǔ)引擎中的表(目前只有InnoDB可以); 轉(zhuǎn)儲(chǔ)不保證與其他存儲(chǔ)引擎保持一致。 在進(jìn)行單事務(wù)轉(zhuǎn)儲(chǔ)時(shí),要確保有效的轉(zhuǎn)儲(chǔ)文件(正確的表內(nèi)容和二進(jìn)制日志位置),沒有其他連接應(yīng)該使用以下語句:ALTER TABLE,DROP TABLE,RENAME TABLE,TRUNCATE TABLE
    此選項(xiàng)和--lock-tables(此選項(xiàng)隱含提交掛起的事務(wù))選項(xiàng)是相互排斥
    備份大型表時(shí),建議將--single-transaction選項(xiàng)和--quick結(jié)合一起使用

示例1:完全備份Innodb存儲(chǔ)引擎數(shù)據(jù)庫

BACKUP_TIME=`date +%F-%H%M`
mysqldump –uroot -p -A --single-transaction --master-data=1 --flush-privileges --default-character-set=utf8 --hex-blob >$BACKUP/fullbak_$BACKUP_TIME.sql

示例2:完全備份MyISAM存儲(chǔ)引擎數(shù)據(jù)庫

BACKUP_TIME=`date +%F-%H%M`
mysqldump –uroot -A -x --master-data=1 --flush-privileges --default-character-set=utf8 --hex-blob >$BACKUP/fullbak_$BACKUP_TIME.sql

1.2 xtrabackup

備份語法:
xtrabackup [option] BACKUP-ROOT-DIR

選項(xiàng):
--user 該選項(xiàng)表示備份賬號
--password 該選項(xiàng)表示備份的密碼
--host 該選項(xiàng)表示備份數(shù)據(jù)庫的地址
--databases 該選項(xiàng)接受的參數(shù)為數(shù)據(jù)庫名,如果要指定多個(gè)數(shù)據(jù)庫,彼此間需要以空格隔開;如:"xtra_test dba_test",同時(shí),在指定某數(shù)據(jù)庫時(shí),也可以只指定其中的某張表。如:"mydatabase.mytable"。該選項(xiàng)對innodb引擎表無效,還是會(huì)備份所有innodb表

--defaults-file 該選項(xiàng)指定從哪個(gè)文件讀取MySQL配置,必須放在命令行第一個(gè)選項(xiàng)位置
--incremental 該選項(xiàng)表示創(chuàng)建一個(gè)增量備份,需要指定--incremental-basedir
--incremental-basedir 該選項(xiàng)指定為前一次全備份或增量備份的目錄,與--incremental同時(shí)使用
--incremental-dir 該選項(xiàng)表示還原時(shí)增量備份的目錄
--include=name 指定表名,格式:databasename.tablename
--apply-log 一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會(huì)包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處理不一致狀態(tài)。此選項(xiàng)作用是通過回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件使數(shù)據(jù)文件處于一致性狀態(tài)
--use-memory 和--apply-log選項(xiàng)一起使用,當(dāng)prepare 備份時(shí),做crash recovery分配的內(nèi)存大小,單位字節(jié),也可1MB,1M,1G,1GB等,推薦1G
--export 表示開啟可導(dǎo)出單獨(dú)的表之后再導(dǎo)入其他Mysql中
--redo-only 此選項(xiàng)在prepare base full backup,往其中合并增量備份時(shí)候使用,但不包括對最后一個(gè)增量備份的合并

還原語法:
xtrabackup --copy-back [選項(xiàng)] BACKUP-DIR
innobackupex --move-back [選項(xiàng)] [--defaults-group=GROUP-NAME] BACKUP-DIR

選項(xiàng):
--copy-back 做數(shù)據(jù)恢復(fù)時(shí)將備份數(shù)據(jù)文件拷貝到MySQL服務(wù)器的datadir
--move-back 這個(gè)選項(xiàng)與--copy-back相似,唯一的區(qū)別是它不拷貝文件,而是移動(dòng)文件到目的地。這個(gè)選項(xiàng)移除backup文件,用時(shí)候必須小心。使用場景:沒有足夠的磁盤空間同事保留數(shù)據(jù)文件和Backup副本

1.2.1 xtrabackup 備份相關(guān)文件

  • 使用xtrabackup備份時(shí),其會(huì)調(diào)用xtrabackup備份所有的InnoDB表,復(fù)制所有關(guān)于表結(jié)構(gòu)定義的相關(guān)文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相關(guān)文件,同時(shí)還會(huì)備份觸發(fā)器和數(shù)據(jù)庫配置信息相關(guān)的文件。
    這些文件會(huì)被保存至一個(gè)以時(shí)間命名的目錄中,在備份時(shí),xtrabackup還會(huì)在備份目錄中創(chuàng)建如下文件:
  1. xtrabackup_info:xtrabackup工具執(zhí)行時(shí)的相關(guān)信息,包括版本,備份選項(xiàng),備份時(shí)長,備份LSN(log sequence number日志序列號),BINLOG的位置
  2. xtrabackup_checkpoints:備份類型(如完全或增量)、備份狀態(tài)(如是否已經(jīng)為prepared狀態(tài))和LSN范圍信息,每個(gè)InnoDB頁(通常為16k大小)都會(huì)包含一個(gè)日志序列號LSN。LSN是整個(gè)數(shù)據(jù)庫系統(tǒng)的系統(tǒng)版本號,每個(gè)頁面相關(guān)的LSN能夠表明此頁面最近是如何發(fā)生改變的
  3. xtrabackup_binlog_info:MySQL服務(wù)器當(dāng)前正在使用的二進(jìn)制日志文件及至備份這一刻為止二進(jìn)制日志事件的位置,可利用實(shí)現(xiàn)基于binlog的恢復(fù)
  4. backup-my.cnf:備份命令用到的配置選項(xiàng)信息
  5. xtrabackup_logfile:備份生成的日志文件

示例1:xtrabackup完全備份及還原

1. 在原主機(jī)做完全備份到/backup
xtrabackup -uroot -p --backup --target-dir=/backup/

2. 目標(biāo)主機(jī)
scp -r /backup/* root@172.16.77.132:/backups

xtrabackup --prepare --target-dir=/backups/  ##預(yù)準(zhǔn)備:確保數(shù)據(jù)一致,提交完成的事務(wù),回滾未完成的事務(wù)

/etc/init.d/mysqld stop
rm -rf /data/mysql-5.7/*
xtrabackup --copy-back --target-dir=/backups/  ##復(fù)制到數(shù)據(jù)庫目錄,確保原目錄為空

chown -R mysql:mysql /data/mysql-5.7  ##還原屬性

/etc/init.d/mysqld start  ##啟動(dòng)服務(wù)

mysql -uroot -p000000  ##簡單測試
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| hellodb            |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
8 rows in set (0.01 sec)

mysql> exit
Bye

示例2:xtrabackup完全,增量備份及還原

1. 備份操作
1)完全備份
xtrabackup -uroot -p000000 --backup --target-dir=/backup/base

2)修改數(shù)據(jù)
mysql -uroot -p000000
UPDATE hellodb.students SET classid=+1;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 25  Changed: 25  Warnings: 0
quit

3)增量備份
xtrabackup -uroot -p000000 --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
scp -r /backup/* 172.16.77.132:/backups/  ##拷貝備份目錄到目標(biāo)主機(jī)

2. 還原操作
1)預(yù)準(zhǔn)備完成備份,此選項(xiàng)--apply-log-only 阻止回滾未完成的事務(wù)
xtrabackup --prepare --apply-log-only --target-dir=/backups/base

2)合并增量備份到完全備份
xtrabackup --prepare --apply-log-only --target-dir=/backups/base --incremental-dir=/backups/inc1

3)復(fù)制到數(shù)據(jù)庫目錄,注意數(shù)據(jù)庫目錄必須為空,MySQL服務(wù)不能啟動(dòng)
xtrabackup --copy-back --target-dir=/backups/base

4)還原屬性
chown -R mysql:mysql /data/mysql-5.7

5)啟動(dòng)服務(wù)
/etc/init.d/mysqld start

mysql -uroot -p000000  ##簡單測試
mysql> use hellodb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       1 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     3 | Xie Yanke     |  53 | M      |       1 |        16 |
|     4 | Ding Dian     |  32 | M      |       1 |         4 |
|     5 | Yu Yutong     |  26 | M      |       1 |         1 |
|     6 | Shi Qing      |  46 | M      |       1 |      NULL |
|     7 | Xi Ren        |  19 | F      |       1 |      NULL |
|     8 | Lin Daiyu     |  17 | F      |       1 |      NULL |
|     9 | Ren Yingying  |  20 | F      |       1 |      NULL |
|    10 | Yue Lingshan  |  19 | F      |       1 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       1 |      NULL |
|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
|    13 | Tian Boguang  |  33 | M      |       1 |      NULL |
|    14 | Lu Wushuang   |  17 | F      |       1 |      NULL |
|    15 | Duan Yu       |  19 | M      |       1 |      NULL |
|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
|    17 | Lin Chong     |  25 | M      |       1 |      NULL |
|    18 | Hua Rong      |  23 | M      |       1 |      NULL |
|    19 | Xue Baochai   |  18 | F      |       1 |      NULL |
|    20 | Diao Chan     |  19 | F      |       1 |      NULL |
|    21 | Huang Yueying |  22 | F      |       1 |      NULL |
|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
|    23 | Ma Chao       |  23 | M      |       1 |      NULL |
|    24 | Xu Xian       |  27 | M      |       1 |      NULL |
|    25 | Sun Dasheng   | 100 | M      |       1 |      NULL |
+-------+---------------+-----+--------+---------+-----------+
25 rows in set (0.00 sec)

1.3 生產(chǎn)環(huán)境實(shí)戰(zhàn)備份策略

???????編寫shell腳本,支持讓用戶自主選擇,使用mysqldump還是xtrabackup全量備份。

cat mysql_backup.sh
#!/bin/bash
while true
do
read -p "Enter mysqldump or xtrabackup: " option
case $option in
        mysqldump)
        for db in `mysql -uroot -p000000 -e 'show databases'|grep -Ev '^(information_schema|performance_schema|Database)$'`;do mysqldump -uroot -p000000 -B $db --single-transaction --master-data=2 |gzip > /data/$db.sql.gz ;done
        ;;

        xtrabackup)
        xtrabackup -uroot -p000000 --backup --target-dir=/backup/`date +%F-%H%M`
        ;;

        *)
        echo "invalide selection,please try again"
        break
        ;;
esac
done

二、MySQL集群

2.1 主從復(fù)制

???????每個(gè)節(jié)點(diǎn)都有相同的數(shù)據(jù)集,向外擴(kuò)展;主要通過復(fù)制二進(jìn)制日志實(shí)現(xiàn),單向。

???????復(fù)制功用:
???????- 數(shù)據(jù)分布
???????- 負(fù)載均衡讀
???????- 備份
???????- 高可用和故障切換
???????- MySQL升級測試

2.1.1 主從復(fù)制架構(gòu)

常見部署架構(gòu):

一主一從
一主多從

2.1.2 主從復(fù)制工作原理

工作原理

2.1.3 主從復(fù)制配置

1. 主節(jié)點(diǎn)配置
vi /etc/my.cnf
log-bin # 啟用二進(jìn)制日志
server_id=1 #為當(dāng)前節(jié)點(diǎn)設(shè)置全局唯一的ID號

mysql -uroot -p
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'HOST' IDENTIFIED BY '000000';  ##創(chuàng)建一個(gè)具有復(fù)制權(quán)限的賬號

2. 從節(jié)點(diǎn)配置
vi /etc/my.cnf
server_id=2 #為當(dāng)前節(jié)點(diǎn)設(shè)置全局唯一的ID號
read_only=on #設(shè)置數(shù)據(jù)庫只讀

mysql -uroot -p000000
CHANGE MASTER TO MASTER_HOST='172.16.77.132',
MASTER_USER='repluser',
MASTER_PASSWORD='000000',
MASTER_LOG_FILE='mariadb-bin.xxxxxx',
MASTER_LOG_POS=#;
start slave;

show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.77.132
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: localhost-bin.000004
          Read_Master_Log_Pos: 154
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 324
        Relay_Master_Log_File: localhost-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

2.2 高可用

2.2.1 MHA簡介

???????Master High Availability(MHA),對主節(jié)點(diǎn)進(jìn)行監(jiān)控,可實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移至其它從節(jié)點(diǎn);通過提升某一從節(jié)點(diǎn)為新的主節(jié)點(diǎn),基于主從復(fù)制實(shí)現(xiàn),還需要客戶端配合實(shí)現(xiàn),目前MHA主要支持一主多從的架構(gòu),要搭建MHA,要求一個(gè)復(fù)制集群中必須最少有三臺(tái)數(shù)據(jù)庫服務(wù)器,一主二從,即一臺(tái)充當(dāng)master,一臺(tái)充當(dāng)備用master,另外一臺(tái)充當(dāng)從庫。

2.2.2 MHA集群架構(gòu)

集群架構(gòu)

2.2.3 MHA工作原理

  • 從宕機(jī)崩潰的master保存二進(jìn)制日志事件(binlog events)
  • 識別含有最新更新的slave
  • 應(yīng)用差異的中繼日志(relay log)到其他的slave
  • 應(yīng)用從master保存的二進(jìn)制日志事件(binlog events)
  • 提升一個(gè)slave為新的master
  • 使其他的slave連接新的master進(jìn)行復(fù)制

2.3.4 MHA實(shí)現(xiàn)

管理節(jié)點(diǎn):
1. 安裝軟件包
yum -y install mha4mysql*.rpm

2. 創(chuàng)建配置文件
mkdir /etc/mha
vim /etc/mha/app1.cnf
[server default]
user=mhauser
password=000000
manager_workdir=/data/mastermha/app1/
manager_log=/data/mastermha/app1/manager.log
remote_workdir=/data/mastermha/app1/
ssh_user=root
repl_user=repluser
repl_password=000000
ping_interval=1
[server1]
hostname=172.16.77.131
candidate_master=1
[server2]
hostname=172.16.77.132
candidate_master=1
[server3]
hostname=172.16.77.133

3. 修改配置文件(主節(jié)點(diǎn))
vim /etc/my.cnf
[mysqld]
log-bin  ##啟用二進(jìn)制日志
server_id=2 #為當(dāng)前節(jié)點(diǎn)設(shè)置全局唯一的ID號
skip_name_resolve=1

4. 在所有節(jié)點(diǎn)實(shí)現(xiàn)相互之間ssh key驗(yàn)證
ssh-keygen -t rsa -P ' '
scp -r .ssh 172.16.77.133:/root/
scp -r .ssh 172.16.77.132:/root/
scp -r .ssh 172.16.77.131:/root/

被管理節(jié)點(diǎn):
1. 安裝軟件包
yum -y install mha*.rpm

2. 創(chuàng)建相應(yīng)賬號(主節(jié)點(diǎn))
mysql -uroot -p000000


mysql> show master logs;
+----------------------+-----------+
| Log_name             | File_size |
+----------------------+-----------+
| localhost-bin.000001 |       177 |
| localhost-bin.000002 |       177 |
| localhost-bin.000003 |       177 |
| localhost-bin.000004 |       333 |
| localhost-bin.000005 |       177 |
| localhost-bin.000006 |       177 |
| localhost-bin.000007 |       154 |
+----------------------+-----------+
7 rows in set (0.00 sec)

grant replication slave on *.* to repluser@'172.16.77.%' identified by '000000';;

grant all on *.* to mhauser@'172.16.77.%' identified by '000000';

3. 編輯配置文件(從節(jié)點(diǎn))
[mysqld]
server_id=1 #為當(dāng)前節(jié)點(diǎn)設(shè)置全局唯一的ID號
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1

4. 指向主節(jié)點(diǎn)(從節(jié)點(diǎn))
mysql -uroot -p000000
CHANGE MASTER TO MASTER_HOST='172.16.77.132',
MASTER_USER='repluser',
MASTER_PASSWORD='000000',
MASTER_LOG_FILE='localhost-bin.000007',
MASTER_LOG_POS=154;

管理節(jié)點(diǎn):
1. 驗(yàn)證配置
masterha_check_ssh --conf=/etc/mha/app1.conf
masterha_check_repl --conf=/etc/mha/app1.conf

2. 啟動(dòng)進(jìn)程
masterha_manager --conf=/etc/mha/app1.conf

測試:
1. 模擬主節(jié)點(diǎn)故障
/etc/init.d/mysqld stop  ##主節(jié)點(diǎn)執(zhí)行

2. 查看主從狀態(tài)
[root@localhost ~]# mysql -uroot -p000000 -e "show slave status\G"  ##從節(jié)點(diǎn)執(zhí)行
mysql: [Warning] Using a password on the command line interface can be insecure.
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.77.131
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: localhost-bin.000017
          Read_Master_Log_Pos: 194
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 375
        Relay_Master_Log_File: localhost-bin.000017
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,516評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,484評論 2 379