Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302346
  • 博文数量: 84
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 16:46
文章分类

全部博文(84)

文章存档

2017年(2)

2016年(4)

2015年(78)

我的朋友

分类: Oracle

2015-10-22 08:27:22

select name from v$controlfile;      #可以查看到控制文件存放位置。
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              #查看当前数据库实例名

    ORACLE_SID

细心的朋友可以发现,2.3中有个问题:2中讲的是instance_name,但2.3存储的却是oracle_sid

因为从名称上来说,instance_name=oracle_sid。对于数据库实例名的描述,有时使用instance_name,有时使用oracle_sid,这两个都是数据库实例名。但instance_nameoracle数据库参数,而oracle_sid是操作系统环境变量。

Oracle_sid用于和操作系统交互。也就是说,在操作系统中要想得到实例名,必须使用oracle_sid。例如同一服务器上创建了多个数据库,则就有多个对应的实例,可以通过在操作系统中设置oracle_sid指定要登录的数据库:

三、数据库域名
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

四、全局数据库名
  全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz

当同一网络中两个数据库的global_dbname相同时,可以通过修改域名和服务名的方式进行调整(当然也可以修改数据库名,不过太繁琐)。

修改完毕后,需修改监听中的全局数据库名,并重启监听(见8中例子)。

8. 举例

1 创建一个数据库,全局数据库名为ora.worldSID(实例名)为orasid。见图1

2 创建完毕后,使用服务名(全局数据库名)建立网络连接。见图2、图3

4 修改全局数据库名(修改域名和服务名)

SQL> alter system set db_domain='''' scope=spfile;

系统已更改。

SQL> alter system set service_names=''ora'' scope=spfile;

系统已更改。
(注释:一般情况下我们开发中用到的数据库是单数据库实例,就是oracle中只有一个库。这个时候大部分都有:
 数据库服务名 = 全局数据库名 = 数据库名[+ 数据库域名] = SID)

阅读(1818) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~