日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Oracle?數據庫啟動過程的三階段、停庫四種模式詳解_oracle

作者:夢想家DBA ? 更新時間: 2022-12-19 編程語言

數據庫的啟動過程(3個臺階)

1.nomount

shutdown --> nomount

startup nomount

select status from v$instance;
SQL> 
SQL> conn / as sysdba
Connected to an idle instance.
SQL> 
SQL> startup nomount
ORACLE instance started.
 
Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
SQL> 
SQL> 
SQL> 
SQL> 
SQL> select status from v$instance;
 
STATUS
------------
STARTED
 
SQL> 

數據庫啟動到nomount做了什么?

  • 分配實例(ipcs -sm, ps -ef | grep ora_)
  • 寫審計文件和警報日志

數據庫啟動到nomount需要什么?

  • 參數文件
  • 需要審計目錄和診斷目錄

nomount狀態可以做什么?

  • 可以修改參數
  • 可以查看內存和后臺進程的信息
  • 可以創建數據庫
  • 可以重建控制文件
SQL> 
SQL> select * from v$sgainfo;
 
NAME                                  BYTES RES     CON_ID
-------------------------------- ---------- --- ----------
Fixed SGA Size                      9137968 No           0
Redo Buffers                        7639040 No           0
Buffer Cache Size                 411041792 Yes          0
In-Memory Area Size                       0 No           0
Shared Pool Size                  197132288 Yes          0
Large Pool Size                     4194304 Yes          0
Java Pool Size                            0 Yes          0
Streams Pool Size                         0 Yes          0
Shared IO Pool Size                       0 Yes          0
Data Transfer Cache Size                  0 Yes          0
Granule Size                        4194304 No           0
 
NAME                                  BYTES RES     CON_ID
-------------------------------- ---------- --- ----------
Maximum SGA Size                  629145392 No           0
Startup overhead in Shared Pool   193465328 No           0
Free SGA Memory Available                 0              0
 
14 rows selected.
 
SQL> select name from v$bgprocess where paddr<>'00';
 
NAME
-----
PMON
CLMN
PSP0
VKTM
GEN0
MMAN
M000
GEN1
SCMN
DIAG
OFSD
 
NAME
-----
SCMN
DBRM
VKRM
SVCB
PMAN
DIA0
DBW0
LGWR
CKPT
LG00
SMON
 
NAME
-----
LG01
SMCO
RECO
W000
LREG
W001
PXMN
FENC
D000
MMON
MMNL
 
NAME
-----
S000
TMON
 
35 rows selected.
 
SQL> 

2.mount

shutdown --> mount

  • startup mount

nomount --> mount

  • alter database mount;
SQL> 
SQL> select status from v$instance;
 
STATUS
------------
STARTED
 
SQL> alter database mount;
 
Database altered.
 
SQL> select status from v$instance;
 
STATUS
------------
MOUNTED
 
SQL> 

數據庫啟動到mount做了什么?

  • 加載控制文件的信息到內存

數據庫啟動到mount狀態需要做什么?

  • 控制文件

mount狀態可以做什么?

  • 可以備份、還原、恢復
  • 可以移動數據庫文件
  • 可以進行數據文件的offline
  • 可以打開和關閉歸檔模式
  • 可以打開和關閉閃回數據庫的功能
SQL> 
SQL> select name from v$datafile;
 
NAME
--------------------------------------------------------------------------------
/u02/oradata/CDB1/system01.dbf
/u02/oradata/CDB1/sysaux01.dbf
/u02/oradata/CDB1/undotbs01.dbf
/u02/oradata/CDB1/pdbseed/system01.dbf
/u02/oradata/CDB1/pdbseed/sysaux01.dbf
/u02/oradata/CDB1/users01.dbf
/u02/oradata/CDB1/pdbseed/undotbs01.dbf
/u02/oradata/CDB1/pdb1/system01.dbf
/u02/oradata/CDB1/pdb1/sysaux01.dbf
/u02/oradata/CDB1/pdb1/undotbs01.dbf
/u02/oradata/CDB1/pdb1/users01.dbf
 
11 rows selected.
 
SQL> select name from v$tempfile;
 
NAME
--------------------------------------------------------------------------------
/u02/oradata/CDB1/temp01.dbf
/u02/oradata/CDB1/pdbseed/temp012022-11-02_15-16-24-663-PM.dbf
/u02/oradata/CDB1/pdb1/temp01.dbf
 
SQL> 
SQL> select member from v$logfile;
 
MEMBER
--------------------------------------------------------------------------------
/u02/oradata/CDB1/redo03.log
/u02/oradata/CDB1/redo02.log
/u02/oradata/CDB1/redo01.log
 
SQL>

3.open

shutdown --> open

  • startup

nomount ---->? open

  • alter database mount;
  • alter datbase open;

只讀方式去打開數據庫

SQL> 
SQL> startup mount
ORACLE instance started.
 
Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
Database mounted.
SQL> 
SQL> 
SQL> select status from v$instance;
 
STATUS
------------
MOUNTED
 
SQL> 
SQL> alter database open read only;
 
Database altered.
 
SQL> 
SQL> select status from v$instance;
 
STATUS
------------
OPEN
 
SQL> 
SQL> 
SQL> 
SQL> select open_mode from v$database;
 
OPEN_MODE
--------------------
READ ONLY
 
SQL> 
SQL> 
SQL> startup
ORACLE instance started.
 
Total System Global Area  629145392 bytes
Fixed Size                  9137968 bytes
Variable Size             197132288 bytes
Database Buffers          415236096 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.
SQL>

數據庫啟動到open做了什么?

  • 加載聯機日志和數據文件

數據庫啟動到open需要什么?

  • 聯機日志和數據文件

open狀態可以做什么?

數據庫的停止(四種模式)

1.正常停庫: shutdown normal = shutdown

  • 普通用戶的連接不允許建立
  • 等待查詢結束
  • 等待事務結束
  • 產生檢查點(數據同步)
  • 關閉聯機日志和數據文件
  • 關閉控制文件
  • 關閉實例

2.事務級停庫: shutdown transactional

  • 普通用戶的連接不允許建立
  • 查詢被終止
  • 等待事務結束
  • 產生檢查點(數據同步)
  • 關閉聯機日志和數據文件
  • 關閉控制文件
  • 關閉實例

3.立即停庫 : shutdown immediate (生產庫最常用的停庫方式)

  • 普通用戶的連接不允許建立
  • 查詢被終止
  • 事務被回退
  • 產生檢查點(數據同步)
  • 關閉聯機日志和數據文件
  • 關閉控制文件
  • 關閉實例

4.強制停庫 : shutdown abort

相當于拔電源

(停止之后的數據庫是臟庫)
注意:這些命令需要慎用

startup force = shutdown abort + startup
startup force nomount = shutdown abort + startup nomount
startup force mount = shutdown abort + startup mount

原文鏈接:https://blog.csdn.net/u011868279/article/details/127950584

欄目分類
最近更新