oracle 數據庫啟停


一. oracle 數據庫啟停三個階段

1.1 startup nomount : 啟動實例

   (1) 讀取參數文件 (2)分配內存 (3)啟動后台進程

SQL> startup nomount
ORACLE instance started.

Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 528485968 bytes
Database Buffers 314572800 bytes
Redo Buffers 5132288 bytes

--startup nomount 此時實例已經啟動

SQL> select status from v$instance;

STATUS
------------------------
STARTED

 

--啟動至nomount 階段可以查看如下視圖,也僅僅能夠查看與實例有關的視圖

v$instance 、v$sgastat 、v$process 、v$parameter

--若查看與數據庫相關的信息則無法查看,如下查看數據文件及表空間信息


SQL> select name from v$datafile;
select name from v$datafile
*
ERROR at line 1:
ORA-01507: database not mounted


SQL> select name from v$tablespace;
select name from v$tablespace
*
ERROR at line 1:
ORA-01507: database not mounted

 

1.2 alter database mount:掛載數據庫

    (1)讀取控制文件

    (2)檢查控制文件個數是否一致(控制文件有2個),檢查控制文件內容是否一致

    (3)檢查控制文件數據庫名和參數文件記錄的數據庫名是否一致

             

SQL> select name from v$database;

NAME
----------------------------------------
ORCL

SQL> show parameter name;

NAME                                                    TYPE                               VALUE
------------------------------------ ---------------------------------------- ------------------------------
db_file_name_convert                            string
db_name                                                string                                  orcl
db_unique_name            string             orcl
global_names             boolean         FALSE
instance_name             string             orcl
lock_name_space           string
log_file_name_convert        string
service_names            string           orcl

    (4)可以查看與數據文件有關的動態視圖v$datafile

    (5)可以查看與控制文件有關的動態視圖v$controlfile 、v$controlfile_record_section

    (6)可以查看表空間

 

--此時數據庫已經啟動
SQL> alter database mount;

Database altered.

 

--此時查看數據庫open_mode 狀態已經掛載

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
MOUNTED

 

--此時則可以查看與數據庫有關的信息如下

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf

     

--於此同時我們可以通過動態性能視圖查看數據庫信息,但還不能訪問數據庫表

SQL> select * from scott.emp;
select * from scott.emp
*
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only

 

1.3 alter database open:打開數據庫

 (1)檢查數據文件和日志文件

 (2)檢查數據文件頭ckpt和控制文件ckpt和數據文件last ckpt

SQL> select a.checkpoint_change# "header_ckpt",
2 b.checkpoint_change# "ctl_ckpt",
3 b.last_change# "final_ckpt"
4 from v$datafile_header a, v$datafile b
5 where a.file# = b.file#;

header_ckpt ctl_ckpt final_ckpt
----------- ---------- ----------
890202 890202
890202 890202
890202 890202
890202 890202
890202 890202

 (3)驗證控制文件和數據文件的一致性

 

 

SQL> alter database open;

Database altered.

 

1.4 關閉數據庫

         shutdown abort :非一致性關庫

         shutdown transactional

         shutdown normal

         shutdown immediate :關閉數據庫

         采用immediate 關閉模式會出現以下情況:

       (1)oracle db 正在處理的當前SQL語句不會完成;

       (2)oracle 服務器不會等待當前連接到數據庫的用戶斷開連接;

       (3)oracle 服務器會回退活動的事物處理,而且會斷開所有連接用戶;

       (4)oracle 服務器在關閉並斷開數據庫后關閉實例,下一次啟動不需要不需進行實例恢復。

         

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM