sql新手错误.docx
- 文档编号:28340621
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:18
- 大小:26.23KB
sql新手错误.docx
《sql新手错误.docx》由会员分享,可在线阅读,更多相关《sql新手错误.docx(18页珍藏版)》请在冰豆网上搜索。
sql新手错误
Oracle新手最经常碰到的6个错误及解决方案
没有人会否认ORACLE是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。
下面是我个人的总结,条条有用,希望能给初学者一点启示。
关于“好的东西似乎总不是那么好用(初看起来如此)”的一个笑话:
在参加IBMDB2512、513培训前,在校园网上下载到了安装程序,不过任凭我们几个同学研究个半天,也不知哪个文件是安装文件,竟没有安装成功。
最后,一致认为:
看来这个培训真是太有必要了!
事后,才知道--我们下载的是4linux的!
[以8.1.6为例]:
1、ORA-12541:
TNS:
没有监听器
原因:
没有启动监听器或者监听器损坏。
如果是前者,使用命令netstartOracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8ConfigurationAssistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。
在添加之前可能需要把所有的监听器先删除!
)
2、ORA-12500:
TNS:
监听程序无法启动专用服务器进程
或
ORA-12560:
TNS:
协议适配器错误
原因:
ORACLE的数据库服务没有启动。
使用命令netstartORACLESERVICEORADB(ORADB为数据库名字)即可。
如果仍没有解决,请继续向下看。
3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:
1)ORADIM-DELETE-SIDoradb删除数据库服务项
2)ORADIM-NEW-SIDoradb新增数据库服务项
注:
这个过程中如果出错,就重启计算机!
4、ORA-12154:
TNS:
能解析服务名
原因:
ORACLE的网络服务名没有正确配置。
请使用“Net8ConfigurationAssistant”工具向导之“本地网络服务名配置”配置TNS即可。
如果仍没有解决,请继续向下看。
5、ORA-1034:
TNS:
ORACLE不可用
原因:
ORACLE的数据库服务正确启动,但是数据库没有打开!
使用命令:
1)svrmgrl启动服务管理器
2)connectinternal以internal身份登陆
3)startup打开数据库
6、ORA-12560:
TNS:
协议适配器错误(顽固性的)
原因:
未知。
解决:
必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!
PS:
1、我的ora_startup.bat:
netstartOracleOraHome81TNSListener
netstartORACLESERVICEORADB
svrmgrl一般情况下不用,不过有时少不了它的,具体步骤见第5步。
2、我的ora_shutdown.bat:
netstopOracleOraHome81TNSListener
netstopORACLESERVICEORADB
3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名。
以下是删除服务项的一些办法做参考,从中不难发现你看不到相关服务项的原因。
方法一:
1.运行regedit
2.选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
3.选中需要删除的SERVICE,将其删除
重新启动后就可以了
该文章转载自[编程助理站]:
方法二:
1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务。
2、开始->程序->Oracle-OraHome81->OracleInstallationProducts->UniversalInstaller
卸装所有Oracle产品,但UniversalInstaller本身不能被删除
3、运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。
4、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口。
5、运行regedit,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,
删除所有Oracle入口。
6、开始->设置->控制面板->系统->高级->环境变量
删除环境变量CLASSPATH和PATH中有关Oracle的设定
7、从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标
8、删除\ProgramFiles\Oracle目录
9、重新启动计算机,重起后才能完全删除Oracle所在目录
10、删除与Oracle有关的文件,选择Oracle所在的缺省目录C:
\Oracle,删除这个入
口目录及所有子目录,并从Windows2000目录(一般为C:
\WINNT)下删除以下文
件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。
11、WIN.INI文件中若有[ORACLE]的标记段,删除该段
12、如有必要,删除所有Oracle相关的ODBC的DSN
13、到事件查看器中,删除Oracle相关的日志
说明:
到现在为止,你还是可以发现在服务里面还有oracle的服务存在,必须把他删除,否则你再安装oracle时就会出现什么服务已经存在的错误提示了!
!
而这些服务是在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root下以LEGACY_ORACLE打头的,而且你选种按delete删除时系统会提示你一个错误!
!
不让你删除!
!
!
现提供具体删除方法,win2000的如下:
运行regedt32注意了,不是regedit!
!
!
!
在HKEY_LOCAL_MACHINE那页找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root先选中ROOT然后点菜单上的安全-权限把自己添加到里面,并且权限设置为完全控制,确定后再删除ROOT下所有LEGACY_ORACLE打头的键,同样的方法也可以把HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001和HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002两个下面\Enum\Root下所有LEGACY_ORACLE打头的键删除,重新启动计算机可以发现,服务里面的那些都没有了!
!
在winXP中就比较简单了,还是运行regedit,找到LEGACY_ORACLE打头的键后右击,选择权限,同样将everyone设置为完全控制就可以删除了!
删除后重新启动一下就可以了!
!
如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装,安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。
该文章转载自[编程助理站]:
参考资料:
这篇文章主要介绍了Oracle数据库9i和10g安装后的基本环境与服务,详细内容请参考下文:
Oracle数据库安装后的基本环境主要涉及安装后的程序组、DBMS包含的物理文件、与数据库服务器相关的服务、Oracle默认的帐户/口令以及在MS-DOS,命令行中可使用的命令等。
了解和掌握这些基本环境对正确使用和深入掌握Oracle技术是十分重要的。
安装后的程序组
OracleDatabase10g安装后的程序组Oracle-OraDb10g_home1包括:
·OracleInstallationProducts
·集成管理工具
·配置和移植工具
·应用程序开发
(1)OracleInstallationProducts
主要包括:
·UniversalInstaller:
通用安装器
·通用安装程序概念指南
(2)集成管理工具
主要包括:
·OracleDirectoryManager:
一个基于Java的管理工具,用于管理OracleInternetDirectory。
·WalletManager:
WalletManager可创建加密的Oraclewallet,从而增强其安全性。
(3)配置和移植工具
·AdministrationAssistantforWindows:
可用于管理数据库的实例和管理员角色等。
·DatabaseConfiguration
Assistant:
数据库配置助手,它可以创建数据库,在现有数据库中配置数据库选项,删除数据库和管理数据库模板。
·DatabaseUpgradeAssistant:
数据库更新助手,帮助用户升级本地数据库。
·LocaleBuilder:
OracleLocale
Builder是一个用于定制本地数据定义的方便工具。
利用该工具可查看创建语言、字符集等。
主要功能包括:
语言设置、地域设置、字符集设置和语法设置等。
·MicrosoftODBCAdministrator:
是ODBC数据源管理器。
·NetConfiguration
Assistant:
网络配置助手。
使用该助手可进行监听程序配置,命名方法配置,本地NET服务名配置等。
它是进行Oracle网络连接时必需的连接配置工具。
·NetManager:
使用该工具可进行网络配置,如数据库标识服务的配置、命名方法配置和监听程序的创建与配置等。
该工具与NetConfigurationAssistant是网络连接配置的主要工具。
(4)应用程序开发
SQL*Plus:
它提供了一个编辑、运行SQL和PL/SQL并与数据库进行交互的环境。
Oracle数据库服务
Windows平台上的Oracle不同于其他平台,它是以服务的形式呈现的,而在Unix中Oracle是以进程形式运行的。
所有Oracle服务器及其后台进程都是在Oracle.exe进程下以线索的方式运行。
当OracleDatabase10g系统安装完成后,在Windows2000/XP/2003环境下自动增加了许多数据库服务。
在“管理工具”→“服务”中,可看到多个以Oracle开头的服务,这些都是与Oracle数据库服务器有关的服务。
Oracle数据库的运行管理都与其服务密切相关,所以,我们应充分理解Oracle服务的作用。
1.Oracle服务
Oracle服务对数据库的运行和系统管理来说至关重要。
在Windows中,Oracle以服务的形式来启动每个实例。
服务是一个在Windows注册表中注册并由Windows管理的可执行进程(Process)。
注册表自动跟踪并记录每个所创建服务的安全信息。
Oracle也使用服务来对其数据库操作提供支持,这类似于Windows服务。
Oracle服务是在数据库的创建过程中建立并与Oracle数据库关联。
Oracle服务用于创建、连接和使用一个Oracle数据库实例。
在注册表中通过“编辑”菜单的“查找”选项,查找“Oracle”就可以查找各个服务的信息。
服务的优点之一是简化了启动数据库的过程。
当计算机重新启动时,系统自动启动并配置数据库,不需要用户的参与,这是由服务来完成的。
服务的另一个优点是它们必须由拥有指定权限的用户来启动。
例如,OracleManagementServer是Oracle中的一个服务,要停止该服务必须由帐户sysman来执行,其默认口令为:
oem_temp。
服务启动的是后台进程,这类似于Unix中的守护进程。
当Oracle数据库服务启动时,系统中没有典型的Oracle进程运行。
相反,该服务进程等待来自SQL*Plus的最初连接,这引起一个前台进程启动并创建该系统全局区域SGA的后台进程。
当Oracle数据库关闭时,所有创建的进程被终止。
但是该进程自身仍在继续运行,等待下一个连接请求和启动命令。
这就是当我们通过Windows中的OracleService启动了数据库实例,但在SQL*Plus或Oracle企业管理器中关闭了数据库实例后,然而Windows中的OracleService服务仍处于“已启动”状态的原因。
只有停止Windows中的OracleService服务(即进程),才能保证不启动数据库。
当然,当OracleService服务停止后,还可通过其他方式启动数据库实例。
有多种方式可实现对Windows中有关Oracle服务的管理,具体内容可详见后面相关章节。
Oracle网络监听器(NetListener)是另一个重要的服务。
该服务必须在用户能连接到Oracle数据库之前启动运行。
该进程关闭与否并不影响已经在客户端与数据库之间建立起的连接和用户对数据库的使用。
以SQL*Plus为例,当Oracle网络监听器的服务OracleTNSListener启动之前,启动SQL*Plus并连接至数据库,系统出现错误信息“ORA-12541:
TNS:
nolistener”。
原因是没有启动监听服务或者监听器损坏;当Oracle网络监听器的服务启动SQL*Plus并连接至数据库后,若停止OracleTNSListener服务,则对SQL*Plus没有任何影响,只要没有断开连接,SQL*Plus仍可与数据库进行数据交互。
其中,TNS(TransparentNetworkSubstrate)代表透明网络层。
2.可用的Oracle服务
根据安装的产品不同,在Windows中产生的Oracle服务也不同,其实也正是这一点说明了数据库服务器与其所使用的操作系统是紧密相关的。
OracleDatabase10g安装后生成多个服务,这些都是OracleDatabase10g运行中所必需的。
通常当创建数据库并完成安装后,以下两个主要服务会自动启动:
·OracleService(Oracle数据库服务)
·OracleTNSListener(Oracle数据库监听服务)
如果安装了OracleEnterpriseManagerDatabase
Control,则OracleDBConsole服务自动启动。
若配置了AutomaticStorage
Management,则OracleCSService和OracleASMService+ASM服务也会出现在服务列表中。
与Oracle10g不同,Oracle9i安装完成后产生12个与其有关的服务,为便于比较,下面是几个与Oracle9i数据库相关的服务:
(1)OracleService
数据库服务。
该服务为数据库实例系统标识符SID而创建,SID是Oracle安装期间输入的数据库服务名字(如OracleServiceTEST)。
该服务是强制性的,它担负着启动数据库实例的任务。
如果没有启动该服务,则当使用任何Oracle工具如SQL*Plus时,将出现ORA-12560的错误信息提示。
该信息内容是“ORA-12560TNS:
protocoladaptererror”,这也意味着数据库管理系统的管理对象没有启动,即数据库没有工作。
当系统中安装了多个数据库时,会有多个OracleService,SID会因数据库不同而不同。
一般将服务的启动类型设置为“自动”,这样,当计算机系统启动后该服务自动启动。
(2)OracleTNSListener
监听器服务。
例如,Oracle
OraHome92TNSListener承担着监听并接受来自客户端应用程序的连接请求的任务。
当Windows计算机重新启动后,该服务将自动启动。
如果该服务没有启动,那么当你使用Oracle企业管理器控制台或一些图形化的工具进行连接时,将出现错误信息“ORA-12541TNS:
nolistener”。
但对一般的连接并无影响。
例如,在MS-DOS提示符中用sqlplus/@net_service_name形式启动SQL*Plus并进行连接时,则不会出现错误信息提示。
一般将该服务的启动类型设置为“自动”,这样,当计算机系统启动后该服务自动启动。
也可通过手动方式启动服务:
C:
\>netstartOracleTNSListener。
注意在连接上出现的问题,多数都与监听器有关。
(3)OracleAgent
代理服务。
该服务是Oracle企业管理器产品的一部分。
执行作业和监视Oracle服务性能及监听器、数据库、OracleHTTP
Server和Oracle应用程序等目标需要使用智能代理(IntelligentAgent)。
智能代理还为Capacity
Planner和PerformanceManager等收集静态数据。
CapacityPlanner和Performance
Manager是用于Oracle诊断包的数据收集应用程序。
一般将该服务的启动类型设置为“自动”,这样,当计算机系统启动后该服务自动启动。
如果该代理服务没有启动,则在启动OEMConsole时,系统无法通过OracleAgent找到数据库所在的节点。
因此,在使用EnterpriseManagerConsole打开控制台时,因无法找到数据库所在的节点而不能显示该数据库。
OracleAgent是否启动也影响着数据库的远程连接。
在网络中,OracleIntelligent
Agent是一个在远程节点上的自治进程。
代理作为服务与Oracle数据库服务器驻留在同一个节点上,并提供和完成下列功能:
·提供本地服务或调用依赖于操作系统的服务,以便与本地管理的目标节点交互。
·检查事件,向OEM报告排队的结果事件。
·运行OracleEnterpriseManager作业,搜集其结果和输出,并为结果排队。
·处理数据集合。
·取消那些由控制台或其他应用程序控制的作业或事件等。
(4)OracleHTTPServer
该服务使用端口号3339,为基于浏览器的企业管理器及资料档案库启动OracleHTTPServer。
它对应于ApacheServer,即Web
Server。
它也是运行iSQL*Plus所必需的中间层。
可根据实际情况将该服务的启动类型设置为“自动”或“手动”。
当设置为“自动”后,OracleHTTPServer将随着计算机的启动而自动启动;否则,可通过菜单组中的“StartHTTPServerpoweredbyApache”来启动OracleHTTPServer。
(5)OracleManagementServerOMS(OracleManagementServer)服务在客户端与所管理目标之间起着集中管理和分布式的控制作用,与代理协同工作,处理监视信息和作业信息并使用管理资料档案库存储其管理数据。
当系统安装完成后,OracleManagementServer并没有出现在Windows的“服务”窗口中,只有当使用程序组“Configuration
andMigrationTools”中的“EnterpriseManagerConfiguration
Assistant”创建了资料档案库后,系统才随之创建并启动该服务。
若要停止该服务,也就是停止OracleManagement
Server必须提供超级管理员身份证明。
即管理员的帐户和口令,默认的帐户和口令为:
sysman/oem_temp。
Oracle企业管理器只有在创建了资料档案库后才能以sysman帐户登录,否则只能以独立形式直接使用和管理本地数据库。
如果要启动、关闭或设置服务的状态,也可在DOS命令行中使用omsntsrv.exe命令完成。
具体命令的使用格式可通过如下命令查看:
omsntsrv-h。
只有安装了Oracle企业管理器,以下服务才会被创建并自动启动:
·OracleAgent
·OracleHTTPServer
·OracleManagementServer
以上是Oracle9i的五个主要服务。
Oracle9i的其他服务如下。
(6)OracleMTSRecoveryService
针对分布式环境下的COM/COM+对象和事务,MicrosoftTransaction
Server作为应用服务器用于中间层。
OracleMTSRecoveryService允许Oracle9i数据库在MicrosoftTransaction
Server-coordinated事务中用于资源管理器,并为Oracle解决方案与MicrosoftTransaction
Server之间提供强大的集成手段。
(7)OracleServiceOEMREP
OEMREP是系统为Oracle企业管理器而创建的资料档案库,OracleServiceOEMREP为对应的资料档案库服务。
它与OracleServiceSID的作用等同。
OEMREP实际上是一个数据库,用在多节点的数据库管理中,为三层的Oracle体系结构存储管理信息。
在Oracle9i之前,Oracle的资料档案库是在某个具体数据库中创建的,不是单独创建的。
(8)OracleClientCache
用于客户端高速缓冲存储器服务。
(9)OraclePagingServer
寻呼服务器服务。
Oracle企业管理器的寻呼服务器(PagingServer)允许管理员接受关于注册的事件和预定作业的寻呼通知。
(10)OracleSNMPPeerMasterAgent
简单网络管理协议(SimpleNetworkManagement
Protocol,SNMP),它是一个标准的互联网协议。
它能使网络中的节点针对网络设备和应用程序访问其状态和活动。
所有发给网络节点的请求都由同一个主代理(MasterAgent)来处理。
(11)OracleSNMPPeerEncapsulator
该服务只有在系统中配置并安装了一个以上的SNMP副代理时,才需要封装器(Encapsulator)。
事实上,除了在“管理工具”→“服务”中启动或停止以上数据库服务外,也可在DOS提示符中通过使用NET命令来启动或停止。
格式如下所示:
·启动服务:
netstart
·停止服务:
netstop
·查找帮助:
net-h
3.OracleDatabase10g服务的启动与停止
启动Oracle服务有三种方式。
(1)通过“控制面板”启动O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 新手 错误