手工創建數據庫
第一次創建數據庫是用的DBCA,中間發生了錯誤。后來看書(機械工業Couchman的書)才知道,創建新數據庫時,必須將原來的數據庫shutdown,否則會出現錯誤。然后進SQLPLUS,一直提示
ORA12560,監聽報錯。
試了半天,又用DBCA把所有的數據庫都刪掉了,還是用DBCA重新創建了一個數據庫,這次沒有
出現問題。覺得很奇怪。查了一下資料,可能是在上次創建的時候INIT.ORA文件破壞了。
在網上找到了一個8I的手動配置過程,呵呵,真是如獲至寶啊。
結合我自己的情況把經驗和大家共享,請大家給提提意見。
系統環境:
1、操作系統:Windows 2003 Server
2、數據庫: Oracle9I Release 9.2.0.1.0
3、安裝路徑:D:\ORACLE
建庫步驟:
1、手工創建相關目錄
D:\Oracle\admin\test
D:\Oracle\admin\test\adhoc
D:\Oracle\admin\test\bdump
D:\Oracle\admin\test\cdump
D:\Oracle\admin\test\create
D:\Oracle\admin\test\exp
D:\Oracle\admin\test\pfile
D:\Oracle\admin\test\udump
D:\Oracle\oradata\test
D:\Oracle\oradata\test\archive
------------------------------------
這幾步比較簡單,很快就完成了。覺得手動創建數據庫對理解結構還是很有幫助的。
2、手工創建初始化啟動參數文件:D:\Oracle\admin\test\pfile\inittest.ora,內容:
-------------------------------------
db_name = "test"
instance_name = test
service_names = test
db_files = 1024
control_files = ("D:\Oracle\oradata\test\control01.ctl",
"D:\Oracle\oradata\test\control02.ctl", "D:\Oracle\oradata\test\control03.ctl")
open_cursors = 200
max_enabled_roles = 30
db_file_multiblock_read_count = 8
db_block_buffers = 4096
shared_pool_size = 52428800
large_pool_size = 78643200
java_pool_size = 20971520
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 115
parallel_max_servers = 5
log_buffer = 32768
max_dump_file_size = 10240
global_names = true
oracle_trace_collection_name = ""
background_dump_dest = D:\Oracle\admin\test\bdump
user_dump_dest = D:\Oracle\admin\test\udump
db_block_size = 16384
remote_login_passwordfile = exclusive
os_authent_prefix = ""
job_queue_processes = 4
job_queue_interval = 60
open_links = 4
# log_archive_start = true
# log_archive_dest_1 = "location=D:\Oracle\oradata\oradb\archive"
# log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
------------------------------------------
奇怪的是,我當時創建了空的init.ora,最后竟然也能成功創建,
是不是因為OMF的原因?
3、手工創建D:\Oracle\Ora92\DATABASE\inittest.ora文件,
內容:IFILE='D:\Oracle\admin\test\pfile\inittest.ora'
4、使用orapwd.exe命令,創建D:\Oracle\Ora92\DATABASE\PWDtest.ora
命令:D:\Oracle\Ora92\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora
password=ORACLE entries=5
5、通過oradim.exe命令,在服務里生成一個新的實例管理服務,啟動方式為手工
set ORACLE_SID=test (這個很重要,否則出現ORA-12560錯誤)
D:\Oracle\Ora92\bin\oradim -new -sid test -startmode manual -pfile
"D:\Oracle\admin\test\pfile\inittest.ora"
6、生成各種數據庫對象
D:\>Oracle\Ora92\bin\sqlplus
Connect:SYS as SYSDBA
Password:Orace
--創建數據庫
startup nomount pfile="D:\Oracle\admin\test\pfile\inittest.ora"
CREATE DATABASE test
LOGFILE 'D:\Oracle\oradata\test\redo01.log' SIZE 2048K,
'D:\Oracle\oradata\test\redo02.log' SIZE 2048K,
'D:\Oracle\oradata\test\redo03.log' SIZE 2048K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'D:\Oracle\oradata\test\system01.dbf' SIZE 58M REUSE AUTOEXTEND ON NEXT 640K
MAXDATAFILES 254
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET ZHS16GBK;
控制文件、日志文件在上面語句執行時生成
以下是網上資料中ORACEL 8I中Init.ora的其他部分,我因為是做實驗,所以省略了
***********************************************************************
connect INTERNAL/oracle
--修改系統表空間
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS
UNLIMITED PCTINCREASE 50);
ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;
--創建回滾表空間
CREATE TABLESPACE RBS DATAFILE 'D:\Oracle\oradata\test\rbs01.dbf' SIZE 256M REUSE
AUTOEXTEND ON NEXT 5120K
MINIMUM EXTENT 512K
DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);
--創建用戶表空間
CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\test\users01.dbf' SIZE 128M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創建臨時表空間
CREATE TABLESPACE TEMP DATAFILE 'D:\Oracle\oradata\test\temp01.dbf' SIZE 32M REUSE
AUTOEXTEND ON NEXT 640K
MINIMUM EXTENT 64K
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0)
TEMPORARY;
--創建工具表空間
CREATE TABLESPACE TOOLS DATAFILE 'D:\Oracle\oradata\test\tools01.dbf' SIZE 64M REUSE
AUTOEXTEND ON NEXT 320K
MINIMUM EXTENT 32K
DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創建索引表空間
CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\test\indx01.dbf' SIZE 32M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--創建回滾段
CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS2 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS3 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS4 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS5 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS6 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS7 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS8 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS9 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS10 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS11 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS12 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS13 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS14 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS15 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS16 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS17 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS18 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS19 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS20 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS21 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS22 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS23 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS24 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
--使回滾段在線
ALTER ROLLBACK SEGMENT "RBS0" ONLINE;
ALTER ROLLBACK SEGMENT "RBS1" ONLINE;
ALTER ROLLBACK SEGMENT "RBS2" ONLINE;
ALTER ROLLBACK SEGMENT "RBS3" ONLINE;
ALTER ROLLBACK SEGMENT "RBS4" ONLINE;
ALTER ROLLBACK SEGMENT "RBS5" ONLINE;
ALTER ROLLBACK SEGMENT "RBS6" ONLINE;
ALTER ROLLBACK SEGMENT "RBS7" ONLINE;
ALTER ROLLBACK SEGMENT "RBS8" ONLINE;
ALTER ROLLBACK SEGMENT "RBS9" ONLINE;
ALTER ROLLBACK SEGMENT "RBS10" ONLINE;
ALTER ROLLBACK SEGMENT "RBS11" ONLINE;
ALTER ROLLBACK SEGMENT "RBS12" ONLINE;
ALTER ROLLBACK SEGMENT "RBS13" ONLINE;
ALTER ROLLBACK SEGMENT "RBS14" ONLINE;
ALTER ROLLBACK SEGMENT "RBS15" ONLINE;
ALTER ROLLBACK SEGMENT "RBS16" ONLINE;
ALTER ROLLBACK SEGMENT "RBS17" ONLINE;
ALTER ROLLBACK SEGMENT "RBS18" ONLINE;
ALTER ROLLBACK SEGMENT "RBS19" ONLINE;
ALTER ROLLBACK SEGMENT "RBS20" ONLINE;
ALTER ROLLBACK SEGMENT "RBS21" ONLINE;
ALTER ROLLBACK SEGMENT "RBS22" ONLINE;
ALTER ROLLBACK SEGMENT "RBS23" ONLINE;
ALTER ROLLBACK SEGMENT "RBS24" ONLINE;
--修改sys用戶的臨時表空間為TEMP
alter user sys temporary tablespace TEMP;
--創建數據字典表
@D:\Oracle\Ora81\Rdbms\admin\catalog.sql;
@D:\Oracle\Ora81\Rdbms\admin\catexp7.sql
@D:\Oracle\Ora81\Rdbms\admin\catproc.sql
@D:\Oracle\Ora81\Rdbms\admin\caths.sql
connect system/manager
@D:\Oracle\Ora81\sqlplus\admin\pupbld.sql
connect internal/oracle
@D:\Oracle\Ora81\Rdbms\admin\catrep.sql
exit
--生成SQL*Plus幫助系統
sqlplus SYSTEM/manager
@D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
exit
--修改system用戶默認表空間和臨時表空間
svrmgrl
connect internal/oracle
alter user system default tablespace TOOLS;
alter user system temporary tablespace TEMP;
exit
**************************************************************
7、將test實例啟動服務設置成自動啟動方式
D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto
看看服務里多了一項OracleServerTest.
終于能看到Database Created,對于我這種初學者,還是很開心的一件事情。
然后到OEM里看看自己新建的數據庫,同時在SQLPLUS創建了一個用戶,在OEM看到了,呵呵。
證明確實是我剛才創建的數據庫。
這個時候問題又出現了,在OEM里,我試著用SQLPLUS worksheet,
connect sys as sysdba
Enter password: ERROR:
ORA-12560: TNS

這是怎么回事呢?剛才用的DOS下的SQLPLUS沒有關,我在DOS下試著連接,很好啊,
那問題出在哪里呢?于是把DOS窗口重新開了一次,再連SQLPLUS,
呵呵,出現了和Worksheet一樣的錯誤。
接著,又檢查了inittest.ora,沒有找到什么。
反復的startup mount,start nomount pfile="..inittest.ora"
shutdown normal,還是出現這個ORA-12560
既然是監聽出現問題,是不是與SID有關呢?
問題出在set ORACLE_SID=test.
在DOS下,先SET ORACLE_SID,然后在SQLPLUS里面CONNECT,
呵呵,SQLPLUS一切正常了。但是在OEM里還是使用不了SQLPLUS worksheet,這是為什么?
步驟一:其實是不用手動創建的,在oracle\ora92\admin\sample目錄下有模版,直接考過來,將initsmp.ora改名即可。
posted on 2006-03-13 21:01 Vincent.Chen 閱讀(597) 評論(0) 編輯 收藏 所屬分類: Database