修改单机oracle ASM环境主机hostname

来源:这里教程网 时间:2026-03-03 17:57:31 作者:

1    文档描述

这是一篇为修改单机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 环境的主机名修改操作。留下参考文档。

2    操作环境

操作系统: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

3    操作过程

重新命名单机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 在磁盘中的位置 

3.1   重新配置CSS&OHAS服务,修改主机名

修改主机名前,以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

 

3.2   修改GI的ora.cssd资源

使用 grid 用户执行如下命令修改 ora.cssd 资源

$/u01/app/product/grid/18.0.0.0.0/bin/crsctl modify resource "ora.cssd" -init -attr "AUTO_START=1"  -unsupported

运行正常无结果返回

3.3   重新启动OHAS

使用 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.

3.4   检查CSS&OHAS状态

使用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) ~ ] $

  注意如果服务没有启动,可以试着重启操作系统。

 

3.5   重建默认监听

利用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

 

3.6   重建ASM参数文件

使用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

3.7   将ASM实例添加进GI

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) ~ ] $

3.8   设置ASM随GI自动启动

使用grid 用户,执行命令让ASM 自动启动

$/u01/app/product/grid/18.0.0.0.0//bin/crsctl modify resource "ora.asm" -init -attr "AUTO_START=1"  -unsupported 命令执行无结果返回

3.9   检查操作系统asm disk状态

在启动ASM 实例前,确认ASM disk 能够被发现。使用grid 用户执行检查命令:Example:

$/u01/app/product/grid/18.0.0.0.0//bin/kfod asm_diskstring='/dev/asm_*' disks=all

3.10     启动ASM实例

使用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>

3.11      验证ASM磁盘

验证所有磁盘是否被发现了: SQL> select  path  from v$asm_disk;

3.12     创建ASM spfile

目前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

3.13     将ASM spfile和LISTENER添加进ASM resource

使用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) ~ ] $

3.14     验证OHAS服务

使用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) ~ ] $

3.15     添加数据库到ASM resource

如果数据库的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) ~ ] $

 

3.16     启动数据库

使用grid 用户或者oracle 用户,启动数据库 $ srvctl start database -db S18000A

 

3.17     检查所有服务状

检查所有服务状态 $ 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 --------------------------------------------------------------------------------

4    个人总结

涉及的一些命令:  $ 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

5    资料参考引用

How to change Hostname  IP for a Grid Infrastructure Oracle Restart Standalone Configuration (SIHA) 11.2 and Later (Doc ID 1552810.1)

相关推荐