********在安装的时候需要手工选择一下stage的目录就好了
Oracle的系统要求
企业版:CPU 最低PENTIUM 200M 推荐 PENTIUMIII 1G以上
内存 最低128M 推荐 512M
硬盘空间 系统盘140M 安装盘4.5G(FAT32)或2.75G(NTFS)
标准版:CPU 最低PENTIUM 200M 推荐 PENTIUMIII 866以上
内存 最低128M 推荐 256M
硬盘空间 系统盘140M 安装盘4.5G(FAT32)或2.5G(NTFS)
个人版:CPU 最低PENTIUM 200M 推荐 PENTIUM 266以上
内存 最低128M 推荐 256M
硬盘空间 系统盘140M 安装盘4.0G(FAT32)或2.5G(NTFS)
在P4机器上安装Oracle 8i
P4的计算机最好安装ORACLE 9I,如果不方便的话可以按照以下的方法安装ORACLE 8I (其实也不是所有的P4CPU都不可以安装ORACLE8I, 我的一台P4 1。7 安装ORACLE 8.1.6就一点问题没有)
一、系统环境及准备工作
硬件:
Intel P4的处理器
256M的内存
硬盘有三个分区C、D、E,光驱为F
软件:
操作系统WINDOWS 2000 SERVER、WINDOWS 98
数据库ORACLE 8.0.6 for NT或ORACLE 8.1.x for NT
准备工作:
确保机器上没有装过Oracle产品。如有的话请先卸载,再将注册表中所有Oracle的相关项删除。
在WINDOWS 2000 SERVER上安装Oracle Enterprise Edition
在WINDOWS 98上安装Oracle Client
二、故障现象
1、在WINDOWS 2000 SERVER上安装Oracle8.0.6时
当选择定制安装,并创建数据库时,主要应用程序都已安装完成,在提示“是否创建数据库”,选择是后就再也没有反应。重启机器后,点击应用程序后没有反应而简单终断。 点击应用程序,鼠标呈现沙漏状,然后消失,再没有任何现象发生。
2、在WINDOWS 98上安装Oracle8.0.6的Client后安装成功,点击应用程序,提示该程序执行了非法操作,即将关闭。
3、在WINDOWS 2000 SERVER上安装Oracle8i时点击安装应用程序Setup.exe,程序挂起、或消失、或终止而没有任何反应。
三、原因分析
使用Windows NT、 Windows 2000或NetWare操作系统和Intel P4处理器的计算机,安装Oracle8或者Oracle8i时,将会碰到以上问题。主要原因是Oralce8 /8i的OUI(Oracle Universal Installer) 1.7.1.9.0或以前版本使用了Sun JRE 和 Symantec JIT(Just in Time Library),而JRE 和 JIT与Intel P4处理器不兼容。
四、解决办法
1、 Oracle 8.0.6的解决办法
(1)将安装盘整个拷贝到硬盘。譬如E:/Oracle806。
(2)找到目录E:/Oracle806/win32/JRE11下的symcjit.dll文件,将symcjit.dll改名为为symcjit.old。
(3)找到目录E:/Oracle806/win32/JRE11下的Jre11.map文件,用文本编辑工具打开Jre11.map文件,找到以bin开头的段,在其中可看到" " "symcjit.dll" "%JRE11%/bin/" 398336 false false false 00 00 00 "" "",将此行删除,然后保存。注意此文件的属性是只读的。
(4)从目录E:/Oracle806中执行安装文件Setup.exe。
如果故障的现象是,Oracle8.0.6已经安装完成,但是点击建Oracle应用程序没有任何反应(一般是在WINDOWS 2000 SERVER操作系统中)或点击应用程序如Net8,提示该程序执行了非法操作,即将关闭(一般是在WINDOWS 98操作系统中)。。在这种情况下,可不卸载Oracle,而直接将系统安装目录相应位置下的symcjit.dll文件改名为symcjit.old即可。
2、Oracle 8.1.x解决办法
(1)创建一临时目录,并将Oracle8i的安装源程序拷贝到此目录。找到目录stage/Components/Oracle.swd.jre/1.1.7.30/1/DataFiles/Expanded/jre/win32/bin下的symcjit.dll 的文件,并改名为 symcjit.old。注意OEM目录下还有一个symcjit.dll文件要改名。
(2)搜索到oraparam.ini文件,打开它,改变行RE_MEMORY_OPTIONS=-mx48m的参数为JRE_MEMORY_OPTIONS=-nojit -ms16m -mx32m
(3)其它的参数保持不变。
(4)执行本地硬盘install/win32/setup.exe目录下的Setup.exe文件。此时调用的是修改过的参数文件oraparam.ini。
(5)安装时选择自定义模式,并且不创建数据库。
(6)安装程序调用网络配置助手Net8 Configuration Assistant (NetCA)时你需要强制终止它,然后退出安装界面。
(7)Oracle8i安装完成后,安装目录中的下列每一个文件都有需要作相应修改。
assistants/dbca/dbassist.cl
assistants/dbma/dbmig.cl
assistants/ifa/ifa.cl
bin/elogin.cl
bin/owm.cl
ldap/oidamdin/oidadmin.cl
network/tools/netasst.cl
network/tools/netca.cl
owm/install/instelogin.cl
owm/install/instowm.cl
用编辑工具依次打开上述文件,增加参数 – nojit,以dbassist.cl文件为例示意如下:
Command=("C:/Program Files/Oracle/jre/1.1.7/BIN/JREW" -nojit -classpath ....)
用相同的方法修改所列出的每一个.cl 文件内容。
(8)安装成功的完成了,你可以在安装完成后运行DBCA和NetCA。
在P4机器上安装Oracle 8i简略版
1、将ORACLE软件拷贝到硬盘。
2、将 硬盘目录文件/stage/Components/Oracle.swd.jre/1.1.7.30/1 /DataFiles/Expanded/jre/win32/bin/symcjit.dll 的文件改名为symcjit.old
3.从/install/win32 目录下运行SETUP.exe文件进行安装
Oracle 9i 在2000高级服务器版上的安装
解决方法:
1. 如果机器上从来没有安装过Oracle817或其他版本的Oracle,则可以把待安装所有文件解压到一个临时目录,例如解压在E盘的temp/install/disk1目录中,然后用搜索文件工具,找到所有的symcjit.dll文件,将其名字更改为symcjit.old,那么就可以直接运行disk1目录下的setup.exe文件,开始安装。
2. 如果机器上曾经安装过Oracle817,则需要完全卸载Oracle,然后安装,步骤如下:
⑴开始->设置->控制面板->管理工具->服务
停止所有Oracle服务。
⑵开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer
卸装所有Oracle产品
⑶运行regedit,选择HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE,按del键删除这个入口。
⑷运行regedit,选择HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services,滚动这个列表,删除所有Oracle入口。
⑸运行regedit,搜索所有与Oracle相关的项,并将其删除。
⑹从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标
⑺重新启动计算机,重起后才能完全删除Oracle所在目录
⑻删除与Oracle有关的文件,选择Oracle所在的缺省目录C:/Oracle及C:/Program Files/Oracle,删除这个入口目录及所有子目录。
⑼把Oracle所有待安装的文件解压到一个临时目录,例如解压在E盘的temp/install/disk1目录中。
⑽打开文件disk1/install/oraparam.ini,做如下改动:
● SOURCE项改为SOURCE=e:/temp/install/disk1/stage/products.jar
●JRE_LOCATION项改为JRE_LOCATION=e:/temp/install/disk1/stage/Components/Oracle.swd.jre/1.1.7.30/1/DataFiles/Expanded/jre
●OUI_LOCATION项改为 OUI_LOCATION=e:/temp/install/disk1/stage/Components/Oracle.swd.oui/1.7.1.9.0/1/DataFiles/Expanded
● JRE_MEMORY_OPTIONS 项改为JRE_MEMORY_OPTIONS=-nojit -ms16m -mx32m
3. 运行disk1/install/win32/setup.exe,安装开始,根据提示做选择,安装下去,假设我安装在D:/orant/ora81目录下。
4. 安装完毕后一些服务会报出错,不能启动,这些服务为:
Net8 Configuration Assistant
Database Configuration Assistant
HTTP服务虽然启动,但是会报出一连串java.exe出错,可以点击开始->Oracle (数据库名) ->Oracle HTTP server->Stop HTTP Server来停止HTTP Server服务。安装完成了,可是全有问题。
5. 安装完成后还需要做下面的工作,在安装路径下所有的“*.cl”后缀的文件中增添“-nojit”项,共十个文件,如下:
assistants/dbca/dbassist.cl;
assistants/dbma/dbmig.cl;
assistants/ifa/ifa.cl;
bin/elogin.cl;
bin/owm.cl;
ldap/oidamdin/oidadmin.cl;
network/tools/netasst.cl;
network/tools/netca.cl;
owm/install/instelogin.cl;
owm/install/instowm.cl;
Example:
Command=("C:/Program Files/Oracle/jre/1.1.7/bin/jrew"
-classpath
"C:/Program Files/Oracle/jre/1.1.7/lib/rt.jar;
C:/Program Files/Oracle/jre/1.1.7/lib/i18n.jar;
D:/Oracle/ora81/jlib/ewt-3_3_6.jar;
D:/Oracle/ora81/jlib/ewtcompat-opt-3_3_6.zip;
D:/Oracle/ora81/jlib/share-1_0_8.jar;
D:/Oracle/ora81/jlib/swingall-1_1_1.jar;
D:/Oracle/ora81/jlib/help-3_1_8.jar;
D:/Oracle/ora81/jlib/ice-4_06_6.jar;
D:/Oracle/ora81/network/jlib/sysmanmaf.jar;
D:/Oracle/ora81/owm/jlib/owm-2_1.jar;
D:/Oracle/ora81/owm/jlib/help/elogin/help"
Oracle.security.admin.lio.lioa.LioaApp Oracle.security.admin.lio.lioa.LioaApp -nojit)
6. 到这里4中的三项服务仍不能启动,因为工作还没做完。
到java.sun.com网站下载jre软件,要1.2.2以上的版本,然后安装在你的机器上,安装完成后用其中的bin目录和lib目录覆盖d:/orant/ora81/apache/jdk/jre下的bin目录和lib目录。到这里以上三个服务就可以顺利启动了。
Win2000上安装Oracle 9i
问题:
在win2000server中安装Oracle9.2时,加载文件是出错,安装Oracle8就不会出错
解答:
需要打Sp1以上的补丁才行
同一台PC机上安装8I和9I
问题:
安装时C:/PROGRAMME/ORACLE安装程序回覆盖先安装的版本文件。不知道怎样才能避免一切可能出现的冲突问题
解答:先装8 后9,分主目录装。还有,如果在某个已经存在的Oracle_home中安装,当你修复或更新Oracle,或者添加其他产品选项时,你应该确定停止从特定主目录中运行的任何Oracle服务。
Oracle 9i的安装过程
环境:New CY1G, 256+128M, win2000 SP3,Oracle 9.2.0.1.0
1.启动OUI(Oracle universal installer),选择下一步。
2.选择安装的产品,即Oracle Database。点击下一步。
3.选中“标准版”,需要2.8G的空间,(这些安装类型的主要差别是产品被授予许可的方式不同,企业版仅仅包括每个可能的选项,而标准版要求有想使用的每个选项的单独授予许可。个人版意味着满足测试目的的单机安装)点击下一步。在“数据库配置选项”中,选中只安装Oracle软件(Software Only),不安装数据库,待安装完Oracle软件后,用DBCA创建数据库。
4.安装完Oracle软件(不含Oracle数据库)后,启动DBCA (DataBase Configuration Assistant),将一步步指导你创建数据库(New Database)。
5.创建完数据库后,启动NCA(Net Configuration Assistant),为数据库配置监听器。
Oracle Net Configration Assistan:
监听程序配置:直接下一步,监听程序名为默认的Listener,网络协议为TCP,使用默认端口1521。命名方法配置:选中本地命名。
本地Net服务名配置:即修改本地tnsnames.ora文件,添加,选择下一步,输入数据库全局名,在网络协议里选择TCP,输入主机名,使用标准端口。使用sys用户测试。
6.现在可以独立登陆OEM(Sys/password as sysdba)
7.建立资料档案库,启动EMCA(Enterprise Manager Configuration Assiatan),为数据库创建资料档案库。
8.创建资料档案库完成后,可以启动Console登陆到Oracle managerment server,默认用户名为sysman/oem_temp。
Oracle在双机备份服务器中的安装步骤
1、在其中一台电脑上安装完整的Oracle 数据库(通过自定义安装,不要创建数据库实例)
2、通过Oracle配置助手创建数据库,将所有数据库文件包括控制文件、表空间文件,日志文件等路径指定到磁盘柜上。
3、在另一台电脑上安装Oracle数据库,指定数据文件到磁盘柜上,覆盖以前建立的数据文件。
4、要保持文件Oracle/ora81/database/PWDmyora.ora两台机子文件一样,比如你在A机上导入dmp文件,需要把PWDmyora.ora拷入到B机上。
5、将两台机子的Oracle服务改成手动模式,通过dataware软件实现切换。
删除Oracle之一
软件环境: 1、Windows 2000+ORACLE 8.1.7
2、ORACLE安装路径为:C:/ORACLE
实现方法:
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、 运行regedit, 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目录(一般为C:/WINNT)下删除以下文件ORACLE.ini、oradim73.ini、oradim80.ini、oraodbc.ini等等。
13、WIN.INI文件中若有[ORACLE]的标记段,删除该段
14、如有必要,删除所有Oracle相关的ODBC的DSN
15、到事件查看器中,删除Oracle相关的日志
说明:
如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装,
安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。
删除Oracle之二
如果需要卸载Oracle,请运行安装光盘上的安装文件Setup.exe,在“欢迎”窗口中,选择“卸装产品”按钮,进入“Invertory 目录”窗口: 在该窗口中选择需要删除的产品(在产品名称前面的方框内打上在标记√),然后单击“删除”按钮即可;或者直接在开始菜单中找到Oracle for NT程序组下的Oracle installer,同样可以卸载Oracle。
卸载Oracle产品后,在系统的注册表内仍然有相关信息,您可以参考以下方法进行手工删除。
注意:对注册表的操作可能对系统产生严重影响,请在操作前进行备份,以便在系统异常时恢复到原来的注册表。该操作请参考Windows系统的相关说明。
运行RegEdit,在“HKEY_CURRENT_USER/Software”、“HKEY_LOCAL_MACHINE/Software”、“HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services”主键中删除所有的Oracle入口(如果找到的话),然后重新启动计算机,如一切正常,则修改完成,如启动有错误,可能您对注册表的修改出错,运行RegEdit,将备份的注册表项目导入;如果误删了注册表中的“Microsoft ODBC for Oracle”,可用以下方法恢复:
将“HKEY_LOCAL_MACHINE/software/Microsoft/DataAccess”中的Version的值由‘2.1.1a’改为‘1.1.1a’然后重新安装财务软件,安装程序会自动安装 MADC,并恢复“Microsoft ODBC for Oracle”。 (对Windows95/98,请立即进入Dos方式,将备份的system.dat文件(如system.bak)复制回system.dat);
(对Windows NT,如启动失败,请重新启动计算机,在提示下,按空格键启动“硬件配置文件/已知的最新正确配置”菜单,该菜单将注册表还原到稳定状态。按照屏幕上的指示操作,可以将注册表还原为上次成功启动时的状态。)
在XP上安装Oracle9i老是报错提示加载数据库时出错:areasQueris
解答:去除安装路径中的中文
无法启动监听器——Ora-12560错误
1、控制面板-->管理工具-->服务下面的查看OracleOraHome92TNSListener服务有没有启动,如果没有启动则启动。
2、把tnsnames.ora和listener.ora里面的HOST(等于机器名或者等于IP地址例如:HOST = springal)值一定要保持一致。
3、多配置几次监听器然后启动尝试。
4、DOS下lsnrctl命令进入监听器信息窗口,使用help查看命令帮助,然后使用相关命令查看监听器情况,并多次stop和start。
5、查看注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleOraHome92TNSListener项并设置ImagePath>D:/Oracle/Ora92/BIN/TNSLSNR(你的安装目录)
6、查看你配置的监听器端口有没有被其他服务站用(默认的是1521端口),DOS下可以使用netstat –a查看。
7、查看你的防火墙或者防病毒软件是否屏蔽掉了1521端口。
8、据说还与你的系统有关系,重新安装一下windows 2000 SP3,这个问题通常与sp3有关系。
Oracle启动时,监听器不启动或打开出错
软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:/ORANT
错误现象:
1、ORACLE启动时,监听器不启动或打开出错
2、服务器端:用username/password登录正常,但用username/password@alias登录不成功
3、客户端:用username/password@alias登录不成功
解决方法:
1、如果是因为修改了NT的机器名,则把listener.ora文件中的host参数全部改为新的NT机器名,
重新启动OracleTNSListenr80服务即可。
例如:
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = NT_Name)(Port = 1521))
(ADDRESS = (PROTOCOL = TCP)(Host = NT_Name)(Port = 1526))
)
2、使用监听器实用程序:LSNRCTL80.exe
3、检查监听器参数文件:c:/orant/NET80/admin/listener.ora
4、检查监听器日志文件:c:/orant/NET80/log/listener.log
5、Tnsnames.ora文件配置错误,重新配置。
6、检查client 端 Tnsnames.ora
在单机上安装805,OracleTNSListener80不能启动
问题:
我在win2000下安装了ORACLE805,有网卡,但是没有没有连网。
解答:
1.805必须联网,设置Microsoft loopback或使用816。直接把Listener的侦听地址设到127.0.0.1上试试看。
2.把(PROTOCOL=ipc 和snmp)的配置删除,我是在win98下装的804,
listener.ora配置如下:
LISTENER =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 192.168.1.4)
(Port = 1521)
)
(ADDRESS =
(PROTOCOL = TCP)
(Host = 127.0.0.1)
(Port = 1521)
)
#被注释 (ADDRESS =
# (PROTOCOL = SPX)
# (Service = y_lsnr)
# )
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = ADMIN
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = y)
(SID_NAME = ORCL)
)
(SID_DESC =
(SID_NAME = extproc)
(PROGRAM=extproc)
)
)
运行正常。
ORA-12516 TNS:监听程序无法找到匹配的信息栈的可用句柄错误
先打开 TNSNAMES.ORA 这个文件, (位于 //OraHome1/network/admin/tnsnames.ora) ,确定(INSTANCE_NAME=) 和 INITsid.ORA 文件中的 实例名(执行项次) 匹配
ORA-12154 TNS不能解析服务名
使用Oracle的网络配置助手“net configration assistant”删除所有的网络的配置(主要是监听程序的配置和本地网络服务名的配置),然后重新配置。可以使用如下命令察看是否你的数据库服务器已经启动(在 *** 作系统中的“服务”中显示为启动,但你的数据库并不一定启动了。在MS-Dos提示符下输入:
C:/svrmgrl
SVRMGR:>connect to internal
密码:<输入你的密码,如果不知道,输入ORACLE试试>
如果连接成功,执行help可以察看命令。
SVRMGR>startup
如果提示你的数据库已经启动,则执行“stop”停止数据库,然后再执行“startup”启动。
无法启动实例服务
控制面板-->管理工具-->服务下面的查看OracleServiceTest服务有没有启动,如果没有启动则启动。如果启动时候报找不到路径,则查看注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleServiceTest项并设置 ImagePath>D:/Oracle/Ora92/BIN/Oracle.exe test(你的安装目录,参数为你的服务名)以上两则都可能是由于运行了注册表软件造成,比如优化大师之类,我个人的解决办法是在扫描注册表的时候略过HKEY_LOCAL_MACHINE。
在Windows平台上,安装Oracle后产生如下服务
OracleMTSRecoveryService
OracleOraHome92Agent
OracleOraHome92HTTPServer
OracleOraHome92TNSListener
OracleServiceTest——以上为缺省配置为自动启动的
OracleOraHome92ClientCache
OracleOraHome92PagingServer
OracleOraHome92SNMPPeerEncapsulator
OracleOraHome92SNMPPeerMasterAgent
设置自动启动数据库
可通过修改注册表来实现:
hkey_local_machine->software->microsoft->windows->currentversion->run->添加一个键值Oraclestart->其值为:c:/Oracle/ora81/bin/oradim.exe -startup -sid 数据库别名 -usepwd Oracle -starttype inst
在启动ORACLE服务时无法启动‘OracleOracleAgent’
问题:提示错误如下:“在本地计算机无法启动OracleOracleAgent服务。错误:3221356559”
原因:
The Intelligent Agent stores all jobs and event requests in a series of queue files in the network/agent directory. Upon startup, the Agent compares the actual hostname of the server to the hostname stored in the queue files. If the hostname of the server changes, the Agent will not recognize the queue files and will consider them corrupt. Then, the Agent will not start.
解答:
1. Remove the services.ora and all "q" files (*.q) from the $Oracle_Home/network/agent directory
2. Re-start the Intelligent Agent.
技巧:
This fix should be done with the understanding that any jobs or events registered against that Agent will be lost. Any active jobs or registered events against this agent should be removed from OEM console before deleting the agent’s *.q files.
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist错误
问题:
刚刚装上Oracle8.1.7以后(安装过程非常正常),运行以下操作,一切正常。
C:/>sqlplus system/manager
SQL*Plus: Release 8.1.7.0.0 - Production on 星期四 11月 13 20:01:20 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
SQL>
但是只要重启电脑,再运行同样操作,就会出现如下的问题:
C:/>sqlplus system/manager
SQL*Plus: Release 8.1.7.0.0 - Production on 星期四 11月 13 19:28:25 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
此时查看Oracle进程,所占用内存不到10m。
但是只要执行完Database Configuration Assistant--〉更改数据库设置后,
再次执行如上操作,就能正常运行:
此时Oracle进程占用内存接近100m,应该比较正常。
但是只要重新启动,就会依然出现
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
这种错误,只能用Database Configuration Assistant更改数据库设置后才能使用,重启后问题依旧。让我百思不得其解。
解答:
数据库实例没随计算机启动。
1.数据库启动参数中是否有非PUBLIC回滚段! 要是有的话就先屏蔽掉,等创建完回滚段后重新打开,应该就没有问题了。当时在ORACLE 7下成功。当时我用原有的数据库配置参数(*.ORA)文件创建以后就出现了上面的问题。
2.建议此时手动启动服务,观察如果出现缺少路径的提示,可以参照上文设定相关路径。
ORA-12500: TNS: 监听程序无法启动专用服务器进程
1.lsnrctl status
2.lsnrctl start
3.sqlplus /nolog
4.connect / as sysdba
5.startup nomount
6.alter database open
逐步分解查找问题。
有可能是listener.ora文件被破坏了,遇到过类似的问题,重新配置listener.ora就可以了。
ORA-04031:unable to allocate … byters of shared memory("shared pool","unknown object","sga heap","db_block_buffers")
问题:
DELL服务器装不上ORACLE8.1.5的问题,出现下面的错误提示是在建立数据库之前,系统先要检查内存时出现的,
ORA-04031:unable to allocate 85141440 byters of shared memory("shared pool","unknown object","sga heap","db_block_buffers"),是不是内存不够?但实际物理内存是2G?什么原因呢?
解答:
在安装时,把SGA区、JAVA池等东西的内存配小一些
ORA-01092 : Oracle instance terminated disconnection forced错误
Problem:
Your Oracle Server database on OpenVMS crashes. The following errors are reported: Background process DBWR unexpectedly terminated with error 1092
ORA-1092 Oracle instance terminated
ORA-313 open failed for members of log group 'n' of thread 'n'
ORA-600 [3228] reported from a PL/SQL script.
Explanation:
The most significant error reported here is the ORA-313 error. This error indicates a failure to open a file which indicates a problem with OpenVMS resources. When either CHANNELCNT and/or FILLM are too small, these errors can result.
Solution:
Increase the SYSGEN parameter CHANNELCNT. This should be done by an OpenVMS system manager and requires a reboot of your OpenVMS node. For more information on SYSGEN, please review the OpenVMS documentation.
If the CHANNELCNT parameter is already large enough to allow the expected number of files to be opened, check the FILLM quota. Review two areas when you check FILLM:
1) The Oracle background processes (PMON, DBWR, LGWR etc.)
2) The SERVER side (or SHADOW) process created when you use SVRMGRL to start the database. To get an idea of the quota available, use the command: $ SHOW PROCESS /QUOTA /ID=
Example:
You have 226 data files, eight REDO log files and three control files for a total of 237 files. The SYSGEN setting for CHANNELCNT is at the default of 256. During normal operation, Oracle periodically needs to open additional files. These include the INIT parameter files, the ALERT log, various DCL scripts, trace files, etc. Under these conditions, a CHANNELCNT value of 256 is too small to accommodate the number of files that Oracle/OpenVMS needs open at the same time.
For most systems the default quotas should be adequate.
If not, please describe the infor u've encountered
ORA-00059错误及字符集修改
问题:在DBA studio中下的例程‘数据库’自动变为已启动,无法装载也无法打开,提示‘ORA-00059??LOG--FILES????’在这种情况下如果不卸载重装解决,能有其它的办法吗?
一般来说ORA-00059多出现maximum number of DB_FILES exceeded的错误,由于你机器上的字符集设置有些问题,所以 错误提示 变成了??,(字符集设置不对照成的) 虽然看的出于问题可能和Log file有关,但不确定.请修改Oracle的字符集
[字符集修改方法]
SQL> desc props$
列名 可空值否 类型
------------------------------- -------- ----
NAME NOT NULL VARCHAR2(30)
VALUE$ VARCHAR2(2000)
COMMENT$ VARCHAR2(2000)
SQL> col value$ format a40
SQL> select name,value$ from props$;
NAME VALUE$
------------------------------ -------------------------
DICT.BASE 2
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY$
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS.,
NLS_DATE_FORMAT DD-MON-YY
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_CALENDAR GREGORIAN
NLS_RDBMS_VERSION 7.3.4.0.0
GLOBAL_DB_NAME ORACLE.WORLD
EXPORT_VIEWS_VERSION 3
查询到14记录.
NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。
ORA-12203:TNS:unable to connect destination错误
问题:
在Windows2000下安装8.0.5,选择none,没有建立实例,为什么在执行svrmgr30 时报告Ora-12203:tns:unable to connect destination!
解答:
因为没有创建实例,也就没有环境变量。可参考“手工创建数据库的全部脚本和说明”。
注意其中:
set ORACLE_SID=test
D:/Oracle/Ora81/bin/oradim -new -sid test -startmode manual -pfile "D:/Oracle/admin/test/pfile/inittest.ora"
Ora-12571:TNS:包写入程序失败
把虚拟内存设的大一些
Ora-12705错误
Cause: There are two possible causes: Either an attempt was made to issue an ALTER SESSION statement with an invalid NLS parameter or value; or the NLS_LANG environment variable contains an invalid language, territory, or character set.
Action: Check the syntax of the ALTER SESSION command and the NLS parameter, correct the syntax and retry the statement, or specify correct values in the NLS_LANG environment variable. For more information about the syntax of the ALTER SESSION command, see Oracle8i SQL Reference.
ORA-03113:通信通道的文件结束
Cause:
An unexpected end-of-file was processed on the communication channel. The problem could not be handled by the SQL*Net, two task, software. This message could occur if the shadow two-task process associated with a SQL*Net connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down.
Action:
If this message occurs during a connection attempt, check the setup files for the appropriate SQL*net driver and confirm SQL*Net software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support.
Explanation:
There are numerous causes of this error. It is a 'catch all' type error which means 'I cannot communicate with the Oracle shadow process'. This usually occurs when the Oracle server process has died for some reason.
ORA-12515:TNS:监听进程无法找到该演示文稿的句柄
解决方案是检查目标服务器网络配置,并使其接受HTTP的协议。如果你是使用一般数据使用,建议使用新的数据库实例。
ORA-01031:insufficient privileges
Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login.
Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label.
ORA-01017:invalid username/password; logon denied
Cause: An invalid username or password was entered in an attempt to log on to Oracle. The username and password must be the same as was specified in a GRANT CONNECT statement. If the username and password are entered together, the format is: username/password.
Action: Enter a valid username and password combination in the correct format.
问题:ORACLE8.1.7.0.0版本,,不知是哪里的问题,用internal 和 system 都无法登陆,错误提示:ORA1031 、ORA1017
解答:还有没有其他DBA身份的用户,如果有,最好登陆进去,然后alter user system identified by YOURPASSWORD; 你的系统密码被人修改了
ORA-03121:没连接接口驱动程序
Cause: This message occurs usually because the Net8 driver is not loaded into memory or there is a mismatch of the version of the driver. A user program linked with an obsolete library may also cause this message. Only programs provided by Oracle Corporation should use this interface.
Action: If the message occurred during use of a program provided by Oracle Corporation, contact Oracle Support Services. If a user program caused the message, relink the program with current versions of the Oracle libraries.
ORA-12638:凭证检索失败
问题:
2000ad server SP2 具域网,在网络连接的情况下按装ORACLE8I,到创建数据库,初始化数据库时,提示“ORA-12638 凭证检索失败”,装了几次都是这样
解答:
凭证检索失败的错误一般都与网络用户集成有关,ORACLE中对于这个问题的管理是在SQLNET.ORA文件的SQLNET.AUTHENTICATION_SERVICES进行控制的,默认安装都是SQLNET.AUTHENTICATION_SERVICES= (NTS)表示安装ORACLE的用户是通过操作系统的集成认证控制的,所以,我们只要把这个参数值屏蔽掉就行了。
修改/Oracle/Ora81/network/ADMIN目录下SQLNET.ORA文件的SQLNET.AUTHENTICATION_SERVICES= (NTS)为# SQLNET.AUTHENTICATION_SERVICES= (NTS)
ORA-00604: error occurred at recursive SQL level 2
Cause: An error occurred while processing a recursive SQL statement (a statement applyingto internal dictionary tables).
Action: If the situation described in the next error on the stack can be corrected, do
so; otherwise contact Oracle Customer Support.
ORA-04030 out of process memory when trying to allocate string bytes (string,string)
Cause: Operating system process private memory has been exhausted.
Action: See the database administrator or operating system administrator to increase process memory quota. There may be a bug in the application that causes excessive allocations of process memory space.
ORA-04031:unable to allocate string bytes of shared memory("string","string","string","string")
Cause: More shared memory is needed than was allocated in the shared pool.
Action: If the shared pool is out of memory, either use the DBMS_SHARED_POOL package topin large packages, reduce your use of shared memory, or increase the amount ofavailable shared memory by increasing the value of the initialization parametersSHARED_POOL_RESERVED_SIZE and SHARED_POOL_SIZE. If the large pool is out of memory,increase the initialization parameter LARGE_POOL_SIZE.
ORA-01555:snapshot too old: rollback segment number 9 with name "USER_RS5" too small
问题:一个存储过程执行的数据大概有100万条,在执行到几十万条的时候,遇到了如上异常。
解答:原因有两个方面:
1、由于你的这个操作执行的时间太长,导致SNAP SHOT失效(太老了),导致你的操作失败;
2、你的RBS太小,无法容纳那么多的操作。
处理方法:
1、加大回滚段的大小(增加RBS表空间,修改回滚段的参数等)
2、你这种编程方法有问题,如果第一个方法不能解决问题,说明是因为执行时间过长,SNAPSHOT失效,需要你调整一下程序。是不是先把100万记录读到内存里(内存不够,可以采用文件作为缓冲),然后再做处理。也可以采用分段处理的方法,一次处理10万条。
ORA-01589:must use RESETLOGS or NORESETLOGS option for database open
问题:在startup 之后出现错误提示
解答:
Cause: Either incomplete or backup control file recovery has been performed. After these types of recovery you must specify either the RESETLOGS option or the NORESETLOGS option to open your database.
Action: Specify the appropriate option.
你的数据库以前做过Media Recovery,用OPEN DATABASE RESETLOGS或OPEN DATABASE NORESETLOGS打开数据库就可以了。
ORA-01017:invalid username/password; logon denied
Cause: An invalid username or password was entered in an attempt to log on to Oracle. The username and password must be the same as was specified in a GRANT CONNECT statement. If the username and password are entered together, the format is: username/password.
Action: Enter a valid username and password combination in the correct format.
缺省密码
8i:
scott/tiger
internal/change_on_install
system/manager
sys/oralce(密码也可能是manager或change_on_install)
9i:
scott/tiger
sys/change_on_install
OEM的用户名/密码:sysman/oem_temp
重设system用户的密码
可以通过以下方法登陆
sqlplus /nolog
conn / as sysdba
alter user system identifed by '123'
Oracle的密码文件
8i一般位于$ORACLE_HOME/PRODUCT/8.1.6/DBS/ORAPWD_[SID].ORA
如何激活用户
8i:在DBA Studio里面,有“用户”--然后找到用户名--->然后选中“未锁定”就可以了
Oracle的初始化文件
8i:安装时设定的ORACLEHOME的目录下会有:admin、oradata和ora81三个目录,其中在admin目录下的你安装的数据库目录下的Prfile下的init.ora就是。
9i:在原来的目录下看不到init文件了。不过你可以这样:
create pfile from spfile;
这样就可以看到init的文件了,因为9i里面的初始化文件有点变化。
Oracle 数据库自带数据的生成脚本
/ORACLE_HOME/rdbms/admin/SCOTT.SQL
日期乱码
Oracle Server的设置如下
NLS_CHARACTERSET WE8ISO8859P1
NLS_LANGUAGE AMERICAN
NLS_NCHAR_CHARACTERSET AL16UTF16
机器上的注册表
NLS_LANGUAGE AMERICAN_AMERICA.WE8ISO8859P1
问题:
Java程序传日期到Oracle的function里,经过lower(to_char(xsched_date,'DY'))函数后,日期变成了乱码。请问:
1. 我的字符集应当怎样设置呢?
2. server的 NLS_CHARACTERSET 和 NLS_NCHAR_CHARACTERSET 不一样,没关系吧?NLS_NCHAR_CHARACTERSET 是什么意思?
解答:
1 先查看有关字符集的信息
SQL>col value$ format a40
SQL> select * from nls_database_parameters;
SQL> select * from V$NLS_PARAMETERS;
2 查得的主要对应client端的显示
SQL> select * from sys.props$ WHERE NAME='NLS_LANGUAGE';
//可以把'AMERICAN' 改为'SIMPLIFIED CHINESE ',不过这个于本问题无关
3修改字符集
SQL> select * from sys.props$ WHERE NAME='NLS_CHARACTERSET';
//把你机器上的WE8ISO8859P1改为
SQL>UPDATE sys.PROPS$ SET VALUE$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';
SQL>commit;
4 NLS_NCHAR_CHARACTERSET AL16UTF16 其中的UTF16为ZHS16GBK的子集,可显示大多数汉字。
更改字符集
最好不要修改 props$表,可能会引起不正常的工作。
如果是客户端 ,修改注册表即可;
服务器端 "alter database character set 字符集"即可