Oracle11.2 命令行手工最简创建数据库的过程

时间:2021-07-19 05:20:12

环境:RHEL 5.4 x86 , oracle 11.2 
1.设定环境变量 
在/home/oracle编辑 
# .bash_profile 
# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
. ~/.bashrc 
fi 
# User specific environment and startup programs 
# 11g R2 
export ORACLE_HOME=/app/oracle/product/11.2.0/dbhome_1 
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export NLS_LANG=AMERICAN_AMERICA.UTF8 
export ORACLE_SID=orcl 
umask 022 

2.禁用SELinux 
如果在安装RHEL的时候启用了SELinux,需要 
以root用户setenforce 0 
否则会出现:sqlplus: error while loading shared libraries 

3.以oracle用户登录编辑init.ora 
只要1行 
db_name=orcl 

4.登录sqlplus / as sysdba 
create spfile='spfileorcl.ora' from pfile='/home/oracle/init.ora' 
startup nomount 
create database orcl; 
等候创建数据库成功。 
select sysdate from dual; 
已经可以查出日期。 

5.执行脚本建立系统视图和包 
@?/rdbms/admin/catalog 
@?/rdbms/admin/catproc 
以system用户执行 
@?/sqlplus/admin/pupbld 
此时可以看到v$datafile和v$controlfile 
位于$ORACLE_HOME/dbs,文件名分别是dbs1orcl dbx1orcl dbu1orcl cntrlorcl 
几点疑问: 
1.文档上说至少pfile需要3个参数,其他都有默认值,而我只写了1个,也可以。 
2.创建数据库的表空间只有system sysaux sys_undots,没有临时表空间,数据库运行也不出错 
不知道是否这也是oracle 11.2的新特性? 
3.曾经在一个.sql文件中写了如下的语句,但没有执行成功 
create database orcl 
user sys identified by sys 
user system identified by sys 
extent management local 
default temporary tablespace temp 
undo tablespace undotbs1 
default tablespace users; 
4.文档中没有说需要system用户执行pupbld,我用sys用户执行 
结果在新建用户oo登录时提示error accessing PRODUCT_USER_PROFILE