创建数据库的两种方式:DBCA、手工创建数据库
这里我们介绍下怎么手工创建数据库
1.修改环境变量,export ORACLE_SID=crm
查看当前数据库的sid
echo $ORACLE_SID
orcl
查看数据库进程是否存在
ps -ef | grep pmon
grid 2438 1 0 13:56 ? 00:00:00 asm_pmon_+ASM
oracle 3739 3663 0 15:41 pts/4 00:00:00 grep pmon
修改环境变量
export ORACLE_SID=crm
2.创建口令文件(注意这里的口令文件名是有要求的,不能随便起)
orapwd file=$ORACLE_HOME/dbs/orapwcrm password=oracle
3.创建参数文件(只能创建一个PFILE)
到grid用户下查看磁盘组信息
su - grid
sqlplus / as sysdba
select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
FLASH MOUNTED
里面需要填写兼容版本,保存审计信息和诊断文件的目录,数据库名,分配内存大小,数据库文件存储位置,闪回区的位置及大小,undo表空间
vi $ORACLE_HOME/dbs/initcrm.ora
加入以下信息
compatible=11.2.0.1.0
audit_file_dest='/u01/app/oracle/admin/crm/adump'
diagnostic_dest='/u01/app/oracle'
db_name='crm'
memory_target=800m
db_create_file_dest='+data'
db_recovery_file_dest='+flash'
db_recovery_file_dest_size=4g
undo_tablespace=undo01
创建参数文件中指定的目录
mkdir -p /u01/app/oracle/admin/crm/adump
之后我们就能启动数据库实例到NOMOUNT状态了
sqlplus / as sysdba
4.创建SPFILE
create spfile from pfile;
5.启动数据库到NOMOUNT状态
startup nomount
6.创建数据库
create database crm
datafile '+data/' size 200m autoextend on next 1m extent management local
sysaux datafile '+data/' size 100m autoextend on next 1m
undo tablespace undo01 datafile '+data/' size 50m
default temporary tablespace temp tempfile '+data/' size 50m
character set zhs16gbk
national character set al16utf16
logfile
group 1 '+data/' size 50m,
group 2 '+data/' size 50m;
7.创建数据字典
@?/rdbms/admin/catalog
8.创建PL/SQL运行环境
@?/rdbms/admin/catproc
到这里数据库就可以使用了,如果想做实验可以创建相关用户和表
这里创建SCOTT用户
@?/rdbms/admin/utlsampl
sqlplus scott/tiger
这里会遇到一个报错
Error accessing PRODUCT_USER_PROFILE
Warning: Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
conn system/manager
@?/sqlplus/admin/pupbld
conn scott/tiger
select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
至此,手工建库就完成了。