近日,公司ORACLE服务器突如其来的宕机了,经过重装一系列的折腾终于解决了。终于发现自己对ORACLE理解还不够。
先列举一下几个问题的解决方案:
问题一:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
解决方案:通过重启服务的方式启动数据库,尝试连接。如果未解决修改listener.ora文件,配置静态监听。
总结:正确添加listener.ora;重新启动了oracle服务器,并检查oracle所有服务是否启动;oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名
问题二:ORA-12518: TNS: 监听程序无法分发客户机连接
解决方案:一般出现此情况较少,首先检查数据库服务是否启动 ,如果数据库服务启动请通过sqlplus命令登录dba执行startup命令启动数据库实例。
cmd>sqlplus connect sys/sys as sysdba>startup
问题三:通过plsql等工具连接oracle速度慢,需要10几秒以上,甚至长时间连接不上,通过命令启动和关闭oralce侦听时连接也很慢。
解决方案:这种情况发生通常有两种情况,
第一种是机器名(hostname)的问题,需要修改listener.ora文件或者重新建立监听即可。
第二种方式是我此次遇到的问题,oracle多个人开发用,持续时间比较久,侦听日至过大,导致连接慢。这种方法的解决方案是删除或重命名原有侦听日至。
lsnrctl set log_status off
rename listener.log listener.old
lsnrctl set log_status on
总结一下新了解到的知识:
1.在windows中,windows服务中的oracle服务启动了不代表oracle实例一样启动了。
开始菜单->oracle配置和移植工具->Administration Assistant for Windows
左侧菜单上找到数据库菜单,下方实例上右键启动关闭选项。
oracle实例选项卡中有"服务启动时启动实例",和"服务停止时关闭实例"两个选项。
2.oracle相关命令
#启动监听
lsnrctl start
#关闭监听
lsnrctl stop
用lsnrctl reload重启监听器,此命令可以代替lsnrctl stop和lsnrctl start。重启将会在不需要关闭和启动监听器的情况下读取listener.ora的配置。
#启动oradb数据库服务
net start OracleServiceORCL
#关闭oradb数据库服务
net stop OracleServiceORCL
#启动dbconsole服务
emctl start dbconsole
#停止dbconsole服务
emctl stop dbconsole
#启动数据库
system>sqlplus connect sys/sys as sysdba
sql>startup
#停止数据库
sql>shutdown immediate
要启动或者停止服务,必须拥有sysdba的权限。
shutdown命令参数:
Normal 需要等待所有的用户断开连接,需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接.
Immediate 等待用户完成当前的语句 (推荐),在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
Transactional 等待用户完成当前的事务,在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
Abort 不做任何等待,直接关闭数据库,执行强行断开连接并直接关闭数据库。
前三种方式不会丢失用户数据。第四种情况对于紧急关闭数据库才使用。
数据库的启动
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!
其他问题:
提示:环境变量 ORACLE_SID 未定义,请定义。
设置 ORACLE_SID =WLW (WLW是我的实例名,也是服务名) C:\Documents and Settings\xcl>set ORACLE_SID=WLW(注意大写)
Oracle 10g错误:shared memory realm does not exist的分析与解决容,情况是这样的:在连接Oracle 10g时出现了错误:“shared memory realm does not exist”,如下图所示:
硬盘格式的文件存储文件限制:
NTFS(Windows):支持最大分区2TB,最大文件2TB
FAT16(Windows):支持最大分区2GB,最大文件2GB
FAT32(Windows):支持最大分区128GB,最大文件4GB
HPFS(OS/2):支持最大分区2TB,最大文件2GB
EXT2和EXT3(Linux):支持最大分区4TB,最大文件2GB
JFS(AIX):支持最大分区4P(block size=4k),最大文件4P
XFS(IRIX):这是个正经的64位的文件系统,可以支持9E(2的63次方)的分区
博客地址:http://www.hrblive.com/coder/blog/blog_149.html,转载请注明出处。