使用ORACLE更改 RAC集群DB_NAME

本文详细介绍了如何更改Oracle RAC集群的DB_NAME,包括需要更改静态参数、创建PFILE替代SPFILE,以及在OMF管理下处理SPFILE命名变化和集群配置更新的必要步骤。操作过程中强调了通过根用户进行修改,并确认数据库已成功以新DB_NAME启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

踢球

需要将db_name由原来的'orcl19ca'修改为'orcl19c'

更改单实例的db_name需要哪些步骤。

1.修改spfile或者pfile

2.启动到nomount阶段,重建控制文件

3.以resetlogs方式开库

那么更改rac数据库的db_name又需要哪些步骤呢,我们一起来讨论一下

1.db_name是静态参数,更改spfile重启后生效更改。而直接在spfile中更改spfile又会报错,如下:

SQL> select NAME,value,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='db_name';

NAME                 VALUE                ISSES ISSYS_MOD
-------------------- -------------------- ----- ---------
db_name              orcl19c              FALSE FALSE
SQL> alter system set db_name='orcl19c1' scope=spfile;
alter system set db_name='orcl19c1' scope=spfile
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-32016: parameter "db_name" cannot be updated in SPFILE

 那我们只有通过创建pfile的方式进行更改,之后替代spfile。

但这里有个问题,如果数据库使用的是OMF管理的方式,spfile命名是数据库自行完成的。在创建了新的spfile后,spfile的命名已经变更。由于集群中有spfile路径和命名的设置,此设置也需要进行更改,不然会报启动找不到spfile,数据库启动失败。

[root@orcl19cn1 ~]# /u01/app/19.3.0/grid/bin/srvctl config database -d orcl19cadg
Database unique name: orcl19cadg
Database name: orcl19ca
Oracle home: /u01/app/oracle/product/19.3.0/db_1
Oracle user: oracle
Spfile: +DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114099551 
Password file: +DATA/ORCL19CADG/PASSWORD/pwdorcl19cadg.256.1114079203
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: orcl19c1,orcl19c2
Configured nodes: orcl19cn1,orcl19cn2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

知识点

1.以OMF方式管理的数据库在更改spfile后,spfile命名更新

2.更改spfile后需要更改集群中spifle路径设置

操作过程

当前数据库名orcl19c

SQL> sho parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      orcl19ca
db_unique_name                       string      orcl19cadg
global_names                         boolean     FALSE
instance_name                        string      orcl19c1
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string

原来db_name='orcl19ca'
目标db_name='orcl19c'

更改spfile中db_name

create pfile='/tmp/initorcl19c1.ora' from spfile;

SQL> shut immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount pfile='/tmp/initorcl19c1.ora';
ORACLE instance started.

Total System Global Area 1828714320 bytes
Fixed Size                  9135952 bytes
Variable Size             603979776 bytes
Database Buffers         1207959552 bytes
Redo Buffers                7639040 bytes

通过更改pfile产生新的spfile
create spfile from pfile='/tmp/initorcl19c1.ora';

确认新产生的spfile 

ASMCMD> ls
spfile.272.1114084367.bak
spfile.280.1114099551.bak
spfile.280.1114103463 <-----------产生了一个新的spfile


SQL> shut immediate
ORA-01507: database not mounted

ORACLE instance shut down.

更改集群中的spfile设置
注意:通过root进行更改

/u01/app/19.3.0/grid/bin/srvctl modify database -d orcl19cadg -spfile '+DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114103463'

[root@orcl19cn1 ~]# /u01/app/19.3.0/grid/bin/srvctl config database
orcl19cadg
[root@orcl19cn1 ~]# /u01/app/19.3.0/grid/bin/srvctl config database -d orcl19cadg
Database unique name: orcl19cadg
Database name: orcl19ca
Oracle home: /u01/app/oracle/product/19.3.0/db_1
Oracle user: oracle
Spfile: +DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114103463   <----------------------------------改过来了,尝试启动数据库
Password file: +DATA/ORCL19CADG/PASSWORD/pwdorcl19cadg.256.1114079203
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: orcl19c1,orcl19c2
Configured nodes: orcl19cn1,orcl19cn2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

确认是否通过spfile启动

[oracle@orcl19cn1 ~]$ cd $ORACLE_HOME
[oracle@orcl19cn1 db_1]$ cd dbs
[oracle@orcl19cn1 dbs]$ ls
c-3935592931-20220830-00  core_90815  core_94071  hc_orcl19c1.dat  init.ora              snapcf_orcl19c1.f
c-3935592931-20220830-01  core_92527  core_96370  id_orcl19c1.dat  initorcl19c1.ora.bak  <-------------并非通过实例的pfile指定spfile启动

确认是通过新生成的spfile启动数据库
SQL> sho parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114103463        <-----------------和上面的新生成的spfile相同


确认DB_NAME已经更改     

SQL> sho parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      orcl19c
db_unique_name                       string      orcl19cadg
global_names                         boolean     FALSE
instance_name                        string      orcl19c1
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl19cadg


注意点:用root用户改

[root@orcl19cn1 ~]# /u01/app/19.3.0/grid/bin/srvctl modify database -d orcl19cadg -spfile '+DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114099935'

alter system set spfile='+DATA/ORCL19CADG/PARAMETERFILE/spfile.280.1114099935';

<think>好的,我现在需要帮助用户解决在Oracle 11g RAC静默安装过程中如何指定db_unique_name和SGA参数的问题。首先,我需要回忆一下Oracle静默安装的相关知识,特别是RAC环境下的配置。 用户提到的静默安装通常是通过响应文件(response file)来进行的,所以可能需要修响应文件中的参数。db_unique_name和SGA属于数据库创建阶段的参数,所以应该是在DBCA(Database Configuration Assistant)的静默配置部分设置。 接下来,我需要确认在Oracle 11g中,RAC安装是否使用dbca.rsp响应文件。根据之前的经验,安装Oracle RAC会涉及到Grid Infrastructure的安装和数据库的创建,可能需要分别处理。但用户的问题集中在数据库创建时的参数设置,所以可能需要关注dbca.rsp文件。 对于db_unique_name,这个参数在RAC环境中通常与db_name不同,用于唯一标识数据库实例。在响应文件中应该有一个参数叫GDBNAME,或者类似的,可能需要设置这里。或者,可能在数据库模板文件中有相关选项。 关于SGA参数,SGA的大小通常在初始化参数中设置,可能在响应文件中有MEMORY_TARGET或SGA_TARGET等参数。需要确认在静默安装时如何指定这些内存参数,是否通过响应文件中的特定部分。 另外,可能需要参考Oracle官方文档或可靠的安装指南,比如用户提供的引用[1]和[2],虽然这些是关于单机安装的,但RAC静默安装可能有类似的步骤,只是需要额外的集群配置参数。 需要确保在响应文件中正确设置db_unique_name,并且正确配置SGA的大小,比如在dbca.rsp中的sgaTarget等参数。同时,可能还需要指定集群相关的参数,如CLUSTER_NODES等,但用户的问题没有提到这些,所以可能不需要深入。 可能还需要注意,在RAC环境中,每个实例的SGA可能需要分别配置,或者使用统一的参数,这取决于集群的配置方式。不过,在静默安装时,可能通过响应文件统一设置,然后由Oracle自动应用到各节点。 总结步骤应该是:准备响应文件,修其中的db_unique_name和SGA相关参数,然后运行DBCA静默模式执行安装。需要给出具体的参数称和示例,确保用户能够正确修文件。 最后,要生成相关问题,可能涉及其他静默安装参数、响应文件的结构、RAC安装的注意事项,或者性能调优相关的问题。</think>在Oracle 11g RAC静默安装中,通过响应文件(response file)指定$db\_unique\_name$和SGA参数需按以下步骤操作: ### 1. 修数据库创建响应文件 静默安装时,需使用`dbca.rsp`文件配置数据库参数。在文件中添加或修以下内容: ```properties # 设置数据库唯一dbUniqueName = "your_db_unique_name" # 例如: rac_prod # 配置SGA参数 initParams = "sga_target=2G,sga_max_size=3G" ``` ### 2. 指定响应文件运行DBCA 通过以下命令调用静默模式创建数据库: ```bash dbca -silent -createDatabase -responseFile /path/to/dbca.rsp ``` ### 3. 关键参数说明 - $dbUniqueName$: 在RAC环境中需全局唯一,通常与$db\_name$不同[^1] - $sga\_target$: 动态调整SGA内存分配,单位支持`M`或`G` - $sga\_max\_size$: 设置SGA最大硬限制 $$ \text{实际内存分配} = \min(\text{sga\_target}, \text{sga\_max\_size}) $$ ### 4. 验证参数生效 安装完成后检查参数: ```sql SQL> show parameter db_unique_name; SQL> show parameter sga; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值