Author: mac
-
《让子弹飞》:三个老男人一台戏
晚上陪女友去看了《子弹》,算得上是近几年来最值得一看的国产大片。三个老男人一台戏,这部戏里三个男人的角色还都算比较本色。值得一提的还是葛优的“买官”县长,起到了很好地润滑整部剧的效果。建议还没进电影院的朋友有空去看一看,笑一笑。
-
SQL脚本:监控当前重做日志文件使用情况
这个脚本可以用来分析当前重做日志文件(redo logfile)已被用到了什么位置(position)、还剩余多少空间和已使用的百分比: set linesize 200 pagesize 1400; select le.leseq “Current log sequence No”, 100 * cp.cpodr_bno / le.lesiz “Percent Full”, (cpodr_bno – 1) * 512 “bytes used exclude header”, le.lesiz * 512 – cpodr_bno * 512 “Left space”, le.lesiz *512 “logfile size” from x$kcccp cp, x$kccle le where LE.leseq = CP.cpodr_seq and bitand(le.leflg, 24) =…
-
Does Oracle Goldengate support Parallel DML?
Golengate的基本工作原理是通过挖掘重做日志以获取数据库中的数据变化;而如果我们在数据库中使用并行DML去插入数据的话会因为直接路径插入而产生少量的redo重做日志。那么OGG的日志挖掘是否能正确捕获这些并行DML所产生的数据变化呢?接着我们来实际地测试一下: SQL> select le.leseq “Current log sequence No”, 2 100 * cp.cpodr_bno / le.lesiz “Percent Full”, 3 (cpodr_bno – 1) * 512 “Current Offset”, 4 le.lesiz * 512 – cpodr_bno * 512 “Left space” 5 from x$kcccp cp, x$kccle le 6 where LE.leseq = CP.cpodr_seq 7 and bitand(le.leflg, 24) = 8; Current log sequence No…
-
Error accessing PRODUCT_USER_PROFILE?
有客户发邮件来表示新建user后,尝试使用该user登录时sqlplus会出现如下警告: Error accessing PRODUCT_USER_PROFILE Warning: Product user profile information not loaded! You may need to run PUPBLD.SQL as SYSTEM PRODUCT_USER_PROFILE是Oracle 10g中一个用来显示记录那些不希望用户可以在sqlplus执行命令的权限表,该表一般会在数据库创建时在system模式下被建立;显然用户的这个数据库可能是以手工创建数据库的方式create出来的,而在最后执行脚本的阶段没有执行建立该表的pupbld.sql脚本,该脚本一般位于$ORACLE_HOME/sqlplus/admin目录下: [maclean@rh2 admin]$ pwd /s01/10gdb/sqlplus/admin [maclean@rh2 admin]$ cat pupbld.sql — — Copyright (c) Oracle Corporation 1988, 2003. All Rights Reserved. — — NAME — pupbld.sql — — DESCRIPTION — Script to install the SQL*Plus PRODUCT_USER_PROFILE…
-
Oracle Solaris 11 Express发布了
甲骨文Solaris 11 Express操作系统在Solaris 10的基础上进一步加强了各种功能,Solaris 11 Express将为关键的企业系统环境提供最佳的UNIX体验(与之相对应的是Oracle Enterprise Linux,将提供最优的Linux体验)。举例而言新系统中基于网络的包管理工具(package management tools)可以大大减少系统停机时间,并提供完整安全的系统升级方案,同时其内建的网络虚拟化及委托管理将为应用程序的整合提供从所未有的灵活性,Solaris还将持续提供业界最高级别的系统安全。Oracle公司宣称Solaris 11 Express将是Solaris平台起劲为止最激动人心的版本。 Oracle Solaris 11 Express已经在多种多样或由Oracle或由其他第三方硬件供应商的提供的Sparce架构的或基于X86的硬件上通过了全面测试。此外支持Oracle独有的Exadata Database Machine数据库服务器和Exalogic云的Solaris 11 Express也即将到来。 现在我们可以从Oracle OTN下载到Solaris 11 Express的安装介质,Oracle自家的UNIX操作系统会是什么样子呢?
-
Goldengate can’t extract data from compressed table
OGG目前不支持对10g以后压缩表(compressed table)的extract,若挖掘到压缩表相关的DML纪录则extract会abend: SQL> alter table sales compress 2; Table altered. SQL> update sales set AMOUNT_SOLD= AMOUNT_SOLD +1 where rownum commit; Commit complete. extract report: *********************************************************************** ** Run Time Messages ** *********************************************************************** 2010-12-12 23:08:44 INFO OGG-01517 Position of first record processed Sequence 51, RBA 12853264, SCN 0.53443895, 2010-12-12 下午11:08:42. TABLE resolved (entry CLINIC.SALES): Table CLINIC.SALES; Source…
-
Goldengate实现在线数据迁移
Goldengate的一大卖点就是可以实现在线的数据迁移,这意味着在整个过程中我们无需关闭数据库,甚至于无需停止应用。在<How to create a GoldenGate uni-directional target database in a production database zero downtime>中,大致介绍了实现零下线时间数据迁移所涉及的步骤,包括: 在source与target主机上完成OGG的初始化配置 创建extract及exttrail 创建pump 启动本地extract和pump 创建带有HANDLECOLLISIONS参数的replicat,但不启动它 完成数据的initial load即数据初始化 启动replicat 当replicat追上extract后取消replicat的HANDLECOLLISIONS参数 接下来我们通过以下实例来实践OGG的在线数据迁移: SQL> conn clinic/clinic Connected. /* 以clinic为应用用户 */ SQL> create table tv (t1 int primary key,t2 int,t3 varchar2(30)); Table created. /* 为别在source和target创建该测试用表,在这里我们先不考虑同步DDL*/ SQL> create sequence seqt1 start with 1 increment by 1;…
-
配置GoldenGate同步DDL语句(3)
在配置GoldenGate同步DDL语句(2)中我们针对多种DDL语句在GoldenGate环境中的同步进行了测试,但在默认情况下replicat在复制DDL语句失败时不会在replicat report或者ggserr.log等日志文件中产生该DDL失败的具体信息,这就会导致我们在发现DDL同步有error的情况下无法了解失败的原因。之后又去翻官方的文档,在中找到了DDLOPTIONS参数: Use the DDLOPTIONS parameter to configure aspects of DDL processing other than filtering and string substitution. You can use multiple DDLOPTIONS statements, but using one is recommended. If using multiple DDLOPTIONS statements, make each of them unique so that one does not override the other. Multiple DDLOPTIONS statements are executed in the order…
-
Fractured block found during backing up datafile
一套AIX上的10.2.0.3系统,在rman备份期间告警日志出现如下记录: ======================= alert log record ============================ Hex dump of (file 35, block 1087687) in trace file /oracle/product/10.2.0/admin/MS/udump/ms_ora_103548.trc Corrupt block relative dba: 0x08d098c7 (file 35, block 1087687) Fractured block found during backing up datafile Data in bad block: type: 6 format: 2 rdba: 0x08d098c7 last change scn: 0x0006.44443e06 seq: 0x1 flg: 0x06 spare1: 0x0 spare2: 0x0…
-
配置GoldenGate同步DDL语句(2)
接下来我们会测试更多不同DDL语句的同步,这些我能想到的DDL语句包括: CREATE USER CREATE TABLESPACE CREATE PROCEDURE CREATE PROFILE CREATE DIRECTORY CREATE EXTERNAL TABLE 等等 但在这之前我们需要修改我们在GoldenGate同步DDL语句(1)中配置的extract和replicat的参数文件: GGSCI (rh2.oracle.com) 2> view params load1 extract load1 userid maclean, password AACAAAAAAAAAAAHANCUEFHPAVCYDNJVD,encryptkey default RMTHOST rh3.oracle.com, MGRPORT 7809 RMTTRAIL /s01/rmt/ma DDL INCLUDE ALL Table sender.*; /*源端将 DLL INCLUDE MAPPED 修改为DLL INCLUDE ALL, 不同于MAPPED,INCLUDE ALL意味包含所有DDL语句 MAPPED applies INCLUDE or EXCLUDE to…