指点成金-最美分享吧

登录

OracleOraDb11g_home1TNSListener服务启动不了?怎样解决?

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了OracleOraDb11g_home1TNSListener服务启动不了?怎样解决?相关的知识,希望对你有一定的参考价值。

就是OracleOraDb11g_home1TNSListener启动后马上自动停止。

OracleOraDb11g_home1TNSListener服务启动不了机器名称造成的,建议修改为ip访问。
1、停掉所有ORACLE服务,设为手动。进入oracle网络管理工具“Net8 Configration Assistant”或“Net8 Assistant”,重新配置一个监听服务,名为“Listener1”。
2.进入“命令提示符”,运行“监听控制程序——LSNRCTL”,再运行“start listener1”,首次启动Listener1监听程序,为Listener1在操作系统服务里生成相关服务项。为了后面的修改操作能够生效,再运行“stop listener1”停止Listener1。
3.将服务中原Listener服务的“启动类型”改为“已禁用”,将已生成的Listener1服务的“启动类型”改为“自动”。
4.用“记事本”打开监听服务配置文件“ORACLE_HOME / network / admin / listener.ora”,将“LISTENER =”、“SID_LIST_LISTENER =”分别改为“LISTENER1 =”、“SID_LIST_LISTENER1 =”,并删除当前的“LISTENER1 =”、“SID_LIST_LISTENER1 =”项。该操作的作用为:不用费力为Listener1监听服务再配置常规参数、数据库监听等,直接采用原Listener服务的配置。
5.再启动Listener1监听服务,可以连接到数据库。
参考技术A 再贴日志中错误信息
再描述一遍
是机器重启后服务启动失败
但是马上手动启动就ok了
麻烦帮我看看
***********************************************************************
Fatal NI connect error 12541, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=D:\app\datacenter\product\11.1.0\db_1\bin\emagent.exe)(HOST=SERVER)(USER=SYSTEM))))

VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Time: 22-4月 -2008 07:40:32
Tracing not turned on.
Tns error struct:
ns main err code: 12541
TNS-12541: TNS: 无监听程序
ns secondary err code: 12560
nt main err code: 511
TNS-00511: 无监听程序
nt secondary err code: 61
nt OS err code: 0

***********************************************************************
Fatal NI connect error 12505, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=D:\app\datacenter\product\11.1.0\db_1\bin\emagent.exe)(HOST=SERVER)(USER=OraUser))))

VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.1.0.6.0 - Production
Time: 22-4月 -2008 08:58:58
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: TNS: 拒绝连接
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
参考技术B 我也碰到类似情况,进入lsnrctl状态后,用start命令可以勉强将监听服务启动。 参考技术C 遇到了同样的问题 楼主找到答案了没

C语言 while(!x);是啥意思?

C语言 while(!x);是什么意思?
main()
int x=3;
do
printf("%d",x--);

while(!x);


问下这题 输出结果是 3 我 怎么算出来是 3 2 1?
是不是 while(!x)和 do while(!x)的 意思是不一样的 ?求教!

while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。

!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。

while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

扩展资料:

1、c语言语法结构

for循环

for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式

表达式1为初值表达式,用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式3为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。

for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。

do

do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。

while

while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件

以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

2、c语言特点

高级语言。它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 

结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 

代码级别的跨平台。由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

使用指针。可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 

参考链接:c语言_百度百科
参考技术A while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。
在while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。
于是这句的意思就是,如果x为0,则一直循环下去,不做操作,否则继续执行。
如果没有其它线程来改变x的值,那么这里就是一个死循环了。
参考技术B !是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。
while循环和 do-while 循环的区别在于,while是先检查是否复合条件再循环,而do-while循环则是在循环体尾检查是否符合条件,这就说明,do-while循环内的语句至少被执行一次。
这好比下面的例子
do
吃一个三明治 ←←←←← Statement;
我饿吗?(饿,再吃一个三明治↑)(不饿,退出循环↓) while();
←←←←←←←←←
这就意味着,你至少得吃一个三明治。
如果使用while循环,则像下面这样

我饿吗?(饿,吃↓)(不饿↓) while()
吃一个三明治 ← ↓ statement;


这说明,你不一定吃一个三明治。
这就是while跟do-while的区别。。。=、=本回答被提问者采纳
参考技术C 这个程序等价于
void main()
int x=3;
do
printf("%d",x--);

while(x==0);//关键在这句的理解


而不是你认为的: !x <=> x!=0
参考技术D main()

int x=3;
do

// 此处输出 3,且x的值为2;
printf("%d",x--);


// !x (!2 = 0)说以退出循环
while(!x);

以上是关于OracleOraDb11g_home1TNSListener服务启动不了?怎样解决?的主要内容,如果未能解决你的问题,请参考以下文章