实例 就是管理相关库的内存结构的名字(由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 IDENTIFIED
BY PASSWORD创建的用户是一个概念吗?若不是一样的话,他们有什么区别?
还有,ORCLE是通过什么机制来控制用户的最大数量的?要是我买了8个用户的,我
能开12个用户吗?
能给我的EMAIL吗?
1、主机字符串
2、是的,但不输也行,引用ODBC名时再给出也可以
3、不是,“用户数”指的是并发访问用户数
(我理解是同时间访问同一个内存地址的进程数)
买8个用户,建几十、上百个用户也没问题,只要峰值达不到并发数就可以了
(这里的用户数不是Oracle内部的自己建立的那种用户,应该是进程数)
(多台机器,每个Oracle内部用户多次调用,开多个进程)