您的位置:首页 > 数据库

pl/sql 如何配置连接远程一个或多个数据库(1.同一个ip不同用户名,2.不同ip不同用户名)以及记住密码

2015-05-14 14:19 971 查看
两种情况下,如何配置pl/sql 连接远程oracle服务器

1)在客户端不装oracle 客户端也不装服务器,如何配置?

2)在客户端安装了oracle的客户端,能否配置pl/sql 连接远程oracle服务器,如何配置?

(一)不安装客户端的解决办法。
第一种方法:
1、在安装ORACLE服务器的机器上搜索下列文件,
oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll   (可能服务器没有,如果没有则pl sql 随便用户名密码可以登陆)
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 = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)
(本步骤暂时要做对,如果编码不对,会产生乱码)
5、下载并安装PL.SQL.Developer配置应用
配置tools->preferences->connection
Oracle Home=D:\oracleclient
OCI library=D:\oracleclient\oci.dll
6、再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。

第二种方法:
1。首先去oracle的官方下载客户端的压缩包,地址是:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,选择机器的操作系统后选择oracle对应的版本的base那个压缩包下载。
2。将下载后的压缩包解压到相应的目录,比如 D:\worksoftware\instantclient_10_2下;
3。在这个目录下建立NETWORD目录,再在NETWORK目录下建立ADMIN目录,如D:\worksoftware\instantclient_10_2\NETWORK\ADMIN;
4。在第二步所建立的目录下新建一个tnsnames.ora文件,当然也可以从服务器上copy这个文件,文件的内容如下
databasename =   
(DESCRIPTION =   
      (ADDRESS_LIST =   
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip address)(PORT = 1521))   
      )   
      (CONNECT_DATA =   
        (SERVICE_NAME = database name)   
      )  
    ) 
databasename =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ip address)(PORT = 1521))
      )
      (CONNECT_DATA =
        (SERVICE_NAME = database name)
      )
    )
 
例如我的就是
  ORCL =  
  (DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.113)(PORT = 1521))   
    (CONNECT_DATA =   
      (SERVER = DEDICATED)  
      (SERVICE_NAME = orcl)  
    )   
  ) 
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.113)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
5。打开PL SQL DEVELOPER 工具,点击tools-》preferences在右侧的oracle home里填上客户端的home,如D:\worksoftware\instantclient_10_2;在OCI Library里填上oci.dll路径,如D:\worksoftware\instantclient_10_2\oci.dll;
6。配置环境变量nls_lang 变量值是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK这个东西主要是解决中文问题的。
7。ok配置完毕,应该是可以的啦,最好在启动之前先ping下远程的服务器,通了就应该可以连接上了
我的配置,其中BOC_TEST_91等为连接字符串
BOC_TEST_91 =   
  (DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.29.91)(PORT = 1521))   
    (CONNECT_DATA =     
      (SERVICE_NAME = bot)   
    )   
  )
BOC_TEST_68 =   
  (DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.19.68)(PORT = 1521))   
    (CONNECT_DATA =     
      (SERVICE_NAME = bot)  
    )  
  )
BOC_PRO_56 =   
  (DESCRIPTION =   
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.56)(PORT = 1521))   
    (CONNECT_DATA =     
      (SERVICE_NAME = bop)  
    )  
  )

(二)安装客户端的解决办法
一、配置oracle服务器的监听器listener
修改<安装目录>/network/admin/目录下的listener.ora和tnsnames.ora两个文件我的目录是E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN。其中
listener文件大致如下:
# listener.ora Network Configuration File: /oracle/app/product/10.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/app/product/10.1.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = demo1) #demo1为oracle实例名
      (ORACLE_HOME = /oracle/app/product/10.1.0/db_1)
      (SID_NAME = demo1)
    )
)
LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))    #IP地址为oracle服务器
    )
)
tnsnames.ora文件大致修改如下:
# tnsnames.ora Network Configuration File: /oracle/app/product/10.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
DEMO1 =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521)) #IP地址为oracle服务器
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DEMO1) #demo1为oracle实例名,或者服务名称此名称可通过netmgr或netca修改
    )
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
)
以上修改也可通过图形界面的netmgr和netca进行配置。修改之后,重启监听器
二、下载安装oracle客户端。
在安装pl/sql developer的本地机器上必须安装oracle客户端(此处指针对oracle 10g版本,有说也可只安装相关驱动如oci驱动,具体不详。并且客户端不一定为10g版本,8i,9i皆可)。
1.从官网上下载绿色版本的客户端,地址如下(或有改变):
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
下载需要oracle用户,可免费注册
2.绿色版无需安装,将此下载解压至某处,并在其下建立一network目录,目录下再建admin目录,结构如下
<客户端目录>/network/admin,在admin目录中建立tnsnames.ora文件,内容大致如下:
demo1 = #oracle服务名
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521)) #oracle服务器地址与端口
      )
      (CONNECT_DATA =
        (SERVICE_NAME = demo1)
      )
    )

配置不对会产生的错误

ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的***

ORA-12154: TNS: 无法解析指定的连接标识符/

注意demo1前是否有空格,如果有空格会出现ORA-12154: TNS: 无法解析指定的连接标识符/

三、在PL/SQL developer中配置客户端信息。
打开PL/SQL developer,暂不登录,选择菜单tools->preferences->connection,设置如下两项:
Oracle Home: D:\Program Files\instantclient_11_1       #客户端解压目录
OCI library: D:\Program Files\instantclient_11_1\oci.dll       #oci库文件路径,oci.dll应该在客户端目录下。
 
保存,重启PL/SQL developer,些时应可看到登录框中Database下拉选项里有你刚刚配置的远程服务器上的服务实例demo1了。

想让PLSQL Developer 记住登录历史方便以后自动登录

1、如果只登录一个数据库,用户名密码都是固定的,可以修改执行程序的快捷方式:在桌面上建立plsqldev的快捷方式,然后点击右键,打开属性对话框,在目标后的文本框中输入:
D:\Program Files\PLSQL Developer\plsqldev.exe userid=username/password@dbname
上面的两行不要换行,就可以直接登录到dbname的oracle数据库。2、登录多个数据库,或者一个数据库但有多个用户和密码,修改PLSQL的选项(Tools->Preferences),记住登录Oracle的用户名和密码,然后在启动程序时选择所需的用户即可,[b]如下图所示。[/b] 

点击用户名旁边的按钮,选择登录用户: 

  附录:其它技巧1、登录后默认自动选中My Objects     默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。设置方法: 
Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。 
Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。
2、记住密码       这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。设置方法:菜单Tools --> Preferences --> Oracle --> Logon History --> Store With Password 3、双击即显示表数据鼠标双击表或者视图时的默认响应实在让我感到失望,因为我最关心的是表结构和数据,但是双击后这两件事情都没有发生,也许默认响应是高手们需要的,但对我来说查看数据和表结构是最主要的,其他的我不关心。不过好的是这是可以设置的,你可以给鼠标双击和拖放绑定需要的事件,比如:双击编辑数据,拖放显示表结构,Yeah!设置方法:菜单Tools --> Preferences --> Browser,在右侧,为不同的Object Type绑定双击和拖放操作。
4、SQL语句字符全部大写自认为这是个好习惯,信息系统的核心是数据库,系统出问题时最先要查的就是SQL语句,怎样在浩瀚的日志中快速找到那条SQL语句是件比较痛苦的事情。 SQL语句全部大写并不能彻底解决这一问题,但在一堆代码中间找一行全部大写的字符相对容易些,你的眼睛会感谢你。  
   
设置方法:菜单Tools --> Preferences --> Editor --> Keyword Case --> Uppercase
5、特殊Copy       在SQL Window里写好的SQL语句通常需要放到Java或者别的语言内,就需要转成字符串并上加上相应的连字符,这一个事不需要再重复做了,在写好的SQL上点右键,使用特殊Copy即OK!设置方法:鼠标右键 --> Special Copy
6、自定义快捷键      PLSQL Developer里预留了很多键让用户自定义,这是件很Hight的事情。不像霸道的Word,基本上所有的键都已预定义了功能,修改起来很是头疼。 通常情况下,打开PLSQL Developer后,最经常干的事就是打开SQL Window和Command Window,就给这两个操作定义了快捷键,ALT+S和ALT+ C,这样拿鼠标点三下的事情只需要按一下键。设置方法:菜单Tools --> Preferences --> Key Configuration
7、SQL Window中根据光标位置自动选择语句     设置方法:Preferences --> Window Types --> SQL Window,将AutoSelect statement选中即可。注意,每条语句后面要加分号。8、自动替换   快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。   设置方法:菜单Tools --> Preferences --> Editor --> AutoReplace. --> Edit


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: