站内搜索
Oracle证书
分类目录
- ASM (30)
- Database (86)
- backup&recovery (21)
- expdp/impdp (5)
- Installation and Deinstall (31)
- network (7)
- ORA-600 or ORA-7445 (6)
- Performence Tuning (13)
- troubleshoooting (2)
- Dataguard (7)
- EBS (3)
- Exadata (120)
- FAQ (19)
- POC和性能调整 (11)
- 体系架构 (19)
- 内部机制 (22)
- 安装和升级 (14)
- 性能指标 (8)
- Exadata V1 (1)
- Exadata V2 (1)
- Exadata X2-2 (2)
- Exadata X3-2 (1)
- Exadata X4-2 (1)
- FAQ (1)
- 故障诊断 (3)
- 日常运维 (15)
- 硬件配置 (43)
- Exadata V1 (6)
- Exadata V2 (6)
- Exadata X2-2 (6)
- Exadata X3-2 (8)
- Exadata X4-2 (8)
- FAQ (1)
- FAQ (16)
- Internal (21)
- Linux (20)
- MYSQL (8)
- OGG (1)
- ORA-600/7445 (2)
- ORA-XXXXX (5)
- Oracle 11.1 & Oracle11.2 (6)
- ORACLE 12C (21)
- Oracle 8 & Oracle 8i (1)
- RAC (47)
- SAP (2)
- Scripts (6)
- 未分类 (1)
- 虚拟化 (1)
2025 年一月 S M T W T F S « Nov 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 文章归档
-
近期文章
- 针对最近黑客攻击数据库的解决方案和预防建议
- CentOS7.2(RHEL 7.2)的CPU占用高(%system 占用高)
- Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2
- Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库
- Oracle 12.2的Sharding-1-基础概念
- 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库
- 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库
- 11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘
- 2016年1月PSU列表
- 单实例数据库转换为RAC数据库–使用rconfig转换
近期评论
- tom 发表在《exadata巡检报告的模板》
- cyx 发表在《关于我》
- 李科胜 发表在《EBS克隆–db和app分开在两个服务器上》
- xiao 发表在《exadata巡检报告的模板》
- Chris Sun 发表在《使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试》
作者归档:Lunar
今天玩vm的收获-1,LVM管理真方便-2,ip地址改完了别忘了修改listener和local_listener
今天继续整合vm,遇到两个问题,一个是,空间和一两句话说不清楚的目录问题,一个是ip地址问题,都是小蚂蚁问题,记录一下,好玩,O(∩_∩)O哈哈~ 这个是空间问题: 你可以看到,我的这个有2个盘分别存放了grid软件和oracle软件,分别用了两个盘,分别挂载到两个目录: /u01 和 /u01/app/oracle 于是,我就想到应该扩展根目录,然后把tar文件放到根目录下,在解压,应该就自动合并到/u01/app/oracle了。 我的一个11.2.0.3的vm也是/u01/app/oracle目录。 我们都知道,使用root用户tar一个目录,解tar时,直接按照原有目录解压,但是今天测试了好几个参数,都不行 我怀疑就是因为不同的盘上有了相同的目录,比如/dev/sde1 挂载到了 /u01/app/oracle,跟不够大,我把tar过来的11.2.0.3.tar放到了新建的盘/dev/sdf1上 挂载到/other上,因此解压的时候,目录就变成/other/u01/app/oracle了 这样我的这套11.2的环境就有问题,需要修改一些东西,比较麻烦。。。 弄好后,测试下两个环境,一个oracle 12.1,一个是oracle 11.2.0.3 这里启动数据库,遇到另一个小问题: 找不到spfile,检查下,果然没有spfile和init: 弄个pfile出来看看,把这个“鸡肋”LOCAL_LISTENER注释掉试试看,然后果然可以了,没有报其他错误了,说明我的vm还是好的 (最近每天折腾vm,都是从活动硬盘上copy回来的,总是有各种妖怪问题): 我这个人养成了一种习惯,不找原因,先琢磨workround,但是回过头来,还是要看看怎么弄的 怀疑ip地址有问题,检查/etc/hosts,果然,这里的ip地址不对,从活动硬盘copy来的,里面ip沿用的以前的vm的配置: 检查tnsnames.ora,发现问题了: 这里 LISTENER_LUNARBB 使用的是机器名,而 oracle在启动的时候会根据local_listener参数的设置去找检查相应的主机名和端口号,我这里有两个错误: 1,主机名,很可能这里的HOST = lunar本身就有问题,因为我以前的老ip对应着现在的新ip的主机名,都是lunar 2,端口号写成了主机名(这个错误很奇怪,这东西按说都是自动生成的。。。。。。) 今天还学习了一个,使用LVM管理,很方便的扩展一个目录,今天是扩展的根目录,感谢bbq同学O(∩_∩)O哈哈~ 逻辑卷真方便,这里顺便记录一下: 假设你新加的硬盘是sdf 在vm上新建一个盘,使用fdisk -l找出这个盘,比如我这里是 /dev/sdf(比如,大小30g),然后创建pv: pvcreate /dev/sdf … 继续阅读
不同版本客户端连接服务器的问题
可以看到,从10.2开始,还支持连接oracle 817的数据库,但是已经不支持连接到oracle 816的数据库了,查了下文档,内容如下: 今天连接时遇到 TNS-12560: TNS:protocol adapter error,顺便说一下,这个问题比较常见,常见原因有几种: 1,防火墙设置问题,关闭防火墙(service iptables stop) 2,修改了/etc/hosts的ip地址后,需要重启listener 3,listener.log过大(新版本中这个问题好多了) 4,10g中有一个注明的bug,listener会启动一个子监听造成listener hang 5,tnsnames.ora中配置的ip地址等不对 。。。。。。。。。。。。。。。
解除部分exadata上的“强安全策略”
在安装Exadata时,执行onecommand的后面几步ResecureMachine相关的内容后,安全性会得到增强,我们戏称为“强安全步骤”,不同的onecommand版本的step稍有差别,但是可以从deploy脚步的执行步骤的名称中识别出来,例如onecommand p14210449 (对应image 11.2.3.1.1)的如下(其中setp24~setp26): 在onecommand p16383189(对应 image 11.2.3.2.0,image 11.2.3.2.1的步骤跟这个一样的)中是如下步骤,其中step25~step28是“强安全”: 在执行了上述步骤后,一些客户使用一段时间后对于其中的“强安全”感觉很不方便,希望我们修改其中的部分限制,比如90天必须修改口令等等,下面就类似问题给出解决方案。 本文的方法来自于内部exadata的一个文档,且在多个客户都已经实施过了: 1, 解除口令限制和复杂度: 使用root用户修改/etc/pam.d/system-auth,这是一个password的的入口文件(老一点的linux系统一般用/etc/pam.d/passwd),将其中的”min=disabled,disabled,16,12,8″ ,使用这个规则建立的口令很难被破解,修改为”min=1,1,1,1,1″,大大降低了口令的复杂程度(容易被破解,例如“oracle”,或者exadata上的缺省的welcome等等,都是常用词汇。。。) 然后重置root口令即可(exadata上大部分缺省口令是welcome) 2, 解除90修改口令的限制: 执行下面的命令修改用户口令修改策略: 当然,你需要在所有节点依次执行,exadata上的dcli可以很方便的完成: 然后使用上述用户登录的缺省口令就可以登录了(缺省口令都是welcome) 3, 重新配置各个节点的SSH信任关系(因为执行了ResecureMachine以后,SSH信任关系操作就不可以了): 也可以参考我之前的一篇blog(其中的脚本在11.2.0.1的除windows平台外的任何一个安装包中都可以找到): 使用Oracle安装包的ssh配置机器互信 注意: 如果有问题可以参考bug 12389246 4, 解除SSH连接超时的限制: 顺便多说一下,由于某些原因用户可能会出现密码尝试次数过多账号被锁定的问题,具体的设置在/etc/pam.d/system-auth文件,例如,exadata上的: 清除某个用户的登陆失败次数,让改用户可以重新登陆的命令: pam_tally2 -r -u username 例如, 清除 oracle用户的失败登录次数:pam_tally2 -r … 继续阅读
一个老系统的老问题:ORA-01031: insufficient privileges
今天打算整合一下所有的vm(除了12c),把他们都放到一个vm中,结果发现遇到郁闷问题: –第一反应是口令文件有问题,于是检查,发现果然缺少口令文件: –还是不行,是否因为大小写的关系(因为之前的那个vm已经迁移到活动硬盘了,懒得打开查看SID了),因此修改为大写试试看: –使用密码文件的认证方式测试本地登录是可以的: –怀疑是sqlnet.ora的设置有问题,结果居然没有,这个vm是7,8年前的,不知道什么原因,居然没有这个文件,创建一个吧: –这里居然冒出来ORACLE_HOME设置不对,郁闷了。。。。。。 –重新执行环境设置脚本: –这是,怀疑是oracle用户本身的问题,于是检查oracle用户的属组: –经过小伙伴的提醒,发现这个VM居然使用了破烂SELinux,sigh。。。。。 –SELinux系统比起通常的Linux系统来,安全性能要高的多,它通过对于用户,进程权限的最小化,即使受到攻击,进程或者用户权限被夺去,也不会对整个系统造成重大影响。 –但是往往有些应用的使用也会受到限制,比如有时候tar一个大目录的时候可能会失败,有时候ftp东西的时候有问题,等等 –其实一般ORACLE的文档上也是明确说明要关闭SELinux的,例如: –5.11 Error While Loading Shared Library When SELinux is Enabled on Red Hat Enterprise Linux 5 –SQL*Plus and Oracle Call Interface (OCI) program calls fail when selinux is … 继续阅读
结合event 10046跟踪ASM的所有操作
关于ASM的限制,请参见 ASM – Scalability and Limits (Doc ID 370921.1) 有朋友说12.1上已经可以创建2T的文件,事实上,在很多时候,我们还是不建议这样使用,bug依然存在,维护还是问题。。。。。 例如: Bug 14181123 ROOT.SH HANGS ON OHASD.BIN REBOOT Bug 16565325 ASM FILE CREATION PERFORMANCE REGRESSION 当你碰到ASM的一些报错或者bug,怎么去检查问题呢? 前面已经说过使用DBI_TRACE去trace asm的过程,这里再说下,结合event 10046去诊断问题。 比如一个场景,客户反映在ASM上创建表空间很慢,或者cp很慢,或者其他。。。。。很慢的问题,那么首先我们先设置 DBI_TRACE=1 来跟踪ASM的内部操作: 这里你可以看到ASM的每一个操作的详细的执行情况 然后,我们设置event 10046来跟踪该进程的执行情况 例如,我们将 +ASMDATA/RACDB/datafile/USERS.259.814462681 复制到/home/grid/asmfile 现在我们使用tkprof进行格式化: 可以看到,trace中显示了每一步我所执行的操作映射成ASM内部操作的过程和执行计划,时间等等详细信息,根据这个,不难找出瓶颈或者问题了吧,O(∩_∩)O哈哈~
模拟ORA-600 [4000] 并修复
我没有测试,但是我感觉,从一个好的库上直接dd一个file 1 block 520,可能也可以的,O(∩_∩)O哈哈~ 我这里使用了bbed去修改文件,生产库请勿效仿,后果自负 :) 模拟ORA-600 [4000]: 查看alert: 查看trace: trace中其他有用的信息如下: 摘要上面的信息,有用的如下: 下面清除锁标识: 成功打开数据库:
关于Oracle的版本号
昨天Roger问小朋友们,谁能说清楚Oracle的版本号,我想起来了,不同版本稍有区别,在Oracle官方文档有详细的解释。 在Oracle 7版本,Oracle版本号包含4部分内容,这个风格(或者说“定义”)一直沿用到Oracle 8i(即,Oracle 8.1.5),这四部分具体解释如下: 第一部分是“Version Number",也就是产品的大版本号,表示这是一个“新的软件”,较之以前的版本有着重大的功能的变革。 第二部分是“Maintenance Release Number”,即 维护版本,也就是大版本下的普通的维护号,旨在标识不同维护版本之间修复了一些重要bug等等。Oracle 7,8.9这三个版本的维护号都是从0开始的,从Oracle 10g开始,Oracle不再有类似Oracle 10.0这样的正式发布版本(internal测试版还有这样的版本),而是10.1,10.2。。。。。 第三部分是“Patch Release Number”,顾名思义,也就是补丁发布号。 Oracle的产品研发是有计划展开的,因此,通常来说当前一个维护版本中出现一些重大问题,等不到下一个维护版号release, 那么就推出了统一维护版本下的更高patch号的版本,用以修复之前的重大bug。这个版本号在Oracle 7和8中式最常见的。 从Oracle 8i(Oracle 8.1.5)开始,Oracle将第三个数字的含义修改为“Maintenance Release Number”, 也就是说这个数字表示一个维护级别,比如,Oracle 8.1.5, 8.1.6, 8.1.7各自增加了一些新的new feature, 这也突出了那个时候Oracle定位产品和方向的一个研发的特点。。。 第四部分是“Port-Specific Patch Release Number”,即特定补丁号的版本,其含义是针对某些特定重要问题或者bug的修复,也就是在“Patch Release … 继续阅读
使用exp+pipe将导出文件生成压缩包(文本数据的话,空间通常节省10倍左右)
有时候我们的存储空间不够,一个exp会产生一个很大的dmp文件,因此,我们就像exp的时候直接生成一个压缩包,那么管道就可以派上用场了,O(∩_∩)O哈哈~ 10g以后,可以使用expdp compression,例如: [oracle@lunar ~]$ expdp lunar/lunar file=expdp_ff.dmp compression=all tables=ff Export: Release 11.2.0.3.0 – Production on Sun Oct 27 01:48:15 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g … 继续阅读
使用exp+pipe的方式直接将数据库导出到目标数据库(数据不落地成dmp)
最早在oracle 8,Oracle 8i,Oracle 9i的时候,没有datapump,因此逻辑数据库迁移的工作多依赖于exp/imp, 然而,当磁盘空间有限制,且停机时间短的时候,通常我们需要一种方式是数据不落地。 那时候,我们常用方式就是借助于管道,也就是exp将数据库导出到pipe,目标段通过管道直接将数据imp到目标数据库,这样数据时不落地的,省去了生成dmp文件的时间和空间,O(∩_∩)O哈哈~ 当然,类似应用还有很多,比如可以使用管道直接讲exp的数据存储到tape,或者直接exp的数据导出成压缩格式,后面会一次测试。 这里先测试,exp to pipe and imp from pipe: [oracle@lunar exp-pipe]$ mknod /tmp/exp_pipe p [oracle@lunar exp-pipe]$ [oracle@lunar exp-pipe]$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:43:8D:35 inet addr:192.168.56.66 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe43:8d35/64 Scope:Link UP BROADCAST RUNNING … 继续阅读