1.admin\数据库名字\script\CreateDB.sql--创建数据库的脚本在这下面
listener(server)net manager
linux/unix:netmgr
2.监听就像楼的保安一样,想要拜访某个部门某个人的话,需要登记,电话确认下。
计算机工作的基本原理是进程和进程的通信。
在配置监听当中,SID和全局数据库名字不要写错了,切记保存一下。
oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN下生成listener.ora和tnsnames.ora
11g中增加了监听的日志信息,在listener.ora中
监听配置完成后,需要启动LISTENER的服务。
lsnrctl start,win7 可能创建不上这个服务。首次启动的时候会报错,因为此时没有这个服务,会创建。
lsnrctl start/stop/status/reload
没有监听,数据库连不上
在服务器上配置监听,在客户端配置服务命名。一旦连上了,监听停掉了,没有任何影响,影响的是那些还要连的。
在配置监听的时候,global name也可以不写数据库名字,写啥都可以,在实验当中,写成了a。
10g之前的版本,客户端和服务器端软件都在一起,10g之后分开啦。比如8i.
配置TNSNAMES.ORA的服务名写啥,要看监听的状态,监听对应的服务后面“a”的东西都可以。--这里的a和之前的全局数据库名a对应。
共享服务器,轮流服务。ORACLE的目的是想省资源这样就有延迟,忙不过来的时候,就需要等。效果很不好。性能显著下降。和下饭店的原理一样。
专用服务器,进程比较多。
dispatcher 调度
都配置好之后,就可以连接数据库啦。
实例的状态UNKNOWN和READY有啥区别呢?
数据库的信息要记录在监听当中。有两种方式把数据库的的信息注册在监听当中,动态的和静态的。
服务“a”,静态注册的监听,对应的实例状态是unknown,能否连上数据库不一定,如果test1是启动的,可能能连上。就像某个部门放假了,保安不知道,能
否拜访某个部门的某个人,不知道。状态是unknown,就是静态的。通过静态注册的监听能否连上数据库,监听不知道,就是unknown。静态注册的时候,明明白
白用的是sid,不是instance_name
服务“test”,状态READY,一定可以连上数据库,因为数据库起来的时候,ORACLE数据库的一个进程会自动从数据库的参数里读出这些信息注册到监听中。数
据库如果停了,就没有READY了。哪些参数呢,show parameter instance_name(实例名),show parameter service_name(服务名)。读取这两个参数来动态注
册监听。
监听当中的服务名,对应的其实是service_names。service_names可以修改,用来分担负载,连接数据库。pmon会读取这两个参数。
不管我的服务名修改成什么,ORACLE始终会数据库名和实例名来注册。始终会使用数据库名和实例名来动态注册。
静态和动态同时存在,ORACLE优先使用动态的。
小结下:动态注册监听,用的是参数,service_names和instance_name,但始终会使用数据库名和instance_name来注册。
静态注册监听,全局数据库名写啥都可以,sid必须是sid,不是instance_name。
service_names,可以通过不同的service_names把负载分担开来。可以看看哪部分业务系统负载重。
1.database
dbf,ctl,redo
db_name
dbid
select * from v$database
2.instance
select * from v$instance--这里的instance_name其实是sid
sga
pga
background process
--======================
instance_name
system identifier(sid)
sql server:
instance->db
oracle:
instance-db
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26084062/viewspace-1161879/,如需转载,请注明出处,否则将追究法律责任。