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;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534585.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle數據庫連接名是什么,連接到Oracle數據庫的幾種命名方式

連接到Oracle數據庫的幾種命名方式從事 Oracle 相關工作的人,每天都會使用各種工具連接到 Oracle 數據庫,比如:SQL*Plus、PL/SQL、TOAD、SQLDeveloper 等等,下面就列舉了幾種連接到 Oracle 的方式,本例中使用的是 SQL*…

jmeter無法釋放oracle連接,jmeter 連接ORACLE數據庫錯誤及解決方法

問題一:Response message: java.sql.SQLException:Cannot load JDBC driver class ‘oracle.jdbc.driver.OracleDriver‘未引入ojdbc14.jar包所致,2種解決方案,最好重啟一下:1.在測試計劃頁面中,點擊瀏覽,選…

oracle11g ora 12518,servlet執行update報錯ORA-12518

ORA-12518: TNS:listener could not hand off client connection這種錯誤一般是在測試數據庫并發性的,多個用戶的,后臺用servleORA-12518: TNS:listener could not hand off client connection這種錯誤一般是在測試數據庫并發性的,多個用戶的…

linux怎么添加頭文件目錄下,linux下編寫c++,include的那些頭文件在什么地方?

炎炎設計C/C程序在linux下被編譯和連接時,GCC/G會查找系統默認的include和link的路徑,以及自己在編譯命令中指定的路徑。自己指定的路徑就不說了,這里說明一下系統自動搜索的路徑。【1】include頭文件路徑除了默認的/usr/include, /usr/local…

linux內核調度 0號進程,Linux內核源代碼情景分析---第四章?進程與進程調度

4.1 進程四要素什么是進程?1:有一段代碼段供其執行,這代碼段不一定是進程所專用,可以與其他進程公用。2:每個進程有其專用的系統空間的堆棧(棧)【這個棧是進程起碼的“私有財產”】3:在內核中,要…

redhat linux 系統管理,紅帽系統管理一 (RH124)

紅帽系統管理一 (RH124)時間:2018-04-24 14:06:52第 1 部分 — 紅帽企業 Linux 管理員所需掌握的核心系統管理任務本課程涉及使用紅帽 企業 Linux 7。紅帽系統管理一 (RH124) 專為之前沒有 Linux 系統管理經驗的 IT 專業人員設計。本課程側重講解 Linux 系統的核心管…

linux命令行聊天,Linux 下使用talk 進行聊天

Linux中talk命令參數程序用于Internet上兩個用戶之間進行“交談”:通過鍵盤輸入“說話”,通過看終端屏幕“聆聽”。Linux中talk命令參數程序的使用很簡單,只要知道交談對象的地址,就可以邀請對方交談。格式:talk usert…

linux重啟切換內核,ubuntu更新內核切換內核啟動

ubuntu更新內核切換內核啟動1. 查看需要更新的內核命令:apt-cache search linux該命令將會顯示所有可以獲取的內核2. 安裝內核,假設你要安裝的內核為2.6.39-0,則使用下面的命令sudo apt-get install linux-headers-2.6.39-0-generic linux-im…

在linux中which命令,Linux 中 which 命令怎么用?

在Linux中which命令的作用是在PATH變量指定的路徑中,搜索某個系統命令的位置,并且返回第一個搜索結果,其用法為“which [文件...]”,其參數有“-n”、“-p”、“-w”和“-V”。Linux which命令用于查找文件。which指令會在環境變量…

linux對硬盤進行分區嗎,Linux下如何對硬盤進行分區

免費資源網,https://freexyz.cn/在linux系統下,如想使用一塊新的硬盤,需要經歷分區、格式化、掛載等操作,然后才能夠使用該硬盤。如想學好如何進行分區,需要掌握好幾個相關的命令才行。下面,我們來一起看看。查看硬盤使…

corssover linux運行無效,使用 CrossOver 在 Linux運行 Windows 軟件(金測OK)

使用 CrossOver 在 Linux運行 Windows 軟件即便是最忠實的 Linux 用戶,有時候也需要運行一下 Windows 軟件。有的用戶為此保留了一臺舊的 WindowsPC,有的使用雙啟動,有的使用虛擬機,而使用 CrossOver Linux 的用戶則通通不需要這…

thrift linux java,Apache Thrift環境配置

安裝Thrift的官方文檔地址:當我看到windows安裝需要Cygwin或MinGW時,我就直接放棄在windows中配置的想法了,直接打開虛擬機用CentOS進行安裝,使用一堆命令安裝畢竟比windows方便。CentOS安裝Thrift官方文檔地址:基本上按照官方的操…

linux流式訪問日志,流式實時日志分析系統的實現原理

我們知道網站用戶訪問流量是不間斷的,基于網站的訪問日志,即 Web log 分析是典型的流式實時計算應用場景。比如百度統計,它可以做流量分析、來源分析、網站分析、轉化分析。另外還有特定場景分析,比如安全分析,用來識別…

linux無法切換shell,linux shell的切換

查看系統可用shell種類:(一般是bash shell)? ~ chsh -l/bin/sh/bin/bash/sbin/nologin/bin/dash/bin/zsh修改當前的shell:[rootGIT ~]# chsh -l/bin/sh/bin/bash/sbin/nologin/bin/dash/bin/zsh[rootGIT ~]# chshChanging shell for root.New shell [/bin/bash]: /…

64位ubuntu arm-linux-gcc,在ubuntu 64位的機器上執行arm-linux-gcc提示 no such file or directory【轉】...

解壓好了arm-linuxg-gcc 放到了$PATH路徑下, 無論怎么執行都提示說: no such file or directory,可明明有這個文件的.N遍之后, 執行了 file arm-Linux-gcc發現這個命令是32位的, 需要安裝兼容包,于是apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386:ia32-libslibst…

c語言for循環26個英文字母,菜鳥求助,寫一個隨機輸出26個英文字母的程序

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include #include // 用srand、rand函數了#include // 用time函數了#define LEN 32// 產生min~max的隨機數 (包含min和max)// rand函數產生0 ~ RAND_MAX 的隨機數// 一般上不同編譯器要求 RAND_MAX 的值(至少)為 32767#define RAN…

C語言case字句有什么作用,switch?case?語句的使用規則

【規則1-21】按字母或數字順序排列各條case語句。如果所有的case語句沒有明顯的重要性差別,那就按A-B-C或1-2-3等順序排列case語句。這樣做的話,你可以很容易的找到某條case語句。比如:switch(variable){case A://program codebreak;case B:/…

c語言怎樣用格式化文件存儲,如何用格式化的方式讀寫文件

對格式會來說,C語言的格式讀寫文件是很有要求的,在前面我們已經講解了如何去進行字符的輸入輸出,但事實真相,數據的類型是很豐富的,而且大家已經熟悉了用printf和scanf函數進行格式化的輸入輸出,他們是向終…

輸出26個英文字母c語言,菜鳥求助,寫一個隨機輸出26個英文字母的程序

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include #include // 用srand、rand函數了#include // 用time函數了#define LEN 32// 產生min~max的隨機數 (包含min和max)// rand函數產生0 ~ RAND_MAX 的隨機數// 一般上不同編譯器要求 RAND_MAX 的值(至少)為 32767#define RAN…

二階矩陣乘法C語言,c語言矩陣相乘

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓程序清單#include&nbspint&nbspmain(void){&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspchar&nbsp&nbsp&nbsp&nbspa[2][3];&nbsp&nbsp&nbsp&nbsp&nbsp…