oracle监听提示The listener supports no services

上回把公司的BI库从11.2.0.1升级到11.2.0.4,最后监听出现了问题,挂在了1522端口上。

这两天一顿操作,把监听又换回到1521上,但是监听却出了问题,连不上数据库。登上去看了一下,lsnrctl status提示The listener supports no services,也就是说监听没有识别库,先后采用了两种方法,如下:

一、

SQL> show parameter service_names –查看服务名称

NAME TYPE VALUE


service_names string orcl

SQL>alter system register

system altered

SQL>exit

强制注册一遍,然后重新启动监听,发现还是不行。

二、在listener.ora中添加如下代码:

SID_LIST_LISTENER =  
(SID_LIST =  
  (SID_DESC =  
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)

使之成为这样:

[oracle@oracle11g admin]$ cat listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =  
(SID_LIST =  
  (SID_DESC =  
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)
ADR_BASE_LISTENER = /u01/app/oracle

再重新启动监听,

lsnrctl stop

lsnrctl start

这下监听就正常了,也可以连上了。

kettle连oracle卡在正在从数据库读取信息

公司的BI,用的是kettle,连接生产的oracle数据库。

从kettle上连测试库的时候,浏览数据库,总是会卡在正在从数据库读取信息,获取模式信息上。

刚开始以为是oracle的配置问题,检查了一圈发现都很正常。

后来无意发现版本不对,正常应该是:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

而这台慢的是11.2.0.1.0,中间差了几个版本,无奈就只能去升级,但现在还没有开始实施。

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

公司的测试数据库,开发的在上面跑脚本,把库资源全占完了,要我把库重启,我懒得去重启,就直接杀了oracle的进程,结果还是不行,就只能去重启库了:

$sqlplus / as sysdba

SQL>shutdown abort

SQL>startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORA-03113:end-of-file on communication channel

ORA-32004的错误,按照老外的方法:

sql>alter system reset log_archive_start scope=spfile;

完美解决,也有说是直接清理干净日志系统就可以,反正这里也是要清理的,不然ORA-03113错误没法解决。

ORA-03113:end-of-file on communication channel,去alert.xml里看,有关于闪回区日志占满的情况,这里就直接清理好了。

$rman target /

DELETE force archivelog ALL completed before ‘SYSDATE’;

然后再startup,这里就成功启动了。

ORA-01187: cannot read from file because it failed verification tests

今天去DG备库上生成报告,然后给了一段提示:

ORA-01187: cannot read from file  because it failed verification tests
ORA-01110: data file 201: ‘/oradata/seven/temp01.dbf’

临时表空间坏了?查看一下大小,跟主库不一样,主库6G,备库只有50M,真是怪了。

SQL>SELECT FILE_ID,FILE_NAME, STATUS FROM DBA_TEMP_FILES;

ERROR at line 1:
ORA-01187: cannot read from file 201 because it failed verification tests
ORA-01110: data file 201: ‘/u03/oradata/AGX/temp01.dbf’

SQL> select name,bytes/1024/1024,status from v$tempfile;

NAME                           BYTES/1024/1024 STATUS


/oradata/seven/temp01.dbf                   30 ONLINE

直接开干吧,老外说可以让系统检查一下,我试了一下,没用:

SQL>ALTER SYSTEM CHECK DATAFILES;

删除临时文件:

SQL> alter database  tempfile ‘/oradata/seven/temp01.dbf’ drop;

Database altered.

SQL> select name,bytes/1024/1024,status from v$tempfile;

no rows selected

重新添加临时数据文件:

SQL> alter tablespace temp add tempfile ‘/oradata/seven/temp01.dbf’ size 30M reuse autoextend on;

Tablespace altered.

SQL> select name,bytes/1024/1024,status from v$tempfile;

NAME                           BYTES/1024/1024 STATUS


/oradata/seven/temp01.dbf                   30 ONLINE

ORA-01102: cannot mount database in EXCLUSIVE mode

今天测试服务器的Oracle突然关闭了,测试组跟我说的时候我就直接上去startup了一下,结果Oracle的提示有点不对劲。

SQL> startup mount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 331350920 bytes
Database Buffers 729808896 bytes
Redo Buffers 5517312 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

这可让我觉得有点奇怪了。

逐网上找了下资料,发现有人的解决办法比较简单粗暴,直接删除/u01/app/oracle/product/10.2.0/db_1/dbs/lkEPPS文件,但是后来又出现其它错误。

有个老外写的方法比较靠谱,我这里使用的就是老外的方法,都是些简单的英语,记录下来备用。

阅读更多

centos7安装oracle11gR2

最近频繁在centos7下安装oracle11gR2,网上各种文章,找到了这篇比较靠谱,其中有在安装过程中遇到的两个问题,比如error in invoking target install of makefile和error in invoking target agent nmhs,这篇里面都提到了解决办法。

地址: https://www.jianshu.com/p/2fda26a7edf1

图文安装地址: https://blog.csdn.net/qq_32786873/article/details/82110235

oracle 11g字符集编码查询和修改

注意:如果你的实例里面已经有了数据,那么修改过字符集后库里的数据会变成乱码。

查询修改oracle服务器端和客服端字符集

首先查看oracle数据库的编码

SQL> select * from nls_database_parameters where parameter =’NLS_CHARACTERSET’;

PARAMETER VALUE

NLS_CHARACTERSET AL32UTF8

这其来源于props$,这是表示数据库的字符集。

阅读更多