在linux平台上手动创建数据库(Oracle 10g),安装Oracle软件后,用手动创建数据库可以锻炼自己能力并能够了解数据库创建的全过程,步骤如下:
1、创建Oracle的SID,如果在linux上以dba组中的用户登陆查看主目录中的.bash_profile文件已经设置了此变量就可以不用设置了,如果一个服务器上运行了多个Oracle实例,则还需要设置export ORACLE_SID=myoral
也可以统一在一个文件中设置,然后执行这个文件,让所有关于Oracle的环境变量生效
创建一个目录param_myorcl.env
ORACLE_HOME=$ORACLE_HOME (如果以前创建过Oracle数据库就可以直接利用以前设置的,否则要设置到Oracle安装的目录,可以设置到bin的上层目录)
OACLE_SID=myorcl
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/bin:$LD_LIBRARY_PATH
TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH TNS_ADMIN
通过执行“ . ./param_myorcl.env”可以使设置生效,但是这种方式是暂时的,否则可以直接更改.bash_profile使之永久生效
2、创建pfile,然后根据pfile创建spfile,利用spfile生成数据库实例(这是Oracle推荐的,虽然也可以利用pfile创建数据库实例)
方法一:如果服务器中已经存在一个数据库,可以通过create pfile from spfile创建pfile文件,再到$ORACLE_HOME/dbs/目录中cp initorcl.ora initmyorcl.ora,这样复制一份后再修改initmyorcl
方法二:strings spfileorcl.ora >initmyorcl.ora(注意要修改,linux上替换命令 : %s/orcl/myorcl/g)
方法三:网上找一份修改,呵呵呵
创建pfile后,检查环境变量是否生效 “env | grep ORA”
如果生效就可以启动Oracle实例了,启动后可以根据pfile创建spfile
create spfile from pfile;
3、写创建数据库脚本myorcl.sql
spool
create database mydb
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
NATIONAL CHARACTER SET AL16UTF16
DATAFILE
'/oracle/oradata/mydb/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile
'/oracle/oradata/mydb/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile
'/oracle/oradata/mydb/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile
'/oracle/oradata/mydb/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1 ('/oracle/oradata/mydb/redo1.dbf') size 10m,
GROUP 2 ('/oracle/oradata/mydb/redo2.dbf') size 10m,
GROUP 3 ('/oracle/oradata/mydb/redo3.dbf') size 10m
;
spool off
4、创建数据库
@$ORACLE_HOME/dbs/myorcl.sql
5、创建数据库数据字典
spool log1.log
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql