linux上手工创建oracle 10g数据库

虽然通过dbca也可以创建数据库,但是在某些环境下却是不能使用图形环境,如数据库服务器在机房,并且开放的端口有限制,或者需要批量创建数据库。那么,这个时候为了方便就不得不使用手工创建数据库了。以下是创建数据库的步骤:

操作系统:centos 5 (安装的时候,修改/etc/redhat-real* 输入redhat enterprise 4)
数据库:oracle 10g

环境:
已经使用dbca创建了数据库orcl。
oracle用户所属组为:oracle,dba
ORACLE_BASE=/home/oracle/oracle/
ORACLE_HOME=$ORACLE_BASE/db1
ORACLE_SID=test
ORACLE_OWNER=oracle
NLS_LANG="Simplified Chinese_china"
DB_HOME=/home/oracle/oradata

步骤:

1、创建pfile文件
使用sqlplus sys/orcl@orcl as sysdba 登陆orcl数据库环境,使用命令
create pfile from spfile; 创建pfile文件
再到系统下到$ORACLE_HOME/dbs/目录中使用命令
cp initorcl.ora inittest.ora
或者直接在系统下到$ORACLE_HOME/dbs/目录中使用命令
strings spfileorcl.ora >inittest.ora
完成后,修改inittest.ora文件,将orcl替换为test

2、创建密码文件
cd $ORACLE_HOME/dbs/
orapwd file=orapwtest password=test

3、创建目录
mkdir -p $ORACLE_BASE/admin/test
cd $ORACLE_BASE/admin/test
mkdir adump bdump cdump dpdump pfile
mkdir -p $DB_HOME/test

4、修改监听程序
vi $ORACLE_HOME/network/admin/tnsnames.ora
将其中ORCL部分复制粘贴,并且修改其名称为test

5、开始创建数据库
export ORACLE_SID=test
sqlplus /nolog
conn / as sysdba
spool $ORACLE_BASE/admin/$ORACLE_SID/create/createdb
startup nomount
create database test
LOGFILE
GROUP 1 ('$DB_HOME/test/redo01.log',
'$ORACLE_BASE/oradata/test/redo01_1.log') size 100m reuse,
GROUP 2 ('$DB_HOME/test/redo02.log',
'$DB_HOME/test/redo02_1.log') size 100m reuse,
GROUP 3 ('$DB_HOME/oradata/test/redo03.log',
'$DB_HOME/test/redo03_1.log') size 100m reuse
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 500
MAXINSTANCES 5
ARCHIVELOG
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF8
DATAFILE '$DB_HOME/test/system01.dbf' SIZE 1000M EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '$DB_HOME/test/sysaux01.dbf' SIZE 1000M
UNDO TABLESPACE UNDOTBS1 DATAFILE '$DB_HOME/test/undo.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
'$DB_HOME/test/temp.dbf' SIZE 500M
;

等待一定时间,如果没有问题会显示数据库创建成功注意UNDO TABLESPACE UNDOTBS1中的名字,需要和inittest.ora中的名字一样。

@$ORACLE_HOME/rdbms/admin/catalog.sql;
@$ORACLE_HOME/rdbms/admin/catproc.sql;
@$ORACLE_HOME/rdbms/admin/catdbsyn.sql;
alter user system identified by test;
grant sysdba to system;
shutdown immediate;
startup;
spool off
exit

使用system用户登陆
sqlplus system/test
@$ORACLE_HOME/sqlplus/admin/pupbld.sql
exit

数据库创建完成。

如果遇到问题,可以查看日志
$ORACLE_BASE/admin/$ORACLE_SID/create/createdb