分类目录归档:Database

针对最近黑客攻击数据库的解决方案和预防建议

最近有部分黑客采用各种手段对数据库进行sql注入或者直接加密等损坏方式攻击客户的数据库。 需要说明的是这里并非黑客用多么高深的手段或者技能攻破Oracle数据库或者由于Oracle Bug引起的,Oracle被无辜躺枪 相反,这类攻击完全是使用盗版客户端工具或者客户网络(或者主机)安全有漏洞,入侵主机或者直接使用盗版客户端(部分网上下载的非官方工具已经是被黑客篡改过的)对数据库登录时进行SQL注入的方法。 . 常见的攻击手法和案例: . 攻击手法 1 :黑客攻入客户网络,进入客户主机,在操作系统上直接对数据库文件进行“加密” 现象: . 攻击手法 2 :也有可能是使用非官方的网上下载的被污染的工具连接数据库,然后“被执行”了类似下面的在数据库中执行恶意代码而注入损坏数据sql语句 (例如,注入一些存储过程,trigger或者其他DDL,DML等等) 现象: 在数据库的日志中,可能获得的信息如下: ORA-00604: error occurred at recursive SQL level 1 ORA-20315: 你的数据库已被SQL RUSH Team锁死 发送5个比特币到这个地址 166xk1FXMB2g8JxBVF5T4Aw1Z5aZ6vSE (大小写一致) 之后把你的Oracle SID邮寄地址 sqlrush@mail.com 我们将让你知道如何解锁你的数据库 . Hi buddy, … 继续阅读

发表在 Database | 标签为 , , | 留下评论

Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2

在配置ADG或者使用oracle 的集群管理应用的HA时(比如OGG),我们可能希望使用不同的网络,以避免ADG传输日志等对主生产网络的造成影响。 从11.2开始,我们可以使用crs管理多个网络资源(缺省只有network1),但是SCAN只能在多个网络中的一个上活动(缺省是network1,后续可以指定到不同网络上)。 然后,我们通常会配置专门为ADG传输日志的network2网络,但是在配置连接串时,只能使用vip(因为SCAN通常给主生产上的network1使用)。 . 从12.1开始,我们可以配置多个网络上的多个SCAN,比如我们配置ADG时,在network2上配置SCAN2。 具体配置如下: –检查网卡接口对应的IP地址: –添加新的public网络 –检查网络定义,缺省只有一个网络定义:network1 –添加新的网络集群资源(a new network cluster resource) 这时集群的网络资源中已经配置了两个网络(包括新增加的网络),如果使用“crsctl status res -t”查看,可以看到: –添加vip –启动vip,查看vip资源 –检查新创建的vip是否运行了: –添加网络2上的监听: 在network2上配置SCAN: –启动network2上的监听 –在network2上启动SCAN –在network2上添加SCAN LISTENER –检查监听状态 配置ORACLE数据库实例支持多个网络: 配置客户端连接串 —检查数据库是否可以登录: 至此已经全部完成。 Oracle 12.1 RAC 系列: Oracle 12.1 RAC … 继续阅读

发表在 Installation and Deinstall, Linux, network, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库

11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 安装Oracle 11.2.0.4数据库软件,然后执行root.sh,这个没有特别的东西,略。 之后,我们需要修改ORACLE RDBMS的oracle二进制文件的权限,让oracle 数据库进程可以获取ASM磁盘组。 注意,这里的/u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle就是安装ORACLE RDBMS的ORACLE_HOME。 然后,将数据库添加到CRS中,启动数据库: 检查数据库在ocr中的配置: 启动数据库: 检查crs的状态: 至此,整个使用新主机识别老存储的RAC(主要是识别ASM)就完成了。如果是文件系统的环境,比这个简单很多,ASM的全部可以省略了。 . Oracle 12.1 RAC 系列: Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2

发表在 ASM, Installation and Deinstall, Linux, Oracle 11.1 & Oracle11.2, RAC | 标签为 , , | 留下评论

11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库

11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 假设原来的主机已经完全不能启动了(比如硬件故障等),只能在存储上的ASM中查找数据库使用的参数文件: 这里看到,数据库使用的参数文件是spfilelunar.ora,它是spfile.272.892409049的别名文件。 我们在ASM中查看一下: 检查数据库的spfile的内容: 这里确定的,该文件+datadg2/lunar/spfilelunar.ora(也就是+DATADG2/LUNAR/PARAMETERFILE/spfile.272.892409049)就是我们需要使用的数据库参数文件。

发表在 ASM, Installation and Deinstall, Oracle 11.1 & Oracle11.2, RAC | 标签为 , , | 留下评论

11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘

在有些场景下,RAC环境中如果主机出现问题,比如硬件故障等,不能启动,我们需要尽快存储上的启动数据库,恢复业务,那么就需要迁移以前的RAC环境到新的主机环境下,我测试了11.2和12.1的RAC,恢复过程还是很快的,基本上就是安装软件的过程,如果真实场景恢复业务,有两种方法: 1,按照我这里的方法重新安装主机,恢复RAC和数据库 2,如果之前有可用的操作系统的备份(比如NBU备份了OS),那么直接使用NBU还原即可 . 我这里测试的是方法1,重新安装11204的GI(Grid Infrastructure)和ORACLE RDBMS软件,然后识别老存储。 测试环境:单节点RAC, 操作系统是OEL Linux 6.6, 数据库版本是11.2.0.4 11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库 . 首先,因为存储使用的是11204的ASM,测试过程只安装11204的GI(Grid Infrastructure)软件,不用OUI配置GI。 执行root.sh: 相应的checkpoint文件内容: 这里看到“DESC=”ROOTCRS_NODECONFIG” STATE=”SUCCESS””表示GI已经配置完成。 图形界面点击ok,继续执行其余配置,配置完成后,再次检查checkpoint文件: 这里看到,checkpoint文件的日期没有变化,说明checkpoint文件是执行root.sh的时候才有用的,也就是这个过程是11.2中为了方便客户,增加了root.sh的失败后继续配置二设计的,非常体贴的功能。在12.2中,该功能更加方便,他将会只管的告诉你当前配置的检查点情况,如果有些步骤失败后,oracle会自动清除老的配置,以便可以失败安装后不用重装,而是纠正错误后继续配置,类似“断点续传”那种意思。 . 比如,下面是12.2beta上安装RAC时执行root.sh的过程: 可以看到,这个过程比12.2以前的RAC执行root.sh的提示更加清晰了。 好吧,回到我们的环境中,继续检查老的asm磁盘组 将上述磁盘组添加到ASM启动磁盘组的列表中: 对新添加的磁盘组执行mount和dismount后,这些磁盘组就会自动添加到ocr中: … 继续阅读

发表在 Installation and Deinstall, Linux, Oracle 11.1 & Oracle11.2, RAC | 标签为 , , | 留下评论

2016年1月PSU列表

  从2016年1月的PSU开始,PSU的命名格式改为后缀带有PSU更新日期的格式,比以前的PSU后面带一个序列号,例如PSU5, PSU6这样的可读性要好很多。 PSU, Bundle Patches 12.1.0.2  —-  JAN2016  Description  PSU     (  Patch ID  )   GI PSU    (Windows 32bit & 64bit) (  Patch ID  )    Bundle Patch Jan-16  21948354 (12.1.0.2.160119)  22191349 (12.1.0.2.160119)  22310559 (12.1.0.2.160119)  OCT2015  21359755 (12.1.0.2.5)  21523234 (12.1.0.2.5)  21821214 (12.1.0.2.10)  JUL2015  20831110 (12.1.0.2.4)  20996835 (12.1.0.2.4)  21126814 (12.1.0.2.7) … 继续阅读

发表在 Installation and Deinstall, SAP | 标签为 , , | 留下评论

单实例数据库转换为RAC数据库–使用rconfig转换

测试目的: 单实例数据库转换为RAC数据库 测试环境:Oracle 11.2.0.3 测试方法:使用rconfig的方式 . $su – oracle cp $ORACLE_HOME/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml lunar.xml 转换过程超级简单,如果你观察操作过程的rconfig日志会发现,这个方法的本质是: 1,后台自动配置RAC的CRS配置信息(CRS的,spfile的,口令文件等等) 2,自动调用rman进行backup of copy类型的数据库备份和恢复 3,自动添加RAC中第二个节点的thread 2的redo logfile group . 具体操作如下: 执行期间可以观察日志,看看rconfig怎么完成转换的,我个人觉得这个很有意思。 日志位置:$ORACLE_BASE/cfgtoollogs/rconfig_时间戳。 . 检查转换后的CRS状态: 常见问题1: 报错信息:The cluster is not configured or is not running on node: RAC1 … 继续阅读

发表在 Database, Installation and Deinstall, RAC | 标签为 , | 留下评论

单实例数据库转换为RAC数据库–手工转换

测试目的: 单实例数据库转换为RAC数据库 测试环境:Oracle 11.2.0.4 测试方法:手工转换 . 首先,安装一套RAC环境,并把单实例数据库通过通过rman还原到这个环境(通常如果是生产环境,我们会搭建从RAC到单实例数据库的ADG,以减少停机时间)。 然后生成一个源库(单实例数据库)spfile: 注意检查tnsnames.ora中用于local_listener参数的两个配置条目是否正确: 修改刚才备份的pfile文件(/home/oracle/lunar/spfile.lunardb.tmp),添加RAC相关配置: 使用这个pfile启动数据库: 添加thread2: 添加实例2的undo表空间: 启用实例2(thread2): [oracle@dm01db01 dbs]$ orapwd file=orapwlunardb1 entries=10 password=oracle [oracle@dm01db01 dbs]$ pwd /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs [oracle@dm01db01 dbs]$ scp orapwlunardb1 dm01db02:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapwlunardb2 orapwlunardb1 100% 2560 2.5KB/s 00:00 [oracle@dm01db01 dbs]$ [/shell] 创建spfile: 使用grid用户查看: 修改initlunardb1.ora … 继续阅读

发表在 Database, RAC | 标签为 | 留下评论

使用ass.awk脚本分析systemstate生成的trace文件(LTOM431版本自带了ass109.awk脚本)

在以前,很多客户和朋友曾经各种寻找ass109.awk脚本,用意分析systemstate生成的trace文件。 因为最初ass109.awk文件是Oracle内部一个老外大牛个人写脚本,还不算是Oracle公司产品化的东西,以为不能提供支持。 在LTOM431版本中,已经自带了ass109.awk脚本: ass.awk的使用方法: 从上面的分析可以看出: 表示当前数据库的blocker是数据库的16号进程(systemstate中的pid 16),他持有了对象4f4e57138的Row Cache锁,而pid 16正在等待:Wait for shrink lock。 而这里清晰的指出,29号进程最后的等待是在4f4e57138对象,目前处于挂起状态,无法执行INSERT操作,阻塞他的正式pid 16 不过LTOM目前已经不再开发了,他的很多功能集成到ASH里面了:

发表在 troubleshoooting | 标签为 , , | 留下评论

11.2和12c RAC的ohasd守护进程在不同Linux版本的演变

前面我们已经讲解过11.2 RAC的启动过程,可以注意到,RAC的根守护进程是/etc/init.d/init.ohasd,那么不同版本的Linux中/etc/init.d/init.ohasd是如何启动的呢? 注意:12.1的非Flex Cluster启动过程跟11.2 RAC一致。但是从12.2beta版 RAC的测试结果来看,从12.2开始OUI安装很可能只有Flex Cluster了,没有了11.2的那种普通RAC了。 . Linux4和Linux5中,在完成核内引导(内核被载入内存并运行,初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序/sbin/init的方式来启动其他用户级的进程或服务。 所以,init始终是第一个进程,其PID始终为1(ps -aux | less),它是系统所有进程的父进程. 我们看一下这三个文件哪里不同: 可以看出,/etc/inittab.no_crs的内容就是在没安装GI以前的/etc/inittab备份文件,而/etc/inittab.crs的内容就是安装GI以后/etc/inittab 备份文件 也就是说,在Linux 5中,安装完RAC(10.2或者11.2)后,该脚本就会增加上面一行启动ohasd守护进程的脚本,如果要在系统启动时启动crs,那么就需要让/etc/inittab中包含下面的一行启动命令: h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 /dev/null 2>&1

发表在 Database, Linux, RAC | 标签为 , , | 留下评论