今天来探讨一下怎么手工创建数据库:
 
建数据库的步骤:
第一步:  设置os变量:
$export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$export ORACLE_SID=nina
$export LD_LIBRARY_PATH=$ORACLE_HOME/lib
第二步:保证有创建数据库的权限:
SQL.>conn / as sysdba
Sys的默认密码是change_on_install
System的默认密码是manager
第三步:创建init.ora文件,并保存在$ORACLE_HOME/dbs中(unix版本,在windows版本中是$ORACLE_HOME/database
此处创建init.ora只是为了启动实例,因此无需设置太多的初始化参数,如需设置则在创建数据库之后再去设置即可。一个很好的方法是拷贝相类似的数据库中的init.ora,修改sid等关键参数即可使用。
一旦配置了初始化文件,就做好了创建实例的准备。
第四步:启动实例
为了创建数据库,必须首先启动实例:
Rac1>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10 29 22:00:43 2009
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL>connect sys as sdba
Enter password:
Connected to an idle instance
因为现在还没有控制文件可以使用,所以必须以nomount的方式启动实例
SQL>startup nomount
或者
SQL>startup nomount pfile=’/u01/app/oracle/product/10.2.0/db_1/dbs/initnina.ora’;
这个时候实例就使用initnina.ora里面的参数来启动了实例,并且后台进程也都能起来了。
[oracle@localhost]$ps –ef |grep nina
同时,实例启动的动作都记录在日志文件中
[oracle@localhost]$ more /u01/app/oracle/admin/nina/bdump/alert_nina.log 里面显示了所有后台进程启动,所有初始化参数的配置等等信息
 
至此,我们得到了一个运行的数据库实例。
第五步:创建数据库
一个最简单的数据库包括:
一个system表空间,
一个sysaux表空间,
一对控制文件和redo log文件,
一个默认的临时表空间,
一个撤销表空间。
我们可通过脚本,或语句来创建一个较复杂的数据库:
CREATE DATABASE NINA      --此句提示按照init.ora创建controlfile;如果此前也有
--同名称的controlfile,则可用controlfile reuse
USER SYS IDENTIFIED BY SYS_PASSWORD
USER SYSTEM IDENTIFIED BY SYSTEM_PASSWORD
                              --设定2个最重要的用户的密码
MAXINSTANCES 1             
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
                              --设置日志,实例等最大值
CHARACTER SET US7ASCII    --设置字符集
NATIONAL CHARACTER SET AL16UTF16
                                                   --设置字符集
DATAFILE ‘/U01/APP/ORACLE/ORADATA/NINA/SYSTEM01.DBF’ SIZE 500M
EXTENT  MANAGEMENT LOCAL
SYSAUX DATAFILE ‘/U01/APP/ORACLE/ORADATA/NINA/SYSAUX01.DBF’ SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP01
TEMPFILE ‘/U01/APP/ORACLE/ORADATA/NINA/TEMP01.DBF’ SIZE 200M
UNDO TABLESPACE UNDOTBS_01
DATAFILE ‘/U01/APP/ORACLE/ORADATA/NINA/UNDO01.DBF’ SIZE 200M
DEFAULT TABLESPACE USERS
DATAFILE ‘/U01/APP/ORACLE/ORADATA/NINA/USERS01.DBF’ SIZE 400M
                                                        --以上定义数据文件
LOGFILE
GROUP 1
(‘/U01/APP/ORACLE/ORADATA/NINA/REDO01.LOG’) SIZE 100M,
GROUP 2
(‘/U01/APP/ORACLE/ORADATA/NINA/REDO02.LOG’)SIZE 100M
                                                        --定义日志组
DATABASE CREATED
SQL>
 
创建完后仔细阅读日志文件:
Alert_nina.log
第六步:执行2oracle脚本创建数据字典对象:
SQL>@$ORACLE_HOME/rdbms/admin/catalog.sql
SQL>@$ORACLE_HOME/rdbms/admin/catproc.sql
 
 
至此,一个基本的数据就创建成功,但是这样一个数据库是基本无法应用的;
 
手工创建数据库后还需要一些首尾工作要做:
1、鉴于数据库的安全,应该更改用户密码,将不需要的默认帐号禁用;
2、根据需要创建属于应用系统的表空间;
3、由于手动创建的数据库一些服务是没有起来的,例如emctl ,sqlplusctl等等,我们必须手动的启动他们:
emctl start dbconsole
sqlplusctl start
启动之后,我们就可以通过web来启动oem和sqlplus了;
注意:oem和sqlplus都是有端口限制的,如果想看本系统的端口信息,去查询$oracle_home/install/portlist/portlist.ini文件
4、修改数据库的归档模式,这个大家都应该知道怎么修改及为什么要修改了吧。
5、如果需要,创建spfile
create spfile from pfile 。。。。。。。