Oracle 查询局域网内其他电脑上的Oracle数据库表

Oracle 查询局域网内其他电脑上的Oracle数据库表,第1张

--创建 CREATE public database link test_link CONNECT TO scott IDENTIFIED BY tiger using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127001)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = LEE) ) )'; --使用 select ename from emp@test_link; --删除 drop public database link TEST_LINK;

一:dblink创建:

1、已经配置本地服务

create public database

link toBeJing connect to scott

identified by tiger using 'BEJING'

数据库连接字符串'BEJING'是当前客户端数据库中TNSNAMESORA文件里定义的别名名称可以用NET8 EASY CONFIG或者直接修改TNSNAMESORA里定义

2、直接建立链接

create database link toBeJing

connect to scott identified by tiger

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = XXXX )(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = BJORCL)

)

)';

host=数据库的ip地址,service_name=数据库的ssid。

其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。

注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

1先创建PUBLIC DATABASE LINK,不用指定用户和密码 

scott@TEST>conn system/test

Connected

system@TEST>CREATE PUBLIC DATABASE LINK orcl USING 'BEJING';

Database link created

2再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码

system@TEST>conn scott/tiger

Connected

scott@TEST>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;

Database link created

实际上相当于: 

 CREATE DATABASE LINK orcl USING 'BEJING' CONNECT TO scott IDENTIFIED BY tiger;

db link 有3种类型,我这里只讨论其中两种,connected user和fixed user。

connected user,简单来说,连接方数据库以connected的用户来连接远程数据库。

fixed user,简单来说,连接方数据库以fixed(指定的)用户来连接远程数据库。

看看创建db link语法,你对这两种类型就比较清楚了。

创建connected user的db link语法:

create databas link foo connect to scott identified by tiger using 'BEJING' ;

创建fixed user的db link语法:

create databas link foo using 'BEJING' ;

db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要保证唯一。数据库名称是db_name。数据库名称一般都取得比较短,我的习惯一般取长度4个字符,重名概率高。

所以,oracle模仿域名搞出一个global_name,global_name=db_name+db_domain。

有了global_name,就可以实现数据库命名的全局唯一。例:ORCLREGRESSRDBMSDEVUSORACLECOM

数据库全局名称可以用以下命令查出

SELECT FROM GLOBAL_NAME;

如果global_names=true,那么db link的命名要和远程数据库的global_name相同;

如果global_names=false,那么你可以随便命名db link。

查询global_names是true还是false,在pl/sql中的命令窗口(不是sql窗口)执行:show parameter global_names

二、dblink查询:

查看所有的数据库链接,进入系统管理员SQL> *** 作符下,运行命令:

SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

三、dblink删除:

DROP PUBLIC DATABASE LINK toBeJing

四、dblink使用:

SELECT……FROM表名@数据库链接名;

查询、删除和插入数据和 *** 作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

例:查询北京数据库中emp表数据 select from emp@toBeJing;

五、同义词配合:

第四点中from emp@toBeJing可以创建同义词来替代:

CREATE SYNONYM同义词名FOR 表名;

CREATE SYNONYM同义词名FOR 表名@数据库链接名;

如:create synonym bj_scott_emp for emp@toBeJing;

于是就可以用bj_scott_emp来替代带@符号的分布式链接 *** 作emp@toBeJing

DB LINK是独立于创建用户(USER_DB_LINKS的USERNAME)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

查询ORACLE数据库名:SQL> select name from v$database。\x0d\查看实例名:SQL> select instance_name from v$instance。\x0d\数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。\x0d\数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。

一 数据库名

数据库名是数据库的 身份z号码 用于标示一个数据库 在参数文件中用DB_NAME表示

数据库名是在安装数据库 创建新的数据库 创建数据库控制文件 修改数据库结构 备份与恢复数据库时都需要使用到的

如何查看数据库名呢?方式有三

使用SQL语句 select name from v$database

使用show命令 show parameter db_name

查看参数文件 查看init ora文件

二 数据库实例名

数据库实例名是用于和 *** 作系统进行联系的标识 也就是说数据库和 *** 作系统之间的交互使用的是数据库实例名

实例名也被写入参数文件中 该参数为instance_name 在winnt平台中 实例名同时也被写入注册表

数据库名和实例名可以相同也可以不同 在一般情况下 数据库名和实例名是一对一的关系 但如果在oracle并行服务器架构(即oracle实时应用集群)中 数据库名和实例名是一对多的关系

如何查看当前数据库实例名呢?方式有三

使用SQL语句 select instance_name from v$instance

使用show命令 show parameter instance

查看参数文件 查看init ora文件

数据库实例名与ORACLE_SID两者都表示oracle实例 但是有区别的 instance_name是oracle数据库参数 而ORACLE_SID是 *** 作系统的环境变量 ORACLD_SID用于与 *** 作系统交互 也就是说 从 *** 作系统的角度访问实例名 必须通过ORACLE_SID

ORACLE_SID必须与instance_name的值一致 否则 你将会收到一个错误 在unix平台 是 ORACLE not available 在winnt平台 是 TNS 协议适配器错误

三 数据库域名与全局数据库名

随着由多个数据库构成的分布式数据库的普及 这种命令数据库的方法给数据库的管理造成一定的负担 因为各个数据库的名字可能一样 造成管理上的混乱

为了解决这种情况 引入了Db_domain参数 这样在数据库的标识是由Db_name(数据库名)和 Db_domain(数据库域名)两个参数共同决定的 避免了因为数据库重名而造成管理上的混乱 这类似于互连网上的机器名的管理

我们将Db_name和 Db_domain两个参数用 连接起来 表示一个数据库 并将该数据库的名称称为Global_name(全局数据库名) 即它扩展了Db_name Db_name参数只能由字母 数字 _ # $ 组成 而且最多 个字符

对一个网络数据库(Oracle database)的唯一标识 oracle建议用此种方法命令数据库 该值是在创建数据库是决定的 缺省值为Db_name Db_domain 在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值 如果要修改 Global_name 只能用ALTER DATABASE RENAME GLOBAL_NAME TO 命令进行修改 然后修改相应参数

如何查询数据库域名呢?方法有三

使用SQL命令 select value from v$parameter where name = db_domain

使用show命令 show parameter domain

查看参数文件 在参数文件中查询

四 数据库服务名

该参数是oracle i新引进的 在 i以前 我们用SID来表示标识数据库的一个实例 但是在Oracle的并行环境中 一个数据库对应多个实例 这样就需要多个网络服务名 设置繁琐 为了方便并行环境中的设置 引进了Service_name参数 该参数对应一个数据库 而不是一个实例

该参数的缺省值为Db_name Db_domain 即等于Global_name 如果数据库有域名 则数据库服务名就是全局数据库名 否则 数据库服务名与数据库名相同

如何查询数据库服务名呢?方法有三

使用SQL语句 select value from v$parameter where name = service_name

使用show命令 show parameter service_name

查看参数文件 在参数文件中查询

从Oracle i开如的oracle网络组件 数据库与客户端的连接主机串使用数据库服务名 之前用的是ORACLE_SID 即数据库实例名

五 网络服务名

网络服务名 又可以称为数据库别名(database alias) 是客户端程序访问数据库时所需要 屏蔽了客户端如何连接到服务器端的细节 实现了数据库的位置透明的特性 网络服务名被记录在tnsnames ora文件中

网络服务名是从客户端的角度出发 当客户端连接远程数据库或其他服务时 可以指定Net服务名 因此需要使用一个或多个命名方法将此Net服务名解析为连接数据库或其他服务的连接描述符

通常选择的是[本地] 将存储在本地客户机的tnsnames ora文件中的网络服务名解析为连接描述符

[Oracle Names] 由Oracle名字服务器提供为网络上的每个Oracle Net服务提供解析方法

[主机名] 通过TCP/IP环境中的主机别名连接到Oracle数据库服务

[Sun NIS]/[DCE CDS] 专用系统用的 在Windows 系统环境下不适用

六 总结

Oracle中各种命名的比较名称查询方式

名称→ 查询方式 DB_NAME→select name from v$database INSTANCE_NAME →select instance_name from v$instance ORACLE_SID→值和INSTANCE_NAME相同 DB_DOMAIN→select value from v$parameter where name= db_domain GLOBAL_NAME →DB_NAME DB_DOMAIN SERVICE_NAME→ select value from v$parameter where name= service_name NET_SERVICE_NAME→检查tnsnames ora文件

lishixinzhi/Article/program/Oracle/201311/16568

E:\toolKit>sqlplus "/ as sysdba"

SQLPlus: Release 92010 - Production on Fri Mar 2 10:26:49 2007

Copyright (c) 1982, 2002, Oracle Corporation All rights reserved

Connected to:

Oracle9i Enterprise Edition Release 92010 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 92010 - Production

Welcome HuiYi Environment

=========================

The time is 2007-03-02 10:26:50 (Friday)

The User Env Language is AMERICAN_AMERICAZHT16BIG5

Wish you a pleasant journey :)

SYS@huiyi>show parameter service_name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

service_names string huiyi

关于oracle的全局数据库名称:

1、如果你只是单机使用的话起名字随便。

2、如果是多台电脑一起用的话,并且都是作为远程数据库的话,就要起一个在全局范围内能区分谁是谁的名字。

3、namedomain只是一个起名字的例子,(你可以不起这样的名字)。

4、举个例子:比如你的机器名叫xxxx那你就可以起namexxxx因为网络内的机器名字是不同的,这样就可以区分每一个oracle实例了。

说的比较乱,不知道你听明白了么。

---

以上,希望对你有所帮助。

以上就是关于Oracle 查询局域网内其他电脑上的Oracle数据库表全部的内容,包括:Oracle 查询局域网内其他电脑上的Oracle数据库表、查询ORACLE数据库名,应该怎么查询、Oracle体系结构中的各种名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10198857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存