189 8069 5689

oracle挂起怎么解决 oracle数据库挂了的原因

无法执行该事务操作,因为有挂起请求正在该事务下运行怎么解决

停止oracle server

成都创新互联公司专注于库伦企业网站建设,成都响应式网站建设公司,成都商城网站开发。库伦网站建设公司,为库伦等地区提供建站服务。全流程按需定制制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

命令:shutdown [normal|transactional|immediate|abort]

参数说明:

normal:等待用户断开已存在连接,系统发出检查点,然后在同步数据文件、控制文和重做日志文件之后关闭(默认选项)。

transactional:等待客户端结束事务之后,自动断开用户连接,然后再执行normal。

immediate:取消当前所有sql语句,回退所有未完成事务,然后自动断开,再执行normal。

abort:终止所有sql语句,立即终止实例。不会发出检查点,所以也就不会去同步数据文件、控制文件和重做日志文件。

在这里,你可以使用命令:shutdown immediate

我的oracle宕机了怎么处理

1、案例现象

在root用户下,su切换到一个普通用户oracle下,却发生了如下错误:

oracle数据库意外宕机的分析处理案例

于是,尝试直接通过oracle用户登录系统,发现此时的oracle用户也无法登录了,出现与上面同样的错误。

2、解决思路

从上面错误提示可知是权限出现了问题,那么可以从权限入手进行排查,基本思路如下:

用户目录/home/oracle权限问题;

su程序执行权限问题;

程序依赖的共享权限问题;

selinux问题导致;

系统根空间问题。

3、排查问题

根据上面的思路,我们进行逐一检查,考虑到su在切换到oracle用户时会读取oracle目录下的环境变量配置文件,因此,首先检查/home/oralce目录的权限是否存在问题,

[root@loaclhost home]# ls -al/home|grep oracle

drwx---- 4 oralce oinstall 4096 01-31 10:45 oracle

从输出可知,/home/oracle目录的属主是oracle用户,oracle用户对这个目录有“rwx”权限,因此,oracle用户目录的权限设置是正确的,可以排除掉这个问题了。

接着检查su执行权限问题:

[root@loaclhost home]# 11 /bin/su

-rwsr-xr-x 1 root root 24120 2007-11-30 /bin/su

可见su命令执行权限也没有问题,这个也排除了。

继续检查su依赖的共享库权限,使用ldd命令检查su命令依赖的共享库文件,如下图

oracle数据库意外宕机的分析处理案例

根据上面的操作,依次检查su命令依赖的每个库文件的权限,发现也都是正常的,因此,共享库的问题也排除了。

根据上面的思路,绩效检查SELinux的设置。

oracle数据库意外宕机的分析处理案例

由输出可知,SELinux处于关闭状态,这个原因也排除了。

到这来为止,问题变得朴素迷离,到底是哪里出现问题了呢?作为Linux运维,例行检查系统根分区状态是非常必要的,那么首先检查一个根分区的磁盘空间大小,发现剩余空间还有很多,空间问题也排除了。既然报的错误是权限有问题,那么只要以权限为线索,不偏离这个核心就没错,于是继续尝试检查/home目录下各个用户的权限,如下图。

oracle数据库意外宕机的分析处理案例

从输出看每个用户的目录权限,都是“rwx----”,即“700”,完全没有问题,可是我发现我错了,我的目光一直在用户对应的目录上,而忽略了其他输出信息,而问题就藏在我没有关注的信息中。在这个命令输出的前两行中,第一行权限对应的目录是“.”,代表当前目录,也就是/home目录,权限为“rwxr-xr-x”,第二行权限对应的目录是“..”,也就是根目录,权限却为“rw-rw-rw-”,即“666”,此时,问题终于查找到了,原来是根目录权限问题。

4、解决问题

知道了问题产生的原因,解决问题就非常简单,执行如下命令:

[root@localhost~]#chmod 755 /

然后就可顺利执行su切换命令。

经验分享

这个问题主要是由于根目录没有执行权限,而Linux下所有的操作都是在根目录下进行的,进而导致/home/oralce目录没有执行权限。其实根目录权限的丢失对于系统中运行的每个用户存在同样的影响。因此,在权限出现问题时,一定要注意根目录的权限。

oracle卡住,该如何解决

解决办法:

重启

SQL shutdown abort

SQL startup

重启解决不了,检查日志是否能够切换

SQL alter system switch logfile;

3. 如果日志无法切换,检查是否开归档,一般日志无法切换都是由于开归档,归档默认在快速恢复区,快速恢复区满了造成。

使用RMAN删除归档日志,清理快速恢复区空间

rman target /

RMAN delete archivelog all;

oracle归档日志老满怎么办

问题描述:所用数据库为 oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文件不能归档,而出现oracle数据库挂起的问题。 oem打开oracle 10g 数据库操作界面,会显示如下错误信息: 由于输出设备已满或不可用, 归档程序无法归档重做日志。 数据库无法使用 现将解决办法稍作总结: 方法一:增大归档日志空间的大小 可以通过下面的方法来调整系统的回闪恢复区大小: 首先是关闭数据库:以SYS身份链接到oracle,执行shutdown immediate; 启动数据库到mount状态:startup mount 查看回闪恢复区的大小和存放目标:show parameter db_recovery_file_dest 修改回闪恢复区的大小alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小) 最后打开数据库:alter database open; OK , 问题解决。数据库恢复使用。 方法二 :进入oracle清空日志信息,把空间释放出来 启动数据库到mount状态: sqlplus /as sysdba startup mount 新起一个终端,用rman进入把归档日志删除 命令rman target/ (只安装了一个oracle10g数据库) 命令crosscheck archivelog all; (列出归档日志信息) 命令delete expired archivelog all; (将上述列出的归档日志删除)命令exit;此时最好将数据库重新备份一下 把数据库的mount状态更改为open状态 alter database open; OK.问题解决,数据库可以使用。误区:在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份


本文标题:oracle挂起怎么解决 oracle数据库挂了的原因
文章起源:http://cdxtjz.cn/article/hejdcs.html

其他资讯