1.1.1 ORA-27123: unable to attach to shared memory segment错误的处理方法
SQL> startup pfile='/home/oracle/app/oracle/admin/pindb/pfile/init.ora.1121201017025'
ORA-27123: unable to attach to shared memory segment
IBM AIX RISC System/6000 Error: 22: Invalid argument
Additional information: 7
Additional information: 63963136
经过检查分析在AIX 6.1上env |grep TZ,有人修改了时区,将时区修改为东八1区,之前有人修改为chongqing。修改后重新启动问题解决。
1.1.2 ORA-00119: invalid specification for system parameter LOCAL_LISTENER
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_KPNITEST'
SQL>
spfile文件中不知怎么搞的,有很多的乱码,删除之后把spfile和pfile中的这一行中的*.local_listener='KPNITEST'值修改成KPNITEST就可以启动数据库了。
也可以把tnsnames.ora中的KPNITEST修改成LISTENER_KPNITEST就可以了。
LISTENER_KPNITEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = p5570alpar3)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = kpnitest)
)
)
1.1.3 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
添加红色部分问题解决
/opt/oracle/product/11.1.0/db_1/network/admin/ listener.ora
[vca177]/opt/oracle/product/11.1.0/db_1/network/admin>more listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/11.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vca177)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora177)
(SID_NAME = ora177)
(ORACLE_HOME = /opt/oracle/product/11.1.0/db_1)
)
(SID_DESC =
(GLOBAL_DBNAME = tibdb)
(SID_NAME = tibdb)
(ORACLE_HOME = /opt/oracle/product/11.1.0/db_1)
)
)
需要重启监听服务。
1.1.4 AIX机器无法安装oracle
错误提示信息如下:
监听无法启动,一启动就会产生core文件
Unhandled exception
Type=Segmentation error vmState=0x00040000
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Sig
nal_Code=00000033
Handler1=09001000A131EC78 Handler2=09001000A1316538
R0=0000000000000000 R1=0FFFFFFFFFFFB980 R2=09001000A1776AE8 R3=0000000000000000
R4=00000001103BC253 R5=000000000000000B R6=FFFFFFFFFFFFFFFF R7=000000000000006C
R8=0000000000000069 R9=0000000000000062 R10=000000000000006F R11=000000000000000
0
R12=09001000A0066E80 R13=000000011000E800 R14=0000000110306230 R15=0000000110165
800
R16=0000000000000007 R17=0000000000000000 R18=09001000A13223B0 R19=0000000000000
000
根据提示初步怀疑是操作系统位数问题,经过检查操作系统位数是正确的,但是hostname和配置文件中的不一致;经过修改,重启机器,hostname问题解决;但是重新安装问题依然没有解决,重新分析后,感觉是资源分配的问题,重新划分资源后,再次安装问题解决;
1.1.5 DBCA建库过程报错ora-01092
使用DBCA图形界面建库,在最后一个步骤的滚动条界面报错ora-01092,建库终止。
ORA-01092:ORACLE instance termiated
Disconnection forced
$oerr ORA 1092
01092, 00000, "ORACLE instance terminated. Disconnection forced"
// *Cause: The instance this process was connected to was terminated
// abnormally, probably via a shutdown abort. This process
// was forced to disconnect from the instance.
ORA-01092说明ORACLE实例由于某种原因被异常终止
ORA-01092并不能准确的告诉我们具体的故障原因,但是ORACLE在建库过程中必然会写alert日志,查看alert日志
......
Lost write protection disabled
Errors in file /home/oracle/oradb/diag/rdbms/inomc/inomc/trace/inomc_ora_31796.trc:
ORA-01501: CREATE DATABASE failed
ORA-00336: log file size 200 blocks is less than minimum 8192 blocks
Error 336 happened during database creation, shutting down database
USER (ospid: 31796): terminating the instance due to error 336
Instance terminated by USER, pid = 31796
ORA-1092 signalled during: CREATE DATABASE "inomc"
......
GROUP 2 ('/home/oracle/oradb/oradata/inomc/redo02.log') SIZE 51200K,
GROUP 3 ('/home/oracle/oradb/oradata/inomc/redo03.log') SIZE 51200K,
GROUP 4 ('/home/oracle/oradb/oradata/inomc/redo04.log') SIZE 100K,
GROUP 5 ('/home/oracle/oradb/oradata/inomc/redo05.log') SIZE 100M,
......
不难发现,导致建库失败的具体错误是:
ORA-01501: CREATE DATABASE failed
ORA-00336: log file size 200 blocks is less than minimum 8192 blocks
也就是说logfile文件的大小比oracle限定的最小值要小。
GROUP 4 ('/home/oracle/oradb/oradata/inomc/redo04.log') SIZE 100K,
至此,问题已定位。
1.1.6 ORA-00600 internal error code 4193
Oracle数据库异常down机。
Thu May 14 12:26:29 2009
Errors in file /opt/oracle/admin/ora92/bdump/ora92_smon_26209.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [5780], [2640], [], [], [], [], []
Thu May 14 12:26:29 2009
Errors in file /opt/oracle/admin/ora92/udump/ora92_ora_26287.trc:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [2669], [2675], [], [], [], [], []
Error 607 happened during db open, shutting down database
USER: terminating instance due to error 607
从日志分析4193错误属于oracle内部错误码,是redo和undo不一致所导致。
通过工具发现存储出现损坏,需要修复,首先需要将oracle数据库强行拉起恢复业务,再将数据export出来,待新的数据库创建完成后,再将数据import.通过加入隐含参数启动数据库,如下
_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$, _SYSSMU2$, _SYSSMU3$, _SYSSMU4$, _SYSSMU5$, _SYSSMU6$, _SYSSMU7$, _SYSSMU8$, _SYSSMU9$, _SYSSMU10$);
undo_management='MANUAL
1 SQL>startup pfile强行启动数据库
2 增加回滚段表空间
SQL>create undo UNDOTBS2 datafile '路径' size 1000M;
3 更换表空间
SQL>alter system set undo_tablespace=UNDOTBS2
4 删除原来的UNDOTBS1
drop tablespace UNDOTBS1 including contents and datafiles;
5 SQL>shutdown immediate'
6 重启数据库
startup
目前数据库已恢复,安全起见需将数据export出来。
1.1.7 数据库重新建实例报错ORA-00178
oracle9.2.0.8数据库双机重新建实例过程中,系统报错,无法进行安装。
: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name ‘LISTENER_ORA92’
ORA-00178: 处理系统参数失败。
由于模板数据库中错误的配置了初始化参数造成。
这个bug的解决方法有很多种:
不要使用dbca建库,而是利用dbca生成建库脚本,然后利用将脚本进行修改,然后通过脚本来建立数据库。
如果想要用dbca来完成建库操作,那么也可以通过在dbca中重新设置LOCAL_LISTENER初始化参数的方法。
1.1.8 修改SYS权限导致出现ora-00604、ora-06553错误
修改数据库sys权限后发现普通用户执行select操作等出现错误:
ora-00604:递归SQL层1出现错误
ora-06553:pls-213:standard包不可访问
里面所有对象显示都是invalid
ora-00604:递归SQL层1出现错误
ora-06553:pls-213:standard包不可访问
修改sys权限后导致standard包失效。
1、sqlplus /'as sysdba'
2、> @/$ORACLE_HOME/rdbms/admin/catalog.sql
3、>@/$ORACLE_HOME//rdbms/admin/catproc.sql
重建数据字典。
1、切勿随意修改sys权限。
2、重建数据字典勿用第三方插件。
3、重建数据字典的语句中输入完成的oracle家目录路径。
1.1.9 错误ORA-01999 password file cannot be updated in SHARED mode
数据库为oracle10,平台为sun,在授予xx用户为超级用户权限时,出现ORA-01999错误,具体如下:ORA-01999 password file cannot be updated in SHARED mode
这是因为初始化参数REMOTE_LOGIN_PASSWORDFILE被设置成为了SHARED所造成的,REMOTE_LOGIN_PASSWORDFILE被设置成SHARED表示共享的口令文件。在共享的口令文件中是不能够增加超级用户的。
1、进入初始化参数文件目录,修改参数文件中的参数REMOTE_LOGIN_PASSWORDFILE为EXCLUSIVE。
2、关闭数据库。
3、重新建SPFILE。
4、重启数据库,这里将用新建的SPFILE启动数据库。
5、再次执行“GRANT SYSDBA TO..."命令,执行成功。
1.1.10 cluster_database参数不当导致ORA-01102报错
ORA-01102: cannot mount database in EXCLUSIVE mode. |
无法用独占模式mount数据库,意味着RAC两个节点可能存在某些资源冲突。检查数据库节点一参数,未发现异常。检查数据库节点二参数,其中cluster_database='FALSE'。相比而言数据库节点一的cluster_database='TRUE'。怀疑是节点二cluster_database不当所导致报错。
将参数修改为cluster_database='TRUE'
重新执行startup,数据库正常启动.
1.1.11 建实例数据库报ORA-00603错误
在AIX5.3.0.4上装ORACLE9.2.0.7 RAC时必须调整AIX的部分内核参数
多次建实例时都失败,最后与ORACLE支持工程师联系得知必须用以下命令调整AIX内核参数:
no -p -o rfc1323=1
no -p -o tcp_recvspace=262144
no -p -o tcp_sendspace=1048576
no -p -o udp_sendspace=1048576
no -p -o udp_recvspace=1048576
设置完后可以用no -a查看设置的参数。