系统崩溃把重装的oracle覆盖报错:ora-00472

本文介绍了一种解决Oracle数据库启动时报ORA-00600和ORA-00472错误的方法。通过调整为手动undo管理、创建新的undo表空间等步骤,最终解决了由于redo记录与rollback记录不匹配导致的问题。
windows系统崩溃后,oracle控制文件、数据文件、日志文件、参数文件都在,但重装系统并重装oracle数据库装,把原来的所有oracle文件覆盖后,启动oracle几分钟后就自动关闭,再重启就报错ora-00472。查看alert日志发现
ORA - 00600 : 内部错误代码, 参数:  [ 4194 ] [ 15 ] [ 8 ] [] [] [] [] []
ORA-00472: PMON 进程因错误而终止
通过查找网上
资料,得知引起原因是     A mismatch has been detected between Redo records and rollback (Undo) 
records.
ARGUMENTS:
Arg 
[a] Maximum Undo record number in Undo block
Arg 
[b] Undo record number from Redo block
解决方法:
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 5月 5 14:28:31 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
已连接到空闲例程。
第一步:启动到nomount状态,创建pfile,将pfile里面的自动undo管理改为手工管理,并打开数据库
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             222301060 bytes
Database Buffers          381681664 bytes
Redo Buffers                7135232 bytes
SQL> create pfile='d:\1.ora' from spfile;
文件已创建。
SQL> shutdown immediate
ORA-01507: ??????

ORACLE 例程已经关闭。
SQL> startup mount pfile='d:\1.ora';
ORACLE 例程已经启动。
Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             222301060 bytes
Database Buffers          381681664 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      MANUAL
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1
SQL> alter database open;
数据库已更改。
第二步:先创建一个回滚段并使用,再新建一个新的undo表空间,并将老的undo表空间drop
SQL> Create rollback segment rr ;
回退段已创建。
SQL>
SQL>  Alter rollback segment rr online ;
回退段已变更。
SQL> Create undo tablespace undotbs2 datafile 'D:\oracle\product\10.2.0\oradata\suredd\untotbs_01.dbf' size 50M;
表空间已创建。
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
表空间已删除。
第三步:关闭数据库,使用spfile启动到nomount状态(其实就是让undo继续自动管理),
将undo表空间指向新创建的undo表空间,再关闭数据库再启动数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             222301060 bytes
Database Buffers          381681664 bytes
Redo Buffers                7135232 bytes
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01507: ??????

ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             222301060 bytes
Database Buffers          381681664 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from ff.test;
        ID NAME
---------- ----------
         1 ff
         2 jj
SQL> /
        ID NAME
---------- ----------
         1 ff
         2 jj
SQL> alter system checkpoint;
系统已更改。
SQL> alter system archive log current;
系统已更改。
SQL>  select * from ff.test;
        ID NAME
---------- ----------
         1 ff
         2 jj
SQL> /
        ID NAME
---------- ----------
         1 ff
         2 jj
SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2

以上参考http://www.blogjava.net/KingKong/archive/2011/05/05/349593.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27135177/viewspace-745441/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27135177/viewspace-745441/

### 三级标题:ORA-12154 错误概述 ORA-12154 是 Oracle 数据库连接过程中常见的错误之一,表示 PL/SQL 工具无法解析指定的连接标识符。该问题通常与 TNS(Transparent Network Substrate)配置或网络环境有关。 ### 三级标题:检查网络通信 确保本地客户端与远程数据库服务器之间的网络连接正常。通过命令行工具 `ping` 验证是否能够访问目标数据库的 IP 地址或域名。例如: ```bash ping <database_ip_or_hostname> ``` 如果 `ping` 命令失败,则需要检查本地网络设置或联系网络管理员以解决通信问题[^1]。 ### 三级标题:验证 tnsnames.ora 文件配置 确认 `tnsnames.ora` 文件中定义的服务名正确无误,且格式符合要求。服务名前不应包含空格或空行。示例配置如下: ```plaintext ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ``` 此外,还需确保文件路径正确,且 `TNS_ADMIN` 环境变量指向 `tnsnames.ora` 所在目录[^3]。 ### 三级标题:检查监听器配置 运行 `lsnrctl status` 查看监听器状态,确认其是否已启动监听正确的端口和服务名。若未启动,可通过以下命令启动监听器: ```bash lsnrctl start ``` 如果监听器配置缺少 `SID_LIST` 描述项,需手动编辑 `listener.ora` 文件添加相关内容: ```plaintext SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (SID_NAME = ORCL) ) ) ``` 修改后重启监听器以应用更改: ```bash lsnrctl stop lsnrctl start ``` ### 三级标题:测试连接 使用 `tnsping` 测试 TNS 解析是否成功: ```bash tnsping ORCL ``` 若解析失败,应重新检查 `tnsnames.ora` 和 `listener.ora` 配置。同时,尝试通过 SQL*Plus 直接连接数据库以排除 PL/SQL 工具本身的问题: ```bash sqlplus sys/qwe123@orcl as sysdba ``` ### 三级标题:PL/SQL 工具配置 打开 PL/SQL Developer 时选择“Cancel”进入主界面,随后进入工具 -> 首选项 -> 连接部分,确保 Oracle 主目录和 OCI 库路径正确指向 Oracle 客户端安装目录。保存设置后重启 PL/SQL Developer。 ### 三级标题:相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值