第一种 使用dbca图形建库
第二种使用dbca response file模式 silent模式建库,不需要图形界面
第三种使用脚本建库,就是create database sql语句建库,可以先用dbca创建一套scripts,然后用着套script创建数据库
dbca建库无法选择将system表空间创建成bigfile的模式 而脚本建库就可以
dbca可以在创建完数据库后将连接串添加到tnsname.ora里面,而手工建库需要手工添加
脚本建库可能会遇到的问题
一是如果我们运行过一次手工建库后,这个脚本/u01/app/orabase/admin/cdb1/scripts/postDBCreation.sql会在init.ora里面添加cluster_database=true,这样我们下次创建数据库还会失败,会碰到下面的错误
host echo cluster_database=true >>/u01/app/orabase/admin/cdb1/scripts/init.ora;
init.ora
cluster_database=true
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-12720: operation requires database is in EXCLUSIVE mode
另外一个在手工建库的时候,就是
创建默认表空间的语句不能放在创建system表空间的语句之前
DEFAULT TABLESPACE BIG_TBS1 DATAFILE size 133G autoextend on next 1G maxsize unlimited
DATAFILE SIZE 112G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
手工建库碰到的一个问题是instance无法在remote的节点上启动
这是因为有些目录在remote上没有创建
SQL> host /u01/app/orabase/21c/dbhome1/bin/srvctl start database -d cdb1;
PRCR-1079 : Failed to start resource ora.cdb1.db
CRS-5017: The resource action "ora.cdb1.db start" encountered the following error:
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925
. For details refer to "(:CLSN00107:)" in "/u01/app/gibase/diag/crs/slcm05adm04/crs/trace/crsd_oraagent_oracle.trc".
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/admin/cdb1/adump
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/admin/cdb1/dpdump
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/admin/cdb1/hdump
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/admin/cdb1/pfile
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/admin/cdb1/scripts
[oracle@slcm05adm04 ~]$ mkdir -p /u01/app/orabase/audit
手工建库存在的一个问题,就是一开始设置的ORACLE_HOME为GI_HOME,但是等后面开始建库的时候这个ORACLE_HOME并没有重新设置为ORACLE_HOME,所以可能会碰见下面的错误
SQL> spool /u01/app/orabase/admin/cdb1/scripts/CreateDB.log append
SQL> startup nomount pfile="/u01/app/orabase/admin/cdb1/scripts/init.ora";
ORA-39511: Start of CRS resource for instance '+ASM' failed with error:[223]
CRS-5702: Resource 'ora.asm' is already running on 'slcm05adm01'
CRS-0223: Resource 'ora.asm' has placement error.
clsrapi_start_asm:start_asmdbs status:223
这个错误可以通过修改cdb11.sh文件来实现
在运行创建数据库的语句之前将ORACLE_HOME修改过来
umask ${OLD_UMASK}
export ORACLE_HOME=/u01/app/orabase/21c/dbhome1
PERL5LIB=$ORACLE_HOME/rdbms/admin:$PERL5LIB; export PERL5LIB
另外一个手工建库的问题就是init.ora 里面有compatible参数,这个是过时参数,去掉就行了