如何修改Oracle数据库实例名(db_unique_name) (修改数据库db_unique_name)

Oracle数据库是一个非常强大和可靠的关系型数据库管理系统。Oracle数据库为系统管理员和数据库开发人员提供了各种功能和工具,以管理和维护数据库。然而,在某些情况下,您可能需要修改Oracle数据库实例名(db_unique_name)。本文将介绍如何修改Oracle数据库实例名。

什么是Oracle数据库实例名(db_unique_name)?

在Oracle数据库中,每个实例都有一个唯一的名称,称为实例名(instance name),该名称用于区分多个实例。Oracle数据库实例名(db_unique_name)是Oracle集群中所有节点的唯一标识符。

Oracle数据库实例名(db_unique_name)由两部分组成:

– :系统标识符(system identifier),代表Oracle数据库实例在计算机上的唯一标识符。

– :“域名”(domn),用于标识Oracle数据库集群中所有节点的命名空间。

例如,如果Oracle数据库实例名(db_unique_name)为“orclpoc1.example.com”,则其中“orclpoc1”是系统标识符(SID),而“.example.com”是域名(domn)。

为什么需要修改Oracle数据库实例名(db_unique_name)?

有几种情况下,您可能需要修改Oracle数据库实例名(db_unique_name):

– 您将Oracle数据库从一个环境迁移到另一个环境,例如从测试环境到生产环境。

– 您可能已更改组织的域名,并且需要在数据库中反映这种更改。

– 您可能需要重新配置您的Oracle数据库群集环境。

– 您可能需要将一些数据库从一个实例移动到另一个实例。

在这些情况下,您需要修改Oracle数据库实例名(db_unique_name)。

以下是在Oracle数据库服务器上修改Oracle数据库实例名(db_unique_name)的步骤:

1. 在更改Oracle数据库实例名(db_unique_name)之前,请确保在所有备份和恢复脚本中使用正确的实例名。这是非常重要的,因为备份和恢复脚本中的实例名与Oracle数据库实例名(db_unique_name)相关联。

2. 在所有节点上启动集群管理器(Oracle Grid Infrastructure)管理控制台。然后,通过单击相应的群集节点进入“集群目标”页面。

3. 选择要更改实例名的数据库实例。在“集群目标”页面上,单击要更改实例名的Oracle数据库实例的名称。然后单击“必需属性”选项卡。

4. 在“必需属性”选项卡中,“实例名”(Instance Name)字段显示Oracle数据库实例名(db_unique_name)。在此字段中输入您要用作实例名的新名称。

5. 保存更改并重启实例。在“集群目标”页面上,单击“执行更改”以保存更改。然后重启数据库实例以使更改生效。

6. 检查Oracle数据库实例名(db_unique_name)是否已更改。在Oracle数据库服务器上,登录SQL*Plus命令行界面,并键入以下命令:

SQL> SELECT NAME FROM V$DATABASE;

此命令将返回数据库名称,该名称应为新实例名。

这就是的步骤。请记住,在更改Oracle数据库实例名(db_unique_name)之前,请确保在所有备份和恢复脚本中使用正确的实例名。此外,您还应该备份数据库,并在更改实例名之前测试备份以确保它们可用。

相关问题拓展阅读:

有两个oracle 用taf怎么配置优先启动

纳薯Oracle DG之–客户端TAF 配置

  系统环境:

  操作系统:RedHat EL5

  Oracle: Oracle 11gR2

  wKioL1NXhaGysLtaAAIEl99FSRw112.jpg

  系统架构图

  如图所示:

  主数据库(生产库): BJDB

  备库 (容灾库): SHDB

  DG的架构模式哗茄歼为Physical DG,数据保护模式为:Max Protection。

  1、系统架构

  主库:

  04:44:13 SYS@ TestDB12>show parameter nameNAME TYPEVALUEdb_name stringTestDB12db_unique_namestring bjdbinstance_namestringTestDB12service_namesstringbjdb04:46:22 SYS@ TestDB12>select name,dbid,database_role,protection_mode from v$database;NAME DBID DATABASE_ROLE PROTECTION_MODETESTDBPRIMARYMAXIMUM PERFORMANCE主库归档配置:

  log_archive_dest_ string LOCATION=/dsk4/arch_bjVALID_FOR=(ALL_LOGFILES,ALL_

  ROLES)

  DB_UNIQUE_NAME=bjdb

 乱冲 log_archive_dest_ string SERVICE=shdb ASYNCVALID_FOR=(ONLINE_LOGFILES,P

  RIMARY_ROLE)

  DB_UNIQUE_NAME=shdb

  备库:

  04:44:02 SYS@ shdb>show parameter name

  NAME TYPEVALUEdb_name string TestDB12db_unique_namestringshdbinstance_namestringshdbservice_namesstringshdb05:20:19 SYS@ shdb>select name,dbid,database_role,protection_mode from v$database;NAMEDBID DATABASE_ROLE PROTECTION_MODE–TESTDB PHYSICAL STANDBY MAXIMUM PERFORMANCE备库归档日志:

  log_archive_dest_ string LOCATION=/dsk4/arch_shVALID_FOR=(ALL_LOGFILES,ALL_

  ROLES)

  DB_UNIQUE_NAME=shdb

  log_archive_dest_ string SERVICE=bjdb ASYNCVALID_FOR=(ONLINE_LOGFILES,P

  RIMARY_ROLE)

  DB_UNIQUE_NAME=bjdb

  主备库网络配置:

  BJDB =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = bjsrv)(PORT = 1521)))

  (CONNECT_DATA = (SERVER = DEDICATED)

  (SERVICE_NAME = bjdb)

  )

  )

  SHDB =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = shsrv)(PORT = 1521)))

  (CONNECT_DATA = (SERVER = DEDICATED)

  (SERVICE_NAME = shdb)

  )

  )

  2、客户端TAF 配置

  1)首先在主库上配置一个TAF的service

  此服务在数据库出现故障时会发送通知给客户端,允许查询语句在故障转移发生后继续运行。

  04:08:02 SYS@ TestDB12>begin

  04:11:DBMS_SERVICE.CREATE_SERVICE04:11:(service_name=> ‘dg_sw’,

  04:11:network_name => ‘dg_sw’,

  04:11:aq_ha_notifications =>TRUE,04:11:failover_method => ‘BASIC’,04:11:failover_type =>’SELECT’,

  04:11:failover_retries => 30,

  04:11:failover_delay => 5);

  04:11:end;

  04:11:/

  PL/SQL procedure successfully completed.

  Elapsed: 00:00:00.15

  2)建立一个存储过程,用于调用service,确保只在主库运行我们创建一个存储过程来实现此目的,如果当前数据库是主库它就启动此服务,如果是备库就停止。

  04:15:42 SYS@ TestDB12>create or replace procedure dg_taf_proc04:15:is v_role

  04:15:VARCHAR(30);

  if v_role = ‘PRIMARY’

  begin

  select DATABASE_ROLE into v_role from V$DATABASE;04:15:if v_role = ‘PRIMARY’

  04:15:then

  04:15:DBMS_SERVICE.START_SERVICE(‘dg_sw’);04:15:else

  04:15:DBMS_SERVICE.STOP_SERVICE(‘dg_sw’);04:15:end if;

  04:15:end;

  04:15:/

  Procedure created.

  3)创建2个触发器来确保服务可以运行

  创建两个触发器,让数据库在启动和角色转换时运行此存储过程。

  04:15:44 SYS@ TestDB12>

  create or replace TRIGGER

  04:17:dg_taf_trg_startup

  after startup on database

  04:17:begin

  04:17:dg_taf_proc;

  04:17:end;

  04:17:/

  Trigger created.

  Elapsed: 00:00:00.08

  用于当数据库open时,如果是主库则执行存储过程。

  04:17:03 SYS@ TestDB12>

  04:18:19 SYS@ TestDB12>create or replace TRIGGER04:18:dg_taf_trg_rolechange

  04:18:after db_role_change on database04:18:begin

  04:18:dg_taf_proc;

  04:18:end;

  04:18:/

  Trigger created.

  当数据库切换后,如果是主库则执行存储过程。

  4)客户端tnsnames 配置

  DG_SW =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.120)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.130)(PORT = 1521))(LOAD_BALANCE = yes)

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = dg_sw)

  (FAILOVER_MODE =

  (TYPE = session)

  (METHOD = basic)

  (RETRIES = 180)

  (DELAY = 5)

  )

  )

  )

  注:8.120 是主库,8.130 是备库

  3、验证客户端的TAF

  1)首先在主库上执行该存储过程

  04:19:09 SYS@ TestDB12>execute dg_taf_proc;PL/SQL procedure successfully completed.

  Elapsed: 00:00:00.06

  04:22:55 SYS@ TestDB12>show parameter nameNAME TYPEVALUEdb_name string TestDB12db_unique_namestring bjdbinstance_namestring TestDB12service_namesstring dg_sw注:service_name 变为dg_sw

  04:23:01 SYS@ TestDB12> alter system switch logfile;在主库做日志的切换,将变化应用到备库

  2)在备库查询

  04:27:30 SYS@ shdb>select trigger_name,trigger_name from dba_triggers04:28:where trigger_name like ‘%DG%’;TRIGGER_NAME TRIGGER_NAME—–DG_TAF_TRG_STARTUPDG_TAF_TRG_STARTUPDG_TAF_TRG_ROLECHANGEDG_TAF_TRG_ROLECHANGE3)客户端连接测试

  C:\Documents and Settings\tiany>sqlplus sys/oracle@dg_sw as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 23 16:35:Copyright (c) 1982, 2023, Oracle. All rights reserved.

  连接到:

  Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Mining,Oracle Database Vault and Real Application Testing optionsSQL>

  此时应连接到主库!

  4、主备库切换后的TAF测试

  1)主备库切换

  主库切换后:

  04:41:31 SYS@ TestDB12>select database_role ,switchover_status from v$database;DATABASE_ROLE SWITCHOVER_STATUS

  PHYSICAL STANDBY RECOVERY NEEDED

  备库切换后:

  04:31:17 SYS@ shdb>select database_role ,switchover_status from v$database;DATABASE_ROLE SWITCHOVER_STATUS

  PRIMARYNOT ALLOWED

  Elapsed: 00:00:00.02

  2)客户端连接测试

  C:\Documents and Settings\tiany>sqlplus sys/oracle@dg_sw as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 23 16:43:Copyright (c) 1982, 2023, Oracle. All rights reserved.

  连接到:

  Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Mining,Oracle Database Vault and Real Application Testing optionsSQL> show parameter name

  NAME TYPEVALUEdb_name string TestDB12db_unique_namestring shdbinstance_namestring shdbservice_namesstring dg_sw切换后,在备库上存储过程启动了TAF的service ,客户端再连接时,自动连接到了当前的主库(原备库)。

  @至此,在DG环境下客户端的TAF配置基本完成。

ORACLE-DataGuard系列:逻辑standby搭建

准备:

确认对象和语句能被standby支持

确保primary库中各表的行可被唯一标识

环境:

操作系统:RED HAT LINUX ENTERPRISE 5

ORACLE: 11.2.0.1.0

PRIMARY:

IP: 192.168.1.11

SID: test

DB_UNIQUE_NAME:test

安装路径:/oracle/oracle/product/11.2.0/dbhome_1

本地归档路径:/oracle/oradata/test/archive

PHYSICS STANDBY:

IP: 192.168.1.12

SID: dgtest

DB_UNIQUE_NAME:dgtest

安装路径:/oracle/oracle/product/11.2.0/dbhome_1

本码粗没地归档路径:/oracle/oradata/dgtest/dgtest/archive

LOGICAL STANDBY:

IP: 192.168.1.15

SID: logicdg

DB_UNIQUE_NAME: logicdg

安装路径:/oracle/oracle/product/11.2.0/dbhome_1

本地归档路径:/oracle/oradata/logicdg/local-archive

本例测迟纳试采用物理standby转逻辑standby的方式在一个已经存在的dataguard环境中新增一台逻辑standby.

原dataguard环境可参考:

创建新物理standby的过程亦可参照此文。此处不再赘述。

则目前环境为:

primary:192.168.1.11

physics: 192.168.1.12

logical: 192.168.1.15 (凳衡目前为物理standby.待转换)

1.修改primary初始化参数文件(仅列出修改部分)

*.log_archive_dest_state_2=defer

*.log_archive_dest_state_3=defer

*.log_archive_config=’dg_config=(test,dgtest,logicdg)’

*.log_archive_dest_2=’service=test12 arch valid_for=(online_logfiles,primary_role) db_unique_name=dgtest’

*.log_archive_dest_3=’service=test15 arch valid_for=(online_logfiles,primary_role) db_unique_name=logicdg’

*.fal_server=test11

*.fal_client=test12

*.standby_file_management=auto

*.db_file_name_convert=’/oracle/oradata/test’,’/oracle/oradata/dgtest/dgtest’,’/oracle/oradata/test’,’/

oracle/oradata/logicdg’

*.log_file_name_convert=’/oracle/oradata/test’,’/oracle/oradata/dgtest/dgtest’,’/oracle/oradata/test’,’/

oracle/oradata/logicdg’

2.查看两台物理standby同步状态

physics select sequence#,applied from v$archived_log;

SEQUENCE# APPLIED

——

66 YES

67 YES

68 YES

69 YES

70 YES

71 YES

72 YES

7 rows selected.

logical select sequence#,applied from v$archived_log;

SEQUENCE# APPLIED

——

67 YES

68 YES

69 YES

70 YES

71 YES

72 YES

6 rows selected.

3.取消待转换物理standby的redo应用

logical alter database recover managed standby database cancel;

Database altered.

4.primary生成数据字典

primary execute dbms_logstdby.build;

PL/SQL procedure successfully completed.

5.将物理standby转换为逻辑standby

logical alter database recover to logical standby logicdg;

Database altered.

logical shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

logical startup mount

ORACLE instance started.

Total System Global Areabytes

Fixed Sizebytes

Variable Sizebytes

Database Bufferytes

Redo Bufferytes

Database mounted.

6.调整standby初始化参数

logical alter system set log_archive_dest_1=’location=/oracle/oradata/logicdg/local-archive valid_for=(online_logfiles,all_roles)

2 db_unique_name=logicdg’;

System altered.

logical alter system set log_archive_dest_5=’location=/oracle/oradata/logicdg/archive valid_for=(standby_logfiles,standby_role)

2 db_unique_name=logicdg’;

System altered.

7.resetlogs方式打开数据库

logical alter database open resetlogs;

Database altered.

8.应用redo

创建standby redologs

logical alter database add standby logfile group 11 ‘/oracle/oradata/logicdg/standbyredo11.log’ size 100m;

Database altered.

logical alter database add standby logfile group 12 ‘/oracle/oradata/logicdg/standbyredo12.log’ size 100m;

Database altered.

logical alter database add standby logfile group 13 ‘/oracle/oradata/logicdg/standbyredo13.log’ size 100m;

Database altered.

启动redo实时应用

logical alter database start logical standby apply immediate;

Database altered.

修改数据库db_unique_name的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于修改数据库db_unique_name,如何修改Oracle数据库实例名(db_unique_name),有两个oracle 用taf怎么配置优先启动,ORACLE-DataGuard系列:逻辑standby搭建的信息别忘了在本站进行查找喔。


数据运维技术 » 如何修改Oracle数据库实例名(db_unique_name) (修改数据库db_unique_name)