这是一篇为修改单机oracle ASM 环境主机hostname 提供参考的文档。
事件的起因是自己oracle 数据库虚拟机,里面安装了10g 到18c 各个版本的单机数据库以及oracle 18c 的ASM 。因为做环境时此虚拟机并没有联网,所以主机名IP 就从没有配置过,主机名使用的默认名localhost.localdomain 。当某天将此虚拟机连接外网后,发现主机名变成了bogon ,并且oracle GI 环境启动不起来了。 问了下昕宇,主机名修改为bogon 是因为DNS 服务器无法解析到IP 地址对应的主机名,因此会返回bogon (含义是“ 虚拟的、虚伪的” ),如果不想被DNS 修改主机名,在/etc/hosts 文件中添加上对应IP 的解析即可。
比如原/etc/hosts 文件中内容:
[root@bogon ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
添加IP 解析后如下:
[root@bogon ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.128 localhost
再重启,主机名就会回到原名 localhost 。 (注意因为/etc/nsswitch.conf 文件中默认的解析顺序配置是 hosts: files dns , hosts 文件优先于dns 解析)
或者断网启动操作系统(断网启动系统,主机名依然是localhost ),在操作系统和ASM 实例都启动后,再接通网线, 接通网线后,主机名会被变更为bogon ,但此时ASM 实例已经启动完成了。
既然是实验环境,那就做一下oracle ASM 环境的主机名修改操作。留下参考文档。
操作系统:OEL7.2
GI :grid 用户,oracle 18c ASM ,ORACLE_HOME = /u01/app/product/grid/18.0.0.0.0 , +ASM
Database: oracle 用户,Oracle 18c database , ORACLE_HOME = /u01/app/product/database/18.0.0.0.0 , S18000A
重新命名单机ASM 环境的主机名,如果前期能收集一些信息,后续修改会更方便一些。预收集的信息如下:
1 使用grid 用户收集ASM 信息样例
$ srvctl config asm -detail
ASM home: <CRS home>
Password file:
Backup of Password file:
ASM listener:
Spfile: /u01/app/product/grid/18.0.0.0.0/dbs/spfile+ASM.ora
ASM diskgroup discovery string: /dev/asm_*
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
[grid@oracle 18.0.0.0.0:(+ASM) dbs ] $
2 使用grid 用户收集数据库信息样例:
$ srvctl config database -d S18000A
Database unique name: S18000A
Database name: S18000A
Oracle home: /u01/app/product/database/18.0.0.0.0
Oracle user: oracle
Spfile: +ORADATA/S18000A/PARAMETERFILE/spfile.266.992860735
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: ORADATA
Services:
OSDBA group:
OSOPER group:
Database instance: S18000A
3 收集 ASM disk 在磁盘中的位置
修改主机名前,以root 用户执行如下命令重新配置CSS&OHAS 服务
# /u01/app/product/grid/18.0.0.0.0/crs/install/roothas.pl -deconfig -force
如果主机并没有安装perl 环境,可以使用ORACLE_HOME 下自带的perl 环境
#/u01/app/product/grid/18.0.0.0.0/perl/bin/perl /u01/app/product/grid/18.0.0.0.0/crs/install/roothas.pl -deconfig -force
[root@localhost ~]# /u01/app/product/grid/18.0.0.0.0/perl/bin/perl /u01/app/product/grid/18.0.0.0.0/crs/install/roothas.pl -deconfig -force
Using configuration parameter file: /u01/app/product/grid/18.0.0.0.0/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/product/crsdata/localhost/crsconfig/hadeconfig.log
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'localhost'
CRS-2673: Attempting to stop 'ora.evmd' on 'localhost'
CRS-2677: Stop of 'ora.evmd' on 'localhost' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'localhost' has completed
CRS-4133: Oracle High Availability Services has been stopped.
2022/10/10 09:16:16 CLSRSC-337: Successfully deconfigured Oracle Restart stack
运行完成后,修改主机名,注意也需要添加IP 主机名解析
[root@bogon ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.128 bogon
主机名修改完成后,以root 用户运行:
# /u01/app/product/grid/18.0.0.0.0/crs/install/roothas.sh
[root@bogon ~]# /u01/app/product/grid/18.0.0.0.0/crs/install/roothas.sh
Using configuration parameter file: /u01/app/product/grid/18.0.0.0.0/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/product/crsdata/bogon/crsconfig/roothas_2022-10-10_09-52-08AM.log
LOCAL ADD MODE
Creating OCR keys for user 'grid', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node bogon successfully pinned.
2022/10/10 09:52:14 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'bogon'
CRS-2673: Attempting to stop 'ora.evmd' on 'bogon'
CRS-2677: Stop of 'ora.evmd' on 'bogon' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'bogon' has completed
CRS-4133: Oracle High Availability Services has been stopped.
CRS-4123: Oracle High Availability Services has been started.
bogon 2022/10/10 09:53:15 /u01/app/product/grid/18.0.0.0.0/cdata/bogon/backup_20221010_095315.olr 70732493
2022/10/10 09:53:15 CLSRSC-327: Successfully configured Oracle Restart for a standalone server
使用 grid 用户执行如下命令修改 ora.cssd 资源 :
$/u01/app/product/grid/18.0.0.0.0/bin/crsctl modify resource "ora.cssd" -init -attr "AUTO_START=1" -unsupported
运行正常无结果返回
使用 grid 用户重新启动 OHAS:
$/u01/app/product/grid/18.0.0.0.0/bin/crsctl stop has
$/u01/app/product/grid/18.0.0.0.0/bin/crsctl start has
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'bogon'
CRS-2673: Attempting to stop 'ora.evmd' on 'bogon'
CRS-2677: Stop of 'ora.evmd' on 'bogon' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'bogon' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl start has
CRS-4123: Oracle High Availability Services has been started.
使用grid 用户检查CSS&OHAS 的状态:
$/u01/app/product/grid/18.0.0.0.0//bin/crsctl check has
$/u01/app/product/grid/18.0.0.0.0//bin/crsctl check css
$/u01/app/product/grid/18.0.0.0.0//bin/crsctl stat resource
$/u01/app/product/grid/18.0.0.0.0//bin/crsctl stat res -t
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl check has
CRS-4638: Oracle High Availability Services is online
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl check css
CRS-4529: Cluster Synchronization Services is online
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl stat resource
NAME=ora.cssd
TYPE=ora.cssd.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.diskmon
TYPE=ora.diskmon.type
TARGET=OFFLINE
STATE=OFFLINE
NAME=ora.evmd
TYPE=ora.evm.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.ons
TYPE=ora.ons.type
TARGET=OFFLINE
STATE=OFFLINE
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
OFFLINE OFFLINE bogon STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE bogon STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE bogon STABLE
--------------------------------------------------------------------------------
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $
注意如果服务没有启动,可以试着重启操作系统。
利用netca,netmgr 工具,或手动创建监听,然后将监听添加进GI 资源管理: 样例如下:
$ srvctl add listener -listener LISTENER -o $ORACLE_HOME -endpoints tcp:1521
$srvctl add listener
$srvctl start listener
注意:添加进资源组时监听服务应该是关闭状态,否则会添加不成功,报如下错误。
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ srvctl add listener
PRCN-2061 : Failed to add listener ora.LISTENER.lsnr
PRCN-2065 : Ports 1521 are not available on the nodes given
PRCN-2067 : Port 1521 is not available on nodes: bogon
使用grid 用户在ORACLE_HOME/dbs 目录下创建文本ASM 参数文件init+ASM.ora ,内容如下:
我的实验环境中,仅使用了/dev/asm_01 这一个磁盘给ASM 实例使用。
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ cat $ORACLE_HOME/dbs/init+ASM.ora
asm_diskgroups= 'ORADATA'
asm_diskstring= '/dev/asm_*'
instance_type='asm'
large_pool_size=12M
以grid 用户执行命令,将ASM 实例添加进GI 资源组:
$/u01/app/product/grid/18.0.0.0.0/bin/srvctl add asm
无执行结果返回
添加完成之后可以查看ASM 信息,以未添加前是不能查看ASM 信息的。
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ srvctl config asm -detail
ASM home: <CRS home>
Password file:
Backup of Password file:
ASM listener: LISTENER
Spfile:
ASM diskgroup discovery string: ++no-value-at-resource-creation--never-updated-through-ASM++
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $
使用grid 用户,执行命令让ASM 自动启动:
$/u01/app/product/grid/18.0.0.0.0//bin/crsctl modify resource "ora.asm" -init -attr "AUTO_START=1" -unsupported
命令执行无结果返回
在启动ASM 实例前,确认ASM disk 能够被发现。使用grid 用户执行检查命令:
Example:
$/u01/app/product/grid/18.0.0.0.0//bin/kfod asm_diskstring='/dev/asm_*' disks=all
使用grid 用户启动ASM 实例:
$ export ORACLE_SID=+ASM
$ cd $ORACLE_HOME/dbs
$ /u01/app/product/grid/18.0.0.0.0/bin/sqlplus "/as sysasm"
SQL> startup pfile=init+ASM.ora
SQL> show parameter asm
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ cd $ORACLE_HOME/dbs
[grid@bogon 18.0.0.0.0:(+ASM) dbs ] $ /u01/app/product/grid/18.0.0.0.0/bin/sqlplus "/as sysasm"
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Oct 10 12:26:28 2022
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup pfile=init+ASM.ora
ASM instance started
Total System Global Area 1136934472 bytes
Fixed Size 8666696 bytes
Variable Size 1103101952 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
SQL> set lines 200
SQL> show parameter asm
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
asm_diskgroups string ORADATA
asm_diskstring string /dev/asm_*
asm_power_limit integer 1
asm_preferred_read_failure_groups string
SQL>
验证所有磁盘是否被发现了:
SQL> select path from v$asm_disk;
目前ASM 实例是使用的pfile 启动,利用pfile 创建spfile :
SQL> create spfile from pfile;
注意此时创建的spfile 是放了$ORACLE_HOME/dbs 目录下面。
在修改主机名前的ASM 实例的spfile 是存储在ASM 实例中的。如需要将spfile 存储在ASM 中,使用如下命令:
SQL> create spfile='+ORADATA' from pfile;
使用grid 用户,利用asmcmd 工具查看spfile 在ASM 实例中的位置
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ASMPARAMETERFILE UNPROT COARSE OCT 10 12:00:00 Y REGISTRY.253.1117715893
ASMCMD> pwd
+ORADATA/ASM/ASMPARAMETERFILE
使用grid 用户执行srvctl config asm -detail 查看详细信息:
$ srvctl config asm -detail
如asm信息中并未添加spfile及LISTEER信息。可使用如下命令添加。
$ /u01/app/product/grid/18.0.0.0.0//bin/srvctl modify asm -p <spfile full path>
$ /u01/app/product/grid/18.0.0.0.0//bin/srvctl modify asm -l LISTENER
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ srvctl config asm -detail
ASM home: <CRS home>
Password file:
Backup of Password file:
ASM listener: LISTENER
Spfile: +ORADATA/ASM/ASMPARAMETERFILE/registry.253.1117715893
ASM diskgroup discovery string: /dev/asm_*
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $
使用grid 用户测试验证OHAS 服务重启效果:
$ /u01/app/product/grid/18.0.0.0.0/bin/crsctl stop has
$ /u01/app/product/grid/18.0.0.0.0/bin/crsctl start has
$ /u01/app/product/grid/18.0.0.0.0/bin/crsctl stat res
$ /u01/app/product/grid/18.0.0.0.0/bin/crsctl stat res -t
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'bogon'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'bogon'
CRS-2673: Attempting to stop 'ora.evmd' on 'bogon'
CRS-2673: Attempting to stop 'ora.ORADATA.dg' on 'bogon'
CRS-2677: Stop of 'ora.ORADATA.dg' on 'bogon' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'bogon'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'bogon' succeeded
CRS-2677: Stop of 'ora.evmd' on 'bogon' succeeded
CRS-2677: Stop of 'ora.asm' on 'bogon' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'bogon'
CRS-2677: Stop of 'ora.cssd' on 'bogon' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'bogon' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0//bin/crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0/bin/crsctl stat res
NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.ORADATA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.asm
TYPE=ora.asm.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.cssd
TYPE=ora.cssd.type
TARGET=ONLINE
STATE=ONLINE on bogon
NAME=ora.diskmon
TYPE=ora.diskmon.type
TARGET=OFFLINE
STATE=OFFLINE
NAME=ora.evmd
TYPE=ora.evm.type
TARGET=ONLINE
STATE=INTERMEDIATE on bogon
NAME=ora.ons
TYPE=ora.ons.type
TARGET=OFFLINE
STATE=OFFLINE
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ /u01/app/product/grid/18.0.0.0.0/bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE bogon STABLE
ora.ORADATA.dg
ONLINE ONLINE bogon STABLE
ora.asm
ONLINE ONLINE bogon Started,STABLE
ora.ons
OFFLINE OFFLINE bogon STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE bogon STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE bogon STABLE
--------------------------------------------------------------------------------
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $
如果数据库的spfile 存储在ASM 实例中,使用grid 用户执行asmcmd 查找数据库spfile 位置。
ASMCMD> ls
spfile.266.992860735
ASMCMD> pwd
+ORADATA/S18000A/PARAMETERFILE
ASMCMD>
使用oracle 用户执行srvctl 添加数据库到ASM 资源中
[oracle@bogon 18.0.0.0.0:(S18000A) ~ ] $ srvctl add database -db S18000A -dbname S18000A -o /u01/app/product/database/18.0.0.0.0 -spfile +ORADATA/S18000A/PARAMETERFILE/spfile.266.992860735
检查数据库添加状态
[oracle@bogon 18.0.0.0.0:(S18000A) ~ ] $ srvctl config database -d S18000A
Database unique name: S18000A
Database name: S18000A
Oracle home: /u01/app/product/database/18.0.0.0.0
Oracle user: oracle
Spfile: +ORADATA/S18000A/PARAMETERFILE/spfile.266.992860735
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups:
Services:
OSDBA group:
OSOPER group:
Database instance: S18000A
[oracle@bogon 18.0.0.0.0:(S18000A) ~ ] $
使用grid 用户或者oracle 用户,启动数据库
$ srvctl start database -db S18000A
检查所有服务状态
$ crsctl stat res -t
[grid@bogon 18.0.0.0.0:(+ASM) ~ ] $ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE bogon STABLE
ora.ORADATA.dg
ONLINE ONLINE bogon STABLE
ora.asm
ONLINE ONLINE bogon Started,STABLE
ora.ons
OFFLINE OFFLINE bogon STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE bogon STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE bogon STABLE
ora.s18000a.db
1 ONLINE ONLINE bogon Open,HOME=/u01/app/p
roduct/database/18.0
.0.0.0,STABLE
--------------------------------------------------------------------------------
涉及的一些命令:
$ crsctl stop has
$ crsctl start has
$ srvctl add asm
$ srvctl add listener
$ srvctl add database -db S18000A -dbname S18000A -o /u01/app/product/database/18.0.0.0.0 -spfile +ORADATA/S18000A/PARAMETERFILE/spfile.266.992860735
$ srvctl config asm -detail
$ srvctl config database -d S18000A
$ srvctl config listener
$ crsctl modify resource "ora.cssd" -init -attr "AUTO_START=1" -unsupported
$ crsctl modify resource "ora.asm" -init -attr "AUTO_START=1" -unsupported
$ crsctl status resource
$ crsctl status resrouce <resource_name> -p
$ crsctl config has -- Display OHAS autostart config on this server
$ crsctl enable has -- Enable OHAS autostart on this server
$ crsctl disable has -- Disable OHAS autostart on this server
How to change Hostname IP for a Grid Infrastructure Oracle Restart Standalone Configuration (SIHA) 11.2 and Later (Doc ID 1552810.1)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11780477/viewspace-2917630/ ,如需转载,请注明出处,否则将追究法律责任。