分类: Oracle
2015-10-22 08:27:22
select name from v$controlfile; #可以查看到控制文件存放位置。
ORACLE_SID
细心的朋友可以发现,2.3中有个问题:2中讲的是instance_name,但2.3存储的却是oracle_sid。
因为从名称上来说,instance_name=oracle_sid。对于数据库实例名的描述,有时使用instance_name,有时使用oracle_sid,这两个都是数据库实例名。但instance_name是oracle数据库参数,而oracle_sid是操作系统环境变量。
select name from v$datafile; #可以查看到数据文件存放位置。
show parameter pfile #查看参数配置文件位置
一、数据库名
就是在你安装oracle软件过程中创建的数据库,或者是安装完后,自己再创建的数据名称。主要用于一个oracle中安装了多个库,
他们之间的区分。一个库会在windows的服务中生成一个oracle_service.数据库名是在安装数据库、创建新的数据库、创建数据库控
制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
select name from v$database; #查看当前数据库名称
show parameter db #查看当前数据库名称
二、数据库实例名
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件
中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。数据库名和实例名可以相同也可以不同。在一般情况下,
数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
(就是一个oracle中创建多个库的时候,每个库和操作系统之间通信的身份标示,和我们用户没有关系嘀!)
查询当前数据库实例名
select instance_name from v$instance;#查看当前数据库实例名
show parameter instance #查看当前数据库实例名
三、数据库域名
9i/10g中新引进参数。在数据库名称后面增加域名构成,类似网络中的域名,使数据库的取名在整个网络环境中唯一。域名主要用于分布式数据库中数据库之间的连接。例如,在一个网络中有两个数据库,数据库名都是orcl,若这连个数据库之间要建立连接,则必须使用不同的域名加以区分。
在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库
链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。
举例说明如:
全国交通运政系统的分布式数据库,其中:
福建节点: fj.jtyz
福建厦门节点: xm.fj.jtyz
江西: jx.jtyz
江西上饶:sr.jx.jtyz
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain
查询数据库域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
当同一网络中两个数据库的global_dbname相同时,可以通过修改域名和服务名的方式进行调整(当然也可以修改数据库名,不过太繁琐)。
修改完毕后,需修改监听中的全局数据库名,并重启监听(见8中例子)。
8. 举例
(1) 创建一个数据库,全局数据库名为ora.world,SID(实例名)为orasid。见图1。
(2) 创建完毕后,使用服务名(全局数据库名)建立网络连接。见图2、图3。
(4) 修改全局数据库名(修改域名和服务名)
SQL> alter system set db_domain='''' scope=spfile;
系统已更改。
SQL> alter system set service_names=''ora'' scope=spfile;
系统已更改。