文章

前几篇博文完整介绍了如何从搭建VirtualBox环境到安装配置Oracle 19c RAC的过程,传送门如下:

利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part1-安装虚拟机

利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part2-准备系统环境

利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part3-安装Oracle Grid Infrastructure 19c

利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part4-数据库安装和配置

本来整个系列文章算是完结,但是实在对于Oracle 18c后创建数据库的漫长时间难于忍受,因此在创建数据库时个人总是会用静默安装代替图形界面的安装。云时代,软件的安装部署本来应该是越来越简便快捷才对,不明白O记为啥会自己作死,非得要做一个这么漫长的过程,真是会让你等得怀疑人生。刚开始安装的时候老是会怀疑电脑是不是挂掉了。

这一篇文章算是画蛇添足,介绍怎么生成响应文件并静默安装。

DBCA静默安装数据库

有人会说我也知道静默安装方便,但是响应文件的指令不熟悉,不知从何入手去写,网上找到的响应文件资源也不一定适合。那该如何生成适合自己环境的响应文件呢?

这要从上一节利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part4-数据库安装和配置说起。我们可以在图形向导运行dbca,在第14步dbca总结页面时,按“Save Response File…”,把响应文件保存起来,这样就得到了适合当前环境的dbca响应文件了。在这一步,直接按Cancel,取消数据库的创建。

用oracle用户登录系统,运行dbca -silent -createDatabase命令静默安装方式创建数据库。

[oracle@ol7-19-rac1 ~]$ source db_env
[oracle@ol7-19-rac1 ~]$ dbca -silent -createDatabase \
-responseFile /home/oracle/dbca.rsp \
-sysPassword mypassword\
-systemPassword mypassword \
-dbsnmpPassword mypassword \
-pdbAdminPassword mypassword \
-ignorePreReqs
Prepare for db operation
7% complete
Copying database files
27% complete
Creating and starting Oracle instance
28% complete
31% complete
35% complete
37% complete
40% complete
Creating cluster database views
41% complete
53% complete
Completing Database Creation
57% complete
59% complete
60% complete
Creating Pluggable Databases
64% complete
80% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/cdbrac.
Database Information:
Global Database Name:cdbrac
System Identifier(SID) Prefix:cdbrac
Look at the log file “/u01/app/oracle/cfgtoollogs/dbca/cdbrac/cdbrac0.log” for further details.
[oracle@ol7-19-rac1 ~]$

利用静默安装的方式创建数据库,会比图形界面方式快很多。

删除数据库

如果运行dbca静默安装过程中出现数据库名已存在的[DBT-10317]等错误提示,可以用dbca -silent -deleteDatabase命令从系统中清除数据库信息,重新运行dbca -silent -createDatabase命令。

[FATAL] [DBT-10317] Specified GDB Name (cdbrac) already exists.
ACTION: Specify a different GDB Name that does not already exist.
[WARNING] [DBT-10328] Specified GDB Name (cdbrac) may have a potential conflict with an already existing database on the system.
ACTION: Specify a different GDB Name that does not conflict with existing databases on the system.
[WARNING] [DBT-10331] Specified SID Prefix (cdbrac) may have a potential conflict with an already existing database on the system.
CAUSE: The specified SID Prefix without the trailing numeric characters (cdbrac) may have a potential conflict with an already existing database on the system.
ACTION: Specify a different SID Prefix that does not conflict with existing databases on the system.

以下是静默运行删除数据库命令的示例输出。

[oracle@ol7-19-rac1 ~]$ dbca -silent -deleteDatabase -sourceDB cdbrac -sysPassword mypassword -systemPassword mypassword
[WARNING] [DBT-11503] The instance (cdbrac1) is not running on the local node. This may result in partial delete of Oracle database.
CAUSE: A locally running instance is required for complete deletion of Oracle database instance and database files.
ACTION: Specify a locally running database, or execute DBCA on a node where the database instance is running.
[WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed.
Prepare for db operation
32% complete
Connecting to database
39% complete
42% complete
45% complete
48% complete
[WARNING] The data files for database with DB_NAME “cdbrac” could not be determined because the database could not be started. DBCA will proceed with the database deletion.
65% complete
Updating network configuration files
68% complete
Deleting instances and datafiles
77% complete
87% complete
97% complete
100% complete
Database deletion completed.
Look at the log file “/u01/app/oracle/cfgtoollogs/dbca/cdbrac/cdbrac.log” for further details.

上一节我们完成了Oracle Grid Infrastructure 19c集群软件的安装,并且在两个节点成功启动了服务。本节我们开始Oracle数据库19c软件的安装和DB配置。

[heading]解压Oracle Database 19c安装包[/heading]

把之前下载的Oracle数据库19c的压缩包文件LINUX.X64_193000_db_home.zip上传到ol7-19-rac1的home目录下。

使用oracle用户登录到ol7-19-rac1,把安装包解压到$ORACLE_HOME下。

[oracle@ol7-19-rac1 ~]$ source db_env
[oracle@ol7-19-rac1 ~]$ cd $ORACLE_HOME
[oracle@ol7-19-rac1 db_1]$ pwd
/u01/app/oracle/product/19/db_1
[oracle@ol7-19-rac1 db_1]$ unzip ~/LINUX.X64_193000_db_home.zip

[heading]Oracle数据库19c软件安装[/heading]

使用oracle用户登录节点一“ol7-19-rac1”,开始进行数据库软件的安装配置。

[oracle@ol7-19-rac1 ~]$ source db_env
[oracle@ol7-19-rac1 ~]$ cd $ORACLE_HOME
[oracle@ol7-19-rac1 db_1]$ pwd
/u01/app/oracle/product/19/db_1
[oracle@ol7-19-rac1 db_1]$ ./runInstaller

启动数据库安装图形界面。

进入数据库配置向导,选择”Set Up Software Only”,Next

数据库安装选项,选择”Oracle Real Application Clusters database installation”,Next

节点选择,确认两个节点都选上,参照GI安装配置好节点的SSH connectivity,Next

数据库版本选择企业版“Enterprise Edition”,Next

安装位置确认是设置好的目录,Next

操作系统用户组,对应之前创建的用户组,Next

root脚本运行方式,选择手工运行,Next

前提检查结果忽略,Next

总结页面,保存响应文件,点Install正式开始数据库的安装配置。

安装程序在所有节点上复制并配置Oracle数据库软件,最后弹出root脚本执行页面。

按照提示,分别在两个节点执行root.sh脚本,OK完成Oracle数据库软件的配置。

[root@ol7-19-rac1 ~]# /u01/app/oracle/product/19/db_1/root.sh
Performing root user operation.

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/19/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of “dbhome” have not changed. No need to overwrite.
The contents of “oraenv” have not changed. No need to overwrite.
The contents of “coraenv” have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@ol7-19-rac1 ~]#

[heading]创建ASM磁盘组[/heading]

使用asmca应用对之前虚拟的共享磁盘创建ASM磁盘组,以供RAC存储数据库文件。

[oracle@ol7-19-rac1 ~]$ asmca


启动ASM管理图形界面,点击左侧的Disk Groups

点击Create,如下图所示创建两个磁盘组,一个DATA,一个FRA,冗余选择External(None)

确认新创建的磁盘组的状态都是MOUNTED,点Exit退出ASM磁盘管理向导。

[heading]创建Oracle数据库实例[/heading]

现在所有的准备工作都就绪,最后的一步工作等着我们,就是使用DBCA命令创建Oracle数据库实例。

[oracle@ol7-19-rac1 ~]$ source db_env
[oracle@ol7-19-rac1 ~]$ cd $ORACLE_HOME
[oracle@ol7-19-rac1 db_1]$ pwd
/u01/app/oracle/product/19/db_1
[oracle@ol7-19-rac1 db_1]$ dbca

运行dbca,启动数据库创建图形界面

进入创建数据库向导,默认”Create a database”,Next

创建模式,选择”Advanced configuration”进阶配置,Next

部署类型,选择通用或事务处理“General Purpose or Transaction Processing”,Next

节点选择RAC集群所有的节点机器。

数据库ID设置,数据库名和SID设置为cdbracc,同时创建一个PDB实例,名称默认设置为pdb

存储选择ASM,数据库文件位置选择默认选项,Next

快速恢复先不启用,如果需要可以在数据库创建后打开。Next

Data Vault选项暂不启用,Next

配置选项可以选择数据库的字符集、是否安装示例数据库等,本次安装我们选用默认的AL32UTF8字符集,Next

管理选项启用EM,端口默认5500,Next

设置数据库管理员用户密码,为了测试方便,我们所有管理员使用相同密码,Next

创建选项,按照默认,Next

安装前提条件检查,忽略警告信息,Next

DBCA总结页面,保存响应文件,按Finish,开始数据库创建。

注:这一步保存响应文件很重要。从Oracle 18c开始,DBCA创建数据库是一个漫长的过程,个人对此行径深恶痛绝,等待数据库创建完成的过程简直是浪费生命。更推荐于使用静默安装的方式去完成数据库的创建

数据库创建进程开始,可冲杯咖啡打盘游戏,晚上的话建议你回家睡觉明天再来,需要漫长的等待才能完成,估计需要几个小时。

数据库创建成功后,Close关闭向导。(在本次安装其实我没有用这种方式创建数据库,而是使用静默安装的方式,所以最后完成的截图缺失)。

[heading]验证Oracle 19c RAC状态[/heading]

使用crsctl stat res -t 命令查看集群资源的状态,确认“ol7-19-rac1”和”ol7-19-rac2″两个节点的资源在线,数据库实例已经正常Open。

[oracle@ol7-19-rac1 ~]$ crsctl stat res -t
——————————————————————————–
Name Target State Server State details
——————————————————————————–
Local Resources
——————————————————————————–
ora.LISTENER.lsnr
ONLINE ONLINE ol7-19-rac1 STABLE
ONLINE ONLINE ol7-19-rac2 STABLE
ora.chad
ONLINE ONLINE ol7-19-rac1 STABLE
ONLINE ONLINE ol7-19-rac2 STABLE
ora.net1.network
ONLINE ONLINE ol7-19-rac1 STABLE
ONLINE ONLINE ol7-19-rac2 STABLE
ora.ons
ONLINE ONLINE ol7-19-rac1 STABLE
ONLINE ONLINE ol7-19-rac2 STABLE
ora.proxy_advm
OFFLINE OFFLINE ol7-19-rac1 STABLE
OFFLINE OFFLINE ol7-19-rac2 STABLE
——————————————————————————–
Cluster Resources
——————————————————————————–
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 STABLE
2 ONLINE ONLINE ol7-19-rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.CRS.dg(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 STABLE
2 ONLINE ONLINE ol7-19-rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 STABLE
2 ONLINE ONLINE ol7-19-rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 STABLE
2 ONLINE ONLINE ol7-19-rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE ol7-19-rac1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 Started,STABLE
2 ONLINE ONLINE ol7-19-rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE ol7-19-rac1 STABLE
2 ONLINE ONLINE ol7-19-rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cdbrac.db
1 ONLINE ONLINE ol7-19-rac1 Open,HOME=/u01/app/o
racle/product/19/db_
1,STABLE
2 ONLINE ONLINE ol7-19-rac2 Open,HOME=/u01/app/o
racle/product/19/db_
1,STABLE
ora.cvu
1 ONLINE ONLINE ol7-19-rac1 STABLE
ora.ol7-19-rac1.vip
1 ONLINE ONLINE ol7-19-rac1 STABLE
ora.ol7-19-rac2.vip
1 ONLINE ONLINE ol7-19-rac2 STABLE
ora.qosmserver
1 ONLINE ONLINE ol7-19-rac1 STABLE
ora.scan1.vip
1 ONLINE ONLINE ol7-19-rac1 STABLE
——————————————————————————–
[oracle@ol7-19-rac1 ~]$

使用sqlplus / as sysdba登录数据库实例,验证数据库工作正常。

[oracle@ol7-19-rac1 ~]$ db_env
[oracle@ol7-19-rac1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 – Production on Sun Nov 10 16:47:56 2019
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.3.0.0.0

SQL> select inst_id, name, open_mode from gv$database;

INST_ID NAME OPEN_MODE
———- ——— ——————–
1 CDBRAC READ WRITE
2 CDBRAC READ WRITE

SQL> show con_id

CON_ID
——————————
1
SQL> show con_name

CON_NAME
——————————
CDB$ROOT
SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
SQL> alter session set container = pdb;

Session altered.

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
3 PDB READ WRITE NO
SQL> select name from v$datafile;

NAME
——————————————————————————–
+DATA/CDBRAC/96E556785DFD2B87E0536501000ADE9C/DATAFILE/system.274.1023893537
+DATA/CDBRAC/96E556785DFD2B87E0536501000ADE9C/DATAFILE/sysaux.275.1023893539
+DATA/CDBRAC/96E556785DFD2B87E0536501000ADE9C/DATAFILE/undotbs1.273.1023893537
+DATA/CDBRAC/96E556785DFD2B87E0536501000ADE9C/DATAFILE/undo_2.277.1023893681
+DATA/CDBRAC/96E556785DFD2B87E0536501000ADE9C/DATAFILE/users.278.1023893707

SQL>

至此,我们完成了利用VirtualBox在Oracle Linux 7.5上安装配置Oracle数据库19c RAC的所有工作,可以尽情的测试Oracle数据库19c的各种新特性了。