【Oracle】Oracle12C 非圖形界面安裝(靜默安裝)

在有些情況,服務器是的操作系統是最小安裝的,最小安裝并不包括圖形界面,網上很多Oracle的安裝文章都是在有圖形界面下完成的,本篇文章介紹如何在非圖形界面下安裝Oracle,再安裝完畢后總結了日常的啟動和關閉數據庫的方式,同時也綜合總結了sqlplus的一些可以改進的方法和navicat遠程連接數據庫的時候遇到的問題以及對應的解決方案,本文部分素材、方法步驟來源于網絡,再結合本人實踐而得出的結果,來源資料在文末給出

文章目錄

  • 一、安裝環境
  • 二、安裝包下載
  • 三、環境配置準備
  • 四、安裝部署及配置
  • 五、數據庫啟動與關閉
  • 六、sqlplus改進
  • 七、navicat遠程數據庫遇到的問題及解決方案

一、安裝環境

以下安裝環境是在虛擬機測試環境,僅供參考
操作系統:CentOS 7
內存:2G
CPU:雙核
硬盤:50G

二、安裝包下載

1、百度“Oracle”,第一個結果進到官網
2、依次點擊菜單->開發人員->數據庫
3、在下載一欄選擇Oracle
4、點擊同意協議,然后找到對應的版本點擊file 1


之后就會進入下載界面,如果提示需要注冊的話那就注冊一個賬號就好了,注冊是免費的

三、環境配置準備

在下載的同時可以在服務器上準備一下需要安裝的環境

1、關閉防火墻
# systemctl stop firewalld.service --關閉防火墻

# systemctl disable firewalld.service -- 禁止防火墻開機啟動
2、關閉selinux
# setenforce 0
# vim /etc/selinux/config -- 編輯文件

文件中設置SELINUX=disabled

修改host名稱(其實可以省略)

# vim /etc/hosts

在文件末尾加上

192.168.15.206 oracleVM
3、安裝必要的依賴包

期間可能會出現錯誤的情況,執行多幾次就好了

# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

安裝完后檢查是否安裝成功,成功是31個包

# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
4、創建用戶和用戶組

創建oinstall和dba組

# groupadd oinstall
# groupadd dba

創建Oracle用戶

# useradd -g oinstall -G dba oracle

設置Oracle用戶密碼

# passwd oracle

查看創建結果

# id oracle
5、修改內核參數(根據需要修改)

編輯打開配置文件

# vim /etc/sysctl.conf

在文件中加上:

fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=524288
kernel.shmmax=2147483647
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.panic_on_oops=1
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.rp_filter=2
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500

付上各個參數說明:
fs.aio-max-nr:
此參數限制并發未完成的請求,應該設置避免I/O子系統故障。
fs.file-max:
該參數決定了系統中所允許的文件句柄最大數目,文件句柄設置代表linux系統中可以打開的文件的數量。
kernel.shmall:
該參數控制可以使用的共享內存的總頁數。Linux共享內存頁大小為4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那么需要共享內存頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304才符合要求.
kernel.shmmax:
是核心參數中最重要的參數之一,用于定義單個共享內存段的最大值。設置應該足夠大,設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。至于導致系統下降的主要原因為在實例啟動以及ServerProcess創建的時候,多個小的共享內存段可能會導致當時輕微的系統性能的降低(在啟動的時候需要去創建多個虛擬地址段,在進程創建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。
官方建議值:
32位linux系統:可取最大值為4GB(4294967296bytes)-1byte,即4294967295。建議值為多于內存的一半,所以如果是32為系統,一般可取值為4294967295。
64位linux系統:可取的最大值為物理內存值-1byte,建議值為多于物理內存的一半,例如,如果為12GB物理內存,可取1210241024*1024-1=12884901887。
kernel.shmmni:
該參數是共享內存段的最大數量。shmmni缺省值4096,一般肯定是夠用了。
kernel.sem:
以kernel.sem = 250 32000 100 128為例:

  • 250是參數semmsl的值,表示一個信號量集合中能夠包含的信號量最大數目。

  • 32000是參數semmns的值,表示系統內可允許的信號量最大數目。

  • 100是參數semopm的值,表示單個semopm()調用在一個信號量集合上可以執行的操作數量。

  • 128是參數semmni的值,表示系統信號量集合總數。

net.ipv4.ip_local_port_range:
表示應用程序可使用的IPv4端口范圍。
net.core.rmem_default:
表示套接字接收緩沖區大小的缺省值。
net.core.rmem_max:
表示套接字接收緩沖區大小的最大值。
net.core.wmem_default:
表示套接字發送緩沖區大小的缺省值。
net.core.wmem_max:
表示套接字發送緩沖區大小的最大值。

使配置文件生效

# sysctl -p
6、修改配置
(1)打開并編輯文件/etc/security/limits.conf
# vim /etc/security/limits.conf

在文件末尾加上:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240


第1行是設置進程數軟限制;
第2行是設置進程數硬限制;
第3行是設置文件數軟限制;
第4行是設置文件數硬限制

(2)打開并編輯文件/etc/pam.d/login
# vim /etc/pam.d/login

添加以下內容

session required /lib64/security/pam_limits.so

session required pam_limits.so
(3)打開并編輯文件/etc/profile
# vim /etc/profile

在文件末尾添加以下內容

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384 ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

使配置文件生效

# source /etc/profile
(4)創數據庫目錄
# mkdir -p /database/oracle  
# chown -R oracle:oinstall /database/oracle/  
# chmod -R 775 /database/oracle/
(5)配置Oracle用戶

切換到oracle用戶下

# su - oracle

打開并編輯環境變量文件,配置oracle用戶環境變量

$ vim ~/.bash_profile

在末尾添加

export ORACLE_BASE=/database/oracle/oracle

export ORACLE_SID=orcl

使配置生效

$ source ~/.bash_profile

四、安裝部署及配置

1、上傳Oracle安裝包

創建一個文件夾

# mkdir /home/oracle/oradb
2、安裝解壓工具

切換到root用戶

# su - root

安裝解壓工具

# yum install -y unzip zip
3、解壓文件

切換到oracle用戶

# su - oracle 

解壓文件

$ unzip xxx.zip
4、復制相應的模板

為了不影響原來的文件內容(后面文件腳本內容會作修改),將相應的模板復制一份,當然也可以省略這步

$ cd /home/oracle
$ mkdir etc 
$ cp  /home/oracle/oradb/database/response/* /home/oracle/etc/


切換到root用戶

# su - root

設置權限

# chmod 700 /home/oracle/etc/*.rsp
5、編輯文件內容

切換到oracle用戶

# su - oracle

打開編輯db_install.rsp

$ vim /home/oracle/etc/db_install.rsp

找出以下項,并作修改(根據個人實際情況修改,比如我這邊的oracle的目錄是做過調整的)

oracle.install.option=INSTALL_DB_SWONLY // 安裝類型  
UNIX_GROUP_NAME=oinstall // 安裝組  
INVENTORY_LOCATION=/database/oracle/oraInventory //INVENTORY目錄(不填就是默認值)  
ORACLE_HOME=/database/oracle/oracle/product/12/db_1  
ORACLE_BASE=/database/oracle/oracle  
oracle.install.db.InstallEdition=EE     // 企業版本  
oracle.install.db.OSDBA_GROUP=dba  
oracle.install.db.OSOPER_GROUP=oinstall  
oracle.install.db.OSBACKUPDBA_GROUP=oinstall  
oracle.install.db.OSDGDBA_GROUP=oinstall  
oracle.install.db.OSKMDBA_GROUP=oinstall  
oracle.install.db.OSRACDBA_GROUP=oinstall  
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //數據庫類型  
oracle.install.db.config.starterdb.globalDBName=orcl  
oracle.install.db.config.starterdb.SID=orcl  
oracle.install.db.config.starterdb.memoryLimit=81920 //自動管理內存的內存(M)  
oracle.install.db.config.starterdb.password.ALL=oracle//設定所有數據庫用戶使用同一個密碼  
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false  
DECLINE_SECURITY_UPDATES=true
6、開始安裝

執行db_install.rsp文件

$ cd /home/oracle/oradb/database
$ ./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion \
-showProgress -silent -responseFile /home/oracle/database/response/db_install.rsp

在安裝快完成的時候會提示要切換到root用戶執行兩個腳本,這步跟著照做就是

$ su - root 
# /database/oracle/oraInventory/orainstRoot.sh

# /database/oracle/oracle/product/12/db_1/root.sh


7、修改oracle用戶環境變量

切換到oracle用戶,打開并編輯用戶編輯變量文件

# su - oracle
$ vim ~/.bash_profile

按需求將以下內容加上

export ORACLE_BASE=/database/oracle/oracle
export ORACLE_SID=orcl 
export ROACLE_PID=oral12
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/database/oracle/oracle/product/12/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'

使配置生效

$ source ~/.bash_profile

配置監聽

$ netca /silent /responsefile /home/oracle/etc/netca.rsp


啟動監聽

$ lsnrctl start

修改靜默建庫文件

$ vim /home/oracle/etc/dbca.rsp

其中文件內容修改如下(根據實際情況修改)

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0  
gdbName=orcl  
sid=orcl  
databaseConfigType=SI  
createAsContainerDatabase=true  
numberOfPDBs=1  
pdbName=orclpdb  
templateName=/database/oracle/oracle/product/12/db_1/assistants/dbca/templates/General_Purpose.dbc  
emExpressPort=5500  
omsPort=0  
characterSet=AL32UTF8  
listeners=LISTENER  
memoryPercentage=40  
automaticMemoryManagement=false  
totalMemory=0

執行靜默建庫

$ dbca -silent -createDatabase  -responseFile  /home/oracle/etc/dbca.rsp



此時數據庫已安裝成功

8、登進數據庫開啟實例
$ sqlplus / as sysdba
SQL>startup

五、數據庫啟動與關閉

概述:只有具備sysdba和sysoper系統特權的用戶才能啟動和關閉數據庫。
在啟動數據庫之前應該啟動監聽程序,否則就不能利用命令方式來管理數據庫,包括啟動和關閉數據庫。
雖然數據庫正常運行,但如果沒有啟動監聽程序,客戶端就不能連接到數據庫。

1、啟動

Oracle數據庫的完整啟動過程包含以下3個步驟:
簡單地說,就是:啟動實例-->加載數據庫-->打開數據庫.
具體說明:
1.創建并啟動與數據庫對應的實例。
在啟動實例時,將為實例創建一系列后臺進程和服務進程,并且在內存中創建SGA區等內存結構。在實例啟動的過程中只會使用到初始化參數文件,數據庫是否存在對實例的啟動沒有影響。如果初化參數設置有誤,實例將無法啟動。
2.為實例加載數據庫。
加載數據庫時實例將打開數據庫的控制文件,從控制文件中獲取數據庫名稱、數據文件的位置和名稱等有關數據庫物理結構的信息,為打開數據庫做好準備。如果控制文件損壞,則實例將無法加載數據庫。在加載數據庫階段,實例并不會打開數據庫的物理文件----數據文件和重做日志文件。
3.將數據庫設置為打開狀態。
打開數據庫時,實例將打開所有處于聯機狀態的數據文件和重做日志文件。控制文件中的任何一個數據文件或重做日志文件無法正常打開,數據庫都將返回錯誤信息,這時需要進行數據庫恢復。
只有將數據庫設置為打開狀態后,數據庫才處于正常狀態,這時普通用戶才能夠訪問數據庫。在很多情況下,啟動數據庫時并不是直接完成上述3個步驟,而是逐步完成的,然后執行必要的管理操作,最后才使數據庫進入正常運行狀態。所以,才有了各種不同的啟動模式用于不同的數據庫維護操作。
因為Oracle數據庫啟動過程中不同的階段可以對數據庫進行不同的維護操作,對應我們不同的需求,所以就需不同的模式啟動數據庫。

各種模式詳解:
1.NoMount 模式(啟動實例不加載數據庫)
命令:startup nomount
講解:這種啟動模式只會創建實例,并不加載數據庫,Oracle僅為實例創建各種內存結構和服務進程,不會打開任何數據文件。在NoMount模式下,只能訪問那些與SGA區相關的數據字典視圖,包括V$PARAMETER、V$SGA、V$PROCESS 和 V$SESSION等,這些視圖中的信息都是從SGA區中獲取的,與數據庫無關。非安裝啟動,這種方式啟動下可執行:重建控制文件、重建數據庫、讀取init.ora文件,啟動instance,即啟動SGA和后臺進程,這種啟動只需要init.ora文件。
模式用途
(1)創建新數據庫;
(2)重建控制文件。

2.Mount模式(加載數據庫但不打開數據庫)
命令:startup mount
講解:這種啟動模式將為實例加載數據庫,但保持數據庫為關閉狀態。因為加載數據庫時需要打開數據庫控制文件,但數據文件和重做日志文件都都無法進行讀寫,所以用戶還無法對數據庫進行操作。 在Mount模式下,只能訪問那些與控制文件相關的數據字典視圖,包括V$THREAD、V$CONTROLFILE、V$DATABASE、V$DATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。
模式用途
(1)重命名數據文件;
(2)添加、刪除或重命名重做日志文件;
(3)執行數據庫完全恢復操作;
(4)改變數據庫的歸檔模式。

3.Open模式(正常打開數據庫)
命令:startup [open]
講解:正常按3個步驟啟動數據庫。
模式用途:平時不對數據庫做什么維護,像只做應用開發,用這個模式就好了。

4.強制啟動模式
命令:startup force
用途&講解:在某些情況下,使用前面的各種模式都無法成功啟動數據庫時,可以嘗試強制啟動模式。
使用Alter Database語句,還可以在各啟動模式間切換。并且,還可以對數據庫設置不同的狀態用于不同的操作,如受/非受限抽狀態、只讀。

使用Alter Database語句,在各啟動模式間切換。
(1)從NoMount模式切換到Mount模式(沒有從mount切換到nomount的):
命令:ALTER DATABASE MOUNT;
(2)當數據庫狀態為關閉時,切換到Open模式
命令:ALTER DATABASE OPEN;
(3)在Open模式下,還可以選擇將數據庫設置為非受限狀態和受限狀態。
命令:
在啟動Open模式時,添加restrict關鍵字:startup restrict
設置或取消受限狀態:alter system enable\disable restricted session;
講解
非受限狀態,就是我們平時應用程序開發用到的狀態。
受限狀態,當打開的數據庫被設置為受限狀態時,只有Create Session 和 Restricted Session系統權限 或者 具有SYSDBA 和 SYSPORE 系統權限的用戶才能連接到數據庫。但進入受限狀態后,系統中仍然可能會存在活動的普通用戶會話。
受限狀態用途:
(1)執行數據導入或導出操作;
(2)暫時拒絕普通用戶訪問數據庫;
(3)進行數據庫移植或升級操作。
(4) 只讀狀態
設置只讀命令:alter database open read only;
取消只讀命令:alter database open read write;
用途&講解:當一個正常打開的數據庫被設置為只讀狀態時,用戶只能查詢數據,但不能以任何方式對數據庫對象進行修改。處于只讀狀態,可能保證數據文件和重做日志文件中的內容不被修改,但是并不限制那些不會寫入數據文件與重做日志文件的操作。

2、關閉

與數據庫啟動一樣,關閉數據庫與實例也分為3步:關閉數據庫-->實例卸載數據庫--->終止實例。
詳細步驟為
(1)關閉數據庫,oracle將重做日志高速緩存中的內容寫入重做日志文件,并且將數據庫高速緩存中被改動過的數據寫入數據文件,然后再關閉所有的數據文件和重做日志文件,這時數據庫的控制文件仍然處于打開狀態,但是由于數據庫處于關閉狀態,所以用戶無法訪問數據庫。
(2)卸載數據庫,關閉數據庫后,例程才能被卸載,控制文件再這個時候被關閉,但例程仍然存在 。
(3)終止例程,進程終止,分配給例程的內存sga區被回收。

1.Nomal(正常關閉方式)
命令:shutdown nomal
講解:正常方式關閉數據時,Oracle執行如下操作:
(1)阻止任何用戶建立新的連接。
(2)等待當前所有正在連接的用戶主動斷開連接(此方式下Oracle不會立即斷掉當前用戶的連接,這些用戶仍然操作相關的操作)
(3)一旦所有的用戶都斷開連接,則立即關閉、卸載數據庫,并終止實例。(所以,一般以正常方式關閉數據庫時,應該通知所有在線的用戶盡快斷開連接)
2.Immediate(立即關閉方式)
命令:shutdown immediate
講解
(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
(2)Oracle不等待在線用戶主動斷開連接,強制終止用戶的當前事務,將任何未提交的事務回退。(如果存在太多未提交的事務,此方式將會耗費很長時間終止和回退事務)
(3)直接關閉、卸載數據庫,并終止實例。
3.Transactional(事務關閉方式)
命令:shutdown transactional
講解:這種方式介于正常關閉方式跟立即關閉方式之間,響應時間會比較快,處理也將比較得當。執行過程如下:
(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
(2)等待所有未提交的活動事務提交完畢,然后立即斷開用戶的連接。
(3)直接關閉、卸載數據庫,并終止實例。
4.Abort(終止關閉方式)
命令:shutdown abort
講解:這是比較粗暴的一種關閉方式,當前面3種方式都無法關閉時,可以嘗試使用終止方式來關閉數據庫。但是以這種方式關閉數據庫將會丟失一部份數據信息,當重新啟動實例并打開數據庫時,后臺進程SMON會執行實例恢復操作。一般情況下,應當盡量避免使用這種方式來關閉數據庫。執行過程如下:
(1)阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
(2)立即終止當前正在執行的SQL語句。
(3)任何未提交的事務均不被退名。
(4)直接斷開所有用戶的連接,關閉、卸載數據庫,并終止實例。

3、sqlplus登錄
  1. sqlplus / as sysdba
  sqlplus / as sysdba

無需數據庫進入可用狀態,就可用用該命令登錄,運行startup來啟動。

sqlplus “/as sysdba”
sqlplus username/pwd@host/service_name

sqlplus tiger/scott@localhost/orcl
sqlplus tiger/scott@172.16.10.1:1521/orcl

以用戶名/密碼、IP:Port、服務名 為參數登錄。

  1. sqlplus /nolog
sqlplus /nolog

先使用sqlplus命令,而不連接數據庫,然后用conn命令登錄。

 conn tiger/scott
 conn tiger/scott@172.16.0.1/orcl

六、sqlplus改進

概述:在默認的sqlplus的使用過程中發現是比較難用的,最好的例子就是不能用退格鍵以及掉出歷史命令的上下鍵,這里介紹退格鍵的改進,至于掉出歷史命令的上下鍵可參考文末的文章

切換至oracle用戶

# su - oracle

打開并編輯用戶環境變量配置文件

$ vim ~/.bash_profile

在文件末尾加上以下代碼并保存退出

stty erase ^h


使配置文件生效

$ source ~/.bash_profile

此時再進入sqlplus測試發現,退格鍵已經能用了

七、navicat遠程數據庫遇到的問題及解決方案

一般數據庫是安裝在遠程服務器上,然后用本機的管理軟件去連接,此時需要配置一下
在oracle用戶下,打開并編輯listener.ora文件(一般在安裝目錄下)

$ vim /database/oracle/oracle/product/12/db_1/network/admin/listener.ora

然后將其中的HOST改為服務器的IP(這里為了保留之前的配置所以直接在文件后面復制了上面的配置然后作修改)


保存退出
打開并編輯tnsnames.ora文件

$ vim /database/oracle/oracle/product/12/db_1/network/admin/tnsnames.ora

跟上面操作一樣,將HOST改為服務器的IP


保存退出
然后重啟數據庫實例和數據庫監聽,此時可以用navicat來連接數據庫了

可能會遇到的錯誤:
1、

ORA-12170:TNS:連接超時

檢查步驟及解決方法:
(1)從本機ping服務器IP是否能ping通
(2)使用tnsping或者telnet測試端口是否通暢
(3)服務器防火墻是否已關閉
(4)服務器selinux是否已關閉
(5)數據庫監聽是否開啟
(6)如果是用PL/SQL的話,tns配置中,host是否為服務器的IP

2、

ORA-28040:No matching authentication protocol

錯誤原因是因為navicat的oci.dll版本不匹配,通常是因為版本過低,即低版本的oci.dll連接高版本的數據
根據下面步驟查看oci.dll的版本




可看到這個版本是10_2,需要上官網找到最新的版本(截至到本篇文章的日期,最新版本是18_5)
地址:https://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index-4369172.html



下載好后解壓,并找到以下三個文件,然后替換掉原來版本的三個文件然后重啟navicat即可(10_2跟18_5的有兩個文件文件名會有點不同)


參考文章:
Oracle安裝:
https://www.cnblogs.com/pachulia/p/9261721.html
https://blog.csdn.net/zwl18210851801/article/details/80774980
oracle啟動與關閉:
https://www.cnblogs.com/kevingrace/p/7694659.html
https://www.cnblogs.com/fiberhome/p/7414220.html
sqlplus改進:
https://www.cnblogs.com/mengfanrong/p/4680281.html
Oracle遠程連接:
https://blog.csdn.net/kangguowei/article/details/53039195
https://blog.csdn.net/wanghailong_qd/article/details/85887825
https://www.cnblogs.com/gw666/p/7889287.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容