搜档网
当前位置:搜档网 › 远程启动或关闭oracle数据库

远程启动或关闭oracle数据库

本地和远程关闭实例后,sqlplus在客户端怎样远程启动linux下Oracle 10.2的服务端数据库实例?怎样写一个启动批处理文件?[问题点数:50分]

Oracle 10.2实例已启动的情况下,在命令行 执行C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba可正常连到远程CentOS5.1下的oracle 10g服务端上去!但执行SQL>shutdown immediate后就连不上去了。在CentOS5.1通过http://localhost.localdomain:1158/em/console/关闭实例后也再连不上去,SQL>startup也不管用。
------------------------------------------------------------
C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 6月 17 13:16:30 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

ERROR:
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID


请输入用户名:

-------------------------------------------------------------

C:\instantclient_10_2>sqlplus

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 6月 17 13:21:18 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

请输入用户名: SYS
输入口令:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
----------------------------------------------------------请教具体该怎么做才能远程启动Oracle 10.2数据库实例,及监听器dbconsole?

怎样在XP下写成一个批处理文件:
双击后直接打开一个命令行终端 并自动进入C:\installClient目录下执行
sqlplus ksxt/1234@remoteGZGA命令。该批处理命令可随着XP系统的启动而自动弹出一个命令行终端并执行sqlplus ksxt/1234@remoteGZGA命令!请教该如何实现?
最好是能自动判断出如果远程Oracle 10g服务端没有正常开启时或网络中断时能判断出来,并在终端命令行中给出相应提示






对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:62

bobfang

(匆匆过客)

等 级:
2
#1楼 得分:0回复于:2008-06-17 13:45:20检查linux上的oracle监听器是否已经配置。如没配置就会出现你说所的那种情况。


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:收集网易数据库笔试题,欢迎大家拍砖

ll_0605



等 级:

#2楼 得分:0回复于:2008-06-17 13:48:49在C:\instantclient_10_2 目录下安装了从官方网站下的instantclient-basic-win32-10.2.0.3-20061115.zip,instantclient-sqlplus-win32-10.2.0.3-20061115.zip.
CentOS5.1下Oracle 10g实例名:gzga 端口是1522,user:ksxt;pwd:1234;Ip:192.168.0.100
以用户SYS可登录gzga;

在C:\instantclient_10_2 目录下tnsnames.ora内容如下:
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0.1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_GZGA =
(ADDRESS = (PROTOCOL = TCP)(HOST = 19

2.168.0.100)(PORT = 1522))


remoteGZGA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1522))
)
(CONNECT_DATA =
(SID = gzga)
)
)



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:其他论坛Oracle版都是大版,火热的很,为何感觉csdn的Oracle版有些冷清????

ll_0605



等 级:

#3楼 得分:0回复于:2008-06-17 13:50:16引用 1 楼 bobfang 的回复:
检查linux上的oracle监听器是否已经配置。如没配置就会出现你说所的那种情况。


具体怎么配?各参数值是什么?请指教详细步骤!非常感谢!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:经典SQL语句收集(ORACLE)

gisinfo

(gisinfo)

等 级:

#4楼 得分:0回复于:2008-06-17 14:59:09通过net manager assiant
手动配置

或者在 network文件夹里的监听文件里
填加



LISTENER_GZGA =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1522))


remoteGZGA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1522))
)
(CONNECT_DATA =
(SID = gzga)
)
最好用默认的断口1521



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:oracle面试题目总结---(300分相赠)!

long5973

(long5973)

等 级:

#5楼 得分:0回复于:2008-06-17 16:04:24C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 6月 17 15:53:33 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> set Oracle_sid = remoteGZGA
SP2-0158: 未知的 SET 选项 "Oracle_sid"
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> startup remoteGZGA
SP2-0714: 无效的 STARTUP 选项组合
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> startup gzga
SP2-0714: 无效的 STARTUP 选项组合
SQL> start up
SP2-0310: 无法打开文件 "up.sql"
SQL> start up
SP2-0310: 无法打开文件 "up.sql"
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL>
我按楼上说的修改了admin/listner.ora文件,重起监听器和数据库,再从客户端连接后的拷屏信息如上,请教原因及解决

方法?






对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:特难的SQL,请高书帮助,急,跪求各位大峡!!!

long5973

(long5973)

等 级:

#6楼 得分:0回复于:2008-06-17 16:04:32C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 6月 17 15:53:33 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> set Oracle_sid = remoteGZGA
SP2-0158: 未知的 SET 选项 "Oracle_sid"
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> startup remoteGZGA
SP2-0714: 无效的 STARTUP 选项组合
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL> startup gzga
SP2-0714: 无效的 STARTUP 选项组合
SQL> start up
SP2-0310: 无法打开文件 "up.sql"
SQL> start up
SP2-0310: 无法打开文件 "up.sql"
SQL> startup
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
SQL>
我按楼上说的修改了admin/listner.ora文件,重起监听器和数据库,再从客户端连接后的拷屏信息如上,请教原因及解决方法?






对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#7楼 得分:0回复于:2008-06-17 16:11:26更正下:是修改了admin/listener.ora文件,改后内容如下:
# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0.1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0.1)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))
)
)

LISTENER_GZGA=
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1522))

remoteGZGA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1522))
)
(CONNECT_DATA=
(SID = gzga)
)
localhost ip =192.168.0.100



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#8楼 得分:0回复于:2008-06-17 19:07:27具体该怎么做才能真正做到远程启动Oracle 10g服务端实例?


对我有用[0] 丢个板砖[0] 引用

举报 管理 TOP

hiairfly

(呵呵)

等 级:

#9楼 得分:0回复于:2008-06-17 20:08:23楼主问题的原因很有可能是服务器端数据库服务是动态注册的。
建议在listener.ora中静态注册数据库服务。
如:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME=gzga)
(ORACLE_HOME = D:\oracle\product\10.2.0\emes)
(SID_NAME = gzga)
)
)

客户端的tnsname.ora中CONNECT_DATA 节点用SERVICE_NAME替换SID。
(CONNECT_DATA =
(SERVICE_NAME = gzga)
)


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

h92998

(h92998)

等 级:

#10楼 得分:0回复于:2008-06-17 22:01:49怀疑是客户端的配置文件tnsname.ora有问题,请检查


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

bai_jiong

(常青松)

等 级:

#11楼 得分:0回复于:2008-06-18 09:01:56在你的TNSNAMES.ORA文件中,加上数据库的连接方式为专用连接.


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#12楼 得分:0回复于:2008-06-18 11:03:42to bai_jiong:你指的是服务端还是客户端的tnsnames.ora?具体怎么设置连接方式为专用连接,请指教!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#13楼 得分:0回复于:2008-06-18 11:58:42to hiairfly:在CentOS5.1上的u01/app/oracle/product/10.2.0.1 下没有emes目录,这个目录是做什么的?我该怎样指定?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

bai_jiong

(常青松)

等 级:

#14楼 得分:0回复于:2008-06-18 12:45:43在客户端配置

(CONNECT_DATA =
(server = dedicated)
(SERVICE_NAME = gzga)
)


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#15楼 得分:0回复于:2008-06-18 13:43:27非常感谢 hiairfly:根据你的提示,我的功能实现了。
可是我还有一个问题没解决:
怎样在WIN XP下写成一个批处理文件:
双击后直接打开一个命令行终端 并自动进入C:\installClient目录下执行
sqlplus ksxt/1234@remoteGZGA命令连接到远程的CentOS5.1中的10G服务端。该批处理命令可随着XP系统的启动而自动弹出一个命令行终端并执行sqlplus ksxt/1234@remoteGZGA命令!
最好是能自动判断出如果远程Oracle 10g服务端是否正在开启、数据库实例能否连接上或局域网络中断时能判断出来,并在终端命令行中给出相应错误信息提示!
请教该如何实现?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

bobfang

(匆匆过客)

等 级:
2
#16楼 得分:0回复于:2008-06-18 17:25:31给个例子
@echo off
setlocal
pushd "C:\installClient"
set servername=remoteGZGA
set username=ksxt
set password=1234

echo "

测试tnsping %servername% "
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo "失败!"
type monitor.tmp
pause
) else (
echo "通过"
echo "测试连接数据库"
echo WHENEVER SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername%>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 echo "连接失败,原因是:"
type monitor.tmp
pause
)
popd
endlocal



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#17楼 得分:0回复于:2008-06-18 20:00:18请教批处理文件该怎么创建?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ruihuahan

(飞不起来的笨鸟)

等 级:
3
#18楼 得分:0回复于:2008-06-18 20:46:53windows 平台下有很多的 ssh 客户端可用的,比如 putty。网上下载安装一个,就可以远程登录到 linux 服务器上,从服务器启动 oracle 实例就可以了。


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#19楼 得分:0回复于:2008-06-18 21:00:47我想做成自动启动的服务那样该怎么做?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#20楼 得分:0回复于:2008-06-20 13:43:32随着WINXP系统的启动进入用户桌面后自动弹出一个终端命令行并执行sqlplus SYS/long0411@remoteGZGA命令!
最好是能自动判断出如果远程Oracle 10g服务端是否正在开启、数据库实例能否连接上或局域网络中断时能判断出来,并在终端命令行中给出相应错误信息提示!
请教该如何实现?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#21楼 得分:0回复于:2008-06-20 14:48:37顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

bobfang

(匆匆过客)

等 级:
2
#22楼 得分:0回复于:2008-06-20 16:18:37可以这样写BAT

@echo off
setlocal
pushd "C:\installClient"
set servername=remoteGZGA
set username=sys
set password=long0411

echo "正在tnsping %servername% "
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo "tnsping失败,数据库无法连接"
type monitor.tmp
pause
) else (
echo "tnsping通过."
echo "正在用sqlplus连接数据库"
echo WHENEVER SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername% as sysdba>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 {
echo "连接数据库时出错,错误原因是:"
type monitor.tmp
pause
}
)

popd
endlocal




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级



#23楼 得分:0回复于:2008-06-20 20:31:3910g数据库正常启动了,连接数据库的WEB应用也正常跑起来了。
monitor.tmp和批处理文件在同一目录下。双击批处理文件后命令行终端内容如下:

"正在tnsping remoteGZGA "
"tnsping通过."
"正在用sqlplus连接数据库"
"连接数据库时出错,错误原因是:"
请按任意键继续. . .




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#24楼 得分:0回复于:2008-06-22 09:28:30请教上述错误的产生是什么原因?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

bobfang

(匆匆过客)

等 级:
2
#25楼 得分:0回复于:2008-06-23 09:34:19哦,是我写错了。再试试
@echo off
setlocal
pushd "C:\installClient"
set servername=remoteGZGA
set username=sys
set password=long0411

echo 正在tnsping %servername%
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo tnsping失败,数据库无法连接
type monitor.tmp
pause
) else (
echo tnsping通过.
echo 正在用sqlplus连接数据库
echo WHENEVER SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername% as sysdba>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 (
echo 连接数据库时出错,错误原因是:
type monitor.tmp
pause
) else echo 数据库可以正常连接
)

popd
endlocal


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#26楼 得分:0回复于:2008-06-23 12:03:53改后的批处理文件,在数据库没有启动时,运行结果如下:
正在tnsping remoteGZGA
tnsping失败,数据库无法连接

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 23-6月 -2
008 12:02:09

Copyright (c) 1997 Oracle Corporation. All rights reserved.

已使用的参数文件:
F:\oracle\ora92\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.0.100)(PORT = 1522))) (CONNECT_DATA = (SERVICE_NAME = gzga)))
TNS-12535: TNS: 操作超时
请按任意键继续. . .



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#27楼 得分:0回复于:2008-06-23 12:42:27在数据库正常启动后,点击批处理文件后 命令行窗口一闪就关闭了。
命令行窗口中显示:“
正在tnsping remoteGZGA
tnsping通过
正在用sqlplus连接数据库”

我想在sqlplus连接数据库成功后直接进入连接空闲例程而不是迅速关闭命令行窗口,像下面这样:
C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 6月 23 12:13:43 2008

Copyright (c) 1982, 2006, Oracle. All Rights

Reserved.

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
数据库装载完毕。
数据库已经打开。
SQL>
请教该如何修改?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

pgh

(crocodile)

等 级:

#28楼 得分:0回复于:2008-06-24 15:08:06理论上你必须先保证服务器的lsnrctl start, 如果没启动,一般到通过远程登录连接到服务器,先启动这个服务。


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#29楼 得分:0回复于:2008-06-24 19:45:45在数据库服务端监听器没启动时双击批处理文件后终端内显示内容如下:
正在tnsping remoteGZGA
tnsping失败,数据库无法连接

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 24-6月 -2
008 19:43:19

Copyright (c) 1997 Oracle Corporation. All rights reserved.

已使用的参数文件:
F:\oracle\ora92\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.0.100)(PORT = 1522))) (CONNECT_DATA = (SERVICE_NAME = gzga)))
TNS-12535: TNS: 操作超时
请按任意键继续. . .




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#30楼 得分:0回复于:2008-06-25 12:21:44在数据库正常启动后(监听器和数据库实例都已成功启动),点击批处理文件后 命令行窗口一闪就关闭了。
在一闪而过的命令行窗口中显示:“
正在tnsping remoteGZGA
tnsping通过
正在用sqlplus连接数据库”

我想在sqlplus连接数据库成功后直接进入连接空闲例程而不是迅速关闭命令行窗口,像下面这样:
C:\instantclient_10_2>sqlplus SYS/long0411@remoteGZGA as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 6月 23 12:13:43 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
数据库装载完毕。
数据库已经打开。
SQL>
[color=#FF0000][/color]请教该如何修改?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#31楼 得分:0回复于:2008-06-25 20:15:04顶...............


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

zhaoxinli

(cindy zhao)

等 级:

#32楼 得分:0回复于:2008-06-26 11:27:37
该回复于2008-10-26

23:57:14被版主删除


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

yetaodiao

(理想很丰满▄︻┻现实很骨感)

等 级:

#33楼 得分:0回复于:2008-06-26 11:41:20@echo off
setlocal
pushd "C:\installClient"
set servername=remoteGZGA
set username=sys
set password=long0411

echo 正在tnsping %servername%
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo tnsping失败,数据库无法连接
type monitor.tmp
pause
) else (
echo tnsping通过.
echo 正在用sqlplus连接数据库
echo WHENEVER SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername% as sysdba>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 (
echo 连接数据库时出错,错误原因是:
type monitor.tmp
pause
) else echo 数据库可以正常连接
)



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#34楼 得分:0回复于:2008-06-26 19:17:23楼上的,问题没解决啊,我试你的代码问题依旧:
在10G数据库监听器正常启动后,点击批处理文件后 命令行窗口一闪就关闭了。
命令行窗口中显示:“
正在tnsping remoteGZGA
tnsping通过
正在用sqlplus连接数据库”

请教什么原因?怎么改?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#35楼 得分:0回复于:2008-06-27 12:17:44不用批处理文件,在WINXP下可正常从命令行窗口可以一次性登录到远程CentOS5.1上的Oracle 10.2服务端上并启动数据库实例gzga,WEB应用都正常跑起来
但用了批处理文件后 命令行窗口一闪就关闭了。
在快速关闭的命令行窗口中显示:“
正在tnsping remoteGZGA
tnsping通过
正在用sqlplus连接数据库”

请教什么原因?怎么改?非常感谢!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#36楼 得分:0回复于:2008-06-27 20:30:20顶上去啊!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

piml_lv

(潜水王)

等 级:

#37楼 得分:0回复于:2008-06-28 14:41:25把你的脚本贴出来看看


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#38楼 得分:0回复于:2008-06-28 15:04:33@echo off
setlocal
pushd "C:\instantclient_10_2"
set servername=remoteGZGA
set username=SYS
set password=long0411

echo 正在tnsping %servername%
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo tnsping失败,数据库无法连接
type monitor.tmp
pause
) else (
echo tnsping通过.
echo 正在用sqlplus连接数据库
echo WHENEVER

SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername% as sysdba>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 (
echo 连接数据库时出错,错误原因是:
type monitor.tmp
pause
) else echo 数据库可以正常连接
)

popd
endlocal

不用批处理文件,在WINXP下可正常从命令行窗口可以一次性登录到远程CentOS5.1上的Oracle 10.2服务端上并启动数据库实例gzga,WEB应用都能正常跑起来
但用了批处理文件后 命令行窗口一闪就关闭了。
在快速关闭的命令行窗口中显示:“
正在tnsping remoteGZGA
tnsping通过
正在用sqlplus连接数据库”

我在命令行下用sqlplus SYS/long0411@remoteGZGA as sysdba都可正常连上服务端启动和关闭实例的呀!我的本意是如果能正常连接上就直接继续在已开命令行窗口里提示符 SQL> 里进行相关操作的

请教什么原因导致命令行窗口一闪就关闭了?怎么改?非常感谢!




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#39楼 得分:0回复于:2008-06-29 11:43:17upupup


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#40楼 得分:0回复于:2008-06-30 07:29:52waiting for expert.....


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#41楼 得分:0回复于:2008-07-01 08:35:39still waiting for expert.....


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

billlyh



等 级:

#42楼 得分:0回复于:2008-07-01 15:34:18ding!!!!!!!!!!!!!!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#43楼 得分:0回复于:2008-07-03 20:11:56等待高手出现......


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#44楼 得分:0回复于:2008-07-08 19:35:03顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

xiaoxiao0067

(晓培)

等 级:

#45楼 得分:0回复于:2008-07-09 09:54:39关注,学习


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#46楼 得分:0回复于:2008-07-10 17:33:54waiting with more patient for the expert's solution.......


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#47楼 得分:0回复于:2008-08-25 22:51:25expecting for the expert...


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#48楼 得分:0回复于:2008-08-26 13:2

4:07up


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

xuejiayue1105

(xjy)

等 级:

#49楼 得分:0回复于:2008-09-01 22:53:46TELNET 登录到你的LINUX远程数据

1. 启动数据库startup
使用pfile启动startup

2. 启动监听进程 (配置listener.ora ,tnsnames.ora 文件)
lsnrctl start 启动 监听进程
lsnrctl status 查看 监听进程
lsnrctl stop 停止


也可以做一个自动启动的脚本在远程的LINUX 数据库服务器上面

参考如下SQL code 在UNIX下自动启动数据库
编辑 /var/opt/oracle/oratab文件 增加 ORACLE_SID:ORACLE_HOME:{Y|N}
ora10g:/home/oracle/product/10.2.0/db_1:Y
在/etc/init.d目录下面建立文件dbora
#!/bin/sh
#Set ORACLE_HOME to be equivalent to the ORACLE_HOME
# from which you wish to execute dbstart to dbshut
#
ORACLE_HOME=/home/oracle/product/10.2.0/db_1
ORACLE_OWNER=oracle
If[ ! -f $ORACLE_HOME/bin/dbstart ]
Then
echo "oracle startup:cannot start"
Exit
Fi
Case "$i" in
'start' )
su - $ORA_HOME -c $ORA_HOME/bin/dbstart &
;;

'stop')
su - $ORA_HOME -c $ORA_HOME/bin/dbshut &
;;
esac
连接到dbora到
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora
ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#50楼 得分:0回复于:2008-09-03 17:57:29楼上的兄弟:你给出的这个 自动启动的脚本 我没怎么读懂,能逐行给出注释吗?谢谢


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

small_ant2008

(small-ant)

等 级:

#51楼 得分:0回复于:2008-09-11 00:00:01remote_login_passwordfile=share
我的意见是你的用户认证有问题


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

linxuanyuzhu



等 级:

#52楼 得分:0回复于:2008-09-11 08:59:47多加几个pause调试一下


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#53楼 得分:0回复于:2008-09-12 14:44:16引用 51 楼 small_ant2008 的回复:
remote_login_passwordfile=share
我的意见是你的用户认证有问题


能具体说说如何修改这个参数吗?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#54楼 得分:0回复于:2008-09-13 15:21:36up


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#55楼 得分:0回复于:2008-09-13 21:57:30up


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

long5973

(long5973)

等 级:

#56楼 得分:0回复于:2008-09-14 19:05:02等待高人出现啊!


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

jdsnhan

(柳荫凉)


 级:
#57楼 得分:0回复于:2008-09-15 23:27:13如果仅仅是想停留在查询窗口,

else echo 数据库可以正常连接
下面加一句
sqlplus youruser/yourpassword@yourservername
就可以了。
最好别使变量。


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#58楼 得分:0回复于:2008-09-16 14:00:17jdsnhan :通过你的提示,我基本解决了我的问题,非常高兴,感谢你的帮助!
我MSN:long5973@https://www.sodocs.net/doc/4d16232429.html,,qq:52542947,你的呢?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#59楼 得分:0回复于:2008-09-16 14:00:28jdsnhan :通过你的提示,我基本解决了我的问题,非常高兴,感谢你的帮助!
我MSN:long5973@https://www.sodocs.net/doc/4d16232429.html,,qq:52542947,你的呢?


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

jdsnhan

(柳荫凉)

等 级:
#60楼 得分:0回复于:2008-09-16 21:28:54jdsnhan@https://www.sodocs.net/doc/4d16232429.html,


对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#61楼 得分:0回复于:2008-09-20 14:10:32我把已编辑好的批处理文件迁移到另一台座机上,并安装了Oracle 9.2的客户端,配置了监听器,用console可以登录到192.168.0.101上的Oracle 10g服务端.可一执行批处理文件总是有如下错误:

正在tnsping remoteGZGA
tnsping通过.
正在用sqlplus连接数据库
数据库可以正常连接

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Sep 20 13:57:59 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

ERROR:
ORA-12705: Cannot access NLS data files or invalid environment specified


Enter user-name:
--------------------------------------------------------------------------------
批处理文件代码如下:
@echo off
setlocal
pushd "C:\instantclient_10_2"
set servername=remoteGZGA
set username=ksxt
set password=1234

echo 正在tnsping %servername%
tnsping %servername% >monitor.tmp
if %errorlevel% neq 0 (
echo tnsping失败,数据库无法连接
type monitor.tmp
pause
) else (
echo tnsping通过.
echo 正在用sqlplus连接数据库
echo WHENEVER SQLERROR exit -1>test.sql
echo connect %username%/%password%@%servername% as sysdba>>test.sql
echo exit>>test.sql
sqlplus -s /nolog @test.sql >monitor.tmp
if %errorlevel% neq 0 (
echo 连接数据库时出错,错误原因是:
type monitor.tmp
pause
) else echo 数据库可以正常连接
sqlplus ksxt/1234@%servername% as sysdba
)

popd
endlocal
所有数据库服务端信息没变,我直接instantclient_10_2拷到被迁移座机的C盘上,把请教上述错误的出现是什么原因?




对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP

ll_0605



等 级:

#62楼 得分:0回复于:2008-09-20 20:

34:41找到了,是字符集问题


相关主题