Oracle DBA之手动地通过命令行的方式创建一个数据库

创建oracle数据库的时候,大多数情况我们都是用dbca,简单方便,比较自动化;
今天我们将尝试手动地通过命令行的方式创建一个数据库,别有一番风味。
oracle软件版本:10gR2
操作系统版本:win xp sp3
目标数据sid:t02

(1)创建dump及参数文件用文件夹:
D:\oracle\product\10.2.0\admin\t02
D:\oracle\product\10.2.0\admin\t02\adump
D:\oracle\product\10.2.0\admin\t02\bdump
D:\oracle\product\10.2.0\admin\t02\cdump
D:\oracle\product\10.2.0\admin\t02\dpdump
D:\oracle\product\10.2.0\admin\t02\pfile
D:\oracle\product\10.2.0\admin\t02\udump

(2)创建datafile用文件夹:
D:\oracle\product\10.2.0\oradata\t02

(3)创建参数文件,可先copy一个其他库的,再在上面做修改,注意目录改对:
D:\oracle\product\10.2.0\db_1\database\initt02.ora

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# NLS
###########################################
nls_language="AMERICAN"
nls_territory="AMERICA"
 
###########################################
# SGA Memory
###########################################
sga_target=290455552
 
###########################################
# Job Queues
###########################################
job_queue_processes=10
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=t02XDB)"
 
###########################################
# Miscellaneous
###########################################
compatible=10.2.0.1.0
 
###########################################
# Security and Auditing
###########################################
audit_file_dest=D:\oracle\product\10.2.0/admin/t02/adump
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=96468992
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name=t02
 
###########################################
# File Configuration
###########################################
control_files=("D:\oracle\product\10.2.0/oradata/t02/\control01.ctl", "D:\oracle\product\10.2.0/oradata/t02/\control02.ctl", "D:\oracle\product\10.2.0/oradata/t02/\control03.ctl")
db_recovery_file_dest=D:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size=2147483648
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=D:\oracle\product\10.2.0/admin/t02/bdump
core_dump_dest=D:\oracle\product\10.2.0/admin/t02/cdump
user_dump_dest=D:\oracle\product\10.2.0/admin/t02/udump
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
 

(4)创建口令文件:
orapwd file=D:\oracle\product\10.2.0\db_1\database\pwdt02.ora password=oracle entries=2

(5)创建实例(会在windows系统注册一个服务):
oradim -new  -sid t02

(6)启动数据库到nomount状态,需先设置oracle_sid:
set oracle_sid=t02
sqlplus / as sysdba
startup nomount

(7)创建数据库:
select status from v$instance;
ed
填入以下创建脚本内容,保存后输入正斜杠(/)回车执行:
create database t02
datafile 'D:\oracle\product\10.2.0\oradata\t02\system01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited
extent management local
sysaux datafile 'D:\oracle\product\10.2.0\oradata\t02\sysaux01.dbf'
size 100M reuse autoextend on next 10M maxsize unlimited
default temporary tablespace temp 
tempfile 'D:\oracle\product\10.2.0\oradata\t02\temp01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited
undo tablespace "UNDOTBS1" --请注意这里的undo表空间要和参数文件对应
datafile 'D:\oracle\product\10.2.0\oradata\t02\undotbs01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited
default tablespace users 
datafile 'D:\oracle\product\10.2.0\oradata\t02\users01.dbf' size 100M reuse autoextend on next 10M maxsize unlimited
logfile 
group 1 ('D:\oracle\product\10.2.0\oradata\t02\redo01.log') size 10M, 
group 2 ('D:\oracle\product\10.2.0\oradata\t02\redo02.log') size 10M, 
group 3 ('D:\oracle\product\10.2.0\oradata\t02\redo03.log') size 10M
character set al32utf8
national character set al16utf16
user sys    identified by oracle
user system identified by oracle
/

至此数据库已经可以打开了,但是还缺少基本的数据字典(如:dba_objects、dba_tablespaces等)和
基本的内置程序(如:dbms_output、dbms_session),接下来我们要创建这些对象。

(8)创建数据字典:
@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql;

(9)创建内置程序:
@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql;

(10)创建scott schema(scott需要使用users表空间):
@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql;

(11)编译product user profile(需要system用户去执行):
conn system/oracle
@D:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql;

(12)配置监听程序:
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN

listener.ora
经过以上步骤,系统会自动在已有listener上增加一个端口(1522),如下:
(其实仅有1521一个端口即可同时连接两个数据库。
之所以有1521这条记录,是因为在创建测试库(t02)之前本机已有一个库t01)
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))
    )
  )

tnsnames.ora
如果我们想用tns来连接,则还需在tnsnames.ora中追加如下配置:
(如果在上步没有生成1522行,这里只需将1522改为1521即可)
T02 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC1255-20110528)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = t02)
    )
  )

(13)以scott用户验证:
sqlplus scott/tiger@t02
select * from dept;

(14)创建Enterprise Manager(EM):
emca -config dbcontrol db -repos create


t0nsha(liaodunxia AT gmail DOT com)
20110714@上海

 
原文链接: http://blog.csdn.net/t0nsha/article/details/6630168

你可能感兴趣的:(Oracle DBA之手动地通过命令行的方式创建一个数据库)