利用VirtualBox在Oracle Linux 7安装Oracle 19c RAC Part5-静默创建数据库

前几篇博文完整介绍了如何从搭建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命令静默安装方式创建数据库。

[[email protected] ~]$ source db_env
[[email protected] ~]$ 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.
[[email protected] ~]$

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

删除数据库

如果运行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.

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

[[email protected] ~]$ 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.

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

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

解压Oracle Database 19c安装包

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

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

[[email protected] ~]$ source db_env
[[email protected] ~]$ cd $ORACLE_HOME
[[email protected] db_1]$ pwd
/u01/app/oracle/product/19/db_1
[[email protected] db_1]$ unzip ~/LINUX.X64_193000_db_home.zip

Oracle数据库19c软件安装

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

[[email protected] ~]$ source db_env
[[email protected] ~]$ cd $ORACLE_HOME
[[email protected] db_1]$ pwd
/u01/app/oracle/product/19/db_1
[[email protected] 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数据库软件的配置。

[[email protected] ~]# /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.
[[email protected] ~]#

创建ASM磁盘组

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

[[email protected] ~]$ asmca


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

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

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

创建Oracle数据库实例

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

[[email protected] ~]$ source db_env
[[email protected] ~]$ cd $ORACLE_HOME
[[email protected] db_1]$ pwd
/u01/app/oracle/product/19/db_1
[[email protected] 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关闭向导。(在本次安装其实我没有用这种方式创建数据库,而是使用静默安装的方式,所以最后完成的截图缺失)。

验证Oracle 19c RAC状态

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

[[email protected] ~]$ 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
——————————————————————————–
[[email protected] ~]$

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

[[email protected] ~]$ db_env
[[email protected] ~]$ 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的各种新特性了。

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

上一节我们完成了Oracle 19c RAC安装环境的准备,这一节正式开始Oracle Grid Infrastructure 19c的安装。

确认虚拟机ol7-19-rac1和ol7-19-rac2处于启动状态。

解压Oracle Grid Infrastructure 19c安装包

把之前下载的Oracle Grid Infrastructure 19c压缩包文件LINUX.X64_193000_grid_home.zip上传到ol7-19-rac1的home目录下。

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

[[email protected] ~]$ source grid_env
[[email protected] ~]$ cd $ORACLE_HOME
[[email protected] grid]$ pwd
/u01/app/19/grid
[[email protected] grid]$ unzip ~/LINUX.X64_193000_grid_home.zip

安装Oracle Grid Infrastructure 19c

安装包解压完成后,切换到root用户,安装/u01/app/19/grid/cv目录下cvuqdisk-1.0.10-1.rpm包。

[[email protected] ~]# cd /u01/app/19/grid/cv
[[email protected] cv]# ls
admin cvdata cvutl remenv rpm
[[email protected] cv]# cd rpm
[[email protected] rpm]# rpm -Uvh cvuqdisk-1.0.10-1.rpm
Preparing… ################################# [100%]
Using default group oinstall to install package
Updating / installing…
1:cvuqdisk-1.0.10-1 ################################# [100%]
[[email protected] rpm]#

切换回oracle用户,运行gridSetup.sh进行Oracle Grid Infrastructure 19c安装。

[[email protected] ~]$ cd $ORACLE_HOME
[[email protected] grid]$ ./gridSetup.sh

Grid Setup

进入Grid Infrastructure 19c的图形安装界面。

Grid 1

选择”Configure Oracle Grid Infrastructure for a New Cluster”,点Next

接受默认的”Configure an Oracle Standalone Cluster”,Next

SCAN设置,把集群名设置为我们配置文件的名字”ol7-19″,端口选择默认的1521,点击Next

集群节点配置,点击Add,增加第二个节点ol7-19-rac2信息,OK

增加节点后,点击”SSH connectivity…“,设置节点间SSH互连。

输入操作系统用户oracle的密码,点击Setup进行设置。

 

节点间SSH连通测试通过后点OK,按Next

网络接口设置,把enp0s8的用途改为”ASM & Private”,Next

存储选择”Use Oracle Flex ASM for storage“,Next

Configure Grid Infrastructure Management Repository选择默认的No, Next

创建名为CRS的ASM磁盘组,选择/dev/asm-orc1,/dev/asm-ocr2和/dev/asm-ocr3三个磁盘,Next

输入ASM密码,Next

Failure Isolation,选择默认的不使用IPMI,Next

Management Options,不注册EM,Next

选择管理员对应的操作系统用户组,Next

安装位置,选择默认的Oracle Base,Next

安装位置,默认位置,Next

Root脚本运行方式,选择手工安装,Next

系统前提条件检查,有swap和SCAN的警告及DNS服务的失败信息,不影响安装,所以选择忽略,Next

安装信息总结,确认无误后保存响应文件,点Install进行GI安装。

正式安装GI,耐心等待文件复制及两个节点设置完成。

至执行root脚本提示出现时,分别按提示在两个节点执行orainstRoot.sh和root.sh脚本。

以下是脚本在节点一“ol7-19-rac1”的执行输出。

[[email protected] rpm]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[[email protected] rpm]# /u01/app/19/grid/root.sh
Performing root user operation.The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/19/gridEnter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …Creating /etc/oratab file…
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.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/oracle/crsdata/ol7-19-rac1/crsconfig/rootcrs_ol7-19-rac1_2019-11-08_02-46-09PM.log
2019/11/08 14:49:52 CLSRSC-594: Executing installation step 1 of 19: ‘SetupTFA’.
2019/11/08 14:49:53 CLSRSC-594: Executing installation step 2 of 19: ‘ValidateEnv’.
2019/11/08 14:49:53 CLSRSC-363: User ignored prerequisites during installation
2019/11/08 14:49:53 CLSRSC-594: Executing installation step 3 of 19: ‘CheckFirstNode’.
2019/11/08 14:49:56 CLSRSC-594: Executing installation step 4 of 19: ‘GenSiteGUIDs’.
2019/11/08 14:49:57 CLSRSC-594: Executing installation step 5 of 19: ‘SetupOSD’.
2019/11/08 14:49:57 CLSRSC-594: Executing installation step 6 of 19: ‘CheckCRSConfig’.
2019/11/08 14:49:57 CLSRSC-594: Executing installation step 7 of 19: ‘SetupLocalGPNP’.
2019/11/08 14:50:22 CLSRSC-594: Executing installation step 8 of 19: ‘CreateRootCert’.
2019/11/08 14:50:28 CLSRSC-594: Executing installation step 9 of 19: ‘ConfigOLR’.
2019/11/08 14:50:32 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2019/11/08 14:51:08 CLSRSC-594: Executing installation step 10 of 19: ‘ConfigCHMOS’.
2019/11/08 14:51:08 CLSRSC-594: Executing installation step 11 of 19: ‘CreateOHASD’.
2019/11/08 14:51:16 CLSRSC-594: Executing installation step 12 of 19: ‘ConfigOHASD’.
2019/11/08 14:51:17 CLSRSC-330: Adding Clusterware entries to file ‘oracle-ohasd.service’
2019/11/08 14:53:53 CLSRSC-594: Executing installation step 13 of 19: ‘InstallAFD’.
2019/11/08 14:54:01 CLSRSC-594: Executing installation step 14 of 19: ‘InstallACFS’.
2019/11/08 14:56:00 CLSRSC-594: Executing installation step 15 of 19: ‘InstallKA’.
2019/11/08 14:56:08 CLSRSC-594: Executing installation step 16 of 19: ‘InitConfig’.ASM has been created and started successfully.[DBT-30001] Disk groups created successfully. Check /u01/app/oracle/cfgtoollogs/asmca/asmca-191108PM025722.log for details.

2019/11/08 15:20:15 CLSRSC-482: Running command: ‘/u01/app/19/grid/bin/ocrconfig -upgrade oracle oinstall’
CRS-4256: Updating the profile
Successful addition of voting disk b7bdb62a9f7c4f6ebf500c3ead350ca2.
Successful addition of voting disk 1142140776854f78bf2267c0f315a1ed.
Successful addition of voting disk 0816bcfc38c54fbdbf34954f90898764.
Successfully replaced voting disk group with +CRS.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
— —– —————– ——— ———
1. ONLINE b7bdb62a9f7c4f6ebf500c3ead350ca2 (/dev/asm-ocr1) [CRS]
2. ONLINE 1142140776854f78bf2267c0f315a1ed (/dev/asm-ocr2) [CRS]
3. ONLINE 0816bcfc38c54fbdbf34954f90898764 (/dev/asm-ocr3) [CRS]
Located 3 voting disk(s).
2019/11/08 15:25:32 CLSRSC-594: Executing installation step 17 of 19: ‘StartCluster’.
2019/11/08 15:29:34 CLSRSC-343: Successfully started Oracle Clusterware stack
2019/11/08 15:29:35 CLSRSC-594: Executing installation step 18 of 19: ‘ConfigNode’.
2019/11/08 15:37:07 CLSRSC-594: Executing installation step 19 of 19: ‘PostConfig’.
2019/11/08 15:38:58 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster … succeeded
[[email protected] rpm]#

在第一个节点执行完root脚本后,继续在第二个节点执行,全部成功完成后点OK,继续GI配置。

最后成功完成GI安装,Close退出安装向导。

验证Oracle Grid Infrastructure集群状态

安装完Oracle Grid Infrastructure集群后,可以使用crsctl stat res -t命令查看集群资源状态信息。

[[email protected] ~]$ 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                   OFFLINE  OFFLINE                                STABLE
ora.CRS.dg(ora.asmgroup)
1                    ONLINE  ONLINE        ol7-19-rac1       STABLE
2                    OFFLINE  OFFLINE                                STABLE
3                    OFFLINE  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  OFFLINE                                  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.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
——————————————————————————–
[[email protected] ~]$

确认两个节点的资源都成功启动,可以进行Oracle数据库19c软件在集群上的安装。

 

 

 

 

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

上一节中我们完成了Oracle Linux虚拟机的安装,本节继续进行系统的配置,完成Oracle数据库19c RAC的安装准备工作。

Oracle安装前提

以root用户登录系统虚机ol7-19-rac1,运行以下命令安装Oracle数据库19c依赖包

$ yum install -y oracle-database-preinstall-19c

安装完成运行以下命令更新内核参数

$ /sbin/sysctl -p

创建Oracle安装所需的组与用户

$ groupadd -g 54321 oinstall $ groupadd -g 54322 dba
$ groupadd -g 54323 oper
$ groupadd -g 54324 backupdba
$ groupadd -g 54325 dgdba
$ groupadd -g 54326 kmdba
$ groupadd -g 54327 asmdba
$ groupadd -g 54328 asmoper
$ groupadd -g 54329 asmadmin
$ groupadd -g 54330 racdba
$
$ useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,admadmin,racdba oracle

设置oracle用户密码

$ passwd oracle

编辑/etc/hosts文件,增加以下内容

# Public
10.0.1.101 ol7-19-rac1
10.0.1.102 ol7-19-rac2
# Private
192.168.1.101 ol7-19-rac1-priv
192.168.1.102 ol7-19-rac2-priv
# Virtual
10.0.1.103 ol7-19-rac1-vip
10.0.1.104 ol7-19-rac2-vip
# SCAN
10.0.1.105 ol7-19-scan

确认IP地址对应的网卡均设置为开机启动。 关闭SELinux,编辑/etc/selinux/config文件,设置

SELINUX=disabled

关闭防火墙,运行以下命令

$ systemctl stop firewalld
$ systemctl disable firewalld

关闭chrony服务

$ systemctl stop chronyd
$ systemctl disable chronyd

创建Oracle 19c RAC所需的目录并修改权限

$ mkdir -p /u01/app/19/grid
$ mkdir -p /u01/app/oracle/product/19/db_1
$ chown -R oracle:oinstall /u01
$ chmod -R 775 /u01/

用oracle用户登录系统,在”/home/oracle/.bash_profile”最后一行增加以下内容

# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=ol7-19-rac1
export ORACLE_UNQNAME=CDBRAC
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19/grid
export DB_HOME=$ORACLE_BASE/product/19/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=cdbrac1
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$BASE_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

alias grid_env=’. /home/oracle/grid_env’
alias db_env=’. /home/oracle/db_env’

创建名为”/home/oracle/grid_env“的文件,设置集群用户环境,在文件中加入以下内容

export ORACLE_SID=+ASM1
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

创建名为”/home/oracle/db_env”的文件,设置数据库用户环境,在文件中加入以下内容

export ORACLE_SID=cdbrac1
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

关闭系统

shutdown -r now

创建共享存储

从Linux主机Ubuntu系统硬盘中划分空间,虚拟出出两台主机可以同时看到的共享LUN,3个1G的盘用作OCR和Voting Disk,其余分了3个12G的盘规划做用做数据盘和FRA。

$ mkdir -p /data1/u04/ol7-19-rac
$ cd /data1/u04/ol7-19-rac
$
$ # Create the disks and associate them with VirtualBox as virtual media.
$ VBoxManage createhd --filename asm-ocr1.vdi --size 1024 --format VDI --variant Fixed
$ VBoxManage createhd --filename asm-ocr2.vdi --size 1024 --format VDI --variant Fixed
$ VBoxManage createhd --filename asm-ocr3.vdi --size 1024 --format VDI --variant Fixed
$ VBoxManage createhd --filename asm-data1.vdi --size 12288 --format VDI --variant Fixed
$ VBoxManage createhd --filename asm-data2.vdi --size 12288 --format VDI --variant Fixed
$ VBoxManage createhd --filename asm-data3.vdi --size 12288 --format VDI --variant Fixed
$
$ # Connect them to the VM.
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm-ocr1.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm-ocr2.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 3 --device 0 --type hdd --medium asm-ocr3.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 4 --device 0 --type hdd --medium asm-data1.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 5 --device 0 --type hdd --medium asm-data2.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac1 --storagectl "SATA" --port 6 --device 0 --type hdd --medium asm-data3.vdi --mtype shareable
$
$ # Make shareable.
$ VBoxManage modifyhd asm-ocr1.vdi --type shareable
$ VBoxManage modifyhd asm-ocr2.vdi --type shareable
$ VBoxManage modifyhd asm-ocr3.vdi --type shareable
$ VBoxManage modifyhd asm-data1.vdi --type shareable
$ VBoxManage modifyhd asm-data2.vdi --type shareable
$ VBoxManage modifyhd asm-data3.vdi --type shareable

启动虚机”ol7-19-rac1″,用root用户登录系统,确认刚刚创建的共享磁盘已成功绑定。

[[email protected] ~]# cd /dev
[[email protected] dev]# ls sd*
sda sda1 sda2 sdb sdc sdd sde sdf sdg
[[email protected] dev]#

使用fdisk命令对新建的磁盘从sdb到sdg进行分区。

[[email protected] ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x62be91cf.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1):
First cylinder (1-652, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652):
Using default value 652
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]#

所有磁盘分区完成后,再运行ls命令的结果应该如下所示。

[[email protected] dev]# ls sd*
sda sda2 sdb1 sdc1 sdd1 sde1 sdf1 sdg1
sda1 sdb sdc sdd sde sdf sdg
[[email protected] dev]#

配置UDEV规则,创建或编辑文件”/etc/scsi_id.config”,增加以下内容。

options=-g

查看磁盘的SCSI ID

[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sdb
1ATA_VBOX_HARDDISK_VBb5781d10-5cdd8626
[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sdc
1ATA_VBOX_HARDDISK_VBdaa6933f-45a7bbd7
[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sdd
1ATA_VBOX_HARDDISK_VBff9e560e-3053c1ed
[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sde
1ATA_VBOX_HARDDISK_VB0ce057db-89d80b0f
[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sdf
1ATA_VBOX_HARDDISK_VB38c72c62-65c8b2ce
[[email protected] dev]# /usr/lib/udev/scsi_id -g -u -d /dev/sdg
1ATA_VBOX_HARDDISK_VB15992f0b-6cff3aca
[[email protected] dev]#

使用上面的磁盘ID,修改”/etc/udev/rules.d/99-oracle-asmdevices.rules” 文件内容。

KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBb5781d10-5cdd8626", SYMLINK+="asm-ocr1", OWNER="oracle", GROUP="asm admin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBdaa6933f-45a7bbd7", SYMLINK+="asm-ocr2", OWNER="oracle", GROUP="asm admin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBff9e560e-3053c1ed", SYMLINK+="asm-ocr3", OWNER="oracle", GROUP="asm admin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB0ce057db-89d80b0f", SYMLINK+="asm-data1", OWNER="oracle", GROUP="as madmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB38c72c62-65c8b2ce", SYMLINK+="asm-data2", OWNER="oracle", GROUP="as madmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB15992f0b-6cff3aca", SYMLINK+="asm-data3", OWNER="oracle", GROUP="as madmin", MODE="0660"

加载更新后的磁盘分区表

[[email protected] dev]# /sbin/partprobe /dev/sdb1
[[email protected] dev]# /sbin/partprobe /dev/sdc1
[[email protected] dev]#/sbin/partprobe /dev/sdd1
[[email protected] dev]# /sbin/partprobe /dev/sde1
[[email protected] dev]# /sbin/partprobe /dev/sdf1
[[email protected] dev]# /sbin/partprobe /dev/sdg1

测试并验证规则正常工作

[[email protected] dev]# /sbin/udevadm test /block/sdb/sdb1

重新加载UDEV规则

[[email protected] dev]# /sbin/udevadm control --reload-rules

现在新增的磁盘规则应该生效,查看确认可列出所有磁盘。如果没有看到,重新修改配置文件。

[[email protected] dev]# ls -al /dev/asm*
lrwxrwxrwx 1 root root 4 Nov 9 20:50 /dev/asm-data1 -> sde1
lrwxrwxrwx 1 root root 4 Nov 9 20:55 /dev/asm-data2 -> sdf1
lrwxrwxrwx 1 root root 4 Nov 9 20:55 /dev/asm-data3 -> sdg1
lrwxrwxrwx 1 root root 4 Nov 9 20:55 /dev/asm-ocr1 -> sdb1
lrwxrwxrwx 1 root root 4 Nov 9 20:26 /dev/asm-ocr2 -> sdc1
lrwxrwxrwx 1 root root 4 Nov 9 20:25 /dev/asm-ocr3 -> sdd1


/dev/asm:
[[email protected] dev]#

成功为配置好RAC集群所需的共享磁盘,关闭虚机”ol7-19-rac1″。

[[email protected] dev]# shutdown -h now

创建第二台虚机

打开VirtualBox管理界面,右键点击左侧的”ol7-19-rac1″,在弹出菜单选择”Clone”。把新机器命名为”ol7-19-rac2″,Next完成第二台虚机的创建。 Clone VM 虚机创建后,在Linux主机运行以下命令,绑定共享磁盘到新建的虚机。

$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm-ocr1.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm-ocr2.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 3 --device 0 --type hdd --medium asm-ocr3.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 4 --device 0 --type hdd --medium asm-data1.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 5 --device 0 --type hdd --medium asm-data2.vdi --mtype shareable
$ VBoxManage storageattach ol7-19-rac2 --storagectl "SATA" --port 6 --device 0 --type hdd --medium asm-data3.vdi --mtype shareable

启动”ol7-19-rac2″,以root用户登录,更新主机名及IP地址信息。
  • 主机名:ol7-19-rac2
  • enp0s3: IP=10.0.1.102 Netmask=255.255.255.0
  • enp0s8: IP=192.168.1.102 Netmask=255.255.255.0
修改”/home/oracle/.bash_profile”,”/home/oracle/grid_env”和”/home/oracle/db_env”文件,对应更新ORACLE_HOSTNAME和ORACLE_SID值。 重启虚拟机”ol7-19-rac2″,用root用户登录系统,重新加载磁盘分区和UDEV规则,确认可以查看到所有asm有磁盘。 至此,我们完成了Oracle 19c RAC安装的准备工作。关闭虚机,备份虚拟机后准备进行Grid Infrastructure的安装。

$ zip PreGrid.zip *.vdi

 

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

起因

Oracle于9月份举办了针对合作伙伴的Oracle数据库19c新功能培训,并号召ISV进行国内第一轮的应用系统数据库认证。请郭老板着手准备认证所需的资料,没想到郭同学一再跳票,问了原因才知道是没有RAC环境导致,自告奋勇在公司服务器上帮他搭建环境。想着装RAC无非是举手之劳,没想到凭着以前的经验安装Oracle RAC,还是踩了不少的坑,是为之记。

所需软件

在安装前,准备好搭建环境所需的软件。

安装VirtualBox

我是在Ubuntu 19.10下安装VirtualBox软件,使用以下命令完成安装,如果是其他Linux发行版或者Windows请运行相应命令。

$ sudo dpkg -i virtualbox-6.0_6.0.14-133895~Ubuntu~bionic_amd64.deb

创建虚机 我们计划部署两节点的RAC,所以先创建一个虚机,配置好RAC所需的环境参数,然后复制虚机得到第二个节点。 启动VirtualBox,点击工具栏的New按钮,名称设置为ol7-19-rac1,操作系统类型为Linux,版本为Oracle(64-bit),点击Next 设置“16384”做为内存大小,点击Next。 Memory Size 硬盘页面接受默认的创建新虚拟硬盘,点击Create。 Hard Disk 进入硬盘创建向导,接受默认的VDI硬盘类型,点击Next Hard disk file type 存储方式接受默认的“Dynamically allocated”,点Next Storage on physical hard disk 接受默位置,设置硬盘尺寸为100G,点击Create完成虚拟机的创建。 File location and size 新建名称为“ol17-19-rac1”的虚拟机将在窗口左边列出(忘了截图,用最后的图代替:)),右边窗口点Network链接。 VM List 确认Adapter 1已启用,并设置为Bridged Adapter(因为安装RAC环境要在公司内部网络测试,所以设置为Bridged,如果本机如果本机测试可设置为NAT)。点击Adapter 2页 Adapter 1 确认Adapter 2已启用,并且设置为“Internal Network”。 Adapter 2 点击左侧页面的System,把Boot Order列表中的Floppy去掉。完成虚机的设置。

在虚机安装Oracle Linux

在新创建虚机把光驱映射到下载好的Oracle Linux 7.5的光盘映像文件V975367-01.iso,点击Start启动虚机。 利用光盘启动系统,按I进入Oracle Linux 7.5的安装。 选择以下包进行Oracle Linux的安装
  • Server with GUI
  • Hardware Monitoring Utilities
  • Large Systems Performance
  • Network file system client
  • Performance Tools
  • Compatibility Libraries
  • Development Tools
并对主机名及IP地址进行以下设置: 主机名:ol7-19-rac1 enp0s3: IP=10.0.1.101 Netmask=255.255.255.0 enp0s8: IP=192.168.1.101 Netmask=255.255.255.0 完成虚机Oracle Linux 7.5的安装,重启进入系统。 刚装完系统可能存在虚拟机系统中鼠标移位或者鼠标不工作等情况,可点击VirtualBox的Devices菜单,选择Insert Guest Additions CD images…,装载虚机工具光盘。 在虚拟机Oracle Linux系统里点击Run完成虚机驱动程序的安装(如果出错可通过yum upgrade升级Linux内核解决)。 下一步我们将在虚机系统里进行安装的准备配置,并生成第二台虚拟机。