创建Oracle 11g logical standby
其实过程很简单。。。。做过10g创建logical standby的同志看都不用看了,除了新增加一个ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY功能,它可以保证standby数据库的DB_NAME 和 DBID不变化,从而方便进行rolling upgrade[@more@]首先还是创建物理的standby,然后进行转换,rac physical standby需要关闭除了apply节点以外的节点prdb:ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;lstdb:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;prdb:EXECUTE DBMS_LOGSTDBY.BUILD;ALTER SYSTEM ARCHIVE L
使用oracle 11g rman新特性 duplicate target database for standby from active database 创建物理dataguard并开启Real
11g之前,对于大数据库的dataguard创建,最烦的就是搞备份,因为rman无法远程备份阿,因此要么必须在本地搞个NAS存备份,要么用远程NFS,有时候明明standby端和主库的网络很好但还是要浪费这传输备份的时间,11g开发出了duplicate target database for standby from active database 这个新功能,使得dataguard创建时,如同创建stream时可以利用impdp/expdp的network_link功能一样,不需要创建备份而直接生成dataguard环境。下面就是单机上创建dataguard并且开启11g dataguard另外一大特性:Real-time query的大概流程。Real-time query支
Error in invoking target 'client_sharedlib' of makefile ins_rdbms.mk
公司值班太无聊,找了台机器装11g玩,没想到碰到个低级错误[@more@]安装过程和10g没区别,操作系统是64位的AS4U4,完全安装,运行到relink部分,报错:INFO: The output of this make operation is also available at: '/usr/u01/app/product/10.2.0/db_1/app/product/11g/db_1/install/make.log'INFO: INFO: Start output from spawned process:INFO: ----------------------------------INFO: INFO: /u01/app/product/11g/db_1/bin/genclntshINFO: /INFO: usr/bin/ld: skipping incompatible /u01/app/product/11g/db_1/lib/libxml11.a when se
配置 Oracle 10g 单实例物理dataguard和逻辑standby
rac的结构和单实例结构配置转换方面可能就是逻辑standby在配置时需要注意CLUSTER_DATABASE这个参数,其他都是一样的[@more@][oracle@yl254-20 ~]$ more pr.ora prdb.__db_cache_size=100663296prdb.__java_pool_size=4194304prdb.__large_pool_size=4194304prdb.__shared_pool_size=226492416prdb.__streams_pool_size=0*.audit_file_dest='/u01/app/admin/prdb/adump'*.background_dump_dest='/u01/app/admin/prdb/bdump'*.compatible='10.2.0.3.0'*.control_files='/u02/oradata/prdb/control01.ctl'*.core_dump_dest='/u01/app/admin/p
逻辑 rac standby和物理 rac standby的switchover 和 failover
2种dataguard都很简单,但是物理的更加简单。。基本没啥问题,比较可靠。 除了在切换时需要关闭集群剩下一台以外和单机的没有任何区别。[@more@]物理的switchover:双方都要关闭之剩下一个节点:pr:ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;st:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;pr:SHUTDOWN IMMEDIATE;STARTUP MOUNT;st:ALTER DATABASE OPEN;pr:alter database recover managed standby database disconnect from session;简单吧- -逻辑的standby switchover:还是一样双方集群都要关闭剩一个
配置 Oracle 10g RAC primary + RAC logical standby
接上面的一篇,如果物理的dataguard你还完不成,那么逻辑的就有点玄了,倒不是配置而是在之后的管理上,逻辑的要复杂一些。[@more@]上面的物理standby集群做好以后,只需要转换一下就可以了,rac的logical standby和单实例的转换有一些小区别,转换之前rac physical standby需要关闭除了apply节点以外的节点prdb:ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;lstdb:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;prdb:EXECUTE DBMS_LOGSTDBY.BUILD;ALTER SYSTEM ARCHIVE LOG CURRENT;lstdb:ALTER SYSTEM SET
配置 Oracle 10g RAC primary + RAC physical standby dataguard
MMA的东西,正好手上有机器,以前老偷懒不写过程,现在也要给写出来作手册。。。。[@more@]其实配置过程对老手来说可能就花在备份数据库上了呵呵下面以prdb作为primary,lstdb作为standby,用lstdb做名字是因为接下来一篇还要把physical standby(dataguard)转换成逻辑的standby(logical standby)这里介绍一个快速装dataguard的方法,就是索性在standby端直接dbca安装一个数据库,这样必要的文件夹有了,密码文件也不需要从primary传过来了,监听也有现成的了。新手犯错误的概率会降低很多。prdb端:首先修改设置:ALTER DATABASE FORC
MYSQL 安装维护注意事项
这几天看别人装,总是有问题,看来还是要写个操作手册[@more@]安装时,先要用rpm -aq |grep mysql |xargs rpm -e --allmatch --nodeps删除系统自带的Mysql,然后需要ps-ef |grep mysql看下是不是有正在跑的mysql进程,然后kill了。需要检查下/etc/my.cnf是否已近存在了,如果有那么就删掉,不然最后安装可能会报grant privillege table错误,这个问题在mysql 5上好像没发现,都是mysql 4.0.27报出来的。这次安装还碰到一次邪门的事情,正在装的时候服务器重启了。。。起来发现ssh登录不上了,幸好有rsh。登录上去启动ssh服务发现:@@@@@@@@@@@
Mysql主机断电导致复制出错 server_errno=1236
前2天真是tmd忙啊。。。每天都这么多事情,运维不好玩- -[@more@]机房某台服务器短路,造成整个机柜跳闸。其中数台服务器是mysql的数据库主机,结果重启后,slave的db上都发现复制停止,err里发现下面的信息:[ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)[ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log[Note] Slave I/O thread e
Mysql maatkit 的安装和简介
maatkit 是baron.schwartz 为主导,开源的Mysql工具,提供了很多Mysql官方目前并没有实现的功能.大大方便和加强了Mysql的监控和管理.下面简单介绍下安装和使用.官方网站:http://www.maatkit.org/文档地址:http://maatkit.sourceforge.net/doc/maatkit.htmlgoogle主页和下载: http://code.google.com/p/maatkit/[@more@]安装很简单,比如我下载的maatkit-2725.zip ,释放后整个文件夹传到服务器上,对于软件环境要求,一般就是DBD::mysql和DBI,当然少不了perl.安装只要几个命令:# cd maatkit-2725/# perl Makefile.PL# make# make install就可以
实现Mysql延时复制
Oracle可以通过设置归档的delay来设置DataGuard的Apply延时,达到某些人为错误发生后的容灾。Mysql一直没有这个功能,目前已知的大概也只有http://code.google.com/p/maatkit/上的mk-slave-delay,不过通过一些办法可以山寨延时复制,研究这个功能也是没办法,最近老有手下做错事情,老是用mysqlbinlog挖的累了- -,而某些业务数据库是mysql 4.02的,没有触发器可以保护表。[@more@]首先研究下mysql的复制结构,4.0以上开始,复制分为2个进程,io进程和sql进程。其中io进程连接到master读取binlog,写入relaylog,而sql进程读取relaylog
Mysql故障处理2则
要过年了nnd问题也特别多,今天就碰到2个,一个是mysql复制进程往前走但数据不同步,一个是性能问题导致所有写和读的全部阻塞。[@more@]手下做mysql复制,做好了之后发现read master position在不断移动,但是数据就是不同步。其实稍微理解一点mysql复制中server-id的功能就知道怎么回事了,马上打开my.cnf一看,果然有2个server-id。去掉一个自然就ok了。这个问题判断起来还是要靠经验,不过做事情仔细就不会有这个故障了。。。。晚上回家,在地铁收到值班人员的电话,计费系统出现大量sql堵塞,读的数据库同步缓慢。到家里上vpn分析了监
oracle 10g rac 网络故障处理
oracle rac对网络要求是非常高的,一些看似很小的网络故障往往导致整个集群的无法启动. 很多故障的报错不能简单通过metalink的处理方法,有时候可能适得其反,应该先查看系统最近是否出现变动,测试共享存储,无密码登陆,权限,hostname设置等。[@more@]早上刚刚处理完因为存储故障导致不断重启的rac,把应用切换到异地的容灾集群,下午居然数据管理中心的8节点集群又挂了.不过不是不断重启,而是压根起不来.....没办法帮忙把,早让他们找DBA的....现在也只能帮忙到底了.上去一检查,之前故障发生后,已经有人重启了所有机器,看了重启前的db和os
RAC 主机无故全部重启
高可用也包括产品的稳定性评估哦,特别是共享存储和心跳交换机的稳定。[@more@]AS4 5个节点,10.2.0.3的库,核心应用,最近2个月经常发生主机集体重启,而且无论是os,db,crs都没有留下任何日志,只有重启后的日志。metalink上也没有类似的案例,转向怀疑软硬件环境,但是其他几套相同软件环境的RAC都运行了1年多没发生过类似问题。经过检查共享存储确认磁盘阵列驱动器有损坏,但是按道理双控制器应该不会导致重启啊。。。看来HP的EVA还是不太可靠。据此推断心跳交换机故障可能也会导致类似故障。放在这里希望大家少走弯路,修改disk time
local stream与logical standby不能共存导致ORA-16255
本来还想在新的计费上一起玩玩的。。。[@more@]做实验在2台机器上配置了2个local stream和一个logical standby。先配置的logical standby,启用了real-time apply后开始配置其它2个流复制环境,等配置好流发现logical standby停止同步了,查询logical standby的logminer信息:select sid,type,status_code,status from v$logstdby_process;发现什么东西都没有。。。察看alter或者在logical standby上使用发现:ORA-16255: Log Auto Delete conflicts with another LogMiner sessionORA-06512: at "SYS.DBMS_INTERNAL_LOGSTDBY",
创建Oracle 10gR2的local stream和downstream real-time apply 流复制
简单的流复制实验,bug还不是一般的多,10.2.0.1到10.2.0.4都试过了。一共碰上7个bug,看来只能在小应用上玩玩了,patch需要尽量打全,有的人可能找不到opatch在哪里,其实现在opatch不需要下载,都是自带的,就在$ORACLE_HOME下的OPatch[@more@]使用local捕捉的话,虽然可以减少网络流量,但是增加了解析的消耗,加大了主库负担,同时在配置失败或者出问题时,维护比较麻烦,所以综合来说(不考虑bug因素)还是使用downstream要好。首先2个库必须配置tnsnames,保证互相可以连接,主库必须启用归档,辅库如果使用arch传输的非real-time app
Oracle 10g RAC advanced replication同步问题解决
架构复杂了问题就是多。。。[@more@]早上一看,北京和上海的数据不同步了,查询DBA_REPCATLOG没有问题,把注意转移到JOB上,但是DBA_JOBS里的job没有broken的,但是发现一个push的job时间是昨天。。。。那就一定是被阻塞了。查询repadmin的session信息发现等待在enq PS - contention上,就是parallel slave sync。目前原因还不清楚,基本不是bug就是10g定时收集表信息的job造成的,用exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');停掉任务,查到被卡住的进程的pid,kill掉。然后手工运行下push的job,解决。
装oracle 10g的RAC问题真多。。。。。
装oracle 10g的RAC问题真多[@more@]Linux AS4U4 X86_64,ORACLE 10.2.0.3一开始SA为了偷懒装的AS5,单实例没问题,可是要用ASM,去oracle网站一找,内核太高级。。。。没有对应的ASMLIB,其实也可以装就是不要asmlib了,但是欧想稳定第一,忽悠SA重装了AS4U4。初始化裸设备的时候执行裸设备绑定重启完服务发现绑不上,重启os搞定,ASMlib安装时因为内存有64G必须打ELlargesmp,不然asm configure失败。。。之后安装软件时第三个节点遇到:Error while copying directory /u01/app/oracle/product/crs with exclude file list 'null' t
安装oracle 10g 88%卡住的问题
别人遇到,这个问题也是/etc/hosts的问题[@more@]具体症状为安装软件直到操作系统预检查完毕,开始在右上角检测各个组件时,卡在百分之88的isqlplus的地方,猜想是不是因为isqlplus需要检测dns,所以看了下主机的/etc/hosts发现ping hostname 不通,这下文件解决就简单了吧hostname加入到/etc/hosts中,解决
Selecting a RAID level and tuning performance
Disk arrays are used to improve performance and reliability. The amount of improvement depends on the application programs that you run on the server and the RAID levels that you assign to the logical drive.Each RAID level provides different levels of fault-tolerance (data redundancy), utilization of physical drive capacity, and read and write performance. In addition, the RAID levels differ in regard to the minimum and maximum number of physical drives that are supported.When selecting a RAID l