什么样的情况下数据库会宕机
答案:2 悬赏:20 手机版
解决时间 2021-03-10 17:01
- 提问者网友:我没有何以琛的痴心不悔
- 2021-03-10 02:31
什么样的情况下数据库会宕机
最佳答案
- 五星知识达人网友:掌灯师
- 2021-03-10 03:09
如果获得连接的方式中包含"自动尝试连接"属性,就会出现这种情况.因为查找数据库连接的消耗是除网络IO外的最大诱因,包括连接串或者程序中的程序设置连接次数,都会造成线程的堵塞.
另,也与异常的处理方式有很大关系,不论是driverManager获取或者数据源获取连接,在未能获取连接时的异常处理将会影响后面的进程.
在was中,若使用数据源,那还有一个原因就是应用服务器的连接池机制本身.因为用户应用的连接实际上取的是连接池中的连接而非物理连接,连接池有自身的一套处理机制,在获得缓冲的同时,也会在数据库和用户应用之间造成一定的时间差和状态差.因此,可能的情况是数据库实际上已经拒绝服务(含堵塞/停止等),而应用服务器连接池中的某些连接仍可用,这时候,pool的处理和应用的处理的消耗就造成了应用服务器的堵塞.对于这种情况的处理,只有依据实际情况对数据源和数据库的参数进行调整.
另,也与异常的处理方式有很大关系,不论是driverManager获取或者数据源获取连接,在未能获取连接时的异常处理将会影响后面的进程.
在was中,若使用数据源,那还有一个原因就是应用服务器的连接池机制本身.因为用户应用的连接实际上取的是连接池中的连接而非物理连接,连接池有自身的一套处理机制,在获得缓冲的同时,也会在数据库和用户应用之间造成一定的时间差和状态差.因此,可能的情况是数据库实际上已经拒绝服务(含堵塞/停止等),而应用服务器连接池中的某些连接仍可用,这时候,pool的处理和应用的处理的消耗就造成了应用服务器的堵塞.对于这种情况的处理,只有依据实际情况对数据源和数据库的参数进行调整.
全部回答
- 1楼网友:患得患失的劫
- 2021-03-10 03:36
1、为了排除emc和网络的问题,把数据文件迁移到本地,再做大量的插入操作后(约插入了600万),发现很快就会出现同样的故障。这样,就排除了存储和网络的问题,说明故障点在于aix和oracle的aio设置。此时disk_asynch_io=true。
2、修改oracle的disk_asynch_io=false。再做大量的插入操作,这次操作成功插入了上千万的数据,而没有出任何错误。但这样设置后,系统的性能明显下降,所以,这种设置是不可取的。
3、按oracle的官方文档,再对系统进行优化,把oracle的disk_asynch_io= true, dbwr_io_slaves=4,再做大量的插入操作,三个进程并行插入了近6千万的数据,成功通过了压力的测试。
4、最后,按照ibm工程师的建议修改了如下参数,对系统再次进行优化。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯