DBCA 圖形化雖便捷,但手動創建是 DBA 核心基本功:理解實例與數據庫關係、排查啟動失敗、異構遷移、自動化部署腳本編寫、面試必考。
DB_NAME=MYNEWDB
SID=MYNEWDB
OS 認證(本例採用)或密碼文件認證(REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE)。
複製 $ORACLE_HOME/admin/sample/pfile/initsmpl.ora 修改,保存為 D:\Oracle\ora92\database\initMYNEWDB.ora。關鍵參數:
# 實例與域
INSTANCE_NAME=MYNEWDB
DB_NAME=MYNEWDB
DB_DOMAIN=""
# 內存
SGA_TARGET=0 # 手動管理
SHARED_POOL_SIZE=50331648
LARGE_POOL_SIZE=8388608
JAVA_POOL_SIZE=33554432
DB_CACHE_SIZE=25165824
PGA_AGGREGATE_TARGET=25165824
# 存儲
DB_BLOCK_SIZE=8192
CONTROL_FILES=("D:\Oracle\oradata\MYNEWDB\CONTROL01.CTL",
"D:\Oracle\oradata\MYNEWDB\CONTROL02.CTL",
"D:\Oracle\oradata\MYNEWDB\CONTROL03.CTL")
# Undo
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS
UNDO_RETENTION=10800
# 診斷
BACKGROUND_DUMP_DEST=D:\Oracle\admin\MYNEWDB\bdump
USER_DUMP_DEST=D:\Oracle\admin\MYNEWDB\udump
CORE_DUMP_DEST=D:\Oracle\admin\MYNEWDB\cdump
TIMED_STATISTICS=TRUE
# 進程
PROCESSES=150
OPEN_CURSORS=300
# 字符集
NLS_LANGUAGE=SIMPLIFIED CHINESE
NLS_TERRITORY=CHINA
C:\> SET ORACLE_SID=MYNEWDB
C:\> ORADIM -NEW -SID MYNEWDB -INTPWD MYNEWDB -STARTMODE MANUAL -PFILE D:\Oracle\ora92\database\initMYNEWDB.ora
ORADIM 管理 Windows 服務:創建/刪除/啟動/關閉實例服務。
SQLPLUS /NOLOG
CONNECT SYS/MYNEWDB AS SYSDBA
STARTUP NOMOUNT;
僅分配 SGA、啟動後台進程,**未掛載控制文件、未打開數據庫**。
CREATE DATABASE MYNEWDB
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE 'D:\Oracle\oradata\mynewdb\system.dbf' SIZE 50M
UNDO TABLESPACE UNDOTBS DATAFILE 'D:\Oracle\oradata\mynewdb\undotbs.dbf' SIZE 50M
AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMPTS
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('D:\Oracle\oradata\mynewdb\redo01.log') SIZE 100M,
GROUP 2 ('D:\Oracle\oradata\mynewdb\redo02.log') SIZE 100M,
GROUP 3 ('D:\Oracle\oradata\mynewdb\redo03.log') SIZE 100M;
同步執行 $ORACLE_HOME/rdbms/admin/sql.bsq:創建 SYSTEM 表空間/回滾段、SYS/SYSTEM 用戶、數據字典基表/索引、預定義角色。
CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\mynewdb\users01.dbf' SIZE 100M
REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\mynewdb\index01.dbf' SIZE 100M
REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
@D:\Oracle\ora92\rdbms\admin\catalog.sql; -- V$ 視圖、同義詞、PUBLIC 授權
@D:\Oracle\ora92\rdbms\admin\catproc.sql; -- PL/SQL 包體、標準包
CREATE SPFILE FROM FILE='D:\Oracle\ora92\database\initMYNEWDB.ora';
SHUTDOWN IMMEDIATE;
STARTUP;
生成 SPFILEMYNEWDB.ORA,實現參數持久化與動態修改能力。
oradata\MYNEWDB、admin\MYNEWDB\bdump|udump|cdump。SELECT NAME, OPEN_MODE FROM V$DATABASE; → MYNEWDB READ WRITE。