今天来说几个问题,一个是对昨天《让我焦灼的四个问题》的升华,不能起博眼球的题目,技术分析给大家兜底了,你们看看有没有类似的问题。

还有几个小问题说说今天的感受和网友的问题解答。

首先是让我焦灼的dataguard问题,说起来惭愧,一个dataguard搞了很多天,不是搭建麻烦,是中间碰到了不少的坑和问题,当然自己能够说服自己是第一步,虽然最后找到一个bug来对这个问题终结,但是还有一个疑点一直没让我释怀,就是主库redhat 6.3+ASM,备库redhat 5.3+FS,其实这个组合虽然看起来有些牵强,但是搭建备库从技术设计上看起来还是能够实现的,本来11g已经开始部分支持异构平台的dg了,跨操作系统版本应该还是可以的,但是这套环境就是不行,当然最后又一个redhat 5和bmr相关的一个bug,但是说服不了自己的是这个环境之前也有一套灾备环境,从以前的历史日志来看,是没有问题的,所以一直没想明白到底了哪里出了问题。当时临时把备库建在了一台备机上,这台机器就留下来琢磨了好几天,也是运气好,本来昨天就pxe格式化成6.3版本了,昨天的文章中亦远邦给了我私信回复,当然他的分析真是一针见血,让我竖大拇指的地方就是我文章里没有提供的信息他也猜到了,他说可能和一个参数filesystemmio_options可能有关,如果在ext4上,那么就是一个os级的kernel bug了。因为我的文章中从来没有提及这个参数,一直在从数据库层面进行分析,当他一提到这个参数,我是有种顿悟的感觉,所以一宿都在做梦忙着修复这个问题,真是累啊。

当然我们早上也进行了进一步沟通,向他学了不少干货,首先这个问题在mos上可以搜到,不过搜索的关键字是zero ext4可以找到对应的bug,文章为:

ORA-1578 ORA-353 ORA-19599 Corrupt blocks with zeros when filesystemio_options=SETALL on ext4 file system using Linux (Doc ID 1487957.1)

所以这样一来对于这个问题总算有了结论,我之前的疑虑终于消除了,对于异步IO的这个问题,在kernel版本中(目前我的是在2.6.18-194.el5)开启会有一些问题,也不是说redhat 6就一定没有问题,而是需要在对应的基线内核版本范围之内,从oracle的建议来看,要不设置为none,要不开directIO,要不开async_IO,不能setall

当然还聊了不少,理论的铺垫已经有了,自己还是实践一下,实践也略微有些曲折,是因为我竟然又碰到了好几个小问题,有些在mos上还查到是bug,如果在备库环境设置filesystemmio_optinos为none之后,重启数据库,会报出下面的错误。

alert_testbi.log

ORA-17629: Cannot connect to the remote database server

ORA-17627: ORA-01017: invalid username/password; logon denied

ORA-17629: Cannot connect to the remote database server

ORA-17627: ORA-01017: invalid username/password; logon denied

ORA-17629: Cannot connect to the remote database server

ORA-17627: ORA-01017: invalid username/password; logon denied

ORA-17629: Canno

Wed Jan 13 09:55:18 2016

Recovery interrupted!

Hex dump of (file 9, block 1048240) in trace file /home/U01/app/oracle/diag/rdbms/s2testbi/testbi/trace/testbi_pr00_15736.trc

Corrupt block relative dba: 0x024ffeb0 (file 9, block 1048240)

Completely zero block found during in-flux buffer recovery

Reading datafile '/home/U01/app/oracle/oradata/testbi/datafile/mbi_data.274.899314747' for corruption at rdba: 0x024ffeb0 (file 9, block 1048240)

Reread (file 9, block 1048240) found same corrupt data (no logical check)

Hex dump of (file 9, block 1048241) in trace file /home/U01/app/oracle/diag/rdbms/s2testbi/testbi/trace/testbi_pr00_15736.trc

。。。

Reading datafile '/home/U01/app/oracle/oradata/testbi/datafile/mbi_data.274.899314747' for corruption at rdba: 0x024ffe9f (file 9, block 1048223)

Reread (file 9, block 1048223) found same corrupt data (no logical check)

Incomplete read from log member '/home/U01/app/oracle/fast_recovery_area/S2testBI/archivelog/2016_01_11/o1_mf_1_450_c96vv7d1_.arc'. Trying next member.

Recovered data files to a consistent state at change 414943405

Wed Jan 13 09:55:18 2016

Recovery Slave PR0C previously exited with exception 17627

MRP0: Background Media Recovery process shutdown (testbi)

Wed Jan 13 10:08:32 2016

MRP会先启动,然后在一大堆错误之后默默down掉。

尝试了坏块修复,发现ASM归档格式的映射和文件系统的映射存在一些问题。

All non-current ORLs have been archived.

Media Recovery Log /home/U01/app/oracle/fast_recovery_area/S2TESTBI/archivelog/2016_01_11/o1_mf_1_450_c96vklfq_.arc

Error opening /home/U01/app/oracle/fast_recovery_area/S2TESTBI/archivelog/2016_01_11/o1_mf_1_450_c96vklfq_.arc

Attempting refetch

MRP0: Background Media Recovery terminated with error 308

Errors in file /home/U01/app/oracle/diag/rdbms/s2testbi/testbi/trace/cyoubi_pr00_16345.trc:

ORA-00308: cannot open archived log '/home/U01/app/oracle/fast_recovery_area/S2TESTBI/archivelog/2016_01_11/o1_mf_1_450_c96vklfq_.arc'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Recovery interrupted!

但是实际上归档在主库也是存在,在备库也有序列号为450的归档,但是归档格式不同。

主库为ASM,归档格式为:

ASMCMD> ls -lt

Type        Redund  Striped  Time             Sys  Name

ARCHIVELOG  UNPROT  COARSE   JAN 12 10:00:00  Y    thread_1_seq_463.2224.900889823

..

ARCHIVELOG  UNPROT  COARSE   JAN 11 17:00:00  Y    thread_1_seq_450.2844.900866813

备库为文件系统,归档格式为:

$ ll /home/U01/app/oracle/fast_recovery_area/S2CYOUBI/archivelog/2016_01_11

total 349724

-rw-r----- 1 oracle oinstall 117709312 Jan 11 16:56 o1_mf_1_449_c96vkfv9_.arc

-rw-r----- 1 oracle oinstall  57289728 Jan 11 17:01 o1_mf_1_450_c96vv7d1_.arc

-rw-r----- 1 oracle oinstall  19244544 Jan 11 16:56 o1_mf_1_451_c96vkgbj_.arc

这个格式映射出现问题,当然手工改归档名肯定是不可以的,因为头部校验就会出错。

而且更为关键的是其实备库的序列号已经很新了。已经远远超过了450

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

---------- --------------------------------

502 CLEARING

501 CLEARING

503 CURRENT

这个找到一篇文章  Oracle Alert Log Is Reporting Archive Log Status Is Not Available For Logs That Have Long Been Backed Up (Doc ID 1161573.1)

实际上如果观察前面的日志仔细,会发现刚好删除了450的归档。

Deleted Oracle managed file /home/U01/app/oracle/fast_recovery_area/S2TESTBI/archivelog/2016_01_11/o1_mf_1_450_c96vklfq_.arc

其实闪回区的使用率也就20%左右,离80%还远。

最后果断重新duplicate,当然花了几十分钟搞定。然后就没有看到任何的错误。看到下面的信息终于踏实了。

Wed Jan 13 13:05:49 2016

Media Recovery Log /home/U01/app/oracle/fast_recovery_area/S2testBI/archivelog/2016_01_13/o1_mf_1_508_c9cprvo5_.arc

Media Recovery Waiting for thread 1 sequence 509 (in transit)

Recovery of Online Redo Log: Thread 1 Group 4 Seq 509 Reading mem 0

Mem# 0: /home/U01/app/oracle/oradata/testbi/onlinelog/group_4.302.899840531

Mem# 1: /home/U01/app/oracle/fast_recovery_area/testbi/onlinelog/group_4.799.899840531

当然稍后还是要把它pxe格式化掉,改为6.3以上的版本。发现问题不作为感觉是在作假。也算给自己一个验证的机会吧,最后再次感谢远邦,中亦科技的小y,给予的无私帮助。

终于让我从苦海中脱离出来了,当然后面还有其它的苦海。:)

问题答疑

还有个问题是最近还有几个网友在问我。

1)如果需要在非分区列上创建唯一索引呢?只能全局吧?

2)怎么在非分区建上建立通过约束建立本地唯一索引 并不是在分区键或者带着分区键 比如我的分区键是时间列range分 但我要按照ID列来建本地唯一索引 怎么办?

其实对于这个问题,可以做个小实验。创建一个分区表。为了日期格式简单,我用Number代替。

create table test (id number,name varchar2(30),rdate number)

partition by range( rdate)

(

partition p1 values less than(2014),

partition p2 values less than(2015),

partition p3 values less than(2016)

);

创建本地唯一索引

SQL> create unique index ind_test_id_uq on test(id) local;

create unique index ind_test_id_uq on test(id) local

*

ERROR at line 1:

ORA-14039: partitioning columns must form a subset of key columns of a UNIQUE index

这个时候这个错误也是合理的,如果已经做了唯一性判断,那还要分区的rdate有什么用呢。

可以根据你的需要创建prefix local index或者组合索引都可以。

比如。

SQL> create unique index ind_test_id_uq on test(rdate,id) local;

Index created.

再次基础上创建约束即可。

SQL> alter table test add constraint con_test_id_uq unique(rdate,id);

Table altered.

这个地方可以思考一下,如果单纯在id上建唯一性索引,这个分区的简直rdate就没什么用了,做本地索引就没有了分区的基准。

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

linux 用dg分区,dg的奇怪问题终结和分区问题答疑相关推荐

  1. dg的奇怪问题终结和分区问题答疑 (r7笔记第77天)

    今天来说几个问题,一个是对昨天<问题答疑

  2. dg建立linux分区,Linux平台 Oracle 11g DG测试环境快速搭建参考

    Linux平台 Oracle 11g DG测试环境快速搭建参考 环境现状: 两台虚拟主机A和B: 1. A机器已安装ASM存储的Oracle 11g 实例 参考: 2. B机器已安装系统,配置以及目录 ...

  3. 【DG】DG的3种保护模式

    [DG]DG的3种保护模式 DG提供了3种数据保护模式:最大保护(Maximum Protection).最高性能(Maximum Performance)和最高可用(Maximum Availabi ...

  4. 一步一步搭建11gR2 rac+dg之DG 机器配置(七)【转】

    DG 机器配置 转自: 一步一步搭建11gR2 rac+dg之DG 机器配置(七)-lhrbest-ITPUB博客 http://blog.itpub.net/26736162/viewspace-1 ...

  5. linux文件类型为ext4怎么扩展,如何扩展ext4分区和文件系统?

    只是为了阐明我如何为仍在阅读此线程的任何人执行此操作. 如果它是您要调整大小的引导分区,则必须从仅是Live Linux的bootcd或bootusb"救援"驱动器引导.这使您可以 ...

  6. linux分区从1开始,Linux 学习笔记 1 使用最小的系统,从分区安装系统开始

    我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习 ...

  7. 安装linux必不可少的一个分区,安装linux系统对硬盘分区时,必须有的两种分区类型是什么?...

    安装Linux系统对硬盘分区时,必须有两种分区类型: 根分区和交换分区. 根分区就是root分区,所有的东西都在这个分区内. /swap分区是交换分区,是一定磁盘空间(分区或文件),用于将部分内存中的 ...

  8. linux磁盘管fdisk,Linux 磁盘分区工具和挂载,fdisk管理分区详解

    MBR分区 MBR概述:全称为Master Boot Record,即硬盘的主引导记录. 主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码.它负 ...

  9. Linux私房菜--第三章 主机规划和磁盘分区

    主机规划 工作机还是游戏机? 性价比的考虑,如果高一级的产品让你的花费多一倍,但是新增加的性能只有10%,性价比就太低了 支持性考虑 如果企业用计算机不要自行组装,购买商业服务器较佳,因为厂家散热, ...

最新文章

  1. python -如何查看已经安装xlrd 的版本号
  2. php删除修改例,PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
  3. PS教程第十六课:图层是Ps的基石
  4. c#简单类的继承【C#】
  5. 解决MMC不能打开文件MSC文件(转)
  6. 【kafka】 kafka 0.10报错IOException: Connection to 1 was disconnected before the response was read
  7. 2022新版Git教程 从入门到实战(二)Git本地仓库的使用
  8. 如何解决卸载McAfee时出现“处于托管模式时无法删除”问题(转)
  9. Python 欧卡2导入音乐 批量转ogg格式
  10. linux centOS6.5防火墙
  11. 生鲜配送app开发方案
  12. 搭建kinect for windows开发平台
  13. win10+Docker Toolbox+mysql
  14. IST改进算法之Two-Step Iterative Shrinkage/Thresholding(TwIST)
  15. SQL Server 2005 SP3正式版下载
  16. map、set、multimap和multiset的使用【STL】
  17. python中的一维卷积conv1d和二维卷积conv2d
  18. 20162316刘诚昊 课下排序测试
  19. Matlab实现弹道仿真
  20. C8051F340 USB0 寄存器访问

热门文章

  1. gridcontrol--->advBandedGridView
  2. Tekla二次开发——C#环境的搭建
  3. 汽车 ECU FlashBootLoader 常见刷写流程
  4. 10000内的回文数c语言,回文数
  5. 我为什么要离开华为?
  6. 编码器Atom使用指南
  7. yolov5_deepsort车流量跟踪计数
  8. 书生笔记-clickhouse单机安装
  9. linux 网卡包存储,Linux下使用libpcap进行网络抓包并保存到文件-Go语言中文社区
  10. 学计算机必备18个网站!!!