手工創建DB實例
?
??? 作為一個DBA,手動建庫是必須要了解的,即便現在使用DBCA建庫非常方便,但是了解建庫的過程,有助于深入得理解數據庫的原理和結構。當然有一個最好的方法,就是使用DBCA創建數據庫模板后,自動生成建庫腳本,然后研究腳本,理解建庫的過程。如果需要精確的控制,只需要在原有腳本的基礎上進行修改即可。因為有很多的參數是在DBCA中無法進行設置的。
?
1、安裝配置說明:
?
OS環境:Windows XP PS2
Oracle:Oracle9I Release 9.2.0.1.0
Oracle_Home:D:\Oracle
?
?
2、手工創建相關目錄:
??? (基本上參照之前的實例進行創建)
D:\Oracle\admin\kaka
D:\Oracle\admin\kaka\bdump
D:\Oracle\admin\kaka\cdump
D:\Oracle\admin\kaka\create
D:\Oracle\admin\kaka\pfile
D:\Oracle\admin\kaka\scripts
D:\Oracle\admin\kaka\udump
?
D:\Oracle\oradata\kaka
D:\Oracle\oradata\kaka\archive
?
?
3、創建初始化啟動參數文件:
?
D:\Oracle\admin\kaka\pfile\initkaka.ora
?
內容如下:
--------------------------------------------------------------------------
###################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
###################################
# MTS
dispatchers="(PROTOCOL=TCP) (SERVICE=kakaXDB)"
# Optimizer
hash_join_enabled=TRUE
query_rewrite_enabled=FALSE
star_transformation_enabled=FALSE
# Job Queues
job_queue_processes=10
# Instance Identification
instance_name=kaka
# Miscellaneous
compatible=9.2.0.0.0
# Security and Auditing
remote_login_passwordfile=EXCLUSIVE
# Sort, Hash Joins, Bitmap Indexes
pga_aggregate_target=25165824
sort_area_size=524288
# Database Identification
db_domain=""
db_name=kaka
# File Configuration
control_files=("D:\oracle\oradata\kaka\control01.ctl",
"D:\oracle\oradata\kaka\control02.ctl",
"D:\oracle\oradata\kaka\control03.ctl")
# Pools
java_pool_size=33554432
large_pool_size=8388608
shared_pool_size=50331648
# Cursors and Library Cache
open_cursors=300
# System Managed Undo and Rollback Segments
undo_management=AUTO
undo_retention=600
undo_tablespace=UNDOTBS01
# Diagnostics and Statistics
background_dump_dest=D:\oracle\admin\kaka\bdump
core_dump_dest=D:\oracle\admin\kaka\cdump
timed_statistics=TRUE
user_dump_dest=D:\oracle\admin\kaka\udump
# Processes and Sessions
processes=150
# Redo Log and Recovery
fast_start_mttr_target=300
# Cache and I/O
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
--------------------------------------------------------------------------
?
?
4、用orapwd命令創建密碼文件:
?
> orapwd file=D:\Oracle\Ora92\DATABASE\PWDkaka.ora password=sys entries=5
?
?
5、oradim命令生成一個新的實例管理服務:
?
> set ORACLE_SID= kaka (也可以在注冊表中修改,用set只修改當前會話)?
> oradim -new -sid kaka -startmode manual -pfile "D:\Oracle\admin\ora92\pfile\initkaka.ora"
?
--生成一個名為OracleServicekaka的手動服務項
?
?
6、生成各種數據庫對象:
> sqlplus /nolog
?
Conn sys/lovehoney as sysdba
?
--創建數據庫
startup nomount pfile="D:\Oracle\admin\kaka\pfile\initkaka.ora"
?
CREATE DATABASE kaka
LOGFILE 'D:\Oracle\oradata\kaka\redo01.log' SIZE 2048K,
'D:\Oracle\oradata\kaka\redo02.log' SIZE 2048K,
'D:\Oracle\oradata\kaka\redo03.log' SIZE 2048K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'D:\Oracle\oradata\kaka\system01.dbf' SIZE 58M REUSE AUTOEXTEND ON NEXT 640K
MAXDATAFILES 254
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET UTF8;
?
控制文件、日志文件在上面語句執行時生成
?
?
7、在創建過程中出現的問題
?
在創建中遇到這個問題:
?
CREATE DATABASE kaka
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
?
查看了日志文件D:\oracle\admin\kaka\bdump\alert_kaka.log發現:
?
Mon Nov 10 16:54:06 2008
Errors in file d:\oracle\admin\kaka\udump\kaka_ora_288.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type
?
?
修改了pfile文件中undo_tablespace=UNDOTBS,但是又出現錯誤:
?
Thu Nov 13 09:14:25 2008
Errors in file d:\oracle\admin\kaka\udump\kaka_ora_2228.trc:
ORA-01501: CREATE DATABASE failed
ORA-30045: No undo tablespace name specified
?
在創建數據庫的語句中添加:
?
undo tablespace UNDOTBS01 datafile 'D:\Oracle\oradata\kaka\undotbs01.dbf' size 10m
?
問題解決.
?
?
另:關于NATIONAL CHARACTER
?
之前配置的NATIONAL CHARACTER SET ZHS16GBK 報錯,后來改成UTF8后就不再報錯了具體原因不詳。
關于這個問題以后再研究一下。
?
?
8、創建數據字典:
?
使用sysdba登錄數據庫
?
SQL>start D:\oracle\ora92\rdbms\admin\catalog.sql;
....
SQL>start D:\oracle\ora92\rdbms\admin\catproc.sql;
....
?
創建用戶
?
SQL>create user wangxiaoqi identified by wangxiaoqi
?
SQL>grant create session to wangxiaoqi;
?
SQL>grant dba to wangxiaoqi;
?
登錄是發現警告:
?
SQL
> conn wangxiaoqi/wangxiaoqi
Error accessing PRODUCT_USER_PROFILE
Warning:? Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.
?
需要使用SYSTEM用戶登錄,再執行PUPBLD.SQL
?
SQL
> conn system/manager
Connected.
SQL> start D:\oracle\ora92\sqlplus\admin\pupbld.sql;
?
SQL
> conn wangxiaoqi/wangxiaoqi
Connected.
?
?
9、創建連接字符串
?
KAKA =
? (DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = hhz-0099)(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVER = DEDICATED)
????? (SERVICE_NAME = kaka)
??? )
? )
?
?
?
到這里就差不多完成了,好累啊,記得下次要是想讓他自動啟動的話,還要配置SPFILE或者PFILE……
?
?
?
?