如何区分Oracle的数据库,实例,服务名,SID
Oracle的几个概念数据库名,全局数据库名,SID,实例,命名空间,schema

库并没有启动,需要用open去启动数据库;一个实例只能对应一个数据库,一个数据库可以用多个实例;命名空间,有点复杂。命名空间定义了一组对象类型,在命名空间里,对象的名
Oracle9i 数据库的全域数据库名称;在您更改 DB_NAME 与 DB_DOMAIN 这两个起始参数后必须将 Oracle9i 数据库重新激活才会生效。此外,控制档也必须重新建立。 关于 DB_NAME
起始参数DB_NAME必须是文字字符串,且不能超过 8 个字符。在建立数据库的过程中,DB_NAME设定值会记录在资料文件、控制文件、以及重置日志文件之中。如果您激活 Oracle9i
的视图,至少,在一个schema中是不可能出现这种现象的;下面的对象类型有各自的命名空间:? Indexes? Constraints? Clusters? Database triggers? Private database links?
Dimensions所以你可以创建一个叫做myObject1的索引,即使在相同的schema中;不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:? User roles?
而「网域名称」则是设定于 DB_DOMAIN 参数。这两个参数合并之后就可以在网际网络上唯一识别每一个 Oracle9i 数据库。举例来说,假设我们欲建立的 Oracle9i 数据库之全域数据库
名称为 ,那么可在起始参数档内设定下列两参数:DB_NAME = mydbDB_DOMAIN = Tips: 您可以执行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改
oracle下的数据库实例、表空间、用户及其表的区分

oracle下的数据库实例、表空间、⽤户及其表的区分完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
1) 数据库是⼀系列物理⽂件的集合(数据⽂件,控制⽂件,联机⽇志,参数⽂件等);2) Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。
在启动Oracle数据库服务器时,实际上是在服务器的内存中创建⼀个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据⽂件。
Oracle有⼀个很⼤的内存快,成为全局区(SGA)。
⼀、数据库、表空间、数据⽂件1、数据库数据库是数据集合。
Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。
通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。
也即物理数据、内存、操作系统进程的组合体。
我们在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库)如下图:全局数据库名:就是⼀个数据库的标识,在安装时就要想好,以后⼀般不修改,修改起来也⿇烦,因为数据库⼀旦安装,数据库名就写进了控制⽂件,数据库表,很多地⽅都会⽤到这个数据库名。
启动数据库:也叫全局数据库,是数据库系统的⼊⼝,它会内置⼀些⾼级权限的⽤户如SYS,SYSTEM等。
我们⽤这些⾼级权限账号登陆就可以在数据库实例中创建表空间,⽤户,表了。
查询当前数据库名:select name from v$database;2、数据库实例⽤Oracle官⽅描述:实例是访问Oracle数据库所需的⼀部分计算机内存和辅助处理后台进程,是由进程和这些进程所使⽤的内存(SGA)所构成⼀个集合。
其实就是⽤来访问和使⽤数据库的⼀块进程,它只存在于内存中。
就像Java中new出来的实例对象⼀样。
我们访问Oracle都是访问⼀个实例,但这个实例如果关联了数据库⽂件,就是可以访问的,如果没有,就会得到实例不可⽤的错误。
oracle sid与实例

oracle sid与实例
Oracle中的SID(System Identifier)是一个唯一标识数据库实例的字符串。
它用于在数据库环境中区分不同的数据库实例。
每个Oracle数据库实例都会分配一个唯一的SID,以便在系统上唯一标识该实例。
在Oracle数据库中,SID用于标识一个特定的数据库实例,并与该实例相关联。
它是Oracle实例名的一部分,通常与实例名一起使用,以唯一标识一个数据库实例。
要查找Oracle数据库的SID,可以使用多种方法。
其中一种常见的方法是查询Oracle的动态性能视图(Dynamic Performance Views),例如v$instance视图。
通过查询该视图,可以找到包含SID信息的记录。
此外,还可以通过其他工具和命令来查找Oracle数据库的SID。
例如,可以使用Oracle的SQL*Plus工具,并通过管理员权限连接到数据库,然后执行相应的查询命令来获取SID信息。
需要注意的是,SID是数据库系统的重要组成部分,并且对于数据库的管理和维护至关重要。
因此,在管理Oracle数据库时,需要正确配置和识别SID,以确保数据库的正常运行和管理。
Oracle数据库名、实例名、Oracle_SID

Oracle数据库名、实例名、Oracle_SID本⽂参考⾃,纯属读书笔记,加深记忆在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。
在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。
这些都存在于同⼀个数据库中的标识,⽤于区分不同数据库的参数。
1、数据库名数据库名是⽤于区分数据的标识,是以⼆进制形式存储于数据库控制⽂件中的参数,在数据库安装或者创建之后不得修改,在数据库创建之后,该参数将被写⼊到数据库控制参数⽂件pfile中,其基本格式如下:.........db_name="orcl" #(不允许修改)db_domain=instance_name=orclservice_names=control_file=(........................注:每⼀个运⾏Oracle 8i及以上的数据库都有⼀个数据库名。
但如果服务器程序创建了两个数据库,那么就会有两个数据库名,它们分别存储与不同的数据库控制参数⽂件pfile中,分别控制着对应的数据库。
2、数据库实例名数据库实例名是⽤于和操作系统之间的联系,⽤于对外部连接时使⽤。
在操作系统中,要取得于数据库之间的联系必须通过实例名。
⽐如:要和某⼀个数据库Server进⾏连接,必须通过实例名,只知道数据库名是没⽤的,与数据库名不同的是,数据库实例名在数据库的安装或者创建之后,是可以被修改的。
数据库在安装之后,对应的实例名会被写⼊到数据库控制参数⽂件pfile(格式如下代码块)中,可以通过修改这个⽂件,来修改Oracle数据库的实例名,当然,数据库名是不能修改的!db_name="orcl" #(数据库名:不允许修改)db_domain=instance_name=orcl #(数据库实例名:可以修改,可以与db_name相同也可不同)service_names=control_file=(........................3、数据库名和实例名之间的关系a、数据库名于实例名之间的关系⼀般是⼀⼀对应,有⼀个数据库名,就有⼀个实例名。
Oracle 11g for Windows的安装与配置

Oracle 11g for Windows的安装与配置数据库管理系统的安装与升级是一项比较复杂的任务。
为了使Oracle 11g数据库系统可以安装在多种平台上,Oracle提供的Oracle Universal Installer(Oracle通用安装工具,OUI)是基于Java技术的图形界面安装工具,利用它可以完成在不同操作系统平台上的、不同类型的、不同版本的Oracle数据库软件的安装。
无论是Windows NT/XP/2003、Sun Solaris、HP UNIX、Digital UNIX、VMS还是OS/390都可以通过使用OUI以标准化的方式来完成安装任务。
本节主要介绍如何在Windows平台上安装和配置Oracle数据库服务器。
Oracle 11g数据库服务器由Oracle数据库和Oracle例程组成。
安装数据库服务器就是将管理工具、网络服务、实用工具、基本的客户机软件等部分,或者将相应的文件从安装盘复制到计算机硬盘的文件夹结构中,并创建数据库、配置网络、启动服务等。
Oracle 11g数据库服务器有两种安装方式:高级安装和基本安装。
由于基本安装比较简单,配置参数较少,用户只需要按照Oracle 11g的安装步骤要求一步一步往下安装就可以了,而高级安装较为复杂。
下面以高级安装为例进行介绍,其安装步骤如下:(1)运行安装文件夹中的Setup.exe命令,将启动Universal Installer,出现Oracle Universal Installer自动运行窗口,即快速检查一次计算机的软件、硬件安装环境,如果不满足最小需求,则返回一个错误并异常终止。
如图1-7所示。
图1-7 Oracle Universal Installer自动运行窗口(2)当OUI检查完软、硬件环境之后,出现【选择要安装的产品】窗口,如图1-8所示。
图1-8 选择要安装的产品如果想快速地安装Oracle 11g数据库,可以单击【基本安装】单选按钮,再输入数据库登录密码,然后单击【下一步】按钮开始基本安装。
ORACLE数据库与实例的关系

ORACLE数据库与实例的关系1 数据库名1.1 数据库名的概念数据库名(db_nam e)就是一个数据库的标识,就像人的身份证号一样。
如果一台机器上装了多个数据库,那么每一个数据库都有一个数据库名。
在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。
数据库名在$O racle_HOME/admin/db_nam e/pfile/init.ora(或$ORACLE_BASE/admin/db_nam e/pfile/init.ora或$ORACLE_HOME/dbs/SPFILE<实例名>.ORA)文件中############################################ Databa se Identi ficat ion###########################################db_dom ain=""db_nam e=orcl在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。
因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。
假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。
但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。
1.2 数据库名的作用数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的(注意这些时候不能使用s i d,还有alte r databa se时都是使用数据库名)。
有很多Oracle安装文件目录是与数据库名相关的,如:winnt: F:\oracle\produc t\10.2.0\oradat a\DB_NAM E\...又如参数文件p file:winnt: F:\oracle\produc t\10.2.0\admin\DB_NAM E\pfile\init.ora.54200885729如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create contro lfile命令创建控制文件,当然这个命令中也要指明D B_NA ME。
ORACLE_SID
详解:oracle10G 数据库名、实例名、ORACLE_SID【转载】数据库名、实例名、数据库域名、全局数据库名、服务名,这是几个令很多初学者容易混淆的概念。
相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。
我们现在就来把它们弄个明白。
一、数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样。
他用参数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.oraUnix: /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参数的值一致,否则将产生错误。
ORACLE_SID_实例名_数据库名
ORACLE_SID_实例名_数据库名详解:oracle10G 数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名.一、数据库名Db_name数据库= 重做文件+ 控制文件+ 数据文件+ 临时文件数据库是永久的,是一个文件的集合。
数据库名就是一个数据库的标识,就像人的身份证号一样。
它用参数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/i nit$ORA CLE_SID.ora跟踪文件目录:winnt:/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/... 另外,在创建数据时,careate database命令中的数据库名也要与参数文件中DB_NAME参数的值一致,否则将产生错误。
数据库名、实例名、数据库域名、全局数据库名、服务名
另外,在创建数据时,careate database命令中的数据库名也要与参数文件中DB_NAME参数的值一致,否则将产生错误。
同样,修改数据库结构的语句alter database, 当然也要指出要修改的数据库的名称。
方法二:show parameter domain
方法三:在参数文件中查询。
全局数据库名
全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz
四、数据库服务名
什么是数据库服务名?
从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在参数文件中查询。
如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也是指指DB_NAME。
还有在备份或恢复数据库时,都需要用到数据库名。
总之,数据库名很重要,要准确理解它的作用。
查询ቤተ መጻሕፍቲ ባይዱ前数据名
服务摘要..
服务 "" 包含 1 个例程。
什么是数据库实例
什么是数据库实例⼀、通俗解释⾸先说说,数据库是做什么?数据库是⽤来长久存储数据的,⽽我们⼤家都知道内存只能临时存储,磁盘等才能真正存储数据.那数据库会放那⾥呢?肯定是存放在磁盘上,其实数据库就是磁盘上的⼀个⽂件。
从上⾯我们得出结论:数据库==磁盘上的⽂件.既然数据库可以看成磁盘上⽂件,我们怎么使⽤数据库呢?如果说我们可以直接使⽤数据库,那就等价与直接使⽤磁盘上的⽂件.我们知道这样的⼀个常识:必须把磁盘上的⽂件读⼊内存才能使⽤.这就与我们以前所知道的⼀个常识相违背了.那正确的流程是不是应该这样呢?把磁盘上⽂件先读⼊内存,然后再使⽤呢.对了,这个才是使⽤数据库的正确流程.数据库如何读⼊内存呢?这个时候,就是我们要介绍的instance(实例)了.实例就是内存结构和⼀组后台进程.实际上,正常的数据库读⼊内存的过程是,由实例中⼀组后台进程从磁盘上将数据⽂件读⼊到实例的内存中,然后经过在内存中对数据的操作再从实例的内存中经过⼀组后台进程写到数据库中.那实例相对与数据库⽽⾔,应该就是数据库的运⾏环境(随不准确但也很贴切).⼆、专业解释实例是“内存”和“后台进程”的集合。
数据库是数据的物理存储。
特别注意,⼀个实例可以⽤于⼀个数据库,多个实例也可以同时⽤于⼀个数据库,实例和数据库的关系是⼀对多的关系。
举个例⼦,如果把数据库⽐作⼀架飞机,实例就是飞机的发动机。
那么,⼀台发动机可以驱动飞机,两台发动机也可以同时驱动⼀架飞机。
多个“实例”同时驱动⼀个“数据库”的架构叫“集群(Oracle real application clusters,简称RAC)”,这是Oracle的⼀种⾼端应⽤,如果结合磁盘阵列的保护机制,RAC能最⼤限度的保护我们的应⽤不间断运⾏,数据不丢失。
什么是数据库,其实很简单,数据库就是存储数据的⼀种媒介。
⽐如常⽤的⽂件就是⼀种,在Oracle10G中,数据的存储有好⼏种。
第⼀种是⽂件形式,也就是在你的磁盘中创建⼀批⽂件,然后在这些⽂件中存储信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是数据库,其实很简单,数据库就是存储数据的一种媒介。
比如常用的文件就是一种,在Oracle10G中,数据的存储有好几种。
第一种是文件形式,也就是在你的磁盘中创建一批文件,然后在这些文件中存储信息。
第二种就是磁盘阵列形式,这个是什么意思呢,这个就是说明数据库不是存放为某个文件,而是把一个或者多个磁盘格式化成Oracle的一种格式了,等于整个磁盘就是存放Ora cle数据库的,不能作为别的用途。
这样的优点是存储性能高,因为不再借助别的文件格式了,而是把整个磁盘都成为Oracle最适应的文件系统格式。
当然还可能有别的形式,比如网络什么的。
不过我们最常用的还是文件格式的,在文件格式中,数据库指的就是那些数据文件,控制文件以及REDO文件等等一系列文件。
而什么是Instance呢,Instance其实就是指的操作系统中一系列的进程以及为这些进程所分配的内存块。
在Oracle中,我们可以新建一个Oracle的Insta nce,这个时候虽然有了进程还有SGA等一系列的内存快,但是这个时候并没有把数据库文件读取进来。
所以只是一个实例,在后来,你可以通过命令手动或者自动地把数据库文件加载进我们的数据库Instance中,这个时候的数据库才可以让我们真正的开始访问操作。
所以说,数据库的应用如果想实现,数据库和数据库Instance是缺一不可的,如果只有数据库的那些文件,那么,只能代表数据在这个文件中,但是我们无法直接进行操作。
而如果只有数据库Instance,那么我们虽然可以急性操作,但是也不知道操作哪些数据,操作生成的数据也无法保存等等。
所以,当一个Or acle Instance真正Load了一个Oracle Database了以后,数据库才可以被我们使用。
在这里要注意一点的是,Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。
否则肯定要抛除ORA-16169错误,说数据库已经被打开。
因为一个数据库Instance在其生存期中最多只能load和打开一个instance.刚接触ORACLE的人肯定会对实例和数据库感到困惑,实例到底代表些什么?为什么会有这个概念的出现?ORACLE实例= 进程+ 进程所使用的内存(SGA)实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!数据库= 重做文件+ 控制文件+ 数据文件+ 临时文件数据库是永久的,是一个文件的集合。
ORACLE实例和数据库之间的关系1. 临时性和永久性2. 实例可以在没有数据文件的情况下单独启动startup nomount , 通常没什么意义3. 一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库4. 一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!下面对实例和数据库做详细的诠释:在Oracle领域中有两个词很容易混淆,这就是“实例”(instance)和“数据库”(database)。
作为Oracle术语,这两个词的定义如下:数据库(database):物理操作系统文件或磁盘(disk)的集合。
使用Oracl e 10g的自动存储管理(Automatic Storage Management,ASM)或RA W分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。
实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。
这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。
就算没有磁盘存储,数据库实例也能存在。
也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。
这两个词有时可互换使用,不过二者的概念完全不同。
实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。
实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库!稍后就会介绍这样的一个例子。
是不是更糊涂了?我们还会做进一步的解释,应该能帮助你搞清楚这些概念。
实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。
这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。
在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。
大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。
不过,Oracle的真正应用集群(Real Application Clusters,RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上操作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。
由此,我们可以同时从多台不同的计算机访问这个数据库。
Ora cle RAC能支持高度可用的系统,可用于构建可扩缩性极好的解决方案。
实例就是治理相关库的内存结构的名字(由SGA、PGA、服务器进程、用户进程、后台进程等组成)数据库就是实际的磁盘上的文件(数据文件、日志文件、控制文件等),负责保存数据,但由对应的实例来操作它的数据服务名就是对外公布的名称,为网络监听服务其实,在我们传统的概念里,数据库是一个统称的名字,在Oracle中,你可以把“数据库”理解成一个大概念,也要把它理解成一个小概念1、一个Oracle数据库系统中可以同时安装几个数据库,每一个数据库对应一个唯一的实例,但是OPS系统除外,可以多个实例同时对一个数据库操作,称为并行服务器2、只是一个名字,SID即是INSTANCE_NAME,SERVICE_NAMES主要用在监听器中,为了方便吧,有些是为了传统习惯的延续,有些是为了更方便的使用3、NET EASY CONFIG操纵的应该是主机字符串,是为客户端服务的一个数据库可以对外公布多个服务名(SERVICE_NAMES)一个客户端也可以用多个主机字符串连接到同一个数据库服务器上4、一个OS上可以装多个Oracle数据库(小的概念),每个库可以对外公布多个服务名,都通过init.ora和listener.ora来实现今天运气真好,竟碰到了高手。
我得抓紧时间。
那么再问:假如按你的解释,主机字符串,数据库服务名,数据库别名应该是同一个概念吧?不太一样service_names是对外的服务名,是服务器端使用的,一个库可以设置多个对外服务名,以实现不同的目的“主机字符串”的叫法主要在SQL*Plus中使用,是在客户端使用,“数据库别名”主要用在一些开发工具连接Oracle服务器时使用,是通俗叫法还有像配置ODBC时的Data Source的Service Name,它们都是一个道理,指向的都是客户端tnsnames.ora文件中的一小段文本差不多明白了。
但我还要问:1。
在SQL/PLUS中的登陆中,用USER/PWD@***,那么,这个***是什么呢?是主机字符串还是服务名呢?2。
在设置ODBC时的用户和密码是不是一定要是ORACLE中的合法用户和密码?3。
若要向ORACLE代理商购买ORACLE,是以用户数来算钱的。
那么,这个“用户”跟我们在ORACLE中通过CREATE USER USERNAME I DENTIFIEDBY PASSWord创建的用户是一个概念吗?若不是一样的话,他们有什么区别?还有,ORCLE是通过什么机制来控制用户的最大数量的?要是我买了8个用户的,我能开12个用户吗?能给我的EMAIL吗?1、主机字符串2、是的,但不输也行,引用ODBC名时再给出也可以3、不是,“用户数”指的是并发访问用户数(我理解是同时间访问同一个内存地址的进程数)买8个用户,建几十、上百个用户也没问题,只要峰值达不到并发数就可以了(这里的用户数不是Oracle内部的自己建立的那种用户,应该是进程数)(多台机器,每个Oracle内部用户多次调用,开多个进程)打个比方,你的名字叫小明,但是你有很多外号。
你父母叫你小明,但是朋友都叫你的外号。
这里你的父母就是oracle实例,小明就是sid,service name就是你的外号。
sid用于实例区分各个数据库,service name用于外部链接。
对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库。
这两概念不同于SQL sever下的实例与数据库,当然也有些相似之处。
只是在SQL server我们根本不需要花费太多的精力去搞清SQL实例和数据库,因为它简单易于理解。
下面简要说明一下SQL实例、数据库,更多的是讲述Oracle下的实例及数据库。
一、SQL server中的实例与数据库1.SQL中的实例指的是一个SQL server服务器上仅有一个缺省实例。
缺省实例名即为机器名ServerName(或IP),如果在同一台机器上再安装SQL server,我们可以对实例命名如ServerName/InstanceName。
即一台SQL server服务器上可以存在多个不同的实例。
一个实例下可以存在多个不同的数据库。
对于不同实例下的数据库的访问,使用ServerName/InstanceName:P ortNo即可实现访问,缺省实例为ServerName:PortNo。
2.对不同的实例配置IP地址,相关的访问协议,端口等等。
3.实例的可访问性需要启动该实例对应的相关服务。
此处需要注意的是实例名和实例的服务名并不是相同的。
缺省的实例的服务名为MSSQLSERVER,而命名实例的服务名为MSSQL$INSTANCE_NAME。
4.实例的相关功能性的设置可以通过外围应用配置来实现。
5.上述完成后,即可实现对数据库的访问。
二、Oracle 实例一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。
即:Oracle Server = Oracle Instance + Oracle DatabaseOracle实例包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例即:Oracle Instance = SGA + Background ProcessOracle内存结构包含系统全局区(SGA)和程序全局区(PGA)即Oracle Memory Structures = SGA + PGASGA由服务器和后台进程共享PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。