1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。
2、 开始->程序->Oracle – OraHome81->Oracle Installation
Products-> Universal Installer 卸装所有Oracle产品,但Universal
Installer本身不能被删除 5、
运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。
6、
运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动
这个列表,删除所有Oracle入口。 7、 运行refedit,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,
删除所有Oracle入口。 8、
开始->设置->控制面板->系统->高级->环境变量
删除环境变量CLASSPATH和PATH中有关Oracle的设定 9、
从桌面上、STARTUP组、程序菜单中,删除所有有关Oracle的组和图标 10、
删除\Program Files\Oracle目录 11、
重新启动计算机,重起后才能完全删除Oracle所在目录 12、
删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入
口目录及所有子目录,并从Windows 2000目录下删除以下文
件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。 13、
WIN.INI文件中若有[ORACLE]的标记段,删除该段 14、
如有必要,删除所有Oracle相关的ODBC的DSN 15、
到事件查看器中,删除Oracle相关的日志 说明:
如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装,
安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。

解决Connect to Idle Instance问题 第一步 查看Oracle_SID.
[oracle@linuxserver ~]$ echo $ORACLE_SID cjdl
这里的SID要和初始化文件spfilecjdl.ora里的一样才行。 [oracle@linuxserver
~]$ cd $ORACLE_HOME [oracle@linuxserver 11.2.0]$ cd dbs
[oracle@linuxserver dbs]$ ls hc_cjdl.dat hc_DBUA0.dat init.ora
lkCJDL orapwcjdl spfilecjdl.ora 多数情况下,都是因为这里出了问题。
第二步 [oracle@linuxserver dbs]$ export ORACLE_SID=cjdl
一般来讲,export一下,就可以正常连接了。 第三步 [oracle@linuxserver
dbs]$ sqlplus / as sysdba Ok!正常连接。

在自己的虚拟机的做实验,突然发现使用PL/SQL
Developer无法连接到数据库,报错ORA-12514,说是监听没有启动。

在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁被锁定。造成此故障的原因是什么呢?本文就介绍了这一过程,经由过程慢慢排查我们就能找到该故障的原因了。
下面记录下查找这个题目的步调。 1. 找到账号被锁按时候
哄骗sqlplus或者sqldeveloper,查询账号被锁定的时候,相干语句如下:
–批改当前会话的日期显示格局 alter session set nls_date_format =
“”yyyy-MM-dd hh24:mi:ss””; –查询被锁定账号的锁按时候
username,lock_date dba_users where username like “”TRSEKPV65_DEMO””;
比如这里的查询到的锁按时候为:20:03:03 2. 找到oracle的安装目次
项目组常识库的oracle安装路径为:C:\devsoftware\oracle11g 3.
找到监听日记
找到
C:\devsoftware\oracle11g\diag\tnslsnr\DEV2-216\listener\trace\listener.log文件,该文件会记录oracle的一些跟踪信息
4. 查看监听日记
找到该文件后,发明很大,无法用editplus打开。把该文件上传到linux机械或者在windows机械高低载一个tail.exe法度,履行tail
-20 listener.log号令,查看该文件的最后20行内容。 5. 定位题目
按照上方查询到的时候,在日记中找到对应的时候地位,可以定位到当前时候Oracle所履行的操纵。
01-8月 -2011 20:03:35 *
(CONNECT_DATA=(SERVICE_NAME=portalteam)(CID=(PROGRAM=D:\TRS\TRSGateway4.6\gwserver_x64\TrsAgent.exe)
* (ADDRESS=(HOST=fe80::e816:9e03:60ac:fdaa%11) * establish *
portalteam * 0 6. 总结
从上边可以看到,造成Oracle的账号被锁定的原因是由”
TrsAgent.exe”过程造成的。细心一想,本来批改了暗码,没有批改GateWay的登录信息,所以造成了该账号登录Oracle经常失败,因为我们设备了Oracle的最大容许登录错误次数为10,所以跨越10次错误后账号将被锁定。

场景如下:–创建类型create or replace type list_obj is table of
number;–创建表结构create table test primary key
check(regexp_like(name,’^, id number not null, version_list list_obj)
nested table version_list store as version_list;

先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Oracle
12.2.0.1,为了测试12.2的ASM特性安装了GI。平时监听程序默认是开启启动的。但是今天不知道为什么没有启动。使用crsctl查看资源状态:发现监听的状态确实是OFFLINE状态

场景说明:类型 list_obj 相当一个元素为数字的列表。表 test
有三个字段,字段 name
为主键限制只能使用小写字母、数字、下划线组成的字符串;字段 id
是数字,限制为非空;字段 version_list 是类型为 list_obj 的嵌套表。

[root@rhel7 .oracle]# crsstat--------------------------------------------------------------------------------Name Target State Server State details --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.DATA.dg ONLINE ONLINE rhel7 STABLEora.LISTENER.lsnr ONLINE OFFLINE rhel7 STABLEora.asm ONLINE ONLINE rhel7 Started,STABLEora.ons OFFLINE OFFLINE rhel7 STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.cssd 1 ONLINE ONLINE rhel7 STABLEora.diskmon 1 OFFLINE OFFLINE STABLEora.driver.afd 1 ONLINE ONLINE rhel7 STABLEora.evmd 1 ONLINE ONLINE rhel7 STABLEora.ora12c.db 1 ONLINE ONLINE rhel7 Open,HOME=/u01/app/o racle/product/12.2/d b_home1,STABLE--------------------------------------------------------------------------------

操作1:–插入一条记录insert into test values;

尝试手动启动监听,依然报错:

查询结果如下:

[grid@rhel7 ~]$ srvctl start listenerPRCR-1079 : Failed to start resource ora.LISTENER.lsnrCRS-5016: Process "/u01/app/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "" in "/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc"CRS-5016: Process "/u01/app/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "" in "/u01/app/12.2/grid/diag/crs/rhel7/crs/trace/ohasd_oraagent_grid.trc"CRS-2674: Start of 'ora.LISTENER.lsnr' on 'rhel7' failed

目前 version_list 为空,现在我们需要开始维护该字段:往 name=’mophee’
的记录插入一个版本号20130403112459。语句如下:

根据提示查看trc文件,看到如下报错:

--插入一个版本号insert into table(select version_list from test where name='mophee') values;
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 15-NOV-2017 20:03:28Copyright  1991, 2016, Oracle. All rights reserved.Starting /u01/app/grid/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 12.2.0.1.0 - ProductionSystem parameter file is /u01/app/grid/network/admin/listener.oraLog messages written to /u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xmlListening on: (DESCRIPTION=(ADDRESS=Error listening on: (DESCRIPTION=(ADDRESS=TNS-12555: TNS:permission denied TNS-12560: TNS:protocol adapter error TNS-00525: Insufficient privilege for operation Linux Error: 1: Operation not permittedListener failed to start. See the error message above...

执行以上 insert 语句就报错了!

看到Insufficient privilege for
operation这个字样觉得很纳闷,怎么会权限不足呢,于是尝试用root直接启动监听,依然报错:

原因是什么?version_list 字段目前是
NULL,以上insert语句试图做这个动作:table,也就是要将NULL对象化成一个表。这事有违常理,ORACLE干不了!

[root@rhel7 .oracle]# lsnrctl startLSNRCTL for Linux: Version 12.2.0.1.0 - Production on 15-NOV-2017 20:22:30Copyright  1991, 2016, Oracle. All rights reserved.Starting /u01/app/grid/bin/tnslsnr: please wait...TNS-12546: TNS:permission denied TNS-12560: TNS:protocol adapter error TNS-00516: Permission denied Linux Error: 13: Permission denied

那么怎么解决呢?version_list
字段之所以为NULL,是因为我们根本没对它进行初始化。那么,在insert之前先对其初始化不久能解决问题了吗?

于是各种百度,下面把百度到内容列出来,可能会对看此文的同学有用,但是对我这种情况没有用:主要是说
/var/tmp/.oracle、/tmp/.oracle 这两个目录的权限访问问题。 进入
一看,我的/var/tmp/.oracle权限
没问题,而/tmp/.oracle压根就没有这个文件。

方法一:在往 test 表 insert 的时候使用如下语句

于是直接查MOS,看有没有相关的文档,找到两篇文档:

--插入一条记录insert into test(name, id, version_list) values('mophee', 1, list_obj;

Starting the Listener Fails With: TNS-12557 or TNS-12555: TNS:Permission
Denied Listener Fails To Start With IPC Permission Errors (TNS-12546
TNS-12555 TNS-00516 TNS-00525)

方法二:在往 version_list 插入版本号之前先对其进行初始化

对比了文档中列出的问题,跟我的情况也不一相,看到最后发现这样一句话:

--将 version_list 字段初始化为 list_obj 对象update test set version_list=list_obj() where name='mophee';
  1. If you find that there are no adapters linked or they have errors
    (such as “Permission denied”) then issue a “relink all”

看下图:

Reference:Doc ID 1467060.1

这是在 pl/sql developer下的查询输出,注意 version_list
列数据单元格的背景色已经不是淡黄色!虽然查看 version_list
字段的内部内容依旧是没有一条记录,但是意义上是不一样的——初始化之前是
null,初始化之后才是 list_obj 对象。

于是只有用这种方法来试试了,由于crs使用的是grid
home下的监听命令所以对grid home做relink all操作。可是又出现报错:

[grid@rhel7 bin]$ relink all The Oracle home in which you are running this relinking tool does not have proper write permissions. Please run this relink script as the sameuser who owns the Oracle home and ensure that the Oracle home has thepermissions from the original installation. If this is a Grid Infrastructure home, please refer to the documentation for the proper steps to relink and apply oneoff patches.

意思是说权限不足,使用root执行,又报错说不能用root执行

[root@rhel7 bin]# relink allThe relink script cannot be run as root.

又查看grid home目录权限

[root@rhel7 app]# ls -ld gridtotal 8drwxr-x--- 84 root oinstall 4096 Jul 18 20:26 grid

原来owner是root,怪不得第一次执行不成功,修改owner,重新执行relink all

[root@rhel7 app]# chown grid grid[grid@rhel7 ~]$ relink allwriting relink log to: /u01/app/grid/install/relink.log

成功后再次启动监听,启动成功。

[grid@rhel7 ~]$ lsnrctl startLSNRCTL for Linux: Version 12.2.0.1.0 - Production on 15-NOV-2017 20:50:59Copyright  1991, 2016, Oracle. All rights reserved.Starting /u01/app/grid/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 12.2.0.1.0 - ProductionSystem parameter file is /u01/app/grid/network/admin/listener.oraLog messages written to /u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xmlListening on: (DESCRIPTION=(ADDRESS=Listening on: (DESCRIPTION=(ADDRESS=Connecting to (DESCRIPTION=(ADDRESS=STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 12.2.0.1.0 - ProductionStart Date 15-NOV-2017 20:51:00Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/grid/network/admin/listener.oraListener Log File /u01/app/12.2/grid/diag/tnslsnr/rhel7/listener/alert/log.xmlListening Endpoints Summary... (DESCRIPTION=(ADDRESS= (DESCRIPTION=(ADDRESS=The listener supports no servicesThe command completed successfully

总结

以上所述是小编给大家介绍的Oracle
12.2监听无法启动解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图