您的位置:首页 > 数据库

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

2014-11-21 10:12 423 查看
创建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  

  

#####
4000
#########################################################################  

# 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@上海  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: