知识库

标准化实施手册及常见错误


oracle问题

<h1>问题1:ORA-00600: internal error code, arguments: [4194],</h1> <p><strong>问题描述:oracle的undo表空间损坏导致</strong> <img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/242cb66af42c378d1aff25ed5f58d75f" alt="" /> <img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/c70174341a1efb4b2cf7b580df9ed981" alt="" /> <strong>解决方案:</strong></p> <pre><code class="language-java">1.先根据日志找到file 3代表的是哪个数据文件 select * from dba_data_files where file_id=3; 查出是undo表空间文件 2.为防止修改oracle参数失败导致数据库无法启动,备份spfile文件 create pfile from spfile; 3.设置undo表空间的管理方式为:手工 alter system set undo_management = manual scope=spfile; 4.缺省undotbs 为空 alter system set undo_tablespace='' scope=spfile; 5.创建新的undo表空间数据文件undotbs2(名称自己命名) create undo tablespace undotbs2 datafile '/URP/oracle/oradata/urpjw/undotbs02.dbf' size 2048M; 注意修改表空间数据文件路径 6.设置undo表空间的管理方式为:自动 alter system set undo_management =auto scope=spfile; 7.缺省undotbs 为新建的undo表空间, alter system set undo_tablespace = undotbs2 scope=spfile; 9.重启 shutdown immediate; startup;</code></pre> <h1>问题2:ORA-00845:MEMORY_TARGET not supported on this system</h1> <p><strong>问题描述:</strong> oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA, 这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。 <strong>解决方案:</strong> 1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm mount -t tmpfs shmfs -o size=16384M /dev/shm 但如果之前已经mount过了,则执行remount mount -o remount,size=16384M /dev/shm 2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件 tmpfs /dev/shm tmpfs defaults,size=16384M 0 0 3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载,执行目录查看: df -h <img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/8040c1028e115b3d68e0a3d455c1139f" alt="" /> <strong>注意事项:</strong> 调整/dev/shm大小的时候,须ls /dev/shm,看里面是否有oracle的文件。 如果/dev/shm中无oracle文件,可以重新mount此空间,不会对正运行实例造成任何影响; 如果/dev/shm里面有oracle文件,说明另外一个oracle实例正在使用此空间,若强行重新mount,目前暂不知道会对正运行实例造成什么影响,请谨慎操作</p> <h1>问题3:ORA-28000 账号被锁定</h1> <p><strong>问题描述:</strong> 当使用sqlplus进行登录时报错:ORA-28000 账号被锁定 <strong>问题原因:</strong> 由于oracle 11g 在默认在default概要文件中设置了密码最大错误次数为10,“FAILED_LOGIN_ATTEMPTS=10”,密码错误的次数超过10次,账号就会被锁定 <strong>解决方案:</strong></p> <ul> <li> <p>远程数据库服务器: <code>su - oracle</code></p> </li> <li> <p>使用sqlplus 命令: <code>sqlplus / as sysdba;</code></p> </li> <li> <p>查看具体的被锁时间: <code>select username,lock_date from dba_users where username='用户名';</code></p> </li> <li> <p>解锁: <code>alter user 用户名 account unlock;</code></p> </li> <li> <p>修改密码: <code>alter user 用户名 identified by 新密码;</code></p> </li> <li>将10次(默认)改为不受限制,改动后立即生效 <code>alter profile default limit failed_login_attempts unlimited;</code></li> </ul>

页面列表

ITEM_HTML