手工建库需要经过以下几个步骤,每一步骤都非常关键:
1.       创建必要的相关目录
2.       创建初始化参数文件
3.       设置环境变量Oracle_sid
4.       创建实例
5.       创建口令文件
6.       启动数据库到nomount(实例)状态
7.       执行建库脚本
8.       执行catalog脚本创建数据字典
9.       执行catproc创建package
10.    执行pupbld
11.    由初始化参数文件创建spfile文件
12.    执行scott脚本创建scott模式
13.    用命令测试数据库创建是否完成
14.    配置OEM,使得能够通过浏览器管理和控制数据库
Oracle的安装路径:C  创建的数据库名称:book  
book数据库的SYS用户初始密码:bookstore
需要配置EM资料库之后,才可以通过EM访问数据库(才可以出现DBConsole服务)。
1、打开命令行工具,创建必要的相关目录
 
C:\>mkdir C:\oracle\product\10.2.0\admin\book
C:\>mkdir C:\oracle\product\10.2.0\admin\book\adump
C:\>mkdir C:\oracle\product\10.2.0\admin\book\bdump
 
C:\>mkdir C:\oracle\product\10.2.0\admin\book\udump
 
C:\>mkdir C:\oracle\product\10.2.0\admin\book\cdump
 
C:\>mkdir C:\oracle\product\10.2.0\admin\book\pfile
 
C:\>mkdir C:\oracle\product\10.2.0\admin\book\create
 
C:\>mkdir C:\oracle\product\10.2.0\oradata\book
 
上面创建目录的过程也可以在Windows的图形界面中去创建。其中C:\oracle\product\10.2.0\admin\book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两上子目录是bdumpudump目录,bdump目录存放的是数据库运行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。Udump目录存放和特定会话相关的跟踪信息。C:\oracle\product\10.2.0\oradata\book目录存放各种数据库文件,包括控制文件、数据文件、重做日志文件。
 
2、创建初始化参数文件
 
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。
 
创建初始化参数文件可以通过拷贝现在的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在安装Oracle的时候,系统已经安装了一个名为orcl的启动数据库,于是可以从它那里得到一份初始化参数文件。找到C:\oracle\product\10.2.0\admin\orcl\pfile\init.ora文件,拷贝一份,粘贴到C:\oracle\product\10.2.0\db_1\database目录下,将其改名为:initbook.ora。并将其中的内容做如下更改:
dispatchers="(PROTOCOL=TCP) (SERVICE=bookXDB)"
 
audit_file_dest=C:\oracle\product\10.2.0/admin/book/adump
 
db_domain=""
 
db_name=book
 
control_files=("C:\oracle\product\10.21.0\oradata\book\control01.ctl", "C:\oracle\product\10.2.0\oradata\book\control02.ctl", "C:\oracle\product\10.2.0\oradata\book\control03.ctl")
undo_management=AUTO
 
undo_tablespace=UNDOTBS1 ――注意此处的“UNDOTBS1要和建库脚步本中对应
 
background_dump_dest=C:\oracle\product\10.2.0\admin\book\bdump
 
core_dump_dest=C:\oracle\product\10.2.0\admin\book\cdump
 
user_dump_dest=C:\oracle\product\10.1.0\admin\book\udump
 
3、打开命令行,设置环境变量oracle_sid
 
C:\>set oracle_sid=book
 
设置环境变量的目地是在默认的情况下,指定命令行中所操作的数据库实例是book
 
4、创建实例(即后台控制服务)
 
C:\>oradim –new –sid book
 
oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。
5、创建口令文件
 
C:\>orapwd file=C:\oracle\product\10.2.0\db_1\database\pwdbook.ora password=bookstore entries=2
 
orapwd是创建口令文件的工具程序各称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数。
 
请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。
 
口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的口令单独存放在口令文件中,这样数据库未打开时也能进行口令验证。
 
6、启动数据库到nomount(实例)状态
 
C:\>sqlplus /nolog
 
SQL*Plus:Release 10.1.0.2.0 - Production on 星期三 6 29 23:09:35 2005
 
Copyright 1982,2004,Oracle. All rights reserved.
 
SQL>connect sys/bookstore as sysdba ---这里是用sys连接数据库
 
已连接到空闲例程
 
SQL>startup nomount
 
ORACLE 例程已经启动。
 
Total System Global Area 319888364bytes
 
Fixed Size 453612bytes
 
Variable Size 209715200bytes
 
Database Buffers 109051904bytes
 
Redo Buffers 667648bytes
 
SQL>
 
7、执行建库脚本
 
执行建库脚本,首先要有建库的脚本。编辑好以下的内容后,将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到C盘根本录下且文件名称为book.sql
 
Create database book
controlfile reuse
datafile  'c:\oracle\product\10.2.0\oradata\book\system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited extent management local
sysaux datafile  'c:\oracle\product\10.2.0\oradata\book\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile  'c:\oracle\product\10.2.0\oradata\book\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1"
datafile  'c:\oracle\product\10.2.0\oradata\book\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile group 1  ('c:\oracle\product\10.2.0\oradata\book\redo01.log')  size 10240K,
      group 2  ('c:\oracle\product\10.2.0\oradata\book\redo02.log')  size 10240K,
      group 3  ('c:\oracle\product\10.2.0\oradata\book\redo03.log')  size 10240K
character set zhs16gbk;
 
接着就执行刚建的建库脚本:
 
SQL>start C:\book.sql
 
8、执行catalog脚本创建数据字典
SQL>start C:\oracle\product\10.2.0\db_1\rdbms\admin\catalog.sql
cat*.sql 脚本
该类脚本主要用于创建数据字典视图。其中,脚本catalog.sql catproc.sql 是创建数据库后必须要运行的两个脚本。
脚本
脚本说明
catalog.sql
创建系统常用的数据字典视图和同义词
catproc.sql
运行服务器端所需要的PL/SQL脚本
(1) catalog.sql
该脚本创建相对于系统基表的视图和系统动态性能视图以及他们的同义词。该脚本又同时运行创建其他对象的脚本,主要有:
基本PL/SQL环境,包括PL/SQL的声明:
- 数据类型
- 预定义例外
- 内建的过程和函数
- SQL操作等
审计
导入/导出
SQL*Loader
安装选项
2catproc.sql
该脚本主要用于建立PL/SQL功能的使用环境。此外,还创建几个PL/SQL包用于扩展RDBMS功能。该脚本同时还为下面的一些RDBMS功能创建另外的一些包和视图:
警告(Alerts
管道(Pipes
日志分析(LogMiner
大对象(Large objects
对象(Objects
高级队列(Advanced queuing
复制选项( Replication option
其他的一些内建包和选项(Other built-ins and options
 
9、执行catproc创建package  建表空间,回退段,数据文件等信息
 
SQL>start C:\oracle\product\10.2.0\db_1\rdbms\admin\catproc.sql
 
10、执行pupbld 作用  PUPBLD.SQL没有执行,它的作用是为SQL*PLUS服务。当在SQL*PLUS中以普通用户身份连接和使用数据库时,工具本身需要使用PRODUCT PROFILE的表和视图,我们需要登录system用户执行该SQL
 
在执行pupbld之前要把当前用户(sys)转换成system,以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。你可以在数据库建好以后再来重新设置此账户的口令。
SQL>connect system/manager
 
SQL>start C:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql
用以下语句将用户切换到SYS
Connect sys/bookstore as sysdba
11、由初始化参数文件创建spfile文件
SQL>create spfile from pfile;
 
12、执行scott脚本创建scott方案
 
SQL>start C:\oracle\product\10.2.0\db_1\rdbms\admin\scott.sql
 
13、用以下命令测试数据库创建是否完成:
SQL>select * from scott.emp;
如果能够看到雇员信息正确显示,就说明数据库建立已完成。
 
 
如果希望book数据库的文件结构和orcl一致,可以进行以下几步:
C:\oracle\product\10.2.0\db_1\database\spfilebook.ora文件移动到C:\oracle\product\10.2.0\db_1\dbs目录下。
C:\oracle\product\10.2.0\db_1\database\initorcl.ora文件拷贝一份,粘贴到C:\oracle\product\10.2.0\db_1\database目录下,并将其改名为initbook.ora。打开该文件,把内容更改为:SPFILE='c:\oracle\product\10.2.0\db_1/dbs/spfilebook.ora'
 
14.配置OEM,使得能够通过浏览器管理和控制数据库
重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
sql>alter user dbsnmp identified by bookstore;
CD C:\oracle\product\10.2.0\db_1\bin
Set oracle_sid=book
emca –repos recreate
(这是必须输入的命令)
emca –config  dbcontrol db

emctl status dbconsole