当前位置:  数据库>oracle

Oracle 12C升级检查问题分析

    来源: 互联网  发布时间:2017-06-24

    本文导语: 今天计划把一个测试环境升级到Oracle 12C,为了练练手,先在备库上来做。数据库版本是11.2.0.3.0,计划升级到12.1.0.2.0。 为了不影响原有的测试主库,我在备库上做了Failover,两个命令下去就立刻生效了。 SQL> select open_mode from v$dat...

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

为了不影响原有的测试主库,我在备库上做了Failover,两个命令下去就立刻生效了。
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY

SQL>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 2016
Unique Patch ID:  20464632
Patch 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 file
ORA-01110: data file 1003: '+DATA'
ORA-06512: at "SYS.DBMS_PREUP", line 2380
ORA-06512: at "SYS.DBMS_PREUP", line 981
ORA-06512: at "SYS.DBMS_PREUP", line 5471
ORA-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 2016
WARNING: ASM communication error: op 36 state 0x40 (15077)
ERROR: slave communication error with ASM
Mon Oct 31 22:28:56 2016
WARNING: ASM communication error: op 36 state 0x40 (15077)
ERROR: slave communication error with ASM
Mon Oct 31 22:30:00 2016
Thread 1 advanced to log sequence 3 (LGWR switch)

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

看错误是文件1003,查看v$datafile,文件号最大才是800多,怎么会冒出一个1003的文件呢。继续查看alert日志,发现1001也有问题,看来有问题的还不止一个文件,但是数据库Open没有任何问题。
Dictionary check beginning
Mon Oct 31 22:05:05 2016
Errors in file /U01/app/oracle/diag/rdbms/sstatdb2/statdb2/trace/statdb2_dbw0_27706.trc:
ORA-01186: file 1001 failed verification tests
ORA-01157: cannot identify/lock data file 1001 - see DBWR trace file
ORA-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 completed
SMON: enabling tx recovery
Cannot re-create tempfile +DATA, the same name file exists
Cannot re-create tempfile +DATA, the same name file exists
Cannot 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 file
ORA-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这个不存在的虚拟存储,然后最终从数据字典层面统一这些信息。

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


    
 
 

您可能感兴趣的文章:

  • fedora core5 (FC5) 下面不能装 Oracle 10g 么? (检查操作系统就通不过啊,晕)
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决
  • Oracle RAC 状态检查
  • Oracle中检查是否需要重构索引的sql
  • Oracle中死事务的检查语句
  • 在linux下安装oracle时,使用sysctl检查系统参数时出现许多error信息,不知道怎么回事,望高手指点!
  • 如何升级Oracle 9i到10g
  • Oracle发布Oracle VM 2.2升级虚拟化平台
  • Oracle数据库在Linux AS4升级
  • Oracle10201 RAC升级到10204后导出数据时报EXP-00056错误
  • Oracle RAC 10.2.0.1升级到10.2.0.4
  • VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装
  • oracle9204升级到9206笔记
  • Linux下升级Oracle 10
  • 2008年Oracle错误、备份、升级等最热门问题
  • Oracle 10201 RAC升级到10204
  • 将Oracle表空间升级为本地托管模式
  • Linux下静默安装,升级和删除Oracle客户端
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle中关数据库对象的统计分析
  • 深入oracle特定信息排序的分析
  • oracle 数据库连接分析
  • Oracle移动数据文件到新分区步骤分析
  • 基于oracle小数点前零丢失的问题分析
  • Oracle date如何比较大小分析
  • javascript开源软件 iis7站长之家
  • Oracle 数据库容灾复制解决方案分析Shar Plex
  • 计算机名称修改后Oracle不能正常启动问题分析及解决
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • linux as3 _weblogic8_oracle系统访问50万/日,常常ping不通,分析原因
  • Oracle数据库安全策略分析 (三)第1/2页
  • Oracle数据库安全策略分析(一)第1/2页
  • Oracle数据完整性嵌套事务调用分析研究
  • Oracle In和exists not in和not exists的比较分析
  • oracle修改SGA后无法启动问题分析及解决方法
  • Oracle案例:分析10053跟踪文件
  • Oracle数据库安全策略分析(二)
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle数据库后台进程的功能分析
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3