【Oracle】資料庫啟動階段參數檔案、控制檔案的問題處理

來源:互聯網
上載者:User

標籤:spfile   oracle   

Oracle啟動分三個階段:

nomount:

首先尋找參數檔案(pfile/spfile),根據檔案建立執行個體。Nomount的過程是啟動資料庫執行個體的過程。

沒有參數檔案無法nomount

mount:

從參數檔案中獲得控制檔案的位置資訊,然後開啟控制檔案。

--沒有控制檔案無法mount

open:

開啟控制檔案中所有描述的檔案。

--沒有資料檔案無法open

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

NLS_LANG設定要點:

Chcp = 936 表示gbk,nls_lang設定如下:

set NLS_LANG=simplifiedchinese_china.zhs16gbk

用戶端系統的編碼是什麼,nls_lang就需要設成什麼編碼。Oracle在儲存資料時,會對接收到的資料根據nls_lang的編碼進行解碼,然後再以oracle資料的編碼存入資料庫。


一、參數檔案產生

空閑執行個體可以把pfile與spfile互轉

Pfile(文字檔):用戶端檔案,可以放在其它位置 。

Spfile(二進位檔案):服務端檔案,只能放在database下,但可以用pfile中指定位置。

Create pfile from spfile;

Create spfile from pfile;

注意點:修改參數前,最好先產生一個pfile檔案。


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdb2TqkbnAAXCiVz0YHI712.jpg" title="1.png" alt="wKioL1QSdb2TqkbnAAXCiVz0YHI712.jpg" />



把spfile 與pfile移動到別的地方啟動:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdemCtFD7AACVOJaj8DY724.jpg" title="2.png" alt="wKiom1QSdemCtFD7AACVOJaj8DY724.jpg" />


若是有initsid.ora檔案,則可以把initsid.ora檔案放到database目錄下,或者用指定方法啟動:


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSdi6y7tFdAAEEfulkLZo945.jpg" title="3.png" alt="wKiom1QSdi6y7tFdAAEEfulkLZo945.jpg" />


SQL> startup nomountpfile=‘D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\bak\inith

xw168.ora‘


指定參數啟動的,不能直接create spfile from pfile;

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSdnPAD8aKAADJG0deABA153.jpg" style="float:none;" title="4.png" alt="wKiom1QSdnPAD8aKAADJG0deABA153.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdoSTEjoaAACBgAp47BU187.jpg" style="float:none;" title="5.png" alt="wKioL1QSdoSTEjoaAACBgAp47BU187.jpg" />


關掉執行個體,重新 startup nomount即可啟動。


二、spfile檔案移動位置

 

在database目錄下建立initsid.ora檔案,在裡面唯寫以下內容:

spfile=‘D:\oracle\product\11.2.0\dbhome_1\database\bak\SPFILEHXW168.ORA‘

spfile檔案的位置。如:

show parameter spfile;後可以查到現在使用的spfile是在bak目錄下面。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdsqiUrD1AATxIfkrZxw299.jpg" title="6.png" alt="wKiom1QSdsqiUrD1AATxIfkrZxw299.jpg" />


三、添加或刪除控制檔案

 

參數檔案記錄控制檔案位置,控制檔案位置:

D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL

D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd0KiZ7jAAAElgdi0vNo345.jpg" style="float:none;" title="7.png" alt="wKiom1QSd0KiZ7jAAAElgdi0vNo345.jpg" />

把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL檔案移走,啟動如下:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSd1Oj2CU1AAGXHhQeIQ4271.jpg" style="float:none;" title="8.png" alt="wKioL1QSd1Oj2CU1AAGXHhQeIQ4271.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSd0KCSaX5AADTn6M3iLQ875.jpg" style="float:none;" title="9.png" alt="wKiom1QSd0KCSaX5AADTn6M3iLQ875.jpg" />


Alter日誌如下:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/49/4A/wKioL1QSd5aQ_rMvAAGIHhPinXg980.jpg" title="10.png" alt="wKioL1QSd5aQ_rMvAAGIHhPinXg980.jpg" />


有二個方法可以解決:

1、由於控制檔案是互相鏡像,把另一個控制檔案複製過來並改名,即可。

2、在參數檔案中把這個控制檔案資訊刪除,操作步驟如下:

查看control_files參數類型,可以看到false:表示修改後需要重啟生效。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd8Lj00ZoAAEd489pg70668.jpg" title="11.png" alt="wKiom1QSd8Lj00ZoAAEd489pg70668.jpg" />


SQL> alter system setcontrol_files=‘D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO

L02.CTL‘;這樣會報錯,所以需要加上scope=spfile;


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSeAiCMuKbAAE60xNonDE659.jpg" title="12.png" alt="wKioL1QSeAiCMuKbAAE60xNonDE659.jpg" />


關閉資料庫再啟動到nomount下,可以看到只有一個控制檔案了:


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeE_QjUzvAAE0GgqQsgI693.jpg" title="13.png" alt="wKioL1QSeE_QjUzvAAE0GgqQsgI693.jpg" />

可以正常進入mount狀態

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSeFOxFLxUAACGkpmgeXE709.jpg" title="14.png" alt="wKiom1QSeFOxFLxUAACGkpmgeXE709.jpg" />


把D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL添加回去。命令如下:

SQL> alter system set control_files=‘D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO

L02.CTL’,’D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL‘scope=spfile;

 

關閉資料庫,把D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL檔案複製到並改名D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeH6S1NEYAAHq2y3I3RM013.jpg" title="15.png" alt="wKioL1QSeH6S1NEYAAHq2y3I3RM013.jpg" />



三、參數設定

1、  修改session的參數

Alter nls_date_format=’yyyy/mm/ddhh24:mi:ss’;

 

2、  修改系統的參數

Alter system set control_files=’path1’,‘path2‘scope=spfile;

 

3、  查看參數預設值

--查看參數有什麼值

select * from v$parameter_valid_valueswhere name=‘audit_trail‘

--查看參數是什麼靜態還是動態

select * from v$system_parameter wherename=‘audit_trail‘

 

ISSYS_MODIFIABLE:

False:重啟後生效,需要指定scope=spfile;

IMMEDIATE:更改後馬上生效。


本文出自 “儘管錯,讓我錯到死!” 部落格,請務必保留此出處http://hxw168.blog.51cto.com/8718136/1551541

【Oracle】資料庫啟動階段參數檔案、控制檔案的問題處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.