日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend

發布時間:2025/3/8 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫共有三種狀態:quiesce、resrict、suspend

一、quiesce模式

首先來說說數據庫的靜默狀態

靜默狀態是指數據庫中只存在sys和system用戶建立的活動會話。只有dba能繼續操作數據庫。

此狀態下可以進行一些在非靜默狀態下執行可能存在不安全因素的特殊操作。

對于必須持續運行的系統,在不關閉數據庫就能執行某些特殊操作的功能十分重要。

靜默狀態下數據庫資源管理器(database resource manager)將阻止sys、system用戶以外的用戶提交操作。

進入靜默狀態的方法為:

alter system quiesce restricted;(sys或system用戶執行)

進入靜默模式的過程為:數據庫資源管理器控制所有實例,阻止非活動會話恢復為活動狀態。普通用戶無法執

行新的事務、查詢、數據提取和pl/sql過程。如果一個查詢是由多個連續的 OCI 數據提取操作執行的,Oracle

不會等待所有的數據提取全部結束。Oracle 只會等待當前的數據提取結束并阻塞之后的數據提取。Oracle 還

會等待所有擁有共享資源的會話(SYS 及 SYSTEM 用戶的資源除外)釋放資源。上面提到的所有等待都結束之

后,Oracle 可以將數據庫置為靜默狀態,并結束 QUIESCE RESTRICTED 語句。

如果數據庫的某個實例是在共享服務模式(shared server mode)下運行的,Oracle 通過數據庫資源管理器(

Database Resource Manager)阻止用戶(SYS 及 SYSTEM 用戶除外)登錄到此實例。如果實例運行在專用服務

模式(dedicated server mode)下,Oracle 不會對此實例的用戶登錄進行限制。

靜默狀態恢復到正常狀態方法為:

alter system unquiesce

可以通過v$instance等視圖得到數據庫狀態。

具體實例為:

Microsoft Windows XP [版本 5.1.2600]

(C) 版權所有 1985-2001 Microsoft Corp.

D:\Documents and Settings\tian>set oracle_sid=test_database

D:\Documents and Settings\tian>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:19:50 2012

Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.

SQL> conn /as sysdba

已連接。

SQL> alter system quiesce restricted

2? ;

alter system quiesce restricted

*

ERROR 位于第 1 行:

ORA-25507: 沒有使資源管理器一直處于打開狀態

//如果是9i,那么必須設置resource_limit參數為true,并設置resource_manager_plan參數指向一個資源計劃

SQL> alter system set resource_manager_plan='SYSTEM_PLAN' scope=spfile sid='JLRP

S';

//由于數據庫沒有開啟資源管理器,無法執行這個操作。需要開啟后重啟才生效。

系統已更改。

SQL> shutdown immediate;

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area? 126950220 bytes

Fixed Size?????????????????? 453452 bytes

Variable Size???????????? 109051904 bytes

Database Buffers?????????? 16777216 bytes

Redo Buffers???????????????? 667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> alter system quiesce restricted;

系統已更改。

SQL> conn

^C

//此處證明靜默模式下其他用戶不能登錄數據庫

D:\Documents and Settings\tian>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:32:07 2012

Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.

SQL> conn /as sysdba

已連接。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION?????????? STARTUP_TI STATUS?????? PAR??? THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS???? SHU DATABASE_STATUS?? INSTANCE_ROLE????? ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 test_database

TIANLEI

9.2.0.1.0???????? 19-10月-12 OPEN???????? NO?????????? 1 STARTED

ALLOWED??? NO? ACTIVE??????????? PRIMARY_INSTANCE?? QUIESCED//處于靜默狀態

SQL> alter system unquiesce;

系統已更改。

SQL> conn scott/tiger

已連接。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION?????????? STARTUP_TI STATUS?????? PAR??? THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS???? SHU DATABASE_STATUS?? INSTANCE_ROLE????? ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 test_database

TIANLEI

9.2.0.1.0???????? 19-10月-12 OPEN???????? NO?????????? 1 STARTED

ALLOWED??? NO? ACTIVE??????????? PRIMARY_INSTANCE?? NORMAL//恢復正常狀態了

在設置靜默狀態時,正在登陸的普通用戶被掛起,無法進行操作了。

而當狀態改為正常后,普通用戶的會話繼續執行。

以上的實驗是在oracle9i環境下操作的,在10g中,必須開啟數據庫資源管理器的限制已經被取消了。因此,向

上面實驗中的操作其實是沒意義的,因為靜默狀態和restricted狀態的區別就在于其不用停掉數據庫而執行操

作。

在RAC環境下某個節點設置了靜默狀態后,其他節點也是能夠監測到的。

二、restrict模式:

直接實驗

1.會話1中進行操作:

SQL> startup restrict

ORACLE 例程已經啟動。

Total System Global Area? 126950220 bytes

Fixed Size?????????????????? 453452 bytes

Variable Size???????????? 109051904 bytes

Database Buffers?????????? 16777216 bytes

Redo Buffers???????????????? 667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION?????????? STARTUP_TI STATUS?????? PAR??? THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS???? SHU DATABASE_STATUS?? INSTANCE_ROLE????? ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 jlrps

TIANLEI

9.2.0.1.0???????? 19-10月-12 OPEN???????? NO?????????? 1 STARTED

RESTRICTED NO? ACTIVE??????????? PRIMARY_INSTANCE?? NORMAL

SQL> create user tes1 identified by tes1;

用戶已創建

SQL> grant create session to tes1;

授權成功。

2.會話2中進行操作:

SQL> conn tes1/tes1

ERROR:

ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege

SQL> conn scott/tiger

已連接。

SQL> select * from emp;

EMPNO ENAME????? JOB????????????? MGR HIREDATE????????? SAL?????? COMM

---------- ---------- --------- ---------- ---------- ---------- ----------

DEPTNO

----------

7369 SMITH????? CLERK?????????? 7902 17-12月-80??????? 800

20

7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81?????? 1600??????? 300

30

7521 WARD?????? SALESMAN??????? 7698 22-2月 -81?????? 1250??????? 500

30

……//結果省略,scott用戶擁有dba角色(RESTRICTED SESSION privilege)

3.會話1中操作:

SQL> shutdown immediate;

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area? 126950220 bytes

Fixed Size?????????????????? 453452 bytes

Variable Size???????????? 109051904 bytes

Database Buffers?????????? 16777216 bytes

Redo Buffers???????????????? 667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL>

4.會話2中操作:

SQL> conn tes1/tes1

已連接。

可以看到,restrict模式需要重啟數據庫,且擁有RESTRICTED SESSION privilege的用戶在此模式可以登錄系

統進行操作。

而quiese模式就死板多了,除了sys、system都不行,不過也更安全。

三、suspend模式:

面向所有用戶,限制I/O操作。當我們需要進行物理讀操作時,會話會暫停。

SQL> shutdown immediate

數據庫已經關閉。

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area? 126950220 bytes

Fixed Size?????????????????? 453452 bytes

Variable Size???????????? 109051904 bytes

Database Buffers?????????? 16777216 bytes

Redo Buffers???????????????? 667648 bytes

數據庫裝載完畢。

數據庫已經打開。

SQL> alter system suspend;

系統已更改。

SQL> select * from scott.emp;

//一直沒有查詢結果。

這個問題還真不會解決了。將數據庫重啟再操作還是無效的

說到了數據庫啟停,再復習一下:

啟動類型:

startup nomount? --啟動實例

startup mount??? --啟動實例、裝載

startup (normal) --啟動實例、裝載、打開數據庫

startup pfile='xx/xx/xx.ora'? --參數文件啟動

startup restrict --限制模式,無restricted session權限的用戶無法登錄

startup force??? --強制啟動,正常啟動不了才用

startup open recover --啟動實例,裝載數據庫和啟動完全介質恢復

停止類型:

shutdown (normal) --正常模式

shutdownimmediate --立即模式

shutdown abort??? --中斷模式,再次啟動時可能需要恢復

alter system quiese restricted; --停頓數據庫,只有sys、system用戶可操作

掛起數據庫

--暫停對數據文件和控制文件的所有IO,可以在無IO干擾情況先進行備份

--掛起命令可以掛起數據庫而并不指定一個實例

ALTER SYSTEM SUSPEND;

--恢復到非掛起狀態

ALTER SYSTEM RESUME;

--查看掛起狀態

SELECT DATABASE_STATUS FROM V$INSTANCE;

總結

以上是生活随笔為你收集整理的oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。