Oracle手工创建数据库


创建数据库的方法无非两种:

一个是使用oracle的建库工具dbca,这是一个图形界面工具,而且使用起来也方便且容易理解

另一种方法就是手工建库,这也就是我们今天要讨论的内容


手工建库比起使用dbca建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好的理解oracle数据库的体系结构。

在Oracle Database Administrator's Guide中,将手工建库的步骤分为了一下几个:

Step 1: Specify an Instance Identifier (SID)

Step 2: Ensure That the Required Environment Variables Are Set

Step 3: Choose a Database Administrator Authentication Method

Step 4: Create the Initialization Parameter File

Step 5: (Windows Only) Create an Instance

Step 6: Connect to the Instance

Step 7: Create a Server Parameter File

Step 8: Start the Instance

Step 9: Issue the CREATE DATABASE Statement

Step 10: Create Additional Tablespaces

Step 11: Run Scripts to Build Data Dictionary Views

Step 12: Run Scripts to Install Additional Options (Optional)

Step 13: Back Up the Database.

Step 14: (Optional) Enable Automatic Instance Startup

其实,如果我们的标准是创建一个能够正常使用的数据库的话,我们只需要前11个步骤就足够了,不过如果希望你对新建的数据库能有更高要求的话另讲。

在本次讨论中,我们并不严格按照oracle的文档推荐的步骤来进行测试,但是大致的步骤都是相同的


本次测试环境:

操作系统:Windows 7旗舰版,32bit,4GB RAM

Oracle数据库版本:Oracle Database 11g Enterprise Edition Release 11.1.0.6.0

实例名:TESTENV

数据文件位置:F:\oradata\TESTENV

ORACLE安装位置:E:\app\Mai\


第一步:指定一个oracle的实例标示符,即ORACLE_SID,并检查设置是否生效

set ORACLE_SID=TESTENV

或者直接在systempropertiesadvanced中的环境变量中新建oracle_sid用户变量


第二步:创建密码文件

orapwd file=E:\app\Mai\product\11.1.0\db_1\database\pwdTESTENV.ora password=oracle entries=2


第三步:创建oracle服务(仅仅在windows中需要)

oradim -new -sid TESTENV


第四步:创建必要的目录

E:\app\Mai\admin\TESTENV\adump

E:\app\Mai\admin\TESTENV\bdump

E:\app\Mai\admin\TESTENV\cdump

E:\app\Mai\admin\TESTENV\udump

E:\app\Mai\admin\TESTENV\pfile

F:\oradata\TESTENV


第五步:创建初始化参数文件

编辑一个文本文件,名称为initTESTENV.ora,内容如下:

db_name='TESTENV'

memory_target=512M

processes = 150

audit_file_dest='E:\app\Mai\admin\TESTENV\adump'

*.audit_trail='db'

core_dump_dest='E:\app\Mai\admin\TESTENV\cdump'

db_block_size=8192

db_domain=''

db_recovery_file_dest='E:\app\Mai\flash_recovery_area'

db_recovery_file_dest_size=1G

diagnostic_dest='E:\app\Mai\'

dispatchers='(PROTOCOL=TCP) (SERVICE=TESTENV)'

open_cursors=300 

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

control_files = ('F:\oradata\TESTENV\CONTROL01.CTL','F:\oradata\TESTENV\CONTROL02.CTL','F:\oradata\TESTENV\CONTROL03.CTL')

compatible ='11.1.0'

编辑完成后,将该文件放置到E:\app\Mai\product\11.1.0\db_1\database\目录下


第六步:启动实例

CMD> sqlplus / as sysdba

SQL> startup nomount;

SQL> create spfile from pfile;

SQL> shutdown immediate;

SQL> startup nomount;


第七步:创建数据库

编写数据库创建脚本如下:

create database TESTENV

user sys identified by oracle

user system identified by oracle

logfile

group 1 ('F:\oradata\TESTENV\redo01.log') size 50M,

group 2 ('F:\oradata\TESTENV\redo02.log') size 50M,

group 3 ('F:\oradata\TESTENV\redo03.log') size 50M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXINSTANCES 1

CHARACTER SET ZHS16GBK

datafile 'F:\oradata\TESTENV\system01.dbf' size 300M reuse extent management local

sysaux datafile 'F:\oradata\TESTENV\sysaux01.dbf' size 50M

default temporary tablespace temp tempfile 'F:\oradata\TESTENV\temp01.dbf' size 20m reuse 

undo tablespace undotbs1 datafile 'F:\oradata\TESTENV\undotbs01.dbf' size 200M reuse autoextend on maxsize unlimited;

注意:

这里的undo tablespace的名字必须和你在初始化参数文件中写的名称是一致的!


第八步:执行必要的脚本来创建数据库的相关数据字典和数据库视图:

SQL> @E:\app\Mai\product\11.1.0\db_1\RDBMS\ADMIN\catalog.sql

SQL> @E:\app\Mai\product\11.1.0\db_1\RDBMS\ADMIN\catproc.sql

SQL> conn system/oracle

SQL> @E:\app\Mai\product\11.1.0\db_1\sqlplus\admin\pupbld.sql


第九步:创建系统默认表空间

SQL> create tablespace users datafile 'F:\oradata\TESTENV\users01.dbf' size 100M autoextend on next 50M;

SQL> alter database default tablespace users;


至此,手工创建数据库完成

你可能感兴趣的:(oracle,windows)