參考資料為:
【Oracle XE系列之三】使用OMF方式手工創建Oracle XE數據庫 - 王立夫 - 博客園
http://www.cnblogs.com/opfo/p/5056122.html
環境:win7_64
以管理員打開cmd
1.創建數據庫實例,實例名為ORCL
錯誤:dim-00014:無法打開 Windows NT 服務控制管理器。OS-Error:(OS 5) 拒絕訪問。
處理辦法:以管理身份運行.
2.為了sys用戶可以連入數據庫執行操作,先創建數據庫的密碼文件,密碼文件的名稱必須為PWDsid.ora
orapwd password=oracle file=C:\oraclexe\app\oracle\product\11.2.0\server\database\PWDORCL.ora
自動生成PWDORCL.ora文件
3.創建下列目錄,以存放數據文件和dump信息
#數據文件目錄
C:\oraclexe\app\oracle\oradata\ORCL
#background dump目錄
C:\oraclexe\app\oracle\oradata\ORCL\bdump
#core dump目錄
C:\oraclexe\app\oracle\oradata\ORCL\cdump
#user dump目錄
C:\oraclexe\app\oracle\oradata\ORCL\udump
4.修改listener.ora為下列信息,把此數據庫注冊在監聽器中(可選)在C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN下
原有內容:
在最后一句的XE改成ORCL
5.為了可以訪問數據庫,修改tnsnames.ora為下列信息
在C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN下
原有內容:
改后:
即增加了下面的內容:
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )
記得在哪里看過,第一行前面不能有空格,即"ORCL="這個前面不能有空格.(參考資料把XE的刪除了,我沒刪)
6.建立pfile文件C:\oraclexe\app\oracle\product\11.2.0\server\database\initORCL.ora,文件的內容如下:(注意文件名)
background_dump_dest='C:\oraclexe\app\oracle\oradata\ORCL\bdump'
compatible='11.2.0.1.0'
control_files='C:\oraclexe\app\oracle\oradata\ORCL\control01.ctl',C:\oraclexe\app\oracle\oradata\ORCL\control02.ctl'
core_dump_dest='C:\oraclexe\app\oracle\oradata\ORCL\cdump'
db_block_size=8192
db_name='ORCL'
db_recovery_file_dest='C:\oraclexe\app\oracle\fast_recovery_area'
db_recovery_file_dest_size=2147483648
pga_aggregate_target=41943040
processes=150
remote_login_passwordfile='EXCLUSIVE'
sga_max_size=167772160
sga_target=125829120
undo_management='AUTO'
undo_tablespace='undotbs1'
user_dump_dest='C:\oraclexe\app\oracle\oradata\ORCL\udump'
db_create_file_dest='C:\oraclexe\app\oracle\oradata\ORCL'
db_create_online_log_dest_1='C:\oraclexe\app\oracle\oradata\ORCL'
7.連入數據庫,並創建spfile文件
以管理員打開cmd
set ORACLE_SID=ORCL
sqlplus.exe / as sysdba
create spfile from pfile;
8.啟動數據庫到nomount
startup nomount
9.創建creata database文件C:\oraclexe\app\oracle\admin\PF\Create\createdb.sql腳本,具體內容如下:
create database ORCL user sys identified by oracle user system identified by oracle default temporary tablespace temp undo tablespace undotbs1 character set utf8 national character set al16utf16;
執行createdb.sql
10.執行catalog.sql,創建數據庫的數據字典視圖
spool C:\oraclexe\catalog.log
@C:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\catalog.sql
spool off
執行第二句的時候出現了一長串的內容,好像是因為已經建立了報錯,可能是之前就有了,不明確有沒有問題:
11.執行catproc.sql,創建執行PL/SQL程序所需的所有包
spool C:\oraclexe\catproc.log
@C:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\catproc.sql
spool off
最后兩步運行過程雖然有報錯,但暫時無視,過后用看看有沒有出現問題.(最后一步運行了好久)
到此數據庫ORCL創建完畢,可以正常使用了。
需要注意的地方:
(1)在11g中,如果system01.dbf這個文件用extent management local的話,必須創建一個temporary表空間。
(2)11g必須創建sysaux01.dbf這個文件
(3)如果以上步驟出現錯誤,而錯誤提示為亂碼的話,可以退出SQLPLUS,然后設置環境變量set nls_lang=american_america.zhs16gbk(windows),然后再登錄數據庫。
總結:創建過程中出現了很多的問題和報錯,出現報錯后查看告警日志alert_pf,本例中路徑是C:\oraclexe\app\oracle\oradata\ORCL\bdump,根據錯誤號可以google一下,能解決很多問題
以下不是必須的:
在服務里面看到出現OracleServiceORCL,但是是手動開啟了,順手改成自動開啟了.