原文转载于:http://fluagen.blog.51cto.com/146595/159996
常被oracle的几个概念搞得很晕,和公司做pl/sql的同事讨论后,又到网上搜索下,现将个人对这几个概念的理解做个笔记:
先通俗的解释下数据库这个概念,数据库就是存储在磁盘上的文件,这些文件中保存的数据有一定的物理结构和逻辑结构。
数据库名 就是数据库的名称标识,如myOracle, 这种叫法一般只适用于单机;
全局数据库名 就是数据库处于一个网络中的名称标识。比如数据库宿主机的域为mydomain,
则数据库的全局数据库名为myOracle.mydomain;
实际上myOracle和myOracle.mydomain两者指的是同一个数据库.
即:全局数据库名 = 数据库名+"."+网络位置(宿主机所在的域)
设定全域数据库名称
Oracle9i 的全域数据库名称
由「数据库名称」与「网域名称」所组成,其中「数据库名称」设定于 DB_NAME 起始参数,而「网域名称」则是设定于 DB_DOMAIN 参数。这两个参数合并之后就可以在网际网络上唯一识别每一个 Oracle9i 数据库。举例来说,假设我们欲建立的 Oracle9i 数据库之全域数据库名称
为 mydb.uuu.com.tw,那么可在起始参数档内设定下列两参数:
DB_NAME = mydb
DB_DOMAIN = uuu.com.tw
Tips:
您可以执行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改 Oracle9i 数据库的全域数据库名称;在您更改 DB_NAME 与 DB_DOMAIN 这两个起始参数后必须将 Oracle9i 数据库重新激活才会生效。此外,控制档也必须重新建立。
关于
DB_NAME
起始参数
DB_NAME
必须是文字字符串,且不能超过 8 个字符。在建立数据库的过程中,DB_NAME
设定值会记录在资料文件、控制文件、以及重置日志文件之中。如果您激活 Oracle9i Instance 的时候,起始参数档内设定的DB_NAME
不同于控制文件内所纪录的,那么数据库将无法激活。
关于
DB_DOMAIN
起始参数
DB_DOMAIN
通常是数据库主机所在位置的网域名称。如果您欲建立的数据库将加入分布式数据库运算环境,请特别注意此参数的设定。
SID = Oracle实例
SID是Oracle实例的唯一名称标识,
用户去访问数据库,实际上是向某一个Oracle实例发送请求,oracle实例负责向数据库获取数据。
Oracle实例 = 内存结构+后台进程,所以Oracle实例是临时性的;
可以通过startup nomount去启动实例,但是注意这时Oracle数据库并没有启动,需要用open去启动数据库;
一个实例只能对应一个数据库,一个数据库可以用多个实例;
命名空间,有点复杂。
命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使用相同的的名字的。
下面的对象类型共享同一个命名空间:
• Tables
• Views
• Sequences
• Private synonyms
• Stand-alone procedures
• Stand-alone stored functions
• Packages
• Materialized views
• User-defined types
因此,如果数据库中有一个表叫做myObject1,那么就不能再创建一个叫做myObject1的视图,至少,在一个schema中是不可能出现这种现象的;
下面的对象类型有各自的命名空间:
• Indexes
• Constraints
• Clusters
• Database triggers
• Private database links
• Dimensions
所以你可以创建一个叫做myObject1的索引,即使在相同的schema中;
不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:
• User roles
• Public synonyms
• Public database links
• Tablespaces
• Profiles
• Parameter files (PFILEs) and server parameter files (SPFILEs)
所以两个Non-schema objects可以用相同的名字。
Schema是基于用户的, 在数据库中创建一个用户,就创建了一个和用户名相同的Shema。
Namespace是基于数据库的.
分享到:
相关推荐
以上六个概念在Oracle数据库中非常重要,正确理解和使用它们有助于更好地管理数据库。需要注意的是,虽然这些概念在功能上有所不同,但在实际应用中可能会出现重叠或相互依赖的情况。例如,数据库服务名和服务实例名...
Oracle中的锁主要分为以下几类: 1. **DML锁**:DML(Data Manipulation Language)锁主要用于控制对数据的操作,确保并发操作的一致性。这类锁包括但不限于行级锁和表级锁等。 2. **DDL锁**:DDL(Data Definition...
手册的核心内容可能包括以下几个方面: 1. **数据库概念**:介绍数据库的基本概念,如表、视图、索引、存储过程和触发器等。这些是构建和管理数据库的基础,理解它们对于数据库设计和优化至关重要。 2. **Oracle...
RAC 的结构主要包括以下几个关键组件: 1. **共享存储**:所有数据库实例共享同一份存储资源,这通常是通过 SAN 或 NAS 实现的。 2. **私有网络**:用于数据库实例间的通信,确保集群内部高效地协调工作。 3. **...
### Oracle基本概念详解 #### 一、数据库(Database) Oracle数据库是一种关系型数据库管理系统,它能够高效地处理大量的数据。在物理层面上,Oracle数据库由多种文件构成,主要包括数据文件(Data Files)、控制文件...
接下来将对手册中的几个关键章节进行深入解析,以帮助读者更好地理解Oracle数据库的核心概念。 ### 第一部分 何为Oracle? #### 第1章 Oracle数据库简介 这一章节主要介绍Oracle数据库的基本概念,包括其发展历程...
SQL是Oracle 9i的核心组成部分之一,其重要性体现在以下几个方面: - **数据检索**:使用SQL语句可以从数据库中检索所需的数据。 - **数据更新**:SQL允许用户更新数据库中的现有数据。 - **数据定义**:可以通过...
Oracle网络涉及一系列重要的概念,这些概念...每个概念都有其特定的作用和应用场景,正确配置和使用它们能确保数据库的稳定运行和高效管理。在实际工作中,了解这些区别可以帮助我们更有效地排查问题和优化系统性能。
本篇文章将基于提供的文档标题和描述,深入探讨Oracle 11g的几个关键知识点。 1. **Oracle数据库概念** (Oracle Database Concepts) 这部分文档主要介绍了Oracle数据库的基础概念和架构,包括: - **数据库模型**...
在Oracle数据库中,计算某个日期属于其前一个月中的第几个自然周是一项常见的需求,这在数据分析、报表生成或业务逻辑处理中很有用。这个任务可以通过编写一个自定义函数来实现,例如提供的`to_week_by_month.fnc`...
Cluster 管理器软件提供了管理几个 servers 的功能,像管理一个 server 一样简单。 2. 什么是 Oracle Real Application Cluster(RAC)? RAC 是一个软件,可以使你通过运行多个依赖相同 Database 的 Instance,...
本文将深入探讨Oracle数据库中的几个关键概念,包括`DB_NAME`、`INSTANCE_NAME`、`ORACLE_SID`、`GLOBAL_NAME`、`DB_DOMAIN`、`SERVICE_NAME`以及`NET_SERVICE_NAME`,帮助读者全面理解这些概念及其在Oracle数据库...
标题“Oracle 获取某日期...获取某日期在一年中的第几个自然周,需要理解ISO周的概念,并结合`EXTRACT`、`TRUNC`等函数进行计算。通过学习和使用这些函数,我们可以更好地对日期数据进行分析和处理,满足各种业务需求。
为帮助用户更好地理解和使用 Oracle 11g,我们将从以下几个方面对 Oracle 11g 的概念进行详细介绍。 数据库管理系统(DBMS) 数据库管理系统(DBMS)是指管理和存储数据的软件系统。DBMS 提供了一个强大的平台,...
1. **Oracle函数**:函数是可重用的代码块,返回一个值。在`v_ceshiFunction.sql`和`v_ceshiFunction(表名当参数).sql`中,可能包含了自定义函数的创建和使用示例。函数可以接受参数,执行特定操作,然后返回结果。...
Checkpoint 过程主要包括以下几个步骤: 1. **Redo Buffer 刷盘**:Redo Buffer 中的内容被刷到 Redo Log Files 中。 2. **Redo Log Files 中的 Checkpoint 记录**:在 Redo Log Files 中记录当前的 Checkpoint ...