Oracle篇—实例中和name相关参数的区别和作用

☘️博主介绍☘️

✨又是一天没白过,我是奈斯,DBA一名✨

✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌️

❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣️❣️❣️


前言:   

    哈喽小伙伴们,今天跟大家介绍一下oracle中和name相关的参数和作用,并且在单机环境、Data Guard(DG)环境和Real Application Clusters(RAC)环境中,这些参数的应用和重要性也有所不同,只有明确这些差异,才能更好地管理和维护数据库,确保其稳定运行。因此,本文将探讨这些参数的配置和应用,帮助大家更好地理解它们在各种环境中的差异和作用。

    Oracle数据库的管理和运维中,名称(name)相关的参数起着至关重要的作用。这些参数包括db_name、db_unique_name、service_names、instance_name和global_names。如果不深入了解这些参数的用途和影响,可能会导致后续的运维工作变得复杂和困难。因此,掌握这些参数的配置时机和作用是至关重要的。

参数db_name(数据库名):

官方文档对db_name的介绍:DB_NAME

参数介绍:数据库名是在创建实例时指定的,不能多于8个字符。

单机环境:创建实例时指定的。

rac环境:每个rac上的实例必须有相同的值。

rac dg环境:每个rac dg上的实例与主库需要保持一致。

是否可以修改:不能修改。

    如果修改参数文件中的db_name,将orcl修改为orcldg,那么在启动数据库时报:ORA-01103: database name 'ORCL' in control file is not 'ORCLDG'。报错含义是控制文件中的数据库名称为“ORCL”,而不是“ORCLDG”。

    如果修改了参数文件,并且也通过重建控制文件修改了db_name,将orcl修改为orcldg,那那么在启动数据库时报:ORA-01161: Database name ORCL in the file header does not match ORCLDG in the DATABASE clause。报错含义是文件头中的数据库名称ORCL与Database子句中的ORCLDG不匹配,也就是说db_name是记录在了数据文件的文件头中的,所以是不能修改的哦。想要变动db_name就只能通过expdp这种逻辑迁移等。

参数db_unique_name(数据库唯一名):

官方文档对db_unique_name的介绍:DB_UNIQUE_NAME

参数介绍:DB_UNIQUE_NAME指定数据库的全局唯一名称,最多可包含30个字符。DG是以db_unique_name作为区分数据库标识的,因此主从库的该参数一定要不同以做区分。

单机环境:默认值为db_name

rac环境:默认值为db_name,并且每个rac上的实例必须有相同的值。

rac dg环境:每个rac dg上的实例与主库不同,用于dg区分数据库名,每个rac dg上的实例需要手动指定,但是每个实例都是一样的db_unique_name,不分db_unique_name+number。

是否可以修改:可以修改,一般不做修改,只有在搭建dg时才会修改,DG是以db_unique_name作为区分数据库标识的

参数service_names(服务名):

官方文档对service_names的介绍:SERVICE_NAMES

参数介绍:提供客户端用于连接到数据库的名称,客户端主要通过服务名连接到数据库。

单机环境:默认值是db_unique_name.db_domain

rac环境:默认值是db_unique_name.db_domain,每个rac上的实例必须有相同的值。

rac dg环境:每个rac dg上的实例与主库不同,便于区分是主库还是dg环境,每个rac dg上的实例需要手动指定,但是每个实例都是一样的service_names,不分service_names+number。

是否可以修改:可以修改。如果修改了,那么就是修改了客户端连接的服务名。

ps:介绍一下db_domain参数,db_domain(数据库域名称)数据库所在域,没有默认值也就是参数默认值为空,不能更改。对应db_domain参数,是为了更好的管理分布式数据库而根据实际情况决定的。

参数instance_name(SID):

官方文档对instance_name的介绍:INSTANCE_NAME

参数介绍:唯一的实例标识。客户机可以通过指定连接到数据库的特定实例来覆盖Oracle的连接负载平衡

单机环境:默认值为db_name

rac环境:每个rac上的实例为db_name+number,用于区分每个实例实现通过通过连接service_names实现负载均衡。

rac dg环境:每个rac dg上的实例与主库不同,便于区分是主库还是dg环境,每个rac dg上的实例需要手动指定db_unique_name+number,用于区分每个实例实现通过连接service_names实现负载均衡。

是否可以修改:可以修改,一般不做修改,只有在搭建dg时才会修改,为了区分。

参数global_names(全局数据库名):

官方文档对global_names的介绍:GLOBAL_NAMES

   GLOBAL_NAMES指定是否需要数据库链接具有与其连接的数据库相同的名称。如果GLOBAL_NAMES是false,则不执行检查。如果使用或计划使用分布式处理,则Oracle建议将此参数设置为true确保在网络环境中对数据库和链接使用一致的命名约定。

    数据库的完整标识符,在创建数据库的时候决定的,默认是db_name.db_domain参数的组合,在以后对参数文件中db_name和db_domain参数的任何修改不影响global_names的值,如果要修改global_names的值,只能用alter database rename global_names to <db_name.db_domain>进行修改,然后修改相应参数。

最后对oracle的name相关参数做个总结:

    db_unique_name、service_names、instance_name随便改,alter system改完之后可以启动实例,这些name都不会涉及在控制文件和数据文件头部中;但db_name不能通过alter system,如果通过参数文件改完之后导致库启动不了(ORA-01103: database name 'ORCL' in control file is not 'ORCLDG'),如果参数文件改了控制文件也重置,那么在效验数据文件时文件的头部也是不能通过的,也会报ORA-01161: Database name ORCL in the file header does not match ORCLDG in the DATABASE clause。

    db_unique_name、service_names、instance_name不会涉及在控制文件里,但db_name会涉及到控制文件和数据文件头部中。所以db_name进行异机迁移,通过rman迁移到FS还是迁移到rac环境,db_name是不能变的。想要变动db_name就只能通过expdp这种逻辑迁移等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345556.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将jpg图片大小压缩?这个方法建议收藏

如何将jpg图片大小压缩&#xff1f;平时在分享jpg图片的时候&#xff0c;如果遇到图片过大无法使用的情况&#xff0c;可以试试本文分享的这个方法&#xff0c;通过图片在线处理工具压缩jpg文件大小&#xff0c;还不会操作的小伙伴也不用担心&#xff0c;下面小编会详细介绍jpg…

2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

一、在Android的构建系统中&#xff0c;使用Android.mk构建脚本可以根据特定需求来定义宏。如果你想根据C文件的名称来插入特定的宏定义&#xff0c;可以使用条件语句检查文件名&#xff0c;并相应地设置宏。 在Android的构建系统中&#xff0c;使用Android.mk构建脚本可以根据…

C/S架构,集成三维影像后处理功能,自主版权的一套医院PACS系统源码

一、PACS简介 PACS&#xff08;PictureArchivingandCommunicationsSystem&#xff09;即图像存储与传输系统&#xff0c;是应用于医院的数字医疗设备如CT、MR&#xff08;磁共振&#xff09;、US&#xff08;超声成像&#xff09;、X光机、DSA&#xff08;数字减影&#xff09…

【C语言期末】基于VS2022的学生成绩管理系统(2)

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R&#xff0c;如有需要请私信我&#xff0c;或者加我的企鹅号&#xff1a;1404293476 本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88737450 1.题目要求 设计题目…

探索设计模式的魅力:简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF&#xff08;四人帮&#xff09;设计模式之一&#xff0c…

Java合并两个有序链表

思路&#xff1a; 创建一个临时的节点&#xff0c;命名傀儡节点&#xff0c;可以理解成临时的头节点&#xff0c;newHead&#xff0c;list1和list2的两两元素比较&#xff0c;小的连接newHead&#xff08;升序&#xff09;newHead的路径&#xff08;蓝色&#xff09;就是连接后…

第8章-第4节-Java中字节流的缓冲流

1、缓冲流&#xff1a;属于高级IO流&#xff0c;并不能直接读写数据&#xff0c;需要依赖于基础流。缓冲流的目的是为了提高文件的读写效率&#xff1f;那么是如何提高文件的读写效率的呢&#xff1f; 在内存中设置一个缓冲区&#xff0c;缓冲区的默认大小是8192字节&#xff…

VScode全局搜索屏蔽、显示屏蔽指定文件类型及文件夹

1.键盘上按快捷键“ crtl 逗号 ”启动设置界面 crtl ,设置界面显示如下&#xff1a; 2.搜索屏蔽 2.1.输入 search.exclude search.exclude 设置界面显示如下&#xff1a; 2.2. 点击下图红色箭头“Add Pattern”&#xff0c;添加想要屏蔽的文件类型或文件夹 **/*.git *…

python + selenium 初步实现数据驱动

如果在进行自动化测试的时候将测试数据写在代码中&#xff0c;若测试数据有变&#xff0c;不利于数据的修改和维护。但可以尝试通过将测试数据放到excel文档中来实现测试数据的管理。 示例&#xff1a;本次涉及的项目使用的12306 selenium 重构------三层架构 excel文件数据如…

Java项目:03 基于Springboot的销售培训考评管理系统

项目介绍 企业的销售要进行培训&#xff0c;由技术人员进行辅导并考评检测培训效果&#xff0c;所以有了这个小系统。实现了系统的登录验证、请求拦截验证、基础模块&#xff08;用户管理、角色管理、销售管理&#xff09;、业务模块&#xff08;评分管理、评分结果&#xff0…

使用 Docker 进行 Go 应用程序引导指南

为在 Docker 中部署的 Go 应用程序做准备 在使用 Go 开发 Web 应用程序时&#xff0c;无论是用于 HTTP 还是其他类型的服务&#xff0c;部署到不同的阶段或环境&#xff08;本地开发、生产环境等&#xff09;都是一个常见的考虑因素。在本文中&#xff0c;我们将探讨在 Docker …

【Matlab】在Matlab中安装优化工具yalmip的方法

最近博主想做一些关于多目标优化的问题&#xff0c;因为之前对Matlab有一定经验&#xff0c;所以直接在网上查找了如何在Matlab上实现多目标优化的文献&#xff0c;看到有人提到了yamip&#xff0c;于是博主就试着在Matlab中安装yamip&#xff0c;将其中遇到的问题和一些经验和…