在一个的测试数据库上,创建表空间时出现了这个错误。

由于数据库环境比较复杂,简单描述一下。

这个测试环境安装的是Oracle 1106 for Solaris 10 sparc 64bit的RAC环境,搭建了ASM实例用于存放共享数据文件。

在RAC环境的其中一个节点上,又建立了一个单实例的数据库,并把这个数据库的数据文件也放到了ASM实例上。

结果尝试在这个实例上添加新的表空间时报错:

SQL> select file_name from dba_data_files;

FILE_NAME
------------------------------------------------------------------------------
+DATA/test/datafile/system.533.668281219
+DATA/test/datafile/sysaux.534.668281227
+DATA/test/datafile/undotbs1.535.668281229
+DATA/test/datafile/users.537.668281241

SQL> create tablespace test datafile '+DATA/test/datafile/test01.dbf' size 4096m;
create tablespace test datafile '+DATA/test/datafile/test01.dbf' size 4096m
*
第 1 行出现错误:
ORA-01119: 创建数据库文件 '+DATA/test/datafile/test01.dbf' 时出错
ORA-17502: ksfdcre: 4 未能创建文件 +DATA/test/datafile/test01.dbf
ORA-00569: Failed to acquire global enqueue.
ORA-00569: Failed to acquire global enqueue.

这个错误似乎很少见,查看了一下Oracle的官方错误文档描述:

ORA-00569: Failed to acquire global enqueue.
Cause: A prior error occurred on one of the instances in the cluster. Typically errors are caused by shared pool resource contention.
Action: Check for and resolve prior errors on all instances in the cluster. If there is shared pool resource contention, increase the SHARED_POOL_SIZE, DML_ LOCKS, PROCESSES, TRANSACTIONS, CLUSTER_DATABASE_INSTANCES and PARALLEL_MAX_SERVERS initialization parameters.

虽然对问题进行了描述,不过从错误看不出导致问题的真正原因。

查询了一下METALINK,找到了一些错误说明,不过没有和当前错误相似度很高的,大部分出现这个错误的同时,都会伴随ORA-600错误和ORA-4031错误。

不过现在有一个简单的方法来确定到底是数据库产生的问题还是ASM实例导致的问题,现在只需要登陆RAC实例,执行类似的添加表空间的操作,检查是否会出现相同的问题就可以了:

bash-3.00$ export ORACLE_SID=ractest1
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:12:42 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1603887104 bytes
Fixed Size                  2095208 bytes
Variable Size             741722008 bytes
Database Buffers          855638016 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> CREATE TABLESPACE TEST DATAFILE '+DATA/ractest/datafile/test01.dbf' SIZE 4096M;
CREATE TABLESPACE TEST DATAFILE '+DATA/ractest/datafile/test01.dbf' SIZE 4096M
*
第 1 行出现错误:
ORA-01119: 创建数据库文件 '+DATA/ractest/datafile/test01.dbf' 时出错
ORA-17502: ksfdcre: 4 未能创建文件 +DATA/ractest/datafile/test01.dbf
ORA-00569: Failed to acquire global enqueue.
ORA-00569: Failed to acquire global enqueue.

可以看到,相同的错误产生了,看来问题可能和ASM实例的状态有关系,登陆ASM实例,进行简单的检查:

bash-3.00$ export ORACLE_SID=+ASM1
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:33:12 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> set pages 100 lines 120
SQL> select instance_name, status from v$instance;

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
+ASM1                            STARTED

由于ASM实例可以用来检查的动态视图太少,从现有的视图也看不到特别的地方,看来只能重启数据库和ASM实例,再次检查问题:

bash-3.00$ export ORACLE_SID=test
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:41:40 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> exit
bash-3.00$ export ORACLE_SID=ractest1
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:43:21 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options 断开
bash-3.00$ export ORACLE_SID=+ASM1   
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:44:05 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> shutdown immediate
^CORA-01013: user requested cancel of current operation

SQL> CONN / AS SYSDBA
已连接。
SQL> shutdown abort
ASM 实例已关闭
SQL> startup
ASM 实例已启动

Total System Global Area  284008448 bytes
Fixed Size                  2087944 bytes
Variable Size             256754680 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
bash-3.00$ export ORACLE_SID=test 
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 2月 18 17:47:22 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  806133760 bytes
Fixed Size                  2099064 bytes
Variable Size             455669896 bytes
Database Buffers          343932928 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> create tablespace test datafile '+DATA/test/datafile/test01.dbf' size 4096m;
create tablespace test datafile '+DATA/test/datafile/test01.dbf' size 4096m
*
第 1 行出现错误:
ORA-01119: 创建数据库文件 '+DATA/test/datafile/test01.dbf' 时出错
ORA-17502: ksfdcre: 4 未能创建文件 +DATA/test/datafile/test01.dbf
ORA-00569: Failed to acquire global enqueue.
ORA-00569: Failed to acquire global enqueue.

可以看到,重启ASM实例,问题仍然出现。不过ASM实例也是在两个节点上同时运行的,莫非是另一个节点的ASM实例出现了问题:

bash-3.00$ export ORACLE_SID=+ASM2
bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 2月 19 16:38:38 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> set pages 100 lines 120
SQL> select instance_name, status from v$instance;

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
+ASM2                            STARTED

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

检查ASM实例未发现异常,尝试重启ASM实例:

bash-3.00$ srvctl stop instance -d ractest -i ractest2
bash-3.00$ srvctl stop asm -n ser2
bash-3.00$ srvctl start asm -n ser2

再次登陆test数据库,执行CREATE TABLESPACE语句:

bash-3.00$ export ORACLE_SID=test
bash-3.00$ sqlplus "/as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 2月 19 16:41:09 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> set pages 100 lines 120
SQL> create tablespace test datafile '+DATA/test/datafile/test01.dbf' size 4096m;

表空间已创建。

看来问题果然和ASM实例状态不正常有关。

检查asm实例2的alert文件,发现在运行CREATE TABLESPACE语句对应的时间点,出现了ORA-4031错误:

Wed Feb 18 15:50:04 2009
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2412):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2412/+ASM2_lmd0_3099_i2412.trc
Wed Feb 18 15:50:05 2009
Trace dumping is performing id=[cdmp_20090218155005]
WARNING: ran out of shared pool for GES enqueue object.
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2413):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2413/+ASM2_lmd0_3099_i2413.trc
Trace dumping is performing id=[cdmp_20090218155013]
Wed Feb 18 17:17:23 2009
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2414):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2414/+ASM2_lmd0_3099_i2414.trc
WARNING: ran out of shared pool for GES enqueue object.
Wed Feb 18 17:17:24 2009
Trace dumping is performing id=[cdmp_20090218171724]
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2415):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2415/+ASM2_lmd0_3099_i2415.trc
Trace dumping is performing id=[cdmp_20090218171732]
Wed Feb 18 17:18:02 2009
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2416):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2416/+ASM2_lmd0_3099_i2416.trc
WARNING: ran out of shared pool for GES enqueue object.
Wed Feb 18 17:18:03 2009
Trace dumping is performing id=[cdmp_20090218171803]
Errors in file /data/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_3099.trc  (incident=2417):
ORA-04031: unable to allocate 3512 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
Incident details in: /data/oracle/diag/asm/+asm/+ASM2/incident/incdir_2417/+ASM2_lmd0_3099_i2417.trc
Trace dumping is performing id=[cdmp_20090218171811]

这个ORA-4031错误已经和Oracle的metalink文章相符了,和Oracle错误文档上对这个错误的描述也是一致的。

而且这个ORA-4031错误信息也很明显,在分配全局对了资源的时候出现的错误。

检查ASM实例的sga,发现:

SQL> show sga

Total System Global Area  284008448 bytes
Fixed Size                  2087944 bytes
Variable Size             256754680 bytes
ASM Cache                  25165824 bytes

对于跑了多个RAC环境的ASM实例而言,200M的SGA显然太小了,和大部分Oracle默认参数一样,默认的ASM实例参数也是偏小的。

以前也碰到过一次由于ASM实例PROCESS参数太小,导致ASM实例无法登陆的问题。因此,如果选择ASM作为产品库的存储方式,那么ASM实例要重新设置,默认的参数很可能无法满足需要。

RAC环境在ASM上创建表空间出错ORA-569相关推荐

  1. oracle plsql创建表空间,Oracle在PLSQL Developer上创建表空间和用户脚本 - 龙卷风的日志 - 网易博客...

    Oracle在PLSQL Developer上建立表空间脚本 创建表空间 一. create tablespace MOF_TEMP //name datafile 'D:\oracle\produc ...

  2. oracle创建表空间出错的原因和解决办法

    相信很多人在创建表空间的时候遇到过这样问题. 问题原因:这是因为oracle数据库是在虚拟机或者是服务器上安装的. 你在本地创建文件的时候自然会找不到文件夹.就会造成图上的错误 解决办法:1.打开虚拟 ...

  3. 创建表空间oracle10g,Oracle10g创建表空间慢问题

    系统环境 CPU info: Number of CPUs = 4 Clock speed = 1595 MHz Bus speed = 532 MT/s CPUID registers vendor ...

  4. rac建oracle表空间,Oracle Rac创建表空间及用户

    1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...

  5. 用友nc633与oracle,用友NC63安装到SQL server 2008 R2和oracle上的表空间创建语句

    NC安装到oracle的表空间创建SQL语句: alter system set "_optimizer_cartesian_enabled"=false; alter syste ...

  6. 查询表空间状态,创建表空间,让表空间的大小自动扩展,删除表空间

    通过select * from DBA_DATA_FILES可以看到现在数据库中的表空间和状态. 其中AUTOEXTENSIBLE为是否自动扩展. 如果需要关闭自动扩展: alter database ...

  7. oracle级联删除表空间,Oracle表的创建.表空间创建删除,导入导出等

    创建表空间; 先在E盘建立oradate再在里面建一个temp, 再打开命令行cmd在写入sqlplus再写入sys/oracle@orcl as sysdba再写入 create tablespac ...

  8. oracle如何添加undo,ORACLE RAC 11G 添加以及删除UNDO表空间

    在生产环境上,由于闪存盘的容量有限,现在需要将闪存盘里面的UNDO表空间,替换到非闪存的磁盘里面. 磁盘的使用情况如下: 表空间使用情况如下: RAC两个节点占用将近167G的空间. 操作步骤如下: ...

  9. Oracle11g创建表空间、创建用户、角色授权、导入导出表以及中文字符乱码问题

    本文转自:https://www.cnblogs.com/bjh1117/p/6605037.html, 侵删. 前提:本机已经安装了Oracle11g数据库 需求:使用PL SQL数据库连接工具操作 ...

最新文章

  1. 2021年大数据Kafka(十一):❤️Kafka的消费者负载均衡机制和数据积压问题❤️
  2. Linux 2.6 内核定时器
  3. [科普]MinGW vs MinGW-W64及其它
  4. 在vue项目中引用element-ui时 让el-input 获取焦点的方法
  5. 使用 HTML5 Canvas 绘制出惊艳的水滴效果
  6. easyswoole数据库连接池_EasySwoole使用Mysqli
  7. dategridview设置下拉框默认值_smtp服务器怎么设置
  8. java 错误无法启动_1069 错误(由于登录失败而无法启动服务)解决方法
  9. 微信多开软件苹果版_微信PC版 v3.0.0.57 多开amp;消息防撤回
  10. php format tool,usb 開機碟製作工具HP USB Disk Storage format Tool 2.23
  11. 【Unity3D】GUI控件
  12. 常用路由器的帐号和密码大全
  13. 08 计算机视觉-opencv直方图与傅里叶变换
  14. docker 安装 Nginx 并配置反向代理
  15. 一、ArcGIS Server篇:利用ArcGIS Server发布动态地图服务
  16. 为什么有时优盘是只读模式_如何设置U盘为只读模式
  17. PTA-整除光棍(C语言)
  18. 淘宝获取商品历史价格信息 API 返回值说明
  19. 解决:GET http://localhost:**/static/js/jquery.min.js net::ERR_ABORTED 404
  20. css3中2D转换效果实现二(6)

热门文章

  1. vscode 最好的ui主题
  2. sharepoint学习
  3. DOS中判断进程是否存在的方法
  4. 周学习进度----03
  5. ubuntu设置自动休眠
  6. [NOIP2006] 数列
  7. A multi-faceted language for the Java platform
  8. Nodejs入门【转载】保留备用
  9. C++ bitset的用法
  10. plsq如何快捷整理代码_我收藏的几个更快搬砖的vscode快捷键