电竞比分网-中国电竞赛事及体育赛事平台

分享

ORACLE用戶管理和起停數(shù)據(jù)庫

 木水刃 2010-09-15
一、連接你的oracle數(shù)據(jù)庫
    SQL> sqlplus /nolog
    SQL> connect /as sysdba
二、修改oracle賬戶信息
       1、修改賬戶的口令,使用下面的語句:
                SQL> ALTER  USER  username  IDENTIFIED  BY  password
       2、修改已鎖定的賬戶口令,使用下面的語句:
                SQL> ALTER  USER  username  IDENTIFIED  BY  password  ACCOUNT  UNLOCK
       3、如果要鎖定賬戶,使用下面的語句:
                SQL> ALTER  USER  username  ACCOUNT  LOCK
        4、如果要解鎖賬戶,使用下面的語句:
                SQL> ALTER  USER  username  ACCOUNT  UNLOCK
三、創(chuàng)建一個賬戶并且賦予SYSDBA權(quán)限
         1、創(chuàng)建用戶(username=y(tǒng)zq,password=y(tǒng)ezhuangqiao),使用下面的語句:
                SQL> CREATE  USER  yzq  IDENTIFIED  BY  "yezhuangqiao"  ACCOUNT  UNLOCK
         2、把SYSDBA和SYSOPER權(quán)限賦予yzq這個用戶:
                SQL> GRANT  SYSDBA  TO  yzq;
                SQL> GRANT  SYSDBA  TO  yzq;
         3、利用下面的語句回收用戶的權(quán)限:
                SQL> REVOKE  SYSDBA  FROM  yzq;
                SQL> REVOKE  SYSOPER  FROM  yzq;      
         4、測試登陸的連通性:
                SQL> CONNECT  yzq/yezhuangqiao  AS  SYSDBA
四、oracle啟動或登陸方式
         1、啟動實例不加載數(shù)據(jù)庫(NOMOUNT模式)
       這種啟動模式只創(chuàng)建實例,并不加載數(shù)據(jù)庫,Oracle僅為實例創(chuàng)建各種內(nèi)存結(jié)構(gòu)和服務(wù)進程,不會打開任何數(shù)據(jù)庫文件。
       如果要執(zhí)行下列維護工作,必須在NOMOUNT啟動模式下進行:
       a、創(chuàng)建新數(shù)據(jù)庫
       b、重建控制文件
        下面顯示在SQL*Plus中啟動數(shù)據(jù)庫進入NOMOUNT模式的過程:
               SQL> STARTUP  NOMOUNT
          2、啟動實例加載數(shù)據(jù)庫但不打開數(shù)據(jù)庫(MOUNT模式)
         如果要執(zhí)行下列維護工作,必須在MOUNT啟動模式下進行:
         a、重命名數(shù)據(jù)文件。
         b、添加、刪除或重命名重做日志文件。
         c、執(zhí)行數(shù)據(jù)庫完全恢復(fù)操作。
         d、改變數(shù)據(jù)庫的歸檔模式。
         下面顯示在SQL*Plus中啟動數(shù)據(jù)庫進入MOUNT模式的過程:
                SQL> STARTUP  MOUNT
           3、啟動實例加載并打開數(shù)據(jù)庫(OPEN模式)
       這是正常啟動模式。普通數(shù)據(jù)庫用戶要對數(shù)據(jù)庫進行操作,比如連接數(shù)據(jù)庫并進行查詢,數(shù)據(jù)庫必須處于OPEN啟動模式
        下面顯示了在SQL*Plus中啟動數(shù)據(jù)庫進入OPEN模式的過程:
               SQL> STARTUP
          2、使用下面語句以DBA身份連接到Oracle:
          (1)  操作系統(tǒng)認證方式
                   SQL> CONNECT  /  AS  SYSDBA
          (2)  口令文件認證方式
                   SQL> CONNECT username/password  AS  SYSDBA
           其中username/password必須是一個具有SYSOPER或SYSDBA權(quán)限的數(shù)據(jù)庫用戶賬戶,比如SYS或SYSTEM。
五、轉(zhuǎn)換啟動模式
          1、為實例加載數(shù)據(jù)庫
       在執(zhí)行一些特殊的管理維護操作時,需要進入NOMOUNT啟動模式。在完成操作后,可以使用如下語句為實例加載數(shù)據(jù)庫,切換到MOUNT啟動模式:
       ALTER  DATABASE  MOUNT;
          2、從加載狀態(tài)進入打開狀態(tài)
       為實例加載數(shù)據(jù)庫后,數(shù)據(jù)庫可能仍然處于關(guān)閉狀態(tài)。為了使用戶能夠訪問數(shù)據(jù)庫,可以使用如下語句打開數(shù)據(jù)庫,切換到OPEN啟動模式:
        ALTER  DATABASE  OPEN;
4.1.7   切換受限和只讀狀態(tài)
          1、受限狀態(tài)
       在正常啟動模式下,即OPEN啟動模式下,可以選擇將數(shù)據(jù)庫設(shè)置為非受限狀態(tài)或受限狀態(tài)。
       在受限狀態(tài)下,只有具有管理權(quán)限的用戶(DBA)才能夠訪問數(shù)據(jù)庫。當(dāng)需要進行如下數(shù)據(jù)庫維護操作時,必須將數(shù)據(jù)庫置于受限狀態(tài)下:
       a、執(zhí)行數(shù)據(jù)導(dǎo)入或?qū)С霾僮鳌?/div>
       b、使用SQL*Loader提取外部數(shù)據(jù)庫。
       c、需要暫時拒絕普通用戶訪問數(shù)據(jù)庫。
       d、進行數(shù)據(jù)庫移植或者升級操作。
       使用下面的語句啟動數(shù)據(jù)庫,數(shù)據(jù)庫將進入受限狀態(tài)的OPEN模式:
               STARTUP  RESTRICT
       如果在完成管理操作后需要將數(shù)據(jù)庫恢復(fù)為非受限狀態(tài),可以使用ALTER  SYSTEM語句來改變數(shù)據(jù)庫的狀態(tài),執(zhí)行該語句的用戶必須具有ALTER  SYSTEM系統(tǒng)權(quán)限。比如:
               ALTER  SYSTEM  DISABLE  RESTRICTED  SESSION;
       如果需要在數(shù)據(jù)庫運行過程中由非受限狀態(tài)切換到受限狀態(tài),同樣可以通過ALTER  SYSTEM語句來實現(xiàn)。比如:
               ALTER  SYSTEM  ENBALE  RESTRICTED  SESSION;
           2、只讀狀態(tài)
       當(dāng)數(shù)據(jù)庫處于只讀狀態(tài)時,用戶只能查詢數(shù)據(jù)庫,但是不能以任何方式對數(shù)據(jù)庫對象進行修改。
       可以使用ALTER  DATABASE語句在數(shù)據(jù)庫運行過程中切換為只讀模式,執(zhí)行該語句的用戶必須具有ALTER  DATABASE系統(tǒng)權(quán)限。比如:
               ALTER  DATABASE  OPEN  READ  ONLY;
        同樣可以利用ALTER  DATABASE語句重新將數(shù)據(jù)庫設(shè)置為讀寫狀態(tài),比如:
               ALTER  DATABASE  OPEN  READ  WRITE;
4.1.8    強行啟動數(shù)據(jù)庫
       在某些情況下,使用上述各種啟動模式可能都無法成功啟動數(shù)據(jù)庫,這時需要強行啟動數(shù)據(jù)庫。在如下幾種情況下需要強行啟動數(shù)據(jù)庫:
       a、無法使用SHUTDOWN  NORMAL、SHUTDOWN  IMMEDIATE或者SHUTDOWN  TRANSACTIONAL語句關(guān)閉數(shù)據(jù)庫實例。
       b、在啟動實例時出現(xiàn)無法恢復(fù)的錯誤。
       出現(xiàn)上述情況時,可以通過強行方式來重新啟動一個新的數(shù)據(jù)庫實例,以便進行故障查找和排除操作。強行啟動數(shù)據(jù)庫需要使用帶有FORCE子句的STARTUP語句,比如:
            STARTUP  FORCE;
4.2.2    正常關(guān)閉方式(NORMAL)
       如果對關(guān)閉數(shù)據(jù)庫的時間沒有限制,通常會使用正常方式來關(guān)閉數(shù)據(jù)庫。使用帶有NORMAL子句的SHUTDOWN語句將以正常方式關(guān)閉數(shù)據(jù)庫。下面顯示了在SQL*Plus中以正常方式關(guān)閉過程:
           SQL> SHUTDOWN  NORMAL;
       正常方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行如下操作:
       a、阻止任何用戶建立新的連接。
       b、等待當(dāng)前所有正在連接的用戶主動斷開連接。正在連接的用戶能夠繼續(xù)他們當(dāng)前的工作,甚至能夠提交新的事務(wù)。
       c、一旦所有用戶都斷開連接,立刻關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
4.2.3    立即關(guān)閉方式(IMMEDIATE)
        立即方式能夠在盡可能短的時間內(nèi)關(guān)閉數(shù)據(jù)庫。通常在如下幾種情況下需要使用立即方式來關(guān)閉數(shù)據(jù)庫:
         a、即將啟動自動數(shù)據(jù)備份操作。
         b、即將發(fā)生電力供應(yīng)中斷。
         c、當(dāng)數(shù)據(jù)庫本身或某個數(shù)據(jù)庫應(yīng)用程序發(fā)生異常,并且這時無法通知用戶主動斷開連接,或者用戶根本無法執(zhí)行斷開操作。
       使用帶有IMMEDIATE子句的SHUTDOWN語句將以立即方式關(guān)閉數(shù)據(jù)庫,比如:
                SHUTDOWN  IMMEDIATE
       立即方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行如下操作:
       a、阻止任何用戶建立新的連接,同時阻止當(dāng)前連接的用戶開始任何新的事務(wù)。
       b、任何未提交的事務(wù)均被回退。
       c、Oracle不再等待用戶主動斷開連接,直接關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
4.2.4    事務(wù)關(guān)閉方式(TRANSACTIONAL)
       事務(wù)方式介于正常方式與立即方式之間,它能夠使用盡可能短的時間關(guān)閉數(shù)據(jù)庫,但是所有能保證當(dāng)前所有的活動事務(wù)都可以被提交。使用事務(wù)方式關(guān)閉數(shù)據(jù)庫時,Oracle將等待所有未提交的事務(wù)完成后再關(guān)閉數(shù)據(jù)庫。
       使用帶有TRANSACTIONAL子句的SHUTDOWN語句將以事務(wù)方式關(guān)閉數(shù)據(jù)庫,比如:
              SHUTDOWN  TRANSACTIONAL
       事務(wù)方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行如下操作:
       a、阻止任何用戶建立新的連接,同時阻止當(dāng)前連接的用戶開始任何新的事務(wù)。
       b、等待所有未提交的活動事務(wù)提交完畢,然后立即斷開用戶的連接。
       c、關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
       提示:事務(wù)關(guān)閉方式既能保證用戶不會丟失當(dāng)前工作的信息,又可以盡可能快地關(guān)閉數(shù)據(jù)庫。事務(wù)關(guān)閉方式也是最常用的數(shù)據(jù)庫關(guān)閉方式。如果以事務(wù)方式關(guān)閉數(shù)據(jù)庫,在下次啟動數(shù)據(jù)庫時不需要進行任何恢復(fù)操作。
4.2.5     終止關(guān)閉方式(ABORT)
       如果上述三種關(guān)閉方式都無法成功關(guān)閉數(shù)據(jù)庫,說明數(shù)據(jù)庫產(chǎn)生了嚴重的錯誤。這時只能使用終止方式來關(guān)閉數(shù)據(jù)庫。終止關(guān)閉方式將丟失一部分數(shù)據(jù)信息,會對數(shù)據(jù)庫的完整性造成損害,需要在下一次啟動數(shù)據(jù)庫時進行恢復(fù),因此應(yīng)當(dāng)盡量避免使用終止方式來關(guān)閉數(shù)據(jù)庫。
       在如下幾種特殊情況中,應(yīng)當(dāng)使用終止關(guān)閉方式:
       a、數(shù)據(jù)庫本身或某個數(shù)據(jù)庫應(yīng)用程序發(fā)生異常,并且使用其他關(guān)閉方式均無效時。
       b、出現(xiàn)緊急情況,需要立刻關(guān)閉數(shù)據(jù)庫(比如得到通知將在一分鐘內(nèi)發(fā)生電力供應(yīng)中斷)。
       c、在啟動數(shù)據(jù)庫實例的過程中產(chǎn)生錯誤。
       使用帶有ABORT子句的SHUTDOWN語句將以終止方式關(guān)閉數(shù)據(jù)庫,比如:
              SHUTDOWN  ABORT
       終止方式關(guān)閉數(shù)據(jù)庫時,Oracle將執(zhí)行如下操作:
       a、阻止任何用戶建立新的連接,同時阻止當(dāng)前連接的用戶開始任何新的事務(wù)。
       b、立即終止當(dāng)前正在執(zhí)行的SQL語句。
       c、任何未提交的事務(wù)均不被回退。
       d、立即斷開所有用戶的連接,關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
       如果以終止方式關(guān)閉數(shù)據(jù)庫,由于當(dāng)前未完成的事務(wù)并不會被回退,所以當(dāng)下次啟動數(shù)據(jù)庫時需要進行數(shù)據(jù)庫恢復(fù)。
4.3.1    靜默狀態(tài)
       1、靜默狀態(tài)的特點
       有時DBA會需要將數(shù)據(jù)庫置于靜默狀態(tài)。在靜默狀態(tài)下,只有具有DBA權(quán)限的用戶能夠在數(shù)據(jù)庫中執(zhí)行查詢、更新操作,運行PL/SQL程序,任何非DBA用戶都不能在數(shù)據(jù)庫中執(zhí)行任何操作。
       DBA在執(zhí)行某些操作時,必須排除其他用戶的活動。這類操作包括如下兩類:
       a、某些操作在執(zhí)行過程中,如果有其他用戶訪問操作的對象,該操作將會失敗。比如,當(dāng)DBA在某個表添加一個新的字段時,如果有用戶恰好正在使用這個表,添加字段的操作將失敗。
       b、某些操作在執(zhí)行過程中產(chǎn)生的中間結(jié)果不應(yīng)當(dāng)被其他用戶看到。比如,假設(shè)DBA要執(zhí)行一項分為多個步驟的操作:首先要導(dǎo)出一個表的數(shù)據(jù),然后刪除這個表,最后再重新導(dǎo)入數(shù)據(jù)庫建立新的表,以達到重建該表的目的。而如果有某個用戶在刪除表之后,重建表之前訪問這個表,將會得到錯誤的結(jié)果。
       如果沒有靜默功能,要保證成功完成上述類型的操作必須首先關(guān)閉數(shù)據(jù)庫,然后再使用受限模式打開數(shù)據(jù)庫。這樣做的代價是很大的,尤其是在必須保證數(shù)據(jù)庫不間斷運行的環(huán)境中(7×24系統(tǒng))。而使數(shù)據(jù)庫進入靜默狀態(tài)可以快速達到相同的目的,但是卻并不需要中斷數(shù)據(jù)庫的運行。
       注意:在Oracle9i中,處于靜默狀態(tài)時只允許SYS和SYSTEM兩個DBA用戶執(zhí)行操作,其他用戶即使被授予DBA角色或SYSDBA權(quán)限,也不能夠在靜默狀態(tài)的數(shù)據(jù)庫中進行操作。因此,靜默狀態(tài)是比受限狀態(tài)更為“干凈”的狀態(tài)。
        2、進入靜默狀態(tài)
       在數(shù)據(jù)庫運行過程中,執(zhí)行如下語句將進入靜默狀態(tài):
               ALTER  SYSTEM  QUIESCE  RESTRICTED;
       注意:只有SYS和SYSTEM用戶有權(quán)限執(zhí)行ALTER  SYSTEM  QUIESCE  RESTRICTED語句,具有DBA權(quán)限的其他用戶不能將數(shù)據(jù)庫置為靜默狀態(tài)。
       在靜默狀態(tài)中,即使某個非DBA用戶試圖執(zhí)行一條SQL語句強行激活某個會話,該SQL語句也會被掛起。當(dāng)數(shù)據(jù)庫從靜默狀態(tài)中恢復(fù)時,停止的會話將繼續(xù)執(zhí)行,前面被掛起的SQL語句也會繼續(xù)執(zhí)行。
       由于等待所有的非DBA用戶會話都被終止可能會要很長一段時間,在這個過程中如果執(zhí)行ALTER  SYSTEM語句的會話被意外終止,進入靜默狀態(tài)的操作將被撤銷,已經(jīng)暫停的會話將被恢復(fù)。
       3、退出靜默狀態(tài)
       如果數(shù)據(jù)庫正處于靜默狀態(tài),執(zhí)行如下語句將從靜默狀態(tài)恢復(fù)為正常狀態(tài):
              ALTER  SYSTEM  UNQUIESCE;
       4、查詢靜默狀態(tài)
       可以通過使用動態(tài)性能試圖V$INSTANCE來查詢當(dāng)前數(shù)據(jù)庫是否處于靜默狀態(tài)。V$INSTANCE視圖中的ACTIVE_STATUS字段顯示了數(shù)據(jù)庫當(dāng)前的活動狀態(tài):
       a、NORMAL     正常狀態(tài)(非靜默狀態(tài))。
       b、QUIESCING     正在進入靜默狀態(tài)(仍然存在活動的非DBA用戶會話)。
       c、QUIESCED     靜默狀態(tài)(已經(jīng)沒有活動的非DBA用戶會話)。
       在下面的示例中顯示了如何改變和查詢數(shù)據(jù)庫的靜默狀態(tài):
              SQL> ALTER SYSTEM QUIESCE RESTRICTED;
              系統(tǒng)已更改。
              SQL> SELECT ACTIVE_STATE FROM V$INSTANCE;
              ACTIVE_ST
              ---------
              QUIESCED
              SQL> ALTER SYSTEM UNQUIESCE;
              系統(tǒng)已更改。
              SQL> SELECT ACTIVE_STATE FROM V$INSTANCE;
              ACTIVE_ST
              ---------
              NORMAL
 4.3.2   掛起狀態(tài)
       1、掛起狀態(tài)的特點
       當(dāng)數(shù)據(jù)庫處于掛起狀態(tài)時,數(shù)據(jù)庫所有的物理文件(控制文件、數(shù)據(jù)文件以及重做日志文件)的I/O操作都被暫停。這樣就能保證數(shù)據(jù)庫在沒有任何I/O操作的情況下進行物理備份。掛起狀態(tài)與靜默狀態(tài)的區(qū)別是:它并不禁止非DBA用戶進行數(shù)據(jù)庫操作,只是暫時停止所有用戶的I/O操作。
       當(dāng)數(shù)據(jù)庫處于掛起狀態(tài)時,可以首先為數(shù)據(jù)庫創(chuàng)建硬盤鏡像,然后再從鏡像中分離出備份文件,這樣就提供了一種進行數(shù)據(jù)庫備份和恢復(fù)的替代辦法。比如,數(shù)據(jù)庫原本運行在一個具有硬盤鏡像的系統(tǒng)中,但是在存在硬盤I/O操作的情況下,無法將鏡像文件分離出來。這時可以先將數(shù)據(jù)庫置為掛起狀態(tài),然后在停止所有I/O操作的狀態(tài)下進行分離操作。
       在數(shù)據(jù)庫進入掛起狀態(tài)時,當(dāng)前的所有I/O操作能夠繼續(xù)進行,但是所有新提交的I/O操作不會執(zhí)行,而是被放入一個等待隊列中。一旦數(shù)據(jù)庫恢復(fù)到正常狀態(tài),這些I/O操作將從隊列中取出并繼續(xù)執(zhí)行。
       2、進入掛起狀態(tài)
       掛起數(shù)據(jù)庫操作可以通過ALTER  SYSTEM語句完成,執(zhí)行該語句的用戶必須具有ALTER  SYSTEM系統(tǒng)權(quán)限。比如:
              ALTER  SYSTEM  SUSPEND;
       3、退出掛起狀態(tài)
       如果要將數(shù)據(jù)庫從掛起狀態(tài)中恢復(fù),可以使用如下語句:
              ALTER  SYSTEM  RESUME;
        4、查詢掛起狀態(tài)
        可以通過使用動態(tài)性能視圖V$INSTANCE來查詢當(dāng)前數(shù)據(jù)庫是否處于掛起狀態(tài)。V$INSTANCE視圖中的DATABASE_STATUS字段顯示了數(shù)據(jù)庫當(dāng)前的活動狀態(tài):
         a、SUSPENDED    掛起狀態(tài)。
         b、ACTIVED    正常狀態(tài)(非掛起狀態(tài))。
         下面的示例顯示了如何改變和查詢數(shù)據(jù)庫的掛起狀態(tài):
                SQL> ALTER SYSTEM SUSPEND;
                系統(tǒng)已更改。
                SQL> SELECT DATABASE_STATUS FROM V$INSTANCE;
                DATABASE_STATUS
                -----------------
                SUSPENDED
                SQL> ALTER SYSTEM RESUME;
                系統(tǒng)已更改。
                SQL> SELECT DATABASE_STATUS FROM V$INSTANCE;
                DATABASE_STATUS
                -----------------
                ACTIVE

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多