注:本文来源于 <腾科OCP培训课堂>。非准许商业活动。

标题:Oracle  相关概念

--->数据库名、实例名、数据库域名、全局数据名、服务名

一:数据库名

1:什么是数据库名

数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME 表示,
如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创
建完成之后,参数DB_NAME 被写入参数文件之中。格式如下:
DB_NAME=myorcl
           在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,
即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存
储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改
DB_NAME 的值。但是在Oracle 启动时,由于参数文件中的DB_NAME 与控制文件中的
数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

二:数据库名的作用

数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备
份与恢复数据库时都需要使用到的。

有很多Oracle 安装文件目录是与数据库名相关的,如:
           winnt: d:/oracle/product/10.1.0/oradata/DB_NAME/...
           Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
           pfile:
                     winnt: d:/oracle/product/10.1.0/admin/DB_NAME/pfile/ini.ora
                    Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
       跟踪文件目录:
                winnt: /home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
        另外,在创建数据时,careate database 命令中的数据库名也要与参数文件中DB_NAME
参数的值一致,否则将产生错误。
        同样,修改数据库结构的语句alter database, 当然也要指出要修改的数据库的名称。
如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount
方式启动实例,然后以create controlfile 命令创建控制文件,当然这个命令中也是指指
DB_NAME。
还有在备份或恢复数据库时,都需要用到数据库名。

总之,数据库名很重要,要准确理解它的作用。

三:查询当前数据名

  1. 1 1) select name from v$database;
  2. 2 2) show parameter db
  3. 3 3) 查看参数文件。

四:修改数据库名

  • 前面建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修改数据

    库名是一件比较复杂的事情。那么现在就来说明一下,如何在已创建数据之后,修改数据库

    名。步骤如下:

    1) 关闭数据库。
    2) 修改数据库参数文件中的DB_NAME 参数的值为新的数据库名。
    3) 以NOMOUNT 方式启动实例,修建控制文件(创建控制文件)
    4) 启动数据库

二、数据库实例名

(一)、什么是数据库实例名

数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互
用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt
平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。
         在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle 并行服务器架构(即
oracle 实时应用集群)中,数据库名和实例名是一对多的关系。

1. 查询当前数据名

  1. 1 1) select instance_name from v$instance;
  2. 2 2) show parameter instance
  3. 3 3) 查看参数文件。

2. 数据库实例名与ORACLE_SID

虽然两者都表是oracle 实例,但两者是有区别的。
       instance_name 是oracle 数据库参数。而ORACLE_SID 是操作系统的环境变量。

ORACLD_SID 用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须
通过ORACLE_SID。在winnt 平台,ORACLE_SID 还需存在于注册表中。
且ORACLE_SID 必须与instance_name 的值一致,否则,你将会收到一个错误,在
unix 平台,是“ORACLE not available”,在winnt 平台,是“TNS:协议适配器错误”。

(二)、数据库实例名与网络连接

数据库实例名除了与操作系统交互外,还用于网络连接的oracle 服务器标识。当你配置
oracle 主机连接串的时候,就需要指定实例名。当然8i 以后版本的网络组件要求使用的是服
务名SERVICE_NAME。这个概念接下来说明。

三、数据库域名

(一)、什么是数据库域名

在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix
或是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于

oracle 分布式环境中的复制。举例说明如:
全国交通运政系统的分布式数据库,其中:福建节点: fj.jtyz  ;
福建厦门节点: xm.fj.jtyz  ;
江西: jx.jtyz ;
江西上饶:sr.jx.jtyz;
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain.

(二). 查询当前数据名

  1. 1 1) select value from v$parameter where name = 'db_domain';
  2. 2 2) show parameter domain
  3. 3 3) 查看参数文件。

四、全局数据库名

全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz

五、数据库服务名

从oracle9i 版本开始,引入了一个新参数,数据库服务名。参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相
同。

1. 查询当前数据名

  1. 1 1) select value from v$parameter where name = 'service_name';
  2. 2 2) show parameter service_name
  3. 3 3) 查看参数文件。

2. 数据库服务名与网络连接

从oracle8i 开如的oracle 网络组件,数据库与客户端的连接主机串使用数据库服务名。
之前用的是ORACLE_SID,即数据库实例名。

Oracle 相关概念的更多相关文章

  1. Oracle 相关概念详解

    一.前言 笔者对于Oracle数据库的理解,很长时间停留在“镜花水月”的状态,你说不懂吧,又会用,一较真起来吧,对一些基本概念又说不出一个道道来~如果想要在编码的路上走得更远,这个必定也是绕不过的坎, ...

  2. 数据库之Oracle的介绍与使用20180620

    /*******************************************************************************************/ 一.orac ...

  3. OCP 相关课程列表

    OCP 相关课程列表 第一天:Linux基础 和 Oracle 11 R2 数据库安装教程图解 1:< VM 安装 linux Enterprise_R5_U4_Server_I386_DVD教 ...

  4. oracle数据库相关概念介绍

    数据库相关概念介绍: 问题: 数据存储:变量(基本类型,引用类型) 基本类型:少量数据 引用类型:保证数据的完整性 数据源: 声明直接赋值 IO流从硬盘中读取 java在处理数据时,需要从硬盘中读取数 ...

  5. Oracle网络相关概念与常用配置文件

    监听器(Listener) 监听器是Oracle基于服务端的一种网络服务,主要用于监听客户端向数据库服务器提出的链接请求. 本地服务名(Tnsname) Oracle客户端与服务器端的链接是通过客户端 ...

  6. Oracle执行计划详解

    Oracle执行计划详解 --- 作者:TTT BLOG 本文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html --- 简介:   ...

  7. ORACLE执行详解

    本文源自TTT BLOG,原文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html 简介:     本文全面详细介绍oracle执行计 ...

  8. Java笔记1-Java相关概念和如何实现跨平台

    一.Java相关概念 1.Java语言的核心特点跨平台面向对象 2.Java的历史版本JDK1.0,JDK1.1,JDK1.2....JDK5.0,JDK6.0,JDK7.0,JDK8.0 注意:JD ...

  9. oracle 执行计划详解

    简介:     本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容.     并有总结和概述,便于理解与记忆! +++ 目录 ---     一.相关的概念    ...

随机推荐

  1. MFC中运行出现问题“不支持尝试执行的操作”

    http://blog.csdn.net/maturn/article/details/8051987 问题描述: 基于CDialogEx的对话框工程.VS2010开发环境. 调试运行到OnInitD ...

  2. python备份网站,并删除指定日期文件

    #!/usr/bin/python# Filename: backup_ver1.pyimport osimport timeimport datetime# 1. The files and dir ...

  3. SQL Server 关于CROSS APPLY 和 OUTER APPLY应用

    先看看语法: <left_table_expression>  {cross|outer} apply<right_table_expression> 再让我们了解一下appl ...

  4. 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数

    over(Partition by...) 一个超级牛皮的ORACLE特有函数. 天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊! oracle的分析函数over ...

  5. linux 出现ping,错误提示:connect :network is unreachable

    今天克隆Centos7后  修改IP地址 修改前: IP:172.16.0.198   默认网关:172.16.0.254 修改后: IP:172.16.1.100  默认网关:172.16.0.25 ...

  6. 关于Java形参和实参的理解

    源码地址:https://github.com/mynawang/javabasic-summary/tree/master/chapter01 1.方法的形参中,java的基本数据类型是传值调用,对 ...

  7. JAVA记录-redis缓存机制介绍(三)

    Redis 事务 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的 ...

  8. CodeForces - 327D Block Tower

    D. Block Tower time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  9. Java编程思想 学习笔记4

    四.控制执行流程 1.true和false 所有条件语句都利用条件表达式的真或假来决定执行路径.注意Java不允许我们将一个数字作为布尔值使用. 2.if-else 3.迭代 while.do-whi ...

  10. android kotlin Gradle DSL method not found: '1.2.51()'错误,be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).

    同步的时候遇到这个问题,从log上看是因为gradle的版本不包含kotlin 1.2.51这个method,具体原因我也不是很清楚,大概猜测是kotlin版本的问题,而最新的版本就是1.2.51,所 ...