Oracle啓動分三個階段:
數據庫
nomount:
session
首先查找參數文件(pfile/spfile),根據文件建立實例。Nomount的過程是啓動數據庫實例的過程。oracle
沒有參數文件沒法nomountide
mount:編碼
從參數文件中得到控制文件的位置信息,而後打開控制文件。spa
--沒有控制文件沒法mount日誌
open:orm
打開控制文件中全部描述的文件。blog
--沒有數據文件沒法open
get
-------------------------------------------------------------------------------------
NLS_LANG設置要點:
Chcp = 936 表示gbk,nls_lang設置以下:
set NLS_LANG=simplifiedchinese_china.zhs16gbk
客戶端系統的編碼是什麼,nls_lang就須要設成什麼編碼。Oracle在存儲數據時,會對接收到的數據根據nls_lang的編碼進行解碼,而後再以oracle數據的編碼存入數據庫。
1、參數文件生成
空閒實例能夠把pfile與spfile互轉
Pfile(文本文件):客戶端文件,能夠放在其它位置 。
Spfile(二進制文件):服務端文件,只能放在database下,但能夠用pfile中指定位置。
Create pfile from spfile;
Create spfile from pfile;
注意點:修改參數前,最好先生成一個pfile文件。
把spfile 與pfile移動到別的地方啓動:
如果有initsid.ora文件,則能夠把initsid.ora文件放到database目錄下,或者用指定方法啓動:
SQL> startup nomountpfile='D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\bak\inith
xw168.ora'
指定參數啓動的,不能直接create spfile from pfile;
關掉實例,從新 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目錄下面。
3、添加或刪除控制文件
參數文件記錄控制文件位置,控制文件位置:
D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL
D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL
把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL文件移走,啓動以下:
Alter日誌以下:
有二個方法能夠解決:
1、因爲控制文件是互相鏡像,把另外一個控制文件複製過來並更名,便可。
2、在參數文件中把這個控制文件信息刪除,操做步驟以下:
查看control_files參數類型,能夠看到false:表示修改後須要重啓生效。
SQL> alter system setcontrol_files='D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO
L02.CTL';這樣會報錯,因此須要加上scope=spfile;
關閉數據庫再啓動到nomount下,能夠看到只有一個控制文件了:
能夠正常進入mount狀態
把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。
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:更改後立刻生效。