共计 2760 个字符,预计需要花费 7 分钟才能阅读完成。
已提前最小化安装 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;
: