Oracle日常營運操作總結-(1)

來源:互聯網
上載者:User

標籤:日常   適用於   刪除   dism   結束   pass   事務   error   伺服器   

 

下面是工作中對Oracle日常管理操作的一些總結,都是一些基本的oracle操作和SQL語句寫法,在此梳理成手冊,希望能協助到初學者(如有梳理不準確之處,希望指出)。

一、資料庫的啟動和關閉

1.1  資料庫的正常啟動步驟要想啟動或關閉ORACLE系統必須首先切換到ORACLE使用者[[email protected] ~]# su - oracle 以DBA的身份登入資料庫(oracle使用者下執行)[[email protected] ~]$ sqlplus "/as sysdba"執行啟動資料庫命令SQL> startupORACLE instance started.Total System Global Area  285212672 bytesFixed Size                  1218968 bytesVariable Size              88082024 bytesDatabase Buffers          188743680 bytesRedo Buffers                7168000 bytesDatabase mounted.Database opened.啟動和關閉監聽(oracle使用者下執行)[[email protected] ~]$ lsnrctl start[[email protected] ~]$ lsnrctl stop1.2  資料庫的正常關閉步驟 同樣以DBA的身份登入資料庫[[email protected] ~]$ sqlplus "/as sysdba"執行資料庫關閉命令SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.
1.3 幾種關閉資料庫方法對比shutdown有四個參數:normal、transactional、immediate、abort。預設不帶任何參數時表示是normal。shutdown normal: 不允許新的串連、等待會話結束、等待事務結束、做一個檢查點並關閉資料檔案。啟動時不需要執行個體恢複,這種方法往往不能關閉資料庫或等待很長時間。shutdown transactional: 不允許新的串連、不等待會話結束、等待事務結束、做一個檢查點並關閉資料檔案。啟動時不需要執行個體恢複。shutdown immediate: 不允許新的串連、不等待會話結束、不等待事務結束、做一個檢查點並關閉資料檔案。沒有結束的事務是自動rollback的。啟動時不需要執行個體恢複。最常用的方法。shutdown abort: 不允許新的串連、不等待會話結束、不等待事務結束、不做檢查點且沒有關閉資料檔案。啟動時自動進行執行個體恢複。一般不推薦採用,只有在資料庫無法關閉時使用,可能造成資料庫的不一致。

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

Oracle資料庫的啟動關閉的幾種方式

--> 啟動資料庫
Oracle啟動過程涉及幾種模式,這些模式涉及不同的檔案,每個狀態下資料庫做不同的事情,同時這些模式適用於不同的維護需求,主要的模式有三種:NOMOUNT、MOUNT、OPEN。

NOMOUNT:啟動資料庫執行個體, 此時讀取參數檔案,但是不載入資料庫;
MOUNT:啟動資料庫執行個體,載入資料庫,但是資料庫處於關閉狀態;
OPEN:啟動資料庫執行個體,載入並開啟資料庫;
FORCE:終止執行個體並重啟資料庫,這種模式在資料庫關閉或者啟動遇到問題時使用,這種方式不到萬不得已時不要使用,會有資料丟失;

1)NOMOUNT
這種模式只會建立執行個體(建立Oracle執行個體的各種記憶體結構與服務進程,其中有5個進程必須啟動, DBWR、LGWR、SMON、PMON、CKPT),並不載入資料庫,也不會開啟任何資料檔案。

先關閉資料庫

SQL> start nomount;

資料庫的啟動過程記錄在警告追蹤檔案中,該警告追蹤檔案中包括資料庫啟動資訊,它存放在參數BACKGOUND_DUMP_DEST定義的目錄下,警告日誌的名字為alert_orcl.log

進入到目錄查看警告日誌關於startup nomount過程記錄

測試在nomount狀態時資料字典是否打的開,說明資料庫字典在nomount狀態下是無法訪問的,因為資料字典需要從控制檔案擷取檔案的資訊,而此時控制檔案沒有開啟所以無法查看。

但是在nomount下可以通過參數檔案獲得控制檔案的位置,因為此時參數檔案已經開啟

2)MOUNT
這種模式將啟動執行個體,載入資料庫並保持資料庫關閉狀態。資料庫啟動到MOUNT狀態有兩種方式,一是可以直接啟動資料庫到MOUNT,二是如果資料庫已經啟動到NOMOUNT狀態,使用alter database mount把資料庫切換到MOUNT狀態;

SQL> alert database mount;

SQL> startup mount

此時我們可以查看資料字典,因為控制檔案已經開啟

但是此時不能訪問資料庫的資料檔案(表,視圖),檔案此時資料檔案沒有開啟。

3)OPEN
這種模式將啟動執行個體,載入並開啟資料庫,這是常規的啟動模式,使用者想要對資料庫進行多種操作就必須使用OPEN模式啟動資料庫,啟動到OPEN狀態,有兩種方式,一是直接啟動到OPEN狀態(使用startup或者startup open),二是如果資料庫處於NOMOUNT或者MOUNT狀態,可以通過alter database open切換到OPEN狀態。

此時可以訪問資料檔案了

4)FORCE
這種模式將終止執行個體並重啟資料庫,這是一種強制性啟動模式,只有在啟動或者關閉出現問題時才使用,並且有一定的風險,會遺失資料,造成意外的問題。

--> 關閉資料庫

與啟動資料庫順序相反,也分三個步驟:關閉資料庫(CLOSE 關閉資料檔案),卸載資料庫(關閉控制檔案 DISMOUNT),關閉Oracle執行個體(SHUTDOWN)。同時關閉模式也有多種常見的有:
1)NORMAL
正常的關閉方式,如果對於關閉資料庫的時間沒有限制,通常採用這種方式,以NORMAL方式關閉資料庫,Oracle將執行如下操作:

  • 阻止任何使用者建立新的串連;
  • 等待當前所有正在串連的使用者主動中斷連線;
  • 當前所有使用者的都中斷連線後,將立即關閉資料庫;

2)TRANSACTION
事務關閉方式,它的首要任務是保證當前所有活動的事務都可以被提交,並在儘可能短的時間內關閉資料庫。以事務方式關閉,Oracle將執行如下操作:

  • 阻止使用者建立新串連和開始新事務;
  • 等待所有活動事務提交後,再斷開使用者串連;
  • 當所有活動事務提交完畢,使用者中斷連線後,關閉資料庫;

3)IMMEDIATE
立即關閉方式,可以較快且安全的關閉資料庫,是DBA經常採用的關閉資料庫的方式,立即關閉方式,Oracle執行如下操作:

  • 阻止使用者建立新的串連和開始新的事務;
  • 中斷當前事務,復原未提交事務;
  • 強制斷開所有使用者串連和執行檢查點把髒資料寫到資料檔案中;
  • 關閉資料庫

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

oracle幾種啟動方式說明-----------------------------------------------------------------------------1)startup nomount非安裝啟動,這種方式啟動下可執行:重建控制檔案、重建資料庫讀取init.ora檔案,啟動instance,即啟動SGA和後台進程,這種啟動只需要init.ora檔案。 2)startup mount dbname安裝啟動,這種方式啟動下可執行:資料庫日誌歸檔、資料庫介質恢複、使資料檔案聯機或離線,重新置放資料檔案、重做記錄檔。執行“nomount”,然後開啟控制檔案,確認資料檔案和聯機記錄檔的位置,但此時不對資料檔案和記錄檔進行校正檢查。 3)startup open dbname先執行“nomount”,然後執行“mount”,再開啟包括Redo log檔案在內的所有資料庫檔案,這種方式下可訪問資料庫中的資料。 4)startup,等於以下三個命令startup nomountalter database mountalter database open 5)startup restrict約束方式啟動這種方式能夠啟動資料庫,但只允許具有一定特權的使用者訪問非特權使用者訪問時,會出現以下提示:ERROR:ORA-01035: ORACLE 只允許具有 RESTRICTED SESSION 許可權的使用者使用 6)startup force強制啟動方式當不能關閉資料庫時,可以用startup force來完成資料庫的關閉先關閉資料庫,再執行正常啟動資料庫命令 7)startup pfile=參數檔案名稱帶初始化參數檔案的啟動方式先讀取參數檔案,再按參數檔案中的設定啟動資料庫例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora 8)startup EXCLUSIVE  oracle幾種關閉方式說明-----------------------------------------------------------------------------有三種關閉方式:1)shutdown normal   正常方式關閉資料庫。 2)shutdown immediate   立即方式關閉資料庫。   在SVRMGRL中執行shutdown immediate,資料庫並不立即關閉,   而是在Oracle執行某些清除工作後才關閉(終止會話、釋放會話資源),   當使用shutdown不能關閉資料庫時,shutdown immediate可以完成資料庫關閉的操作。 3)shutdown abort   直接關閉資料庫,正在訪問資料庫的會話會被突然終止,   如果資料庫中有大量操作正在執行,這時執行shutdown abort後,重新啟動資料庫需要很長時間。oracle關閉過程和啟動相反,經曆了close、dismount、shutdown。可以分步關閉,也可以直接關閉。分步關閉:1)close資料庫:關閉資料檔案、記錄檔等。SQL> alter database close;資料庫已更改。2)dismount資料庫:關閉控制檔案。SQL> alter database dismount;資料庫已更改。3)shutdown資料庫:關閉執行個體。shutdown有4個參數:shutdown normal(預設)、shutdown immediate(推薦)、shutdown transactional、shutdown abortSQL> shutdown資料庫已經關閉。已經卸載資料庫。ORACLE 常式已經關閉。  oracle這幾種啟動和關閉方式之間的區別以及它們各自不同的功能-----------------------------------------------------------------------------1)啟動和關閉Oracle資料庫對於大多數Oracle DBA來說,啟動和關閉Oracle資料庫最常用的方式就是在命令列方式下的Server Manager。從Oracle 8i以後,系統將Server Manager的所有功能都集中到了SQL*Plus中,也就是說從8i以後對於資料庫的啟動和關閉可以直接通過SQL*Plus來完成,而不再另外需要Server Manager,但系統為了保持向下相容,依舊保留了Server Manager工具。另外也可通過圖形使用者工具(GUI)的Oracle Enterprise Manager來完成系統的啟動和關閉,圖形化使用者介面Instance Manager非常簡單,這裡不再詳述。要啟動和關閉資料庫,必須要以具有Oracle 治理員許可權的使用者登陸,通常也就是以具有SYSDBA許可權的使用者登陸。一般我們常用INTERNAL使用者來啟動和關閉資料庫(INTERNAL使用者實際上是SYS使用者以SYSDBA串連的同義字)。Oracle資料庫的新版本將逐步淘汰INTERNAL這個內部使用者,所以我們最好還是設定DBA使用者具有SYSDBA許可權。 2)資料庫的啟動(STARTUP)啟動一個資料庫需要三個步驟:-> 建立一個Oracle執行個體(非安裝階段)-> 由執行個體安裝資料庫(安裝階段)-> 開啟資料庫(開啟階段)  在Startup命令中,可以通過不同的選項來控制資料庫的不同啟動步驟。1)STARTUP NOMOUNTNONOUNT選項僅僅建立一個Oracle執行個體。讀取init.ora初始化參數檔案、啟動後台進程、初始化系統全域區(SGA)。Init.ora 檔案定義了執行個體的配置,包括記憶體結構的大小和啟動後台進程的數量和類型等。執行個體名根據Oracle_SID設定,不一定要與開啟的資料庫名稱相同。當執行個體開啟後,系統將顯示一個SGA記憶體結構和大小的列表,如下所示:SQL> startup nomount;ORACLE 常式已經啟動。Total System Global Area 35431692 bytesFixed Size 70924 bytesVariable Size 18505728 bytesDatabase Buffers 16777216 bytesRedo Buffers 77824 bytes 2)STARTUP MOUNT該命令建立執行個體並且安裝資料庫,但沒有開啟資料庫。Oracle系統讀取控制檔案中關於資料檔案和重作記錄檔的內容,但並不開啟該檔案。這種開啟檔案常在資料庫維護操作中使用,如對資料檔案的更名、改變重作日誌以及開啟歸檔方式等。在這種開啟檔案下,除了可以看到SGA系統列表以外,系統還會給出\"資料庫裝載完畢\"的提示。  3)STARTUP該命令完成建立執行個體、安裝執行個體和開啟資料庫的所有三個步驟。此時資料庫使資料檔案和重作記錄檔線上,通常還會請求一個或者是多個復原段。這時系統除了可以看到前面Startup Mount方式下的所有提示外,還會給出一個\"資料庫已經開啟\"的提示。此時,資料庫系統處於正常工作狀態,可以接受使用者請求。假如採用STARTUP NOMOUNT或者是STARTUP MOUNT的資料庫開啟命令方式,必須採用ALTER DATABASE命令來執行開啟資料庫的操作。例如,假如你以STARTUP NOMOUNT方式開啟資料庫,也就是說執行個體已經建立,但是資料庫沒有安裝和開啟。這是必須運行下面的兩條命令,資料庫才能正確啟動。SQL> ALTER DATABASE MOUNT;SQL> ALTER DATABASE OPEN; 而假如以STARTUP MOUNT方式啟動資料庫,只需要運行下面一條命令即可以開啟資料庫:SQL> ALTER DATABASE OPEN. 4)其他開啟檔案除了前面介紹的三種資料庫開啟檔案選項外,還有另外其他的一些選項。STARTUP RESTRICT這種方式下,資料庫將被成功開啟,但僅僅答應一些特權使用者(具有DBA角色的使用者)才可以使用資料庫。這種方式常用來對資料庫進行維護,如資料的匯入/匯出操作時不希望有其他使用者串連到資料庫操作資料。 STARTUP FORCE該命令其實是強行關閉資料庫(shutdown abort)和啟動資料庫(startup)兩條命令的一個綜合。該命令僅在關閉資料庫碰到問題不能關閉資料庫時採用。 ALTER DATABASE OPEN READ ONLY;該命令在建立執行個體以及安裝資料庫後,以唯讀方式開啟資料庫。對於那些僅僅提供查詢功能的產品資料庫可以採用這種方式開啟。

二、建立資料庫使用者

2.1  以DBA使用者登入資料庫(如system,sys)SQL> conn system/[email protected]註:如果在本機伺服器登入@orcl可以去掉2.2  用create user文法建立使用者SQL> CREATE USER user_name IDENTIFIED BY user_passwordDefaultTablespace tbs_users;user_name為資料庫使用者的使用者名稱user_password為資料庫使用者的密碼tbs_users為使用者使用的資料表空間,預設是users資料表空間。例如:SQL> CREATE USER cmsuser IDENTIFIED BY passwordDefaultTablespace users;2.3  賦資料表空間使用許可權SQL> alter user user_name quota unlimited on user_tablespace quota unlimited on user_tablespace;2.4  給使用者賦許可權SQL> GRANT connect, resource TO cmsuser;Connect使用者能登入資料庫的許可權Resource使用者能建立一些資料庫對像的許可權,表、視圖,預存程序,一般是授予開發人員的2.5  刪除使用者SQL> DropUser cmsuser Cascade;使用cascade參數可以刪除該使用者的全部objects

Oracle日常營運操作總結-(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.