Chinaunix首页 | 论坛 | 博客
  • 博客访问: 326688
  • 博文数量: 121
  • 博客积分: 2771
  • 博客等级: 少校
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-01 12:44
文章分类

全部博文(121)

文章存档

2011年(121)

分类: Oracle

2011-04-08 17:37:08

1.首先检查监听程序是否能正常启动,开始,运行 cmd--->lsnrctl start,检查监听是否是在正常运行,如果正常运行,会提示:TNS-01106: 使用名称LISTENER的监听程序已经启动。如果没有运行,用上面的命令启动监听程序。
2.还在命令提示行里用 tnsping 服务名 ,来检查tnsnames.ora服务配置是否正确。正确的提示例如:

已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.0.6)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 服务名)))
OK (50 毫秒)
3.plsql developer 连接不上,可以在不登录的情况下,打开‘工具’-‘首选项’,设置下 oracle主目录名和OCI库的路径。
 
 
----------------------------------------------------------------
不用安装oracle客户端也可以用plsql连接远程oracle
关键字: plsql连接远程oracle
    每次问人家,plsql 可不可以直接远程连接服务器,他们都说要安装客户端,记得以前用过个什么sql deveplore 什么的工具,不用安装客户端的,而且是绿色软件来的,我就想,一定就办法,不用这么麻烦安装客户端的。上网找了找,下面把我的实践详细过程记录下来,希望对大家有帮助,有什么不对的,请大家多多评论,指出来。
1、在安装ORACLE服务器的机器上搜索下列文件
oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
放到一个文件夹,如 oraclient
  2、配置tnsnames.ora,如果本机上没有安装oracle
可以从安装了oracle的机上拷贝一个(tnsnames.ora文件在%ORACLE_HOME%\network\admin下)放在上面的目录D:\oraclient下。
oracledata =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oracledata)
    )
)

3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:\oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。如果本机上安装了ORACLE,并且设置了ORACLE_HOME环境变量,那么会自动在%ORACLE_HOME%/network/admin/位置查找tnsnames.ora文件。

4、设置ORACLE的语言,添加环境变量:
“NLS_LANG = SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)。
 
 
----------------------------------------------------------------
用PL/SQL Developer连接远程的ORACLE数据库

主要有2种方式:
1 是安装客户端,通过设置oci 和 客户端本地的tnsnames.ora文件来访问
2 通过databaselink来实现。

1 通过客户端实现PLSQLdev的远程访问
1) Install the oracle instant client (见上)
2) Configue the PLSQLdev
    make a directory network in instan_client_home
    copy the corresponding tnsname.ora into the directory
    start the plsqldev then Tools->Preferences,
    set oracle Home OCI Library : fill the instan_client_home path
                                                    fill the OCI.dll path (default in the instan_client_home)
    then restart and connect.
注意登录时的使用的“数据库名字”不是真正的dbname 而应该是tnsnames中的标识符的名字!

2 通过databaselink来实现。

大致分为两个步骤。
第一,在oracle企业管理器(OEM)里建立新的数据库,即在数据库树形图上点击将数据库添加到库。问清远程数据可得主机名(我以前就是写的远程机器的IP地址);端口号我以前用的是默认的1521没有修改;sid应该问明远程是什么,(有时需要在   tnsnames.ora脚本中修改   sid为service_name,具体原因我不是很清楚,主要看对方远程的数据库用的是sid还是service_name吧?)   ;最后的网络服务名自动生成,不需要自己手工修改。
  
第二,在PLSQL   Developer里左侧树状列表倒数第三项databaselink中,新建一个,name随便你自己起吧,username和password都要对方给你提供的,写进去。database需要写对方的数据库名。     如果是你自己用那台服务器和数据库的话,可以在public上面挑钩,如果是做项目,那么是不是public还要具体看了。最后点击apply按钮确认。
  
之后可以select   *   from   远程数据库的某个表名@dblink里你自己起的那个名字,测试是不是可以看到数据。
阅读(4595) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

togofree2011-04-08 17:45:52

php程序员前途,mysql数据库和oracle的区别和选择:LAMP大会的时候我跟Yahoo的一个技术高管聊的时候,我问他Yahoo在选择MySQL还是Oracle的时候是怎么考虑,他的答案令我非常惊讶。他说大部分的时候我们是会用MySQL的,因为它的性能已经达到我们的要求。但是什么时候我们会选用Oracle呢,就是当我们需要存储收费用户的数据的时候。我就问为什么,难道Oracle比MySQL稳定吗?他说,这个倒没有特别考虑。关键是如果使用Oracle的话,当出现问题的时候我们可以找到负责人,Oracle会负责事故的处理,但是如果用MySQL的话,我们找谁去?