一组的同事找我说,有很多应用不能连接数据库,让我去帮忙看看,一开始以为是process 和session 数不构,去了查了一下,发现远没到设置的数,且主机未发现有性能问题,查看等待事件,全是军空闲类的,这下我就有点朦了,后来查看监听状态,执行lsnrctl status 后出来两行字之后卡在那儿了,没有反应,所以kill掉进程后重启监听,重启后,没有服务注册时正常,过1分种在查看监听状态,还是卡在那儿了,查看监听日志没什么收获,后来查看数据库alter日志,发现如下:
因UPS意外跳闸导致服务器宕机,将各服务恢复后,发现LIMS系统无法正常访问,通过报错提示发现监听有问题,处理方法见下文:
今天收到一条报警短信,提示dg似乎出了点问题。信息的来源是从v$dataguard_status里面扫描得到的最新错误。 2015-09-15 22:06:19.0 Log Transport ServicesErrorError 12541 received logging on to the standby 2015-09-15 22:06:19.0 Log Transport ServicesErrorPING[ARC1]: Heartbeat failed to connect to standby
环境: 11.2.0.3 ADG (db11g\db11gadg\db11gcas)
--================================== -- 设置 Oracle 监听器密码(LISTENER) --================================== 监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从 而造成任意新的会话都将无法建立连接。在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理。也容易导致数 据库受到损坏。 1. 未设定密码情形下停止监听
假设我们需要将多个oracle实例部署在同一套RAC集群/相同物理机上时,默认部署情况下,多个oracle实例共享使用默认的1521监听器。
Oracle启动监听报错,提示 连接中断 [oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-AUG-2014 20:02:16 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /opt/oracle/11g/bin/tnslsnr: please wait... TNS-12537:
Oracle12c 版本的说明: Oracle12cR2=12.2.0.1 Oracle18C=12.2.0.2 Oracle19c=12.2.0.3
在Red Hat Enterprise Linux Server release 6.7 成功安装ORACLE 11g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错: ORA-1
最近reportDB监听无法随系统自启动,现象比较怪异。因为该服务器上的另一个实例的监听可以正常启动,这个不能自启动实例的监听手动启动又是正常的。因此记下这次离奇暂未找到原因的故障。
在 Linux下启动Oracle服务需要下面两步: 启动lsnrctl监听。 启动数据库实例。 启动lsnrctl监听 首先以oracle用户登录系统 进入数据库目录 $ cd /home/oracle/app/oracle/product/12.2.0/dbhome_1/bin 查看监听状态 $ ./lsnrctl status LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-AUG-2018 20:28:21 Copyright (c
前几天有网友在墨天轮平台上问到“如何写一个定时任务监控用户会话连接数”的问题,由于当时比较忙,回答的比较简单也比较匆忙。最近也因为公司新项目老是加班,运维保障,安装 RAC、搭建 DG 、故障处理等等,占据了很大个人时间,休息充电的时间难免减少了很多,今日利用闲暇时间,来继续说一说监控会话相关的这个话题。
tnsping,作为Oracle连接测试的一个小巧的工具,其实大家已经不陌生了,但是使用tnsping有一个问题,就是连接超时,当然这个和网络的 安全策略等密不可分,但是摆在我面前的一个问题是,现在有大量的服务器,每台数据库服务器上都有tnsnames.ora,如果需要判断 tnsnames.ora里面的配置是否生效,使用tnsping是一个很自然的选择。 我也这么做了,我写了一个命令去解析tnsnames.ora 然后把里面的连接对象给标示出来。 cat tnsnames.ora|awk '{print
今天在搭建DG的时候碰到了一个蛮有意思的问题,耗费了不少脑细胞,简单记录一下。 首先主库是Queuedb,备库是s2queuedb,使用RMAN的duplicate来搭建,主备库的网络配置listener.ora,tnsnames.ora都没有问题。 但是使用RMAN命令的时候就抛出了下面的错误,从错误信息可以看出来,主库是没有启动起来。 $ rman target sys@Queuedb auxiliary sys@s2queuedb nocatalog connected to target datab
上周在升级时候,客户反馈某个job报了下面的错误,想让我们查看一下是不是数据库这边有什么问题。 报错的内容如下。 Caused by: java.sql.SQLRecoverableException: No more data to read from socket at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1142) at oracle.jdbc.driver.T4CMAREngi
对昨天提出的问题做了一个简单的分析和排查,也算是有了一个交代,上一篇文章在 dg broker校验失败的一个奇怪问题 我查看了最近的日志,发现在半个月以前有一行日志引起了我的注意。 Thu Mar 03 17:32:12 2016 ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH; 关于这个DEFER的设置,让我想起了之前的一个设置。 原来的主库发生了硬件电源故障,启用备用电源之后,勉强撑了几个小时,因为数据库之前使用的异机逻辑备份,
脚本使用和下载可参考Github:https://github.com/pc-study/InstallOracleshell
启动监听器无法打开,报错! 1 [oracle@localhost ~]$ lsnrctl start 2 3 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-AUG-2014 19:40:52 4 5 Copyright (c) 1991, 2009, Oracle. All rights reserved. 6 7 Starting /opt/oracle/11g/bin/tnslsnr: please wait..
由于Oracle分为客户端和服务器端,所以,查看Oracle是32位还是64位也分为服务器端和客户端2个部分。
前几天,我和系统运维的同事处理一个看似诡异的问题,他找到我说应用服务器启动的时候报了DB的Error,但是错误信息有限,他也没法完全定位到错误的原因,所以就希望我来帮忙看看这个问题是怎么回事,怎么解决。 从应用服务启动的日志来看,错误信息是连接池的地方有了问题。 Error: 2017-06-09 10:04:59 init connpool:one or more conn open error. Error: 2017-06-09 10:12:50 init connpool:one or mo
今天在梳理一套环境的时候,发现了一个奇怪的问题,应用端连接正常,但是服务端却有些问题。 假设服务端的IP地址为10.129.128.57 使用tnsping本机的服务,竟然抛出了监听的问题。 $ tnsping s2gamebbs Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = s2gamebbs.test.com)(PORT = 1528)) (CONNECT_DATA = (SERVER
今天将NC6.5应用服务器和ORACLE 11g数据库服务器托管到中国移动机房,完成IP地址的更改和相关设置,启动ORACLE服务器并打开监听。
将该TNS信息配置到同事本地的tnsnames.ora文件,使用pl/sql developer无法连接,报错TNS-12535: TNS操作超时1。
从去年开始便一直使用的是 ogg 19c,但今年年中时候发现 Oracle 官方居然将 Linux x64 位的 ogg 下载链接下架了,不知为何无法下载到这个版本了(PS:有需要的前去我的墨天轮地址下载:https://www.modb.pro/download/761440),微服务版本也没有了,现在只能从官网看到 21c 的安装包。
编辑手记:让安全成为一种习惯,使用 Oracle 的 Security External Password Store 功能实现加密登录, 不将明文密码暴露在生产环境当中。 本文来自周四大讲堂整理。
最近测试环境的连接数老是不够用,session/process 都相应的从5000提到了8000,但还是不够,而且还是不断有新环境需要增加。最后根据评估,session数需要50000左右 根据粗略的计算来说,process也需要调整,按照如下的公式. sessions=(1.1*process+5) 把semmns做了大幅度的调整,从32000调到了70000 > cat /proc/sys/kernel/sem 250 32000 100 256 > sysctl -a |grep
Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置方法与SQL server 大同小异。
最近新建了好几个测试库,有一个库在过了一段时间之后,出现了很奇怪的问题,有时候能够登录,有时候又登不上。 通过sqlplus登录,报错如下: >sqlplus n1/n1@testhost1 SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:04:35 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-12537: TNS:connection cl
最近客户邮件描述无法从客户端连接到数据库,其错误号为ORA-12537: TNS:connection closed,连接被关闭。直接通过tnsping没有任何问题。listener日志中出现TNS-12518: TNS:listener could not hand off client connection。即Listener无法分发客户端连接。下面是具体的错误信息、分析与解决的过程。
今天照例开始学习oracle,实例启动了,但是listener却突然很奇怪,怎么都起不来。 我检查了下listener配置,网络配置,ssh服务,一切都正常,最后看防火墙开着,关了以后,问题还是照旧。 [oracle@oel log]$ lsnrctl LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 02-MAY-2013 12:11:38 Copyright (c) 1991, 2005, Oracle. All rights reserve
在linux服务器centos7上新安装的oracle 19c,结果发现客户端怎么都连不上。检查了下,发现原来是监听的端口采用默认配置为了LOCALHOST:
显然是Oracle的服务名设置错误,orcl的服务名是Oracle数据库最常用的服务名,难道会错?仔细看看listener的状态:
最近看了一个问题,看问题的表现着实比较奇怪,困扰了我好一会儿。 问题的背景是帮助开发的同学解决一个数据库问题,最后问题解决之后,我想做一个操作系统级的检查,帮他们看看还有什么需要注意的地方。然后在命令行中国登陆到了这台数据库服务器,切换到oracle用户之后,查看到数据库实例为cytj,然后准备做一番检查。 #ps -ef|grep smon root 3657 32596 0 17:37 pts/2 00:00:00 grep smon oracle 5433 1 0
ORACLE数据库表示的错误,通常由3个字母加上5个数字来组成,如:ORA-nnnnn,TNS-nnnnn等,其中:
***********************************************************************
环境:RAC+单机 Dataguard 问题:启动备库到ADG模式时,发现后台归档日志并不同步
在DB运维的过程中,难免碰到需要跨多个服务器以及多个Oracle实例查询数据库的情形。比如我们需要查看当前所有生产环境数据库上open_cursor参数的值以便考虑是否需要增加。而需要查看的数据库服务器上有多个实例,同时又存在多个数据库服务器,这样子下来,几十个DB,上百个的情形一个个查,那得把人给累死。那就像点办法撒,写个shell脚本,轮巡所有服务器及服务器上的所有实例。见本文的描述。
最近在安装Linux下的Oracle环境,折腾了很久,遇到了不少问题,最后终于搞定了,于是写下此文,记录安装过程,以备后用。
环境: Oracle 19.16 ADG (Single Instance -> RAC) 在配置ADG的场景,发现ADG不能同步。
select ‘bgdrac’ database,t11.username,t11.default_tablespace tablespace_name,segment_size_in_GB,datafile_size_in_gb,tablespace_free_size_in_gb from (select username,default_tablespace from dba_users) t11 left join ( select nvl(t1.tablespace_name,t2.tablespace_name) tablespace_name,t1.size_in_GB datafile_size_in_GB,t2.size_in_GB segment_size_in_GB,t1.size_in_GB-t2.size_in_GB tablespace_free_size_in_GB from (select tablespace_name,sum(bytes)/1024/1024/1024 size_in_GB from dba_data_files group by tablespace_name) t1 full join (select tablespace_name,sum(bytes)/1024/1024/1024 size_in_GB from dba_segments group by tablespace_name) t2 on t2.tablespace_name=t1.tablespace_name) t22 on t22.tablespace_name=t11.default_tablespace where t11.default_tablespace<>’zlbfxt’;
Oracle Data Guard是Oracle MAA (Maximum Availability Architecture)中的成员之一。从Oracle 7i版本开始推出STANDBY DATABASE的概念,慢慢受到大家的欢迎。随着Oracle数据库版本的更迭,搭建备库的方式多种多样。今天介绍一种创建物理备库的新方式,从12C版本开始推出:使用 DBCA 命令行。
昨天有一个客户端安装11g数据库。整个安装过程和一些遇到的问题是一个创纪录。共享。
最近整合了几个测试环境,都放入了12c的容器数据库中。今天本来计划再整合几个测试库进来,结果因为碰到了JDBC的问题给耽搁了。 迁移数据库的步骤,因为数据量不大,数据结构较为复杂,所以直接采用了DataPump来做,而且因为测试环境,所以很多问题有充足的时间去排除和分析。 首先我创建了一个PDB CREATE PLUGGABLE DATABASE tbillmob ADMIN USER pdb_mgr IDENTIFIED BY oracle file_name_convert=('/hom
在很多情况下,或无法使用dbca工具的时候,我们需要手动来删除数据库。对此,可以借助drop database命令来实现,下面的描述中给出手动删除数据库
chown -R oracle:oinstall /soft/database/oracle/ chown -R 755 /soft/database/oracle/
相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。
之前因为安装的是windows server 2008 r2的系统,oracle是11g r2 64bit,因为像很多网友一样,无法使用pl/sql developer 8连接oracle,今天可算连上了,对listener.ora sqlnet.ora tnsnames.ora三个文件、TNSListener服务的认识也深了一层。
建了一个库,想通过Oracle Net访问,需要配置监听器和tnsnames.ora,接下来碰到一系列的问题。。。 1. 添加监听器配置,listener.ora文件默认包括: LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /opt/app/ora11g 为了新建监听器名称,添加如下: DCSOPEN = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 172.101.19.57)(Port = 1521))) 或 DCSOPEN = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dcsopen2Node)(PORT = 1521)) ) ) ADR_BASE_DCSOPEN = /opt/app/ora11g 或 DCSOPEN = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = 172.101.19.57)(Port = 1521))) SID_LIST_DCSOPEN = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/app/ora11g/product/11.2.0/dcsopen) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = dcsopen) (ORACLE_HOME = /opt/app/ora11g/product/11.2.0/dcsopen) (SID_NAME = dcsopen) ) ) ADR_BASE_DCSOPEN = /opt/app/ora11g 或 DCSOPEN = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.101.19.57)(PORT = 1521)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) ) SID_LIST_DCSOPEN = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/app/ora11g/product/11.2.0/dcsopen) (PROGRAM = extproc) ) ) ADR_BASE_DCSOPEN = /opt/app/ora11g 2. 添加本机的tnsnames.ora文件配置: dcsopen = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.101.19.57)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = dcsopen) ) ) 3. 使用tnsping dcsopen测试,报错: ora11g>tnsping dcsopen TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 08-JAN-2015 00:38:55 Copyright (c) 1997, 2009, Oracle. All rights reserved. Used parameter files: /opt/app/ora11g/product/11.2.0/dcsopen/network/admin/sqlnet.ora TNS-03505: Failed to resolve name 4. 使用sqlplus登
最近为了统计一些服务器的监听使用情况,于是写了一个简单的脚本,在中控中执行,脚本逻辑很简单,也没有什么亮点。 脚本内容如下: #check $1 is IP base_dir=`pwd` ssh $1 "ps -ef|grep smon|grep -v grep; ps -ef|grep tns|grep -v grep|grep -v netns" > $base_dir/tmp_checkdb.lst echo '***DB instance as below***' echo . cat $base_
这是本系列的最后一篇文章,前面我们了解了访问控制中的基本概念以及身份认证和授权的具体操作,本文我们将进一步了解访问控制中的service account。
领取专属 10元无门槛券
手把手带您无忧上云