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)