文档章节

Oracle 数据库连接失败问题

terry_hding
 terry_hding
发布于 2015/12/18 19:48
字数 1714
阅读 1755
收藏 7
环境上安装的是oracle11g,其实oracle的安装是比较容易的,winA装server, winB装client, 最终目的winA能连上winB,并能查询数据和操作,但是由于我的环境装了两个数据库server, 一个监听1521, 一个监听1522,而客户端只有一个,长久时间没用,已经不记得当时client连的是哪一个server,一阵乱搞,越弄越瞎,结果用了半天才把环境恢复,不得不把一些弄清楚的概念记一下,以免下次遇到不至于这么手足无措

安装完后需要配置连接,首先从server开始
1 配置监听服务

这个选项里面可以配置listener文件,也可以自定义监听端口,其配置生效文件在
C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
#listene_2是新建的测试连接,一般就是默认的listener,1521的那个
LISTENER_2 =                                                           #这是我建的新的连接,端口是1531作测试
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = server-ip)(PORT = 1531))      #HOST直接用IP,域名,计算机名都是出错的地方
    )
  )

ADR_BASE_LISTENER_2 = C:\app\Administrator

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =                                                          #这个是原始建的listener文件,1521,一般就用这个监听
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = server-ip)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\Administrator
从这个配置文件可以看出oracle是把所有的listen配置统一写在一个文件中,开启服务时,一起开启的
服务器只需要listener.ora文件即可,切记修改完后,一定要把监听服务重启
-----------------------------------------------------------------------------------
C:\Documents and Settings\Administrator>lsnrctl stop
-----------------------------------------------------------------------------------
C:\Documents and Settings\Administrator>lsnrctl start
----------------------------------------------------------------------------------
也可以在"我的电脑->右击manage->调出service

验证:
C:\Documents and Settings\Administrator>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1060
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       1512
  TCP    0.0.0.0:1531           0.0.0.0:0              LISTENING       3472
  TCP    0.0.0.0:2596           0.0.0.0:0              LISTENING       2848
  TCP    0.0.0.0:2661           0.0.0.0:0              LISTENING       3420
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1916
  TCP    10.8.116.232:139       0.0.0.0:0              LISTENING       4
  TCP    10.8.116.232:1521      0.0.0.0:0              LISTENING       3588
  TCP    10.8.116.232:1522      0.0.0.0:0              LISTENING       1112
  TCP    10.8.116.232:1522      10.8.116.232:2662      ESTABLISHED     1112
  TCP    10.8.116.232:1531      10.8.95.177:1141       ESTABLISHED     3472
  TCP    10.8.116.232:1531      10.8.116.232:2660      ESTABLISHED     3472

如果服务器本机需要自测,则要需要配置tnsname.ora文件或利用oracle提供的net-manager工具,其实这是client的范畴

client安装好后需要配置net-manager,配置连接哪个数据库,哪个服务器信息

增加服务名(一般与连接的数据库一样,其实随意,就是一个名字)



填写服务器的地址以及服务器对这个数据库开启的监听端口,默认1521,也有可能是其它的端口

填写服务器上想要连的数据库

设置完测试失败,因为账号不对,默认用scott/tiger进行测试

更改成之前在服务器上建数据库时用的密码登录 system/password,测试成功

net-manager做这么多的事,只是为了生成一个tnsname.ora文件
#C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# tnsnames.ora Network Configuration File: C:\app\Administrator\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
刚刚的步聚新建了ORCL的连接信息,数据库orcl, 服务器地址10.8.116.232, 监听端口1521
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.116.232)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
由于服务器有两个数据库,可以直接编写一个连接服务器dh数据库的信息放在同一文件中,进行保存,如果服务器只有orcl,则不需要下面的这些信息
DH =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.116.232)(PORT = 1531))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dh)
    )
  )
--------------------------------------------------------------------------------
 Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>sqlplus system/password@dh

SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 18 18:32:13 2015

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select sysdate from dual;

SYSDATE
---------
18-DEC-15

SQL> discon
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Pr
oduction
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> conn terry/password@orcl
Connected.
SQL>

SQL基本操作:

client启动sqlplus
C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 18 18:51:33 2015

Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接
SQL> conn terry/password@orcl
Connected.
用户和权限
创建用户
create user 用户名 identified by 口令 [account lock| unlock]
 SQL> create user orcl identified by password;                            #一行写完

User created.
SQL> create user jerry                                                    #分行写完
  2  identified by password
  3  account unlock;

User created.
授权: grant 角色|权限 to 用户
SQL> grant connect to orcl;                                              #orcl有连接和查看的权利,但没有写的权利

Grant succeeded.

SQL> grant connect to jerry;

Grant succeeded.

SQL> grant resource to jerry;                                            #jerry有操作数据库的权利

Grant succeeded.
建表
SQL> conn orcl/password@orcl
Connected.
SQL> select sysdate from dual;

SYSDATE
---------
18-DEC-15
SQL> create table scores
  2  (id number,
  3  term varchar2(2));
create table scores
*
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> discon
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Pr
oduction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn jerry/password@orcl
Connected.
SQL> create table scores
  2  (
  3  id number,
  4  term varchar2(2)
  5  );

Table created.
更改密码   alter user 用户名 identified by 新密码
更改锁定状态 alter user 用户名 account lock|unlock

查询: select *|列名| from 表名 where 条件 order by 列名

SQL> select id from scores;

        ID
----------
    187186


插入: insert into 表名(列名1, 列名2 ..)values(值1,值2)
SQL> insert into scores values
  2  (187186,'dh');

1 row created.
更新: update 表名 set 列名1=值, 列名2=值.....where 条件
SQL> update scores set
  2  id=911,term='zj';

1 row updated.

SQL> select * from scores;

        ID TE
---------- --
       911 zj


删除: delete from 表名 where 条件

SQL> delete from scores;

1 row deleted.


SQL> select * from scores;

no rows selected

SQL> commit;                                          #只有提交了,才真正改了数据库中的表,否则其它用户还是见不到的val

Commit complete.

SQL> conn terry/password@orcl as sysdba               #terry查看jerry建的表
Connected.
SQL> select * from jerry.info;

NAME          SCORE
-------- ----------
terry        187186


#注意的地方
1 client连数据库时格式是   sqlplus username/password@database             
client端database是必需有的,但是在服务器本地测试则可以不加,当服务器只有唯一数据库时
2 client由于我默认1521,但我服务器上有两个数据库,用的那一个不是1521导致tns adaptor出错
tnsname.ora的服务器地址,监听端口,数据库没填对
3 监听服务没有起来,导致 TNS no listener
4 server更改完listener,没有把监听服务重启,没生效
5 scott/tiger账户被锁,密码过期,导致连不上
6 client只需要tnsname.ora文件, server只需要listener.ora文件,概念有混





© 著作权归作者所有

terry_hding
粉丝 40
博文 133
码字总数 139264
作品 0
杨浦
QA/测试工程师
私信 提问
加载中

评论(1)

Bye Earth
Bye Earth
自己玩没事不用Oracle就得了
oracle 11g 密码过期的问题

oracle 11g 密码过期的问题 使用sqlplus登陆oracle数据库时提示“ORA-28002: 7 天之后口令将过期”。   【原因/触发因素】   确定是由于oracle11g中默认在default概要文件中设置了“PAS...

wcczrx
2017/04/23
0
0
oracle ORA-28000: the account is locked

ORA-28000: the account is locked-的解决办法 ORA-28000: the account is locked 第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba; 第二步:选择m...

Reborn-D
2016/06/08
53
0
更改Oracle数据库密码导致vcenter服务无法启动

一、背景介绍 某企业生产环境中采用一台Windows2008R2物理服务器安装vCenter Server 5.5和Oracle 11g数据库,VC使用system账户连接Oracle数据库。安装之初对密码合规性没有明确规定,随意设置...

qiao645
2017/04/26
0
0
Oracle常见故障——Listener类:Hang、Crash及连接风暴的判断

目录 监听状态正常,应用反馈时断时连 Listener进程crash ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 11G SCAN LISTENER无法注册服务故障 Listener hang TNS-12535 TNS-00505处...

杨志洪 胡杰
2015/12/23
0
0
11gR2修改用户后导致系统HANG住

【背景】今天中午的时候用户反馈需要修改数据库的和应用的连接密码,修改密码这种小事情,本以为不会不会出现问题的。没想到午休到一半的时候就接到用户的电话,系统连接不进去了。 【环境】...

猎人笔记
2015/04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Phpstorm2018 永久激活

1、安装phpstorm,安装包请自行官网下载 http://www.jetbrains.com/phpstorm/download/ 2、下载JetbrainsCrack.jar文件,存放至你的phpstorm执行文件同级目录下 下载JetbrainsCrack.jar 提取...

happyfish319
26分钟前
6
0
谈一谈Android进程间通信的几种方式

###来看一下Android中除了AIDL还有哪些进程间通信的方式: 1、Bundle Bundle实现了Parcelable,所以在Android中我们可以通过Intent在不同进程间传递Bundle数据。 但是在Intent 传输数据的过程...

二营长的意大利炮手
27分钟前
7
0
互联网薪资“高开低走”,你的能力是否真的可以匹配高薪?

对于国内外主流互联网大厂,技术出身似乎已经成为各大掌门人的必备标签。谷歌 CEO 桑达尔·皮查伊、马克·扎克伯格、李彦宏、马化腾、雷军等等皆为技术人出身,都曾参与了公司内部重要产品的...

Java技术剑
28分钟前
9
0
java 多线程

线程声明周期 线程的五个状态:新建,就绪,运行,阻塞,死亡。 其中就绪和运行两个状态客户互相转换,但运行到阻塞,阻塞到就绪,只能单向转换。 刚new出的线程就是【新建】状态,调用start...

雷开你的门
30分钟前
11
0
构造器Constructor是否可被overrid

构造器不能被重写,不能用static修饰构造器,只能用public private protected这三个权限修饰符,且不能有返回语句。

无名氏的程序员
34分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部