【Oracle】數據庫啓動階段參數文件、控制文件的問題處理

Oracle啓動分三個階段:
數據庫

nomount:
session

首先查找參數文件(pfile/spfile),根據文件建立實例。Nomount的過程是啓動數據庫實例的過程。oracle

沒有參數文件沒法nomountide

mount:編碼

從參數文件中得到控制文件的位置信息,而後打開控制文件。spa

--沒有控制文件沒法mount日誌

open:orm

打開控制文件中全部描述的文件。blog

--沒有數據文件沒法open
get

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

NLS_LANG設置要點:

Chcp = 936 表示gbknls_lang設置以下:

set NLS_LANG=simplifiedchinese_china.zhs16gbk

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


1、參數文件生成

空閒實例能夠把pfilespfile互轉

Pfile(文本文件):客戶端文件,能夠放在其它位置

Spfile(二進制文件):服務端文件,只能放在database下,但能夠用pfile中指定位置。

Create pfile from spfile;

Create spfile from pfile;

注意點:修改參數前,最好先生成一個pfile文件


wKioL1QSdb2TqkbnAAXCiVz0YHI712.jpg



spfile pfile移動到別的地方啓動:

wKiom1QSdemCtFD7AACVOJaj8DY724.jpg


如果有initsid.ora文件,則能夠把initsid.ora文件放到database目錄下,或者用指定方法啓動:


wKiom1QSdi6y7tFdAAEEfulkLZo945.jpg


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

xw168.ora'


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

wKiom1QSdnPAD8aKAADJG0deABA153.jpg

wKioL1QSdoSTEjoaAACBgAp47BU187.jpg


關掉實例,從新 startup nomount便可啓動。


2、spfile文件移動位置

 

database目錄下建立initsid.ora文件,在裏面只寫如下內容:

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

spfile文件的位置。以下圖:

show parameter spfile;後能夠查到如今使用的spfile是在bak目錄下面。

wKiom1QSdsqiUrD1AATxIfkrZxw299.jpg


3、添加或刪除控制文件

 

參數文件記錄控制文件位置,控制文件位置:

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

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


wKiom1QSd0KiZ7jAAAElgdi0vNo345.jpg

把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL文件移走,啓動以下:

wKioL1QSd1Oj2CU1AAGXHhQeIQ4271.jpg

wKiom1QSd0KCSaX5AADTn6M3iLQ875.jpg


Alter日誌以下:

wKioL1QSd5aQ_rMvAAGIHhPinXg980.jpg


有二個方法能夠解決:

1、因爲控制文件是互相鏡像,把另外一個控制文件複製過來並更名,便可。

2、在參數文件中把這個控制文件信息刪除,操做步驟以下:

查看control_files參數類型,能夠看到false:表示修改後須要重啓生效。

wKiom1QSd8Lj00ZoAAEd489pg70668.jpg


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

L02.CTL';這樣會報錯,因此須要加上scope=spfile;


wKioL1QSeAiCMuKbAAE60xNonDE659.jpg


關閉數據庫再啓動到nomount下,能夠看到只有一個控制文件了:


wKioL1QSeE_QjUzvAAE0GgqQsgI693.jpg

能夠正常進入mount狀態

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

wKioL1QSeH6S1NEYAAHq2y3I3RM013.jpg



3、參數設置

一、  修改session的參數

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

 

二、  修改系統的參數

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

 

三、  查看參數默認值

--查看參數有什麼值

select * from v$parameter_valid_valueswhere name='audit_trail'

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

select * from v$system_parameter wherename='audit_trail'

 

ISSYS_MODIFIABLE

False:重啓後生效,須要指定scope=spfile;

IMMEDIATE:更改後立刻生效。

相關文章
相關標籤/搜索