已提前最小化安装CentOS 7.5和Oracle 11gR2裸数据库软件,记录下手工建库过程,方便了解dbca建库原理。
1.环境变量设置
#设置环境变量
cat >> /home/oracle/.bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=std1
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:$PATH
EOF
source /home/oracle/.bash_profile
#设置命令别名
cat >> /home/oracle/.bashrc <<EOF
alias dbn='cd $ORACLE_HOME/network/admin'
alias dbs='cd $ORACLE_HOME/dbs'
alias sql='sqlplus / as sysdba'
EOF
source /home/oracle/.bashrc
#设置sqlplus环境
cat >> $ORACLE_HOME/sqlplus/admin/glogin.sql <<EOF
Define _editor='vi'
Set sqlprompt "_user'@'_connect_identifier> "
set time on
set timing on
set pagesize 40
set linesize 120
EOF
2.创建所需目录
mkdir -p $ORACLE_BASE/admin/std1/adump && mkdir -p $ORACLE_BASE/oradata/std1 && mkdir -p $ORACLE_BASE/flash_recovery_area
3.生成密码文件
dbn
orapwd file=orapwstd1 password=oracle entries=3
4.创建pfile参数文件
cat init.ora | grep -v ^# | grep -v ^$ > initstd1.ora
%s/ORCL/std1/g
%s/orcl/std1/g
%s#<ORACLE_BASE>#$ORACLE_BASE/g
%s#ora_control1#/u01/app/oracle/oradata/std1/ora_control1.ctl#g
%s#ora_control2#/u01/app/oracle/oradata/std1/ora_control2.ctl#g
db_name='std1'
memory_target=1G
processes = 150
audit_file_dest='$ORACLE_BASE/admin/std1/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='$ORACLE_BASE/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='$ORACLE_BASE'
dispatchers='(PROTOCOL=TCP) (SERVICE=std1XDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/u01/app/oracle/oradata/std1/ora_control1.ctl,/u01/app/oracle/oradata/std1/ora_control2.ctl)
compatible ='11.2.0'
5.生成spfile参数文件
mount -o remount,size=4g /dev/shm
sqlplus / as sysdba
startup nomount
create spfile from pfile;
6.执行创建数据库语句
vi crtdb.sql
CREATE DATABASE std1
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/std1/redo01a.log','/u01/app/oracle/oradata/std1/redo01b.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/u01/app/oracle/oradata/std1/redo02a.log','/u01/app/oracle/oradata/std1/redo02b.log') SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/std1/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/std1/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/std1/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/std1/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/std1/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
@crtdb.sql
7.生成数据字典
vi crtdic.sql
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
conn system/oracle
@?/sqlplus/admin/pupbld.sql
exit
@crtdic.sql
8.检查一哈
select * from v$version;