RAC添加节点后dataguard发生ORA-1264错误
这个其实是metalink上一个problem的变种。[@more@] 最近一台rac的主机硬件坏了,修好后用添加节点的方式重新加入rac,新添加的实例自然有一个undotbs和online redo。添加完毕我switch了下log,看到2个dataguard的节点都出现了新的undotbs的数据文件。以为ok了。 过了一会儿dataguard的监控报警了,一看alert发现了下面的错误:No OMF destination specified, unable to create logs Errors with log /db2/arch/sdavtpst/2_221_686846102.dbfMRP0: Background Media Recovery terminated with error 1264Errors in file /usr/u01/app
rac的vip和监听莫名故障
要说还是维护人员随意改动环境造成的,对于生产环境尤其是rac环境最好能不动就不动。。。[@more@]昨天数据管理中心来求救,说2个oracle 11g的集群昨天开始同时出现vip每隔几分钟就胡乱漂移到别的节点上,监听也出现不时的死掉再自己起来的情况,听到这些基本确认应该不是集群自身的问题,也不会这么巧同时出问题。而且出问题的又是监听和vip。问题一定在网络设置部分,查看了hosts和网络连接超时,都是ok的。问了下说这几天没对机器做任何配置变更。这下郁闷了,crs的log里都是CheckResource error for ora.dc-cluster-01.vip error code
11g 创建data guard遇到ORA-16191
老问题了:ORA-16191+Error 1017 [@more@]Fri Apr 17 11:07:31 2009LNS1 started with pid=32, OS id=15442 Thread 1 advanced to log sequence 22 (LGWR switch) Current log# 1 seq# 22 mem# 0: /db1/oradata/gtavatar/redo01.rdo Current log# 1 seq# 22 mem# 1: /db2/oradata/gtavatar/redo01a.rdo******************************************************************LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2******************************************************************Error 1017 received
运行runInstaller没有界面弹出
今天让别人装个11g,结果告诉我运行了runInstaller没有安装界面弹出来。。。。[@more@]这倒是没看到过,自己试了把也是这个情况。vnc能起来没道理oui起不来啊。。。使用xstart发现,no space on device,一看/目录满了。。。。然后查了下是/tmp满了,ll -a发现一个隐藏的oracle安装文件,大小正好,删之。重启runInstaller成功,后来一问是第一次传错目录传到/tmp了。然后中断之后就没注意,这个问题挺有意思。。。。。
下载个东西还要权限
。。。。。。不能下就不要放出来嘛[@more@]自己也不好,懒得申请斑竹,索性sg的东西一般都不如文档,还是无聊看看文档好了http://www.itpub.net/viewthread.php?tid=1150180&extra=&page=1http://www.itpub.net/thread-1150165-1-1.htmlhttp://www.itpub.net/viewthread.php?tid=1076860&extra=&page=3http://www.itpub.net/thread-1076855-1-4.html
Oracle升级导致ocr文件损坏一例
所以说对于生产库,备份重要啊。。。[@more@]备用的集群rac发生意外宕机,一边查硬件原因一边查oracle这边的问题。发现数据库是10.2.0.3但是crs是10.2.0.1,虽然不能断定是这个原因,但是排除法嘛,先试试看咯,结果试了一身冷汗。。。过程一路顺利,启动crs,所有节点服务也正常起来了,但是迟迟看不到数据库起来,crs_stat检查发现所有的实例和service都没起来。手工是用sqlplus 启动正常,数据库也可以打开。但是使用srvctl启动就报下面的错误:[oracle@bj15-75 ~]$ srvctl start database -d membjPRKP-1001 : Error starting instance
重要的Myisam Mysql系统至少需要几个库?
对于比较重要的系统,自然是多多益善,但是总有个最小值咯。好比有人问oracle rac几个节点会比较好一样。[@more@]答案是3个:主库,读库,备库。因为Myisam锁的管理原理,导致查询会阻塞更新,mysqlhotcopy会锁住表防止更新和查询。大大影响了系统的可用性。这样一来,对于做读写分离的系统,除了写和读库以外,必然需要一个库来做备份和报表查询。因为报表查询一般需要很长时间,不可能允许读库被阻塞很久,而随着数据库容量增大,备份的时间也会变得很长。因此备库的作用就是缓解这2部分,备库的另外一个作用就是做复制,提到复制大家知
使用mysqlhotcopy
首先系统的perl包和DBD/DBI一定要全,并且版本要对应好,不然调用mysqlhotcopy很容易出错。特别有名的错误就是:Can't locate DBI.pm in @INC另外要注意,OS和Mysql的位数要一致,否则Mysqlhotcopy调用perl时会发生错误。[@more@]以mysql 4.0.27为例,DBI我们选用DBI-1.53,DBD则为DBD-mysql-3.0008将2个包上传到服务器,用yum直接安装也可以,但是有的情况下版本对应会出现错误导致hotcopy不可用。tar zxvf DBI.tar.gzcd DBI-1.53perl Makefile.PLmakemake testmake installtar zxvf DBD-mysql-3.0008.tar.gzcd DBD-mysql-3.0008perl Mak
用shell实现Mysql延时复制
这个脚本初步实现了mysql的延时复制,以后还会继续加强[@more@]lag_minute=30sleep_time=5binlogdir=/usr/local/mysql/datacd $binlogdirlag_time=`expr $lag_minute * 60`while [ 0 -eq 0 ]dorelay_pos_str=$(echo `mysql -e "show slave statusG"|grep -i Relay_Log_Pos`)relay_pos_val=`expr substr "$relay_pos_str" 16 30`echo $relay_pos_val>relay_pos_val.hisrelay_file_str=$(echo `mysql -e "show slave statusG"|grep -i Relay_Log_File`)relay_file_val=`expr substr "$relay_file_str
Mysql 监控系统
oracle的监控,市面上非常的多,最著名的应该是quest的产品spotlight。基本上能够做到的全做到了。但是针对Mysql的监控产品还是非常少的,quest的spotlight on mysql对5以下的版本和MYISAM的引擎监控能力就非常有限,另外一个比较好的产品是oracle grid control上的一个mysql 控件,是由民间开发的,功能很强,也通过了oracle的认证,但麻烦的是,对grid control要求10.2.0.3,对mysql要求4.0.27以上,那么对于一些比较老的版本,或者是部署grid agent有问题的环境就比较吃力了。大部分DBA想的办法都是写脚本,这里就公布一个脚本,基本上
--skip-slave-start的重要性
一次问题解决过程[@more@] 原来做复制的主机因为数据丢失需要重新创建复制环境,机器上已经有了主库数天前的备份,于是删除数据目录直接把备份放上去,结果发现复制没有抱错,show slave status一切正常,select count(*)某张大表也是不断增加,但是查询该表的max id确迟迟不动。 于是把这条最大的数据拿出来看,发现数据是今天的。而slave的同步信息显示才读取到2天前的binlog而已。 这台机器既做slave又做master,设置了log-binlog-slave-updates 环境比较复杂,一开始猜想是不是环境设置问题造成的,但是检查回
Slave: received 0 length packet from server, apparent master shutdown
又是server-id这个参数的原因[@more@]过完节第一天检查数据库,发现一台mysql的slave报出大量的Slave: received 0 length packet from server, apparent master shutdown.日志文件已经2g了.....但是数据倒是还在走,尝试stop slave再start slave,报错 :Error reading packet from server: log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master (server_errno=1236)再检查下mt.cnf果然还是server-id和别的slave的重复造成的,重新设置下第一个错误就ok了,第二个错误么可能就是使用了LOAD DATA或者mysqlim
安装Oracle 11g rac for linux as 4 update 4
基本上和10g没什么大区别,只有一些小地方不同而已。oracle版本:11.1.0.6 for Linux x86_64[@more@]rpm包的要求,hangcheck的配置,oracle用户身份对等性连接,hosts配置和裸设备配置全部与10g相同,这里就不复述了。主要区别一个是voting disk和ocr的大小,11g中要求均大于256m,如果不到大小则安装cluster时会提示。另外在安装cluster时,第一个节点执行root.sh没有问题,而第二个节点报出:Adding daemons to inittabWaiting for the Oracle CRSD and EVMD to startWaiting for the Oracle CRSD and EVMD to startWaiting for the Orac
创建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