Oracle數(shù)據(jù)庫基礎_第1頁
Oracle數(shù)據(jù)庫基礎_第2頁
Oracle數(shù)據(jù)庫基礎_第3頁
Oracle數(shù)據(jù)庫基礎_第4頁
Oracle數(shù)據(jù)庫基礎_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、內(nèi)部培訓講座Oracle 數(shù)據(jù)庫基礎數(shù)據(jù)庫是我們安裝完產(chǎn)品后建立的,可以在同一臺主機上存在8i,9i,10g,11g等多個數(shù)據(jù)庫產(chǎn)品,一套產(chǎn)品可以建立多個數(shù)據(jù)庫,每個數(shù)據(jù)庫是獨立的。每個數(shù)據(jù)庫都有自己的全套相關(guān)文件,有各自的控制文件、數(shù)據(jù)文件、重做日志文件、參數(shù)文件、歸檔文件、口令文件等等。其中控制文件、數(shù)據(jù)文件、重做日志文件、跟蹤文件及警告日志(trace files,alert files)屬于數(shù)據(jù)庫文件;參數(shù)文件(parameter file)口令文件(password file)是非數(shù)據(jù)庫文件我們的表存儲在數(shù)據(jù)庫中數(shù)據(jù)庫不能直接讀取我們通過實例(instance)來訪問數(shù)據(jù)庫數(shù)據(jù)庫實例

2、實例由內(nèi)存和后臺進程組成實例是訪問數(shù)據(jù)庫的方法初始化參數(shù)控制實例的行為一個實例只能連接一個數(shù)據(jù)庫啟動實例不需要數(shù)據(jù)庫產(chǎn)品安裝好有初始化參數(shù)文件就可以啟動實例與是否存在數(shù)據(jù)庫無關(guān)實例內(nèi)存分為SGA 和PGASGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進程所共享。它包含Oracle 服務器的數(shù)據(jù)和控制信息,它是在Oracle 服務器所駐留的計算機的實際內(nèi)存中得以分配,如果實際內(nèi)存不夠再往虛擬內(nèi)存中寫。PGA:包含單個服務器進程或單個后臺進程的數(shù)據(jù)和控制信息,與幾個進程共享的SGA正相反,PGA 是只被一個進程使用的區(qū)域,PGA 在創(chuàng)建進程時分配,在終止進程時回收.后臺進程是實例和數(shù)據(jù)庫的聯(lián)

3、系紐帶分為核心進程和非核心進程當前后臺進程的查看SQL> select name,description from v$bgprocess where paddr<>'00'NAME DESCRIPTION- -PMON process cleanupDIAG diagnosibility processPSP0 process spawner 0LMON global enqueue service monitorLMD0 global enqueue service daemon 0LMS0 global cache service process 0LM

4、S1 global cache service process 1MMAN Memory ManagerDBW0 db writer process 0ARC0 Archival Process 0ARC1 Archival Process 1NAME DESCRIPTION- -LGWR Redo etc.LCK0 Lock Process 0CKPT checkpointSMON System Monitor ProcessRECO distributed recoveryCJQ0 Job Queue CoordinatorQMNC AQ CoordinatorMMON Manageabi

5、lity Monitor ProcessMMNL Manageability Monitor Process 220 rows selected.也可以在操作系統(tǒng)下查看oracledb-rac1 db01$ ps -ef|grep ora_oracle 8588 1 0 07:53 ? 00:00:00 ora_j001_gfdb1oracle 10816 1 0 04:58 ? 00:00:08 ora_j000_gfdb1oracle 16998 1 0 Apr18 ? 00:00:00 ora_pmon_gfdb1oracle 17017 1 0 Apr18 ? 00:00:00 ora

6、_diag_gfdb1oracle 17030 1 0 Apr18 ? 00:00:00 ora_psp0_gfdb1oracle 17042 1 0 Apr18 ? 00:00:00 ora_lmon_gfdb1oracle 17057 1 0 Apr18 ? 00:00:00 ora_lmd0_gfdb1oracle 17067 1 0 Apr18 ? 00:00:00 ora_lms0_gfdb1oracle 17077 1 0 Apr18 ? 00:00:00 ora_lms1_gfdb1oracle 17081 1 0 Apr18 ? 00:00:00 ora_mman_gfdb1o

7、racle 17083 1 0 Apr18 ? 00:00:00 ora_dbw0_gfdb1oracle 17085 1 0 Apr18 ? 00:00:00 ora_lgwr_gfdb1oracle 17087 1 0 Apr18 ? 00:00:00 ora_ckpt_gfdb1oracle 17089 1 0 Apr18 ? 00:00:03 ora_smon_gfdb1oracle 17091 1 0 Apr18 ? 00:00:00 ora_reco_gfdb1oracle 17093 1 0 Apr18 ? 00:00:06 ora_cjq0_gfdb1oracle 17095

8、1 0 Apr18 ? 00:00:02 ora_mmon_gfdb1oracle 17097 1 0 Apr18 ? 00:00:00 ora_mmnl_gfdb1oracle 17099 1 0 Apr18 ? 00:00:00 ora_d000_gfdb1oracle 17101 1 0 Apr18 ? 00:00:00 ora_s000_gfdb1oracle 17142 1 0 Apr18 ? 00:00:01 ora_lck0_gfdb1oracle 17517 7593 0 07:55 pts/2 00:00:00 grep ora_oracle 26182 1 0 Apr18

9、? 00:00:00 ora_arc0_gfdb1oracle 26184 1 0 Apr18 ? 00:00:00 ora_arc1_gfdb1oracle 26523 1 0 Apr18 ? 00:00:00 ora_qmnc_gfdb1oracle 27156 1 0 Apr18 ? 00:00:00 ora_q000_gfdb1oracle 27172 1 0 Apr18 ? 00:00:00 ora_q001_gfdb1oracle 29308 1 0 05:53 ? 00:00:00 ora_q002_gfdb1oracle 30878 1 0 07:42 ? 00:00:00 o

10、ra_q004_gfdb1oracle 31882 1 0 07:26 ? 00:00:00 ora_q003_gfdb1核心進程,必須存在,有一個終止,所有數(shù)據(jù)庫進程全部終止非核心進程完成數(shù)據(jù)庫的額外功能歸檔調(diào)度作業(yè)Database writer (DBWn)數(shù)據(jù)庫寫進程將數(shù)據(jù)庫的變化寫入到文件最多20個DBW0-DBW9 DBWa-DBWj應該和cpu的個數(shù)對應由參數(shù)DB_WRITER_PROCESSES描述因為dbwr是哪里來的數(shù)據(jù)寫回到哪里,所以可以多個進程一起工作。Log writer (LGWR)日志寫進程將日志緩沖寫入到磁盤的日志文件只有一個,因為日志寫是順序?qū)?,所以一個就可以了

11、,因為是順序?qū)懰砸膊荒転槎鄠€。Checkpoint (CKPT)檢查點進程存盤點觸發(fā)dbwn,寫臟數(shù)據(jù)塊更新數(shù)據(jù)文件頭,更新控制文件System monitor (SMON)系統(tǒng)監(jiān)測進程實例崩潰時進行自動恢復清除作廢的排序臨時段Process monitor (PMON)進程監(jiān)測進程清除死進程重新啟動部分進程監(jiān)聽的自動注冊我們連接到數(shù)據(jù)庫其實是連接到實例這個過程叫建立一個會話實驗1:數(shù)據(jù)庫的最高帳號sys的操作系統(tǒng)認證模式該實驗的目的是進入數(shù)據(jù)庫的最高帳號sys.掌握操作系統(tǒng)認證的兩個條件.操作系統(tǒng)認證,因為數(shù)據(jù)庫是在OS上的軟件能進入ORACLE帳號,就可以進入到數(shù)據(jù)庫的最高帳號。Conn

12、 / as sysdbaShow user無論數(shù)據(jù)庫處于何種狀態(tài),sys用戶總可以進入到數(shù)據(jù)庫因為sys是外部操作系統(tǒng)認證的操作系統(tǒng)認證的兩條件。一、操作系統(tǒng)的用戶要屬于dba組;二、和數(shù)據(jù)庫間的連接是安全的。實驗2:數(shù)據(jù)庫的最高帳號sys的密碼文件認證模式該實驗的目的是使用密碼文件的認證方式進入到最高sys帳號,如何建立和維護密碼文件.在遠程,或者操作系統(tǒng)認證不可以使用的情況下,請使用密碼文件來認證sys用戶在unix下密碼文件路徑/oracle_home/dbs密碼文件名稱orapw+sidsid為實例名稱,查看實例名稱select instance_name from v$instanc

13、e;select 'orapw'|instance_name from v$instance;密碼文件必須存在,即使你以操作系統(tǒng)認證,因為參數(shù)remote_login_passwordfile默認的值是要使用密碼文件的,除非你將remote_login_passwordfile的值改為none,這樣就禁止了密碼文件的使用,你想進入到sys用戶必須使用操作系統(tǒng)認證模式。密碼文件丟失必須重新建立Orapwd為oracle的命令,用于建立密碼文件,命令的格式如下Orapwd file=. Password=.密碼文件中含有sys用戶的密碼建立密碼文件的步驟1.確定實例的名稱2.確定密

14、碼文件的路徑和名稱3.停止數(shù)據(jù)庫,刪除老的密碼文件4.在操作系統(tǒng)下運行orapwd file=/dbocfs/gfdb/orapwgfdb1 password=manager1其中g(shù)fdb1為實例的名稱,manager1為密碼,是sys用戶的密碼5.連接的sysConn sys/maanger1 as sysdba顯示為連接的空閑實例,因為數(shù)據(jù)庫還沒有啟動。但這并沒有證明你使用了密碼文件.SQL> conn sys/addas as sysdbaConnected.SQL> conn asfdsf/adaf as sysdbaConnected.SQL> conn / as

15、sysdbaConnected.SQL> conn sys/manager1 as sysoperConnected.SQL> conn sys/adsssd as sysoperERROR:ORA-01031: 權(quán)限不足原因很簡單,因為操作系統(tǒng)認證的優(yōu)先級高于密碼文件.所以你只要寫as sysdba就可以進入,但sysoper不能使用操作系統(tǒng)來認證,它只能使用密碼文件認證,上面的實驗證明manager1是正確的密碼.6.啟動數(shù)據(jù)庫startup建立密碼文件要重新啟動數(shù)據(jù)庫,因為內(nèi)存中保留有原來的密碼.初始化參數(shù)remote_login_passwordfile =none則數(shù)據(jù)庫

16、設置為禁止使用密碼文件,只能使用操作系統(tǒng)認證登錄到最高的老大用戶.即使你以密碼認證連接到數(shù)據(jù)庫,也不能啟動和停止數(shù)據(jù)庫,報權(quán)限不足.實驗3:數(shù)據(jù)庫的兩種初始化參數(shù)文件該實驗的目的是認識參數(shù)文件,兩類參數(shù)文件的相互轉(zhuǎn)換.如何修改參數(shù).初始化參數(shù)文件是描述實例的行為的文件,文件大小很小.初始化參數(shù)文件在unix操作系統(tǒng)中存在于oracle_home/dbs目錄下.純文本參數(shù)文件,修改參數(shù)的時候直接編輯文件,再保存就可以了.Initsid.ora二進制參數(shù)文件,必須存在于服務器端.使用命令來修改.spfilesid.oraserver parameter file純文本參數(shù)文件和二進制參數(shù)文件的差別

17、1。修改參數(shù)的方式不同2。優(yōu)先級不同3。是否動態(tài)存儲修改的參數(shù)4。存在的位置不同 純文本可以存在于客戶端 二進制文件一定存在于server端5.rman可以備份二進制參數(shù)文件,不能備份純文本參數(shù)文件.驗證現(xiàn)在數(shù)據(jù)庫使用的參數(shù)文件類型,我們一定要知道我們使用的是什么類型的參數(shù)文件,涉及到我們?nèi)绾涡薷膮?shù)的手段.select distinct ISSPECIFIED from v$spparameter;如果含有true就是使用二進制參數(shù)文件如果只有false就是使用的純文本參數(shù)文件SQL> select distinct isspecified from v$spparameter;ISS

18、PECIFIED-TRUEFALSE因為上面的選擇有true,所以這個數(shù)據(jù)庫使用的是二進制參數(shù)文件.我們修改參數(shù)要使用命令而不是編輯文件,千萬不要編輯二進制參數(shù)文件,你編輯以后會報ora-00600的錯誤.SQL> select isspecified ,count(*) from v$spparameter group by isspecified;ISSPEC COUNT(*)- -TRUE 31FALSE 232上面的查詢表示有31個參數(shù)存在于二進制參數(shù)文件,213個參數(shù)為默認值.兩類參數(shù)文件的相互轉(zhuǎn)換Create pfile from spfile;Create spfile f

19、rom pfile;上面的命令在連接的sys就可以使用,而不必啟動數(shù)據(jù)庫.當我們轉(zhuǎn)換不了的時候,請將數(shù)據(jù)庫停止,再轉(zhuǎn)換,再重新啟動數(shù)據(jù)庫,再驗證.參數(shù)文件的優(yōu)先級Spfilesid.oraSpfile.oraInitsid.oraSQL> col value for a40SQL> select name,value from v$spparameter where isspecified ='TRUE'NAME VALUE- -processes 400sessions 445sga_target 1610612736control_files /dbocfs/g

20、fdb/control01.ctlcontrol_files /dbocfs/gfdb/control02.ctlcontrol_files /dbocfs/gfdb/control03.ctldb_block_size 8192compatible 10.2.0.3.0log_archive_dest_1 LOCATION=/dbocfs/archivedb_file_multiblock_read_count 16cluster_database trueNAME VALUE- -cluster_database_instances 2thread 2thread 1instance_nu

21、mber 1instance_number 2undo_management AUTOundo_tablespace UNDOTBS2undo_tablespace UNDOTBS1remote_login_passwordfile exclusivedb_domaindispatchers (PROTOCOL=TCP) (SERVICE=gfdbXDB)NAME VALUE- -remote_listener LISTENERS_GFDBjob_queue_processes 10background_dump_dest /home/oracle/app/oracle/admin/gfdb/

22、bdumpuser_dump_dest /home/oracle/app/oracle/admin/gfdb/udumpcore_dump_dest /home/oracle/app/oracle/admin/gfdb/cdumpaudit_file_dest /home/oracle/app/oracle/admin/gfdb/adumpdb_name gfdbopen_cursors 300pga_aggregate_target 95944704031 rows selected.我們修改參數(shù)有三個選項SQL> show parameter pga_aggregate_target

23、NAME TYPE VALUE- - -pga_aggregate_target big integer 915M SQL> alter system set pga_aggregate_target=950m scope=memory;只修改內(nèi)存的值,不改變參數(shù)文件的設置,下回再次啟動數(shù)據(jù)庫時值還是老的,能修改的前提是該參數(shù)可以動態(tài)修改,如果是靜態(tài)參數(shù)只能使用下面的方法.System altered.SQL> alter system set pga_aggregate_target=950m scope=spfile;只修改二進制文件,而不修改內(nèi)存,靜態(tài)參數(shù)只能先改文件再重新啟

24、動數(shù)據(jù)庫.System altered.SQL> alter system set pga_aggregate_target=950m scope=both;同時修改二進制文件和內(nèi)存,該參數(shù)必須是可以動態(tài)修改的.System altered.SQL> alter system set pga_aggregate_target=950m;如果沒有指明修改哪里,默認為參數(shù)文件和內(nèi)存同時修改,默認就是both.System altered.我們可以從參數(shù)文件中刪除一個參數(shù),當然你也可以先轉(zhuǎn)化為純文本再轉(zhuǎn)化為二進制參數(shù)文件.alter system reset trace_enabled

25、scope=spfile sid='*'select name,value from v$spparameter where ISSPECIFIED='TRUE' order by 1;驗證一下,果然少了一行,下回啟動后該參數(shù)就按默認值來處理.二進制參數(shù)文件在修改的時候有的時候會報錯誤,我們可以先該文本文件后再建立二進制參數(shù)文件.我估計是bug,我們原諒它了,但確實對我們的學習造成一定的困惑.如果你認為參數(shù)配置的沒有問題,但就是不讓修改,那就先改純文本,再變?yōu)槎M制.總的來說二進制的參數(shù)文件好于純文本,你到底選擇哪種類型的參數(shù)文件都沒有關(guān)系.實驗4:啟動數(shù)據(jù)庫的

26、三個臺階nomount,mount,open該實驗的目的是細化啟動數(shù)據(jù)庫的三個步驟,徹底的明白還要等到學習完冷備份之后.啟動數(shù)據(jù)庫到nomount狀態(tài)的條件如下.有環(huán)境變量.存在正確的密碼文件和參數(shù)文件有足夠的內(nèi)存參數(shù)文件中描述的路徑必須存在數(shù)據(jù)庫產(chǎn)品軟件安裝正確conn sys/sys as sysdbaShutdown abort;Startup nomount;select instance_name,status from v$instance;啟動數(shù)據(jù)庫到第一個臺階nomount狀態(tài)做了如下的工作.1.讀參數(shù)文件2.分配內(nèi)存3.啟動后臺進程4.初始化部分v$視圖將數(shù)據(jù)庫帶到mount

27、狀態(tài)select value from v$spparameter where name='control_files'Alter database mount;Mount數(shù)據(jù)庫的過程是讀參數(shù)文件中描述的控制文件,校驗控制文件的正確性,將控制文件的內(nèi)容讀入到內(nèi)存,mount是掛接的意思,是操作系統(tǒng)中的概念.一旦mount之后,就是將一個沒有意義的實例和一個數(shù)據(jù)庫發(fā)生了聯(lián)系.因為實例是空殼.沒有任何數(shù)據(jù)庫和該實例發(fā)生關(guān)系,我們可以理解為實例是水泵,放到哪個水塘里就會抽取哪里的數(shù)據(jù),實例是通用的.mount的意思是將一個通用的水泵放入到指定的水塘.mount是讀控制文件,控制文件中

28、有數(shù)據(jù)文件和日志文件的信息.select instance_name,status from v$instance;打開數(shù)據(jù)庫Alter database open;讀控制文件中描述的數(shù)據(jù)文件驗證數(shù)據(jù)文件的一致性,如果不一致,使用日志文件將數(shù)據(jù)庫文件恢復到一致的狀態(tài).數(shù)據(jù)庫open后,普通用戶才可以訪問數(shù)據(jù)庫用戶的表才為可見只讀方式open數(shù)據(jù)庫Alter database open read only;select OPEN_MODE from v$database;默認的open方式為read write想改read only為read write 必須重新啟動數(shù)據(jù)庫我們現(xiàn)在回想一下數(shù)據(jù)庫

29、啟動的三個臺階,我們先讀的是參數(shù)文件,參數(shù)文件可以有我們來編寫.讀完參數(shù)文件后又讀了控制文件,控制文件描述了數(shù)據(jù)文件和日志文件的信息,如果控制文件丟失可以重新建立,最后是讀數(shù)據(jù)文件.數(shù)據(jù)文件里才存放了我們的數(shù)據(jù).數(shù)據(jù)庫將啟動分為三個臺階,目的是我們可以準確的知道哪里有問題,迅速的排除.有點象老鼠拖木釬,大頭在后面.由最開始的一個1k的參數(shù)文件,最后到幾個t的大型數(shù)據(jù)庫.當我們只打startup而不加任何參數(shù)的時候.默認是到open,等于startup open;SQL> startupORACLE instance started.Total System Global Area 167

30、772160 bytesFixed Size 1247900 bytesVariable Size 75498852 bytesDatabase Buffers 88080384 bytesRedo Buffers 2945024 bytesDatabase mounted.Database opened.我們從屏幕顯示的結(jié)果可以清楚的看出,有三個臺階.還有一個命令是startup force強制啟動數(shù)據(jù)庫,等于強制停止數(shù)據(jù)庫再啟動數(shù)據(jù)庫.實驗5:停止數(shù)據(jù)庫的四種模式該實驗的目的是區(qū)分不同的停止數(shù)據(jù)庫的方式.四種停止數(shù)據(jù)庫的方式各不相同,用于不同的情況,一般我們采用shutdown immed

31、iate方式停止數(shù)據(jù)庫,下面是每種停止數(shù)據(jù)庫方式的差別.Shutdown NORMALShutdown TRANSACTIONALShutdown IMMEDIATEShutdown abortShutdown NORMAL新的會話不接受等待非活動的會話結(jié)束等待事務結(jié)束產(chǎn)生檢查點停止數(shù)據(jù)庫Shutdown TRANSACTIONAL新的會話不接受不等待非活動的會話結(jié)束等待事務結(jié)束產(chǎn)生檢查點停止數(shù)據(jù)庫Shutdown immediate新的會話不接受不等待非活動的會話結(jié)束不等事務物結(jié)束產(chǎn)生檢查點停止數(shù)據(jù)庫Shutdown abort新的會話不接受不等待非活動的會話結(jié)束不等待事務結(jié)束不產(chǎn)生檢查點停

32、止數(shù)據(jù)庫一致性shutdown,產(chǎn)生檢測點Shutdown NORMALShutdown TRANSACTIONALShutdown IMMEDIATE數(shù)據(jù)庫再次啟動的時候不要恢復不一致性shutdown,不產(chǎn)生檢測點Shutdown abortStartup forceInstance崩潰(停電)數(shù)據(jù)庫再次啟動的時候需要恢復,自動的,透明的。實驗6:查找你想要的數(shù)據(jù)字典該實驗的目的是了解什么是數(shù)據(jù)字典,字典的來源和如何查找到我們關(guān)心的數(shù)據(jù)字典.數(shù)據(jù)字典是oracle的核心分為兩大類存在于system表空間$結(jié)尾的基本表Dba_.,all_.,user_視圖存在于內(nèi)存中X$.的虛表V$的動態(tài)性

33、能視圖數(shù)據(jù)字典是哪里來的呢?是我們建立數(shù)據(jù)庫的時候運行腳本建立的.%oracle_home%rdbmsadmincatalog.sql;腳本當中含有建立數(shù)據(jù)字典的語句.而v$的字典是數(shù)據(jù)庫在啟動實例的時候初始化的.數(shù)據(jù)字典的使用數(shù)據(jù)庫自己使用字典獲取信息數(shù)據(jù)庫自動維護我們查看字典來獲得數(shù)據(jù)庫的有關(guān)信息基本表,是字典得基本表,在建立system表空間的時候建立的.select table_name,owner from dba_tables where table_name like '%$' and owner='SYS'視圖,是在建立數(shù)據(jù)庫以后運行catalo

34、g.sql;腳本建立的.查看哪些字典中含有TABLE關(guān)鍵字,一定要大寫.select table_name from dict where table_name like '%TABLE%'查看哪些字典中含有VIEW關(guān)鍵字,一定要大寫.select table_name from dict where table_name like '%VIEW%'查看哪些字典中的一列含有FILE#這一列,一定要大寫.select table_name from dict_COLUMNS WHERE COLUMN_NAME='FILE#'查看所有的x$和v$的表

35、的信息SELECT * FROM V$FIXED_TABLE;三大類視圖,*代表可以替換為某個單詞.Dba_*All_*User_*我們拿tables說明上面得含義.其中user_tables是查看當前用戶所擁有的表. all_tables是查看當前用戶可以訪問的表. dba_tables是查看當前整個數(shù)據(jù)庫擁有的表,但是你得有權(quán)限,如果沒有權(quán)限會報沒有這個表.控制文件控制文件是二進制文件(不會超過100m,一般是幾m大?。┛刂莆募涗浟藬?shù)據(jù)庫的結(jié)構(gòu)和行為在mount時候讀在數(shù)據(jù)庫open時一直使用丟失需要恢復相關(guān)字典SQL> Select * from v$controlfile;ST

36、ATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS- - - - - /dbocfs/gfdb/control01.ctl NO 16384 932 /dbocfs/gfdb/control02.ctl NO 16384 932 /dbocfs/gfdb/control03.ctl NO 16384 932select CONTROLFILE_SEQUENCE# from v$database;select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED from V$CONTROLFILE_RECORD_SECTION; s

37、elect value from V$spparameter where name='control_files'控制文件的位置在參數(shù)文件中描述control_files=file1,file2多個控制文件是鏡像的關(guān)系最多八個,最少一個實驗7:減少控制文件的個數(shù)該實驗的目的是初步認識如何修改參數(shù)文件,如何減少控制文件.減少控制文件,實驗的目的,有一個控制文件損壞,我們要將損壞的控制文件剔除。1.修改參數(shù)文件,并驗證2.停止數(shù)據(jù)庫3.啟動數(shù)據(jù)庫4.驗證,查看v$controlfileSQL> select * from v$controlfile;驗證現(xiàn)在內(nèi)存中的控制文件個

38、數(shù)STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS- - - - - /dbocfs/gfdb/control01.ctl NO 16384 932 /dbocfs/gfdb/control02.ctl NO 16384 932 /dbocfs/gfdb/control03.ctl NO 16384 932SQL> alter system set control_files='/dbocfs/gfdb/control01.ctl', '/dbocfs/gfdb/control02.ctl' scope=spfile;Sy

39、stem altered.驗證參數(shù)文件已經(jīng)被修改SQL> select value from v$spparameter where name='control_files'VALUE-/dbocfs/gfdb/control01.ctl/dbocfs/gfdb/control02.ctl 驗證內(nèi)存中的值沒有被修改,因為control_files是靜態(tài)參數(shù),想要改變必須重新啟動數(shù)據(jù)庫。SQL> select * from v$controlfile;STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS- - - - - /dbocfs/

40、gfdb/control01.ctl NO 16384 932 /dbocfs/gfdb/control02.ctl NO 16384 932 /dbocfs/gfdb/control03.ctl NO 16384 932SQL> startup forceORACLE instance started.Total System Global Area 1610612736 bytesFixed Size 1262044 bytesVariable Size 687869476 bytesDatabase Buffers 905969664 bytesRedo Buffers 15511

41、552 bytesDatabase mounted.Database opened. SQL> select * from v$controlfile;驗證內(nèi)存被修改了VALUE-/dbocfs/gfdb/control01.ctl/dbocfs/gfdb/control02.ctl SQL> select value from v$spparameter where name='control_files'驗證參數(shù)文件中的值和內(nèi)存中的值相同VALUE-/dbocfs/gfdb/control01.ctl/dbocfs/gfdb/control02.ctl如果你在啟

42、動的時候看到ora-00205錯誤,說明你修改的參數(shù)不正確,可能是路徑寫的不對或者在路徑前面多寫了空格,請重新修改為正確的值再重新啟動數(shù)據(jù)庫。實驗8:增加控制文件的個數(shù)實驗的目的是增加控制文件的個數(shù),1到8個,保護控制文件。認識控制文件的一致性.什么是控制文件的版本.控制文件的結(jié)構(gòu).增加控制文件1.修改參數(shù)文件2.停止數(shù)據(jù)庫3.復制控制文件4.啟動數(shù)據(jù)庫5.驗證,查看v$controlfile修改二進制的初始化參數(shù)文件中的control_files選項SQL> alter system set control_files='/dbocfs/gfdb/control01.ctl&#

43、39;, '/dbocfs/gfdb/control02.ctl', '/dbocfs/gfdb/control03.ctl' scope=spfile;System altered.SQL> select value from v$spparameter where name='control_files'驗證參數(shù)文件已經(jīng)被修改VALUE-/dbocfs/gfdb/control01.ctl/dbocfs/gfdb/control02.ctl/dbocfs/gfdb/control03.ctl SQL> select * from

44、v$controlfile;驗證現(xiàn)在內(nèi)存中的控制文件個數(shù)STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS- - - - - /dbocfs/gfdb/control01.ctl NO 16384 932 /dbocfs/gfdb/control02.ctl NO 16384 932 重新啟動數(shù)據(jù)庫,使修改的參數(shù)起作用SQL> startup force;ORACLE instance started.Total System Global Area 1610612736 bytesFixed Size 1262044 bytesVariable Size 687869476 bytesDatabase Buffers 905969664 bytesRedo Buffers 15511552 bytesORA-00214: control file '/dbocfs/gfdb/control01.ctl' version 9178 inconsistent with file '/dbocfs/gfdb/control03.ctl' version 9164因為CONTROL03.CTL剛才脫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論