最近的几个技术问题总结和答疑(二)

最近积累了几个问题,我就凑在一起做一个统一的答复,微信后台的留言回复超过24小时就无法回复了,有时候看到的时候已经过了时间点了,实在抱歉。
有时候有些朋友是通过qq或者微信来问我问题,有时候运气好能够马上定位,感觉非常侥幸。
今天回答5个小问题。
第一个问题是在昨天晚上准备睡觉前,一个微信好友的提问。说自己的DG备库上启动了两个一模一样的实例,感觉比较奇怪。
当时的截图如下。

一看这个问题,真是运气好,马上就知道原委了,我让他把当前环境变量的ORACLE_HOME提供给我。
然后找到两个PMON的进程的进程号,发给我。
稍作等待,就收到了相应的进程号为5261 5550,其实不一定选用PMON,SMON,LGWR这些进程都可以。
我提供了两个命令,让他把结果发给我。
cat /proc/5261/environ|xargs -0 -n1 |grep ORACLE_HOME
cat /proc/5550/environ|xargs -0 -n1 |grep ORACLE_HOME
收到的结果如下,

仔细看ORACLE_HOME的值就会发现唯一的差别就是末尾的斜杠。
至于原因也非常简单,在Unix,Linux系统中,SID和ORACLE_HOME在一起哈希后会得到一个唯一的值作为SGA的key。当oracle实例启动时,在操作系统上的fork进程会根据Oracle_SID来创建相关后台进程。
在这个例子里面,Oracle认为ORACLE_HOME是不同的,所以才可以启动到nomount状态,但是肯定启动不到mount状态,因为控制文件已经被占用了。

第二个问题是微信中的留言:
有个adg备库问题困扰我很久,正好请教一下,adg备库处于只读打开模式应用归档日志,我们在上面执行包含dblink的复杂查询,查询存在多个本地表和远程表关联,会报一个这是只读数据库的错,这好像是和通过dblink查远程表会启动一个事务有关,不知道你有没有遇到这样的问题(O_O)?
这个也是运气好,我还真碰到过。而且碰到的例子比他还特殊一些。
使用db link在备库查询,可能会触发这个问题,可以参见MOS  参考链接如下:

Dblink
on Physical standby - ORA-16000 (Doc ID 1296288.1)

ORA-16000
With A Semantic Query On A Read-only Database (Doc ID 1928638.1)

而我碰到的这个问题略微不同,是因为失效的对象导致的这类问题,可以参考我的博客。备库批量查询失败的原因分析 http://blog.itpub.net/23718752/viewspace-2052930/

第三个问题是微信中的留言
主键和唯一键索引必须是全局索引吧?如果原表存在怎么处理呢?去掉吗?还是做分区操作的时候update global indexes呢?另外分区是手动增加,还是写job自动增加呢?
几个字段组成唯一约束,请问约束的顺序和唯一索引的顺序可以不一样吗
我的回答:其实这个我也写过一篇文章做过一些解释,其实可以认为是独立的。不一定啊,默认是全局,不能这么干,大分区表一般都是先建约束,然后绑定本地索引。
可以参考我之前写的一篇  很多人比较纠结的约束和索引的关系 http://blog.itpub.net/23718752/viewspace-1975057/

第四个问题来自PUB的私信:
目前我在做一个数据迁移项目。由源系统历史数据需要全部迁移至目标系统,而两套系统的表结构是完全不同的。
目前我们即将进入数据对照阶段。麻烦我想问一下,这个阶段您有什么好的建议么。还有数据对照时候有什么模版或者好的工具能让数据对照工作有效进行。。非常渴望您的指导!另外,我们这次数据迁移的表中。有十几张千万条以上的大表,有些达到5000万条。麻烦问一下这些超大表在设计迁移脚本的时候一些需要注意的设计策略。以及是否可有工具辅助呢

这位朋友现在碰到的数据迁移应该算是异构增量数据迁移,应该是迁移里面比较折腾的一种。
我的回答如下:你说的这种方式的迁移物理迁移,普通的逻辑迁移都不可用,数据对照阶段你说的是比较表结构信息是吧,这种迁移应该是逻辑增量的方式吧,这种方式我的感觉还是推荐用外部表来迁移,优点非常明显就是数据可插拨,而且可以灵活的指定列映射关系,当然需要提前呢准备好映射关系的部分,我觉得对增量数据迁移来说,这个方案比较可行的是,可以在迁移前做到数据的比对,对于约束冲突,主键冲突的数据就可以提前预警。

第五个问题是今天的社群文章。原文可以参考 http://dbaplus.cn/news-10-340-1.html
有个群友留言提问:运维注重细节,如何提升价值和跟客户交流增加运维服务价值?
我觉得这个问题特别难得,其实这些细节有些看似不经意,不起眼,对于运维服务的价值来说,可以辩证的来看,首先碰到的一个看似简单的问题,正因为简单,很可能是一个通用的错误,彻底解决了一个问题,其它环境都有的同样问题都会引刃而解。很多历史问题,遗留问题,或者难题,其实拆分来看,都是因为这样那样的原因,归根接底都是很细小的问题导致的,解决了这类问题,本身就会解决已经存在的问题,规避即将发生的问题。这些问题还是在一定程度上坦诚和客户去沟通去互相了解,理解,这样我们解决的问题的意义就在于此,而不是有些时候藏着捂着。最后就是对个人的提升,对自己全方位都是一个锻炼,过程虽然痛苦,但是回想起来还是值得的。

时间: 2024-10-31 11:11:48

最近的几个技术问题总结和答疑(二)的相关文章

Tomcat与Java Web开发技术详解连载之二

web|详解 2.2.4 部署HTML文件 在helloapp目录下加入index.htm文件,这个文件仅仅用来显示一串带链接的字符"Welcome to HelloApp", 它链接到login.jsp文件.以下是index.htm文件的代码: <html><head><title>helloapp</title></head><body ><p><font size="7"

2015年容器技术峰会学习笔记(二)

本文讲的是2015年容器技术峰会学习笔记(二),[编者的话]这是2015容器技术峰会学习笔记的第二篇,在这里,作者继续讲述有关容器的诸多轶事,华尔街之狼? 开源巨头? 初创团队? 让我们一起去看看他们是怎么玩的容器的吧! @Container容器技术大会将于2016年1月24日在北京举行,来自爱奇艺.微博.腾讯.去哪儿网.美团云.京东.蘑菇街.惠普.暴走漫画等知名公司的技术负责人将分享他们的容器应用案例. 昨天我们发布了这次容器技术峰会笔记的第一部分.今天继续!我们将给大家分享更多其他的在现场听

【H.264/AVC视频编解码技术详解】十二、解析H.264码流的宏块结构(上)

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 H.264中Slice Body--宏块结构(M

黑科技:Mellanox Multi-Host技术打通数据中心任督二脉

世界领先的高性能计算.数据中心端到端互连方案提供商Mellanox(纳斯达克交易所代码:MLNX)今日宣布,已经有多家OEM厂商开始采用Mellanox极具创新意义的Multi-Host(多通路)技术.该技术可以帮助OEM厂商构建高可扩展的异构计算.存储平台,并能够在直连多重计算.存储组件的同时,提供超高的投资回报.OEM的测试报告显示,Mellanox的Multi-Host技术能够将数据中心的性能提升150%,同时减少30%的成本. "曙光的'M-Pro'系列刀片服务器全面采用了拥有Mulit

最近的几个技术问题总结和答疑(七)

今天抽空整理,发现近期问我数据恢复,灾备的问题还比较多,我简单整理了一下. 问题1: 能请教一个问题么?我们用was链接的oracle数据库,是不是不建议在was上设置statementcachesize的参数?我们目前设置的是200,发现数据库中那个session都会持有200个游标,有工程师建议把这个参数设置为0 这个问题着实还问到我了,不过我问了下专业的中间件工程师,答复如下: Statement Cache Size是指有多少个prepared statement或者callable s

最近的几个技术问题总结和答疑(八)

今天的技术问答是刘晨兄的一个问题,提问来自于我新书中的一个实验,刘晨兄非常认真,对我书中的很多细节都进行了测试. 看到这个错误,如果出现end-of-file这类的错误信息,基本可以断定数据库实例是宕了. 找到刘晨兄提到的页码标示,原来和我书中的测试结果有一些差别. 我书中的结果类似这样的形式: 错误代码也完全不同,这个问题该怎么解释呢,这个应该是一个很细节的问题. 首先网络上关于这个错误有很多种说法,很多我不认同. 我们先来复现一下问题,找了一套11.2.0.3的环境测试了一下. 先初始化数据

最近的几个技术问题总结和答疑(九)

    最近的琐事比较多,而提问题的朋友还是不少,很多消息都没有来得及回复,各种事情一堆起来,不少问题想起来已经过了好几天了,所以还是来整理一篇技术问答为好.     首先是很多朋友问我关于半自动化搭建Data Guard的脚本,我写了几篇文章来介绍思路,自己也提了不少的改进,团队内部也沟通过了,一直迟迟没有发布出来是因为我觉得目前的实现方式可能对于我的工作能够极大提高,但是很多朋友使用的环境可能没有中控的概念,所以不是很通用,所以我想做一些改变,还有一个是里面的有些逻辑我想改改,至少简化一下.

“.NET技术”页面片段缓存(二)

在上一篇文章中,我介绍了我们用土法炼钢的方法,使用Velocity提供的自定义标签实现片段缓存.这样的方式虽然也解决了我们的问题,但还是引出了一些bug.而且还有点hack的味道(虽然我喜欢hack).实际上对于片段缓存,业界有成熟的解决方案,还有一个所谓的W3C标准:ESI(Edge Side Include) . ESI本身没有什么,只是一个XML的标签集合.ESI和SSI(Server Side Include)很相似,做过ASP开发的都熟悉这么一个标签: <!--#include src

深入掌握Java技术EJB调用原理分析二

Home接口的Weblogic实现类的stub类 ((Hello Bean))_HomeImpl_WLStub(部署的时候动态生成字节码) Home接口的Weblogic实现类的skeleton类 ((Hello Bean))_HomeImpl_WLSkeleton(部署的时候动态生成字节码) Remote接口:Hello (用户编写) Remote接口的Weblogic实现类 ((Hello Bean))_EOImpl(EJBC生成) Remote接口的Weblogic实现类的stub类 ((

Asp.net 3.5控件和组件开发技术系列—服务器控件属性(二)

4.4.3.2 使用ControlBuilder解析 复杂内容 通过 System.Web.UI.ControlBuilder 类定制页面解析逻辑,可以定制任意类型的标记,而不 像重写AddParseSubObject 方法那样限定子标记必须是子控件,且必须有前缀和runat 属性,下面 直接通过一个例子来说明一下此类的用法. 首先建立两个文件 ScriptItem.cs 和ScriptItemCollection.cs ,分别定义ScriptItem 类和 ScriptItemCollecti