如何为一个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 回车。
就可以连接到服务器端的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.htmloracleDBinstantclient-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.ZHS16GBK5,下载并安装PL.SQL.Developer配置应用配置tools->preferences->connection
找到等号左侧参数填写等号右侧对应的内容Oracle Home=D:\oracleclient11gOCI library=D:\oracleclient11g\oci.dll6,再次打开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 nobody3、修改内核参数 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 = 10485864、设置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/loginsession 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 PATH6、将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 /oraInventorychown -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> startupORACLE 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 sysdbaConnected. 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安装完成,希望通过此教程,我们都能够在安装的过程中少走弯路。呵呵,大家都这么忙,时间耗不起呵~