PL/SQL Developer远程连接数据库

http://zhumeng8337797.blog.163.com/blog/static/10076891420111115104023136/


第一次用PL/SQL Developer这个非官方的软件,遇到了种种困难,幸好通过万能的Google已经全部解决,记录下来备察.
前提是保证你的远程oracle服务器一切正常.
 
微软客户端设置
使用 oracle 免费发放的instant client来代替oracle client,免去了安装的麻烦,下载instantclient-basiclite-nt-11.2.0.2.0.zip解压到你想要放到的任何目录,如:D:\oracle\instantclient_11_2,创建一个名叫tnsnames.ora的文件,放到该目录下,可以先创建成txt文档,保存完下面的内容再把扩展名.txt去掉:
myDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.23)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb)
)
)
注:
myDB 为连接数据库别名
HOST = 192.168.7.23 为你连接的数据库ip
PORT = 1521  为你数据的端口
SERVICE_NAME = testdb  为你数据库实例名
 
右击我的电脑选 属性”->“ 高级”->“ 环境变量”->” 系统变量”  注:用户变量也可以,依需求而定
新增下面两个变量
TNS_ADMIN    D:\oracle\instantclient_11_2
 

NLS_LANG    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
 
 
软件上的设置(版本为8.0)
在PLSQL Developer选择Tools > Preferences > connection,在右侧的 "Oracle Home" and "OCI Library"中填入以下内容:
D:\oracle\instantclient_11_2
D:\oracle\instantclient_11_2\oci.dll
完成以上的设置应该就能正常登录数据库了,如果还有别的问题,只能再次Google.



如何为一个instance配置多个监听,并且实现Client Load Balancing和Client Load Balancing。
打开NETCA,配置两个监听器。
LISENTER,默认监听器,一路next,就配置完毕, 监听端口1521。
配置LISENTER2,注意监听端口改为1522,其它和LISENTER一致。
这个时候,LISENTER已经可以使用了。

但是LISENTER2还是不行,因为Oracle只会为第一个默认的监听注册服务
在$ORACLE_HOME/NETWORK/ADMIN,编辑lisenter.ora文件,如下:
红色字体为需要增加的内容
SID_LIST_LISTENER2 =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = WWJ)
    (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
    (GLOBAL_DBNAME = WWJ) 
  )
)


LISTENER2 =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1522))
  )
)

SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
  )
)
LISTENER =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = valen)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
  )
)
需要解释的是,SID_LIST_ 这里的要和LISTENER名称一致。
SID_DESC则注册要提供服务的数据库实例名。这样LISTENER2 才能够提供服务。
否则会报TNS-错误。
测试过程,配置local tns name如下:
1522 =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)
1521 =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)

local  =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = wwj)
  )
)
1522和1521分别对应两个监听器,local稍后再解释:
测试:
SQL> conn@1521
已连接。
SQL> conn@1522
已连接。
OK,再看local,
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
这里的意思是,该命名对应了两个监听端口,如果一个Crash,会立刻切换到另外一个。
并且如果多个连接,会随机的分配监听。
测试
SQL> conn @local
已连接。
STOP LISENTER,再次连接,这个时候,连接比第一次慢了1秒钟左右
SQL> conn @local
已连接。
成功,这时连接上了LISTENER2
关于Oracle网络服务的资料,在OCP教材的第四章Oracle Net Services有很清晰的说明。


Oracle 版本:11g
运行环境: window XP
远程连接 需要两台电脑,一个是远程服务器端 ;一个是本机客户端。并且要保证在两台电脑上同时安装了Oracle 11g

先假设,你的电脑作为本机客户端,你同事的电脑作为远程服务器端。
具体配置如下:
1 设置远程服务器端的Oracle,即你同事电脑上的Oracle,需要设置 2 个地方:
 (1)设置"Database Configuration Assistant",在进行第6步:连接模式 时选择:“共享服务器模式” 。
并且下面的 “共享服务器” 选择 3 以上。然后点击“确定”或“是” 。

 (2)服务器端还要设置 net manager:监听程序 | LISTENER | 添加地址,主机填 客户端 电脑的ip,端口是:1521;

 (3)设置完成之后,停止服务,然后启动服务。


2 设置本机客户端,即你电脑上的Oracle

 (1)设置 "Net Configuration Assistant"  
"Net Configuration Assistant" 工具 -> "本地NET服务名配置" -> "添加" -> 选择ORACLE数据库或服务-> 输入服务名(远程服务器端的Oracle的全局数据库名) -> TCP -> 主机名中输入服务端IP地址,端口输入服务端监听程序所监听的端口 -> 是,进行测试 -> 首次测试可能会失败,因为默认的用户名口令不一定和服务端的匹配,点击 更改登录 输入服务端的用户名和口令,确定后如出现"测试成功",说明连接成功

 (2)设置完成之后,停止服务,然后启动服务。

 (3)按 winkey + R ,弹出“运行”对话框 , 运行cmd ,进入dos界面,输入 sqlplus /nolog  回车。

 (4)输入 conn scott/234@//192.168.1.106:1521/orcdb

或者: conn scott/[email protected]:1521/orcdb

就可以连接到服务器端的Oracle了。
 ( 注: scott/234 是服务器端的Oracle的用户 ,192.168.1.106 是服务器端的ip ,orcdb 是服务器端的Oracle的全局数据库名 )。
 -------------- 至此配置完成! -------------


服务端:
1、增加一个listener:终端运行: $ORACLE_HOME/bin/netca  (必须在图形界面环境下),按照提示增加一个listener。

2、增加listener支持的服务:终端运行: $ORACLE_HOME/bin/netmgr  (图形界面下),在: Oracle Net Configuration -> Local -> Listeners -> xxxx  (你刚才增加的那个listener),从中选择“Database services”,增加你要服务的database。其中, 注意Global Database Name就是你的对外的服务名字。 然后保存并退出。

3、重启你的listener:终端运行:
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start

最后提示:
Service "XXXX" has 1 instance(s).
The command completed successfully.


好了,到现在服务端的listener配置按成了。

客户端:
1、配置一个“Local Service Name Configuration”:终端运行: $ORACLE_HOME/bin/netca  ,选择: Local Service Name Configuration ,按照提示操作。其中, Service Name写和服务器端配置的时候添的那个“Global Database Name”; Host name写服务器IP (如果是在局域网内,也可些服务器名字);最后给这个本地服务起一个名字(例如叫:LSN)。然后保存并退出。

2、通过sqlplus连接到服务器上的数据库:
格式: sqlplus 用户名/密码@本地服务的名字
例子: sqlplus user/password@LSN



1,项目使用的是oracle11g数据库,安装个客户端访问服务器. 

    到oracle官方下载: 
    http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/htdocs/winsoft.html  (中文)
    http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载下列几个压宿文件 

http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html


   oracleDBinstantclient-basic-win32-11.1.0.7.0.zip     这是最核心的包 
   instantclient-jdbc-win32-11.1.0.7.0.zip     包含JDBC Driver的包 
   instantclient-sqlplus-win32-11.1.0.7.0.zip   最简单的SQLPLUS包 



    我把文件解压到了d盘,d:\oracleclient11g下面 

    最后的文件结构应该如下:
 

    2,配置tnsnames.ora,如果本机上没有安装oracle,可以从安装了oracle的机上拷贝一个(tnsnames.ora文件在%   ORACLE_HOME%\network\admin下)放在上面的目录d:\oracleclient11g下。 
oracledata = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.112)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = orcl) 
    ) 
  ) 

    

    3,添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:d:\oracleclient11g),这是为了能够 找到上面说的tnsnames.ora。如果本机上安装了ORACLE,并且设置了ORACLE_HOME环境变量,那么会自动 在%ORACLE_HOME%/network/admin/位置查找tnsnames.ora文件。 

    4,设置ORACLE的语言,添加注册表项:“NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,位于 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE。如果本机没有安装ORACLE,在H_L_M\SOFTWARE\下是没 有"ORACLE"这一项的,需要手动创建,然后再在ORACLE项下创建键NLS_LANG,键值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 

    5,下载并安装PL.SQL.Developer配置应用 
    配置tools->preferences->connection 
 
    找到等号左侧参数填写等号右侧对应的内容 
    Oracle Home=D:\oracleclient11g
    OCI library=D:\oracleclient11g\oci.dll 

    6,再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。


http://v.youku.com/v_playlist/f5172664o1p12.html


http://www.youku.com/playlist_show/id_4359957.html



http://www.youku.com/playlist_show/id_4368229.html


-----------------------------------------------------------------------------
服务器: rhel5.4 (安装了oracle 11g)

客户端: window 7  安装  PLSQL Developer
               oracle 客户端软件: instantclient-basic-nt-11.2.0.3.0.zip

客户端配置:
1. 解压到D盘:D:\instantclient_11_2 (解压路径)
 
 
 tnsnames.ora文件内容如下:
ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

ORCL = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)( HOST = 192.168.1.218)( PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      ( SERVICE_NAME = DATA) 
    ) 
  )

说明
ORCL =  这边必须顶格写 
2 安装:PLSQL Developer9 (版本)
按步骤(略)
配置:
 
 
 

3.客户端登录:
 双击登录

 数据库选择中 出现  多个 字符串不是 pl sql 正确读取   tnsnames.ora   (ORCL是我们自己定义的)
 连接远程数据库 ORCL

 测试sql方式。

-------------------------------------------------------------------------------------------------------------------------------------------------------------
备忘
 Oracle笔记(一)RHEL5.7十步安装Oracle11g R2

Linux上安装oracle,因其过程之繁琐,报错率之高,成为了许多工程师的梦魇。前段时间因工作需要,分别在HP的PC服务器和小型机上装了几次oracle,其间的过程是生不如死啊,简直都快弄出人命了~如果自己没有一套完整的安装流程,光靠临时去百度的话,我想任何人都会有这样的问题:不断报错,不断卡壳,没完没了……最后还很有可能导致不得不重装系统。这些使得我不得不对自己的教训进行了总结,现总结出一份史上最详细的安装教程,供自己备忘,同时也分享给大家。 
    本教程适用环境为32位的RHEL5系统和oracle11g R2。 
1、在安装oracle之前,用命令检查必需的RPM软件包有没有安装 
命令如下: 
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
如果RPM包安装完全的话会如图所示 
  
如果未安装完全会显示XXX is not installed,这个时候可以通过挂在RHEL5.4的光盘或镜像,在Server文件夹里寻找相应的RPM包安装。 
2、建立oracle系统用户和安装目录 
创建一个主组oracle和一个副组dba 
groupadd oinstall 
groupadd dba
 
创建oracle安装文件夹 
mkdir -p /oracle 
添加一个oracle用户, 根目录是 /oracle, 主的组是oinstall 副的组是dba 
useradd -g oinstall -G dba -d /oracle oracle 
拷贝包含环境变量的文件到安装目录下,这个之后会用到 
cp /etc/skel/.bash_profile /oracle 
cp /etc/skel/.bashrc /oracle 
cp /etc/skel/.bash_logout /oracle
 
为oracle用户设置密码 123456 
passwd oracle 
设置安装目录用户权限 
chown -R oracle:oinstall /oracle 
检查 nobody 是否存在 
id nobody 
缺省存在的,会显示nobody的uid、gid和groups,默认都是99。如果不存在可以输入以下命令 
/usr/sbin/useradd -g nobody 
3、修改内核参数 
vi /etc/sysctl.conf 
在sysctl.conf这个文件中加入以下内容,我加在文件的末尾 
fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 536870912 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048586 
  
4、设置oracle用户的shell limit 
vi /etc/security/limits.conf 
在limits.conf中加入以下内容,同样放在末尾,如图所示 
oracle           soft    nproc   2047 
oracle           hard    nproc  16384 
oracle           soft    nofile   1024 
oracle           hard    nofile  65536 
  
增加下面的内容到文件 /etc/pam.d/login 中,使shell limit生效 
vi /etc/pam.d/login 
session    required     pam_limits.so 
  
5、设置oracle 用户环境变量 
首先切换到oracle用户下 
su – oracle 
vi .bash_profile
 
在隐藏的.bash_profile文件中,将原有的环境变量删除,加入以下环境变量,注意自己的根目录位置 
ORACLE_BASE=/oracle 
ORACLE_HOME=$ORACLE_BASE/oracle 
ORACLE_SID=DATA 
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin 
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
 
  
6、将oracle安装包解压后上传到linux中,准备开始安装 
Oracle 11g Release 2 linux x86官方的安装包分两个文件,一个1.2G一个900+M,解压缩后会有一个database文件夹,把这个文件夹拷过去就可以了。具体过程不再描述。复制完成后,改变oracle用户访问安装包的权限 
chown -R oracle:oinstall /usr/oracle_install/database 
注销root用户,改用oracle用户登录,来的database文件夹下,开始安装 
./runinstaller 
  
这里注意一下,如果是用root用户通过su切换到oracle用户的话,在“检查监视器”这一项可能无法通过,会显示以下警告

检查监视器: 监视器配置至少必须显示 256 种颜色 
>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<

未通过某些要求检查。必须先满足这些要求,

然后才能继续安装,那时将重新检查这些要求。

是否继续? (y/n) [n] y

因此注销或重启后用oracle用户登录最为保险。 
7、安装过程 
这时候不出意外的话会弹出oracle 11g的图形安装界面,现在根据图形界面的提示一步一步安装吧 

这一步可填可不填,由于这里是实验,所以就不填了 
 
选择仅安装数据库软件,数据库实例可以放到安装完后再配置 
 
选择单实例数据库安装 
 
语言默认即可 
 
选择安装企业版,也可以根据个人需求来选择 
 
Oracle的安装目录,这里已经在环境变量中设置过了,默认即可 
 
这里会提示要创建一个清单目录,回到命令行下,输入以下命令,否则文件夹不存在会报错。 
创建完文件夹后再点击下一步 
mkdir /oraInventory 
chown -R oracle:oinstall oraInventory 
 
设置不同组的数据库权限 
 
安装程序会检查物理内存和空间大小,由于虚拟机分的内存很小,所以oracle检查会提示失败,不过我们可以忽略它,在右上角打勾即可(真实的服务器内存非常大,一般不会出现此问题) 
 
检查一遍之前的配置,点“完成”开始正式安装 
 
 
安装完毕, 提示执行两个脚本 
./oraInventory/orainstRoot.sh 
./oracle/oracle/root.sh
 
最后点finish,oracle安装完成! 
8、开启oracle监听服务 
首先在命令行上输入netca,会弹出一个对话框 
 
这里一直默认下一步就可以了,最后点“完成”结束 
9、创建oracle数据库 
回到命令行,输入dbca,会弹出以下会话框 
 
数据库名称和SID取DATA(注意要和环境变量中设置的SID一样) 
 
为不同用户设置统一口令,后期可以更改 
 
接着下一步,在第九步左右Character Sets 选择 Use Unicode(AL32UTF8)字符集 
 
开始创建数据库,如无意外的话,进度条走完后数据库即创建完成。 
10、测试数据库 
注意必须使用oracle系统用户登录才能操作数据库,以及开启监听、控制台等功能。 
[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sat Dec 24 23:33:57 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn /as sysdba   //连接数据库 
Connected to an idle instance.   //oracle实例未开启 
SQL> startup   
ORACLE instance started.

Total System Global Area  238530560 bytes 
Fixed Size                  1335724 bytes 
Variable Size             121638484 bytes 
Database Buffers          113246208 bytes 
Redo Buffers                2310144 bytes 
Database mounted. 
Database opened. 
SQL> conn /as sysdba   
Connected. 
SQL> create table testUser( id integer,name char(10));   //创建表

Table created.

SQL> insert into testUser values(0,'mike');   //创建记录

1 row created.

SQL> select * from testUser;

           ID NAME 
---------- ---------- 
             0 mike 
关闭数据库 
SQL>  shutdown immediate 
SQL>  quit

以上现象说明oracle已经安装成功,也可以通过web页面访问oracle数据库 
首先在命令行输入emctl start dbconsole开启控制台服务 
在浏览器上输入https://X.X.X.X:1158/em即可访问(X.X.X.X是服务器IP),用户名和口令即创建数据库时创建的用户名(SYS、SYSTEM等)。 

至此oracle安装完成,希望通过此教程,我们都能够在安装的过程中少走弯路。呵呵,大家都这么忙,时间耗不起呵~


你可能感兴趣的:(DataBase)