博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 12c升级检查问题分析
阅读量:2446 次
发布时间:2019-05-10

本文共 3637 字,大约阅读时间需要 12 分钟。

今天计划把一个测试环境升级到12c,为了练练手,先在备库上来做。数据库版本是11.2.0.3.0,计划升级到12.1.0.2.0。

为了不影响原有的测试主库,我在备库上做了Failover,两个命令下去就立刻生效了。

SQL> select open_mode from v$database;OPEN_MODE--------------------READ ONLYSQL>alter database recover managed standby database finish force;Database altered.SQL>alter database commit to switchover to primary;Database altered.

然后使用克隆安装12c的数据库软件,使用下面的命令即可安装。

$ORACLE_HOME/clone/bin/perl clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME  ORACLE_HOME_NAME=OraDb12c_home1

查看数据库已经部署了最新的补丁

$ opatch lsinventory...Patch  23054246     : applied on Mon Oct 17 17:01:16 CST 2016Unique Patch ID:  20464632Patch description:  "Database Patch Set Update : 12.1.0.2.160719 (23054246)"   Created on 5 Jul 2016, 07:07:59 hrs PST8PDT

看了下官方文档,发现对于12c的升级和升级11g差别不大,手工升级的步骤很多脚本都是一样的,思路完全可以复用。

升级前的检查需要跑一个脚本/preupgrd.sql

本来想速战速决,没想到检查的时候竟然抛出了一个错误。

DECLARE*ERROR at line 1:ORA-01157: cannot identify/lock data file 1003 - see DBWR trace fileORA-01110: data file 1003: '+DATA'ORA-06512: at "SYS.DBMS_PREUP", line 2380ORA-06512: at "SYS.DBMS_PREUP", line 981ORA-06512: at "SYS.DBMS_PREUP", line 5471ORA-06512: at line 73 

这个错误看得我有些懵,因为我这个备库是没有使用ASM的,怎么会抛出和ASM相关的错误呢。

查看参数文件里面,倒是有一行这样的内容

*.db_file_name_convert='+DATA/sgstatdb3/datafile','/U01/app/oracle/oradata/statdb2','+ARCH','/U01/app/oracle/oradata/statdb2','/U01/....

可见原来的主库是使用了ASM,但是在备库端压根没有用到,怎么会抛出这个错误呢。

查看alert日志,发现这个错误还挺特别。

Mon Oct 31 22:27:02 2016WARNING: ASM communication error: op 36 state 0x40 (15077)ERROR: slave communication error with ASMMon Oct 31 22:28:56 2016WARNING: ASM communication error: op 36 state 0x40 (15077)ERROR: slave communication error with ASMMon Oct 31 22:30:00 2016Thread 1 advanced to log sequence 3 (LGWR switch)

从错误日志可以看出,是在和ASM实例通信的时候出问题了。这个环境压根没有用ASM,肯定出问题了。

看错误是文件1003,查看v$datafile,文件号最大才是800多,怎么会冒出一个1003的文件呢。继续查看alert日志,发现1001也有问题,看来有问题的还不止一个文件,但是数据库Open没有任何问题。

Dictionary check beginningMon Oct 31 22:05:05 2016Errors in file /U01/app/oracle/diag/rdbms/sstatdb2/statdb2/trace/statdb2_dbw0_27706.trc:ORA-01186: file 1001 failed verification testsORA-01157: cannot identify/lock data file 1001 - see DBWR trace fileORA-01110: data file 1001: '+DATA'File 1001 not verified due to error ORA-01157

脑袋里盘算着,一边翻找日志,发现数据库启动的时候抛出了下面的错误。

Verifying file header compatibility for 11g tablespace encryption..Verifying 11g file header compatibility for tablespace encryption completedSMON: enabling tx recoveryCannot re-create tempfile +DATA, the same name file existsCannot re-create tempfile +DATA, the same name file existsCannot re-create tempfile +DATA, the same name file exists

如此一来,问题就很明显了,临时表空间的文件映射存在问题,导致没有创建成功,而临时文件有无不会影响数据库的启动,所以这个问题就这样暂时搁置下来了。

进一步验证,可以看到存着多个临时文件

SQL> SELECT FILE#,NAME FROM V$TEMPFILE     FILE# NAME---------- ------------------------------         3 +DATA         4 +DATA         1 +DATA         2 +DATA         5 +DATA         6 +DATA         7 +DATA

同时使用dba_temp_files会直接抛出之前的错误。

SQL> select file_name from dba_temp_files;select file_name from dba_temp_files                      *ERROR at line 1:ORA-01157: cannot identify/lock data file 1003 - see DBWR trace fileORA-01110: data file 1003: '+DATA'

问题的原因找到了,解决起来就很容易了。我们可以重新创建一个临时表空间,然后删除原来的。

SQL> create temporary tablespace temp1 tempfile '/U01/app/oracle/oradata/statdb2/temp01.dbf' size 100M;Tablespace created.SQL> alter database default temporary tablespace temp1;Database altered.SQL> drop tablespace temp including contents and datafiles;Tablespace dropped.

后台会继续检查+DATA这个不存在的虚拟存储,然后最终从数据字典层面统一这些信息。

再次做升级前的检查,就没有任何问题了。

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

转载于:http://blog.itpub.net/23718752/viewspace-2127380/

你可能感兴趣的文章
ruby on rails_Ruby on Rails在市场开发中的重要地位
查看>>
react 编程式路由_如何做React式编程。 第2部分:副作用
查看>>
传统网络面临问题_我们每天都面临的最流行的计算机问题
查看>>
aws cmake .._如何将Hyperledger Fabric 1.4部署到AWS
查看>>
机器人学数学理论_基于格理论的机器学习数学
查看>>
unity 场景优化_Unity优化:您的场景层次正在抢劫您
查看>>
如何制作电子邮件而不是一团糟:实用技巧
查看>>
px em rem区别_px,em,rem,%之间有什么区别? 答案在这里
查看>>
pvs-stdio ue4_云中的PVS-Studio:Azure DevOps
查看>>
理想商城_理想产品经理的52个特征
查看>>
移动应用程序开发_7种用于移动应用程序开发的终极编程语言
查看>>
本地应用程序_应用程式本地化的十大语言
查看>>
sds和c字符串比较_SDS虚拟化架构的简要比较
查看>>
java项目中出现的bug_2019年在Java项目中发现的十大bug
查看>>
app开发和web开发_理解现代Web App开发概念的指南
查看>>
汉语句子的意群和重音_五重音而不是字节-数据存储和检索方法
查看>>
现实增强 工具包 csdn_增强现实:21世纪教育的理想工具
查看>>
tls 1.2加密_椭圆曲线加密在TLS 1.3中的工作方式
查看>>
pvs-stdio ue4_使用PVS-Studio检查GCC 10编译器
查看>>
inter-rat_数字取证技巧和窍门:基于IM的电报RAT-第二部分
查看>>