暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle数据库startup启动报错ORA-27125 unable to create shared memory segment

原创 Leo 2022-12-16
643

问题描述:oracle数据库startup启动报错ORA-27125 unable to create shared memory segment,如下所示:

系统:suse 11.2

环境:rac 双节点 + oracle 11.2.0.4

说明:节点1数据库正常,节点2启动异常.

1、问题重现

SQL> startup

ORA-27125: unable to create shared memory segment

Linux-x86_64 Error: 13: Permission denied

Additional information: 589825

Additional information: 2

2、解决过程

2.1、原因查找

a、查/etc/sysctl.conf无问题

b、运用节点1的参数文件启动依然报错

c、对比两节点的/dev/shm文件,发现权限不对.

节点1:


节点2:


2.2、更改权限

在节点2授予shm 777权限,此后startup不再报错.


3、模拟测试

说明:生产环境上通过修改权限解决,现在测试环境进行异常模拟,将此异常了解更清楚.

系统:oel 8.4 64位

数据库:oracle 19.12 + gi

3.1、权限处理

[root@dbserver dev]# ll | grep shm

drwxrwxrwt. 5 root root         5500 Dec 16 16:01 shm

[root@dbserver dev]# chmod g-w shm

[root@dbserver dev]# chmod o-w shm

[root@dbserver dev]# ll | grep shm

drwxr-xr-t. 5 root root         5500 Dec 16 16:01 shm

3.2、重启数据库

SQL> conn / as sysdba

Connected.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 2415918600 bytes

Fixed Size                  9137672 bytes

Variable Size            1107296256 bytes

Database Buffers         1291845632 bytes

Redo Buffers                7639040 bytes

Database mounted.

Database opened.

说明:shm权限1755,数据库居然也能正常启动.

4、相关测试

--将shm 777的权限修改为1777.

[root@dbserver dev]# chmod 1777 shm

[root@dbserver dev]# ll | grep shm

drwxrwxrwt. 5 root root         5500 Dec 16 16:01 shm

说明:1777权限表示任何人在此目录拥有写权限,但不能删除别人拥有的文件.

--或使用其它方式修改权限

[root@dbserver dev]# ll | grep shm

drwxrwxrwx. 5 root root         5500 Dec 16 16:01 shm

[root@dbserver dev]# chmod +t shm

[root@dbserver dev]# ll | grep shm

drwxrwxrwt. 5 root root         5500 Dec 16 16:01 shm

--测试shm 1755权限在系统重启后的变化.

[root@dbserver dev]# ll | grep shm

drwxrwxrwt. 5 root root         5500 Dec 16 16:01 shm

[root@dbserver dev]# chmod g-w shm

[root@dbserver dev]# chmod o-w shm

[root@dbserver dev]# ll | grep shm

drwxr-xr-t. 5 root root         5500 Dec 16 16:01 shm

[root@dbserver dev]# reboot

 

Activate the web console with: systemctl enable --now cockpit.socket

 

Last login: Fri Dec 16 17:26:02 2022 from 192.168.133.1

--重启系统后,shm恢复1777权限.

[root@dbserver dev]# ll | grep shm

drwxrwxrwt. 5 root root         5500 Dec 16 17:25 shm

5、补充知识

--以下内容来自参考网址.

数据库一直在startup hang住,日志也无报错,此后shutdown abort使用df -Tk 发现/dev/shm文件类型是ext3,且挂载的设备是/dev/sdc1.

[grid@rac2 ~]$ df -Tk

Filesystem    Type   1K-blocks      Used Available Use% Mounted on

/dev/mapper/VolGroup00-LogVol00 ext3    56848636  15510084  38404180  29% /

/dev/sda1                        ext3      101086     12606     83261  14% /boot

/dev/sdc1                        ext3     4127076    277392   3640040   8% /dev/shm

正常文件类型应如下:

[root@rac2 ~]# df -Tk

Filesystem    Type   1K-blocks      Used Available Use% Mounted on

/dev/mapper/VolGroup00-LogVol00 ext3    56848636  15538780  38375484  29% /

/dev/sda1                        ext3      101086     12606     83261  14% /boot

tmpfs                             tmpfs     2097152    694920   1402232  34% /dev/shm

文件类型和挂载点都应是tmpfs,查fstab确实把/dev/sdc1挂载到了/dev/shm.修改回来后正常启动数据库.

至于启动慢的原因是dev/sdc1是物理磁盘分区,是物理读写.而tmpfs是内存读写.读写速度肯定差异很大.

 

参考网址:https://developer.aliyun.com/article/294349

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论