Maclean’s Oracle Database Tech Blog Archives

  • 现代Oracle数据库的版本选择问题

    Oracle公司从版本12c以后实际上引入了类似于SQL Server的以年份为版本号的版本风格。Oracle 12c以后的已release版本为18c,19c,21c,2020年由于全球疫情的问题未发布大版本号。 其大版本的释放周期大大缩短了,实际上大版本的释放频率已经覆盖了过去Patch Set补丁集的作用。 对于先进企业选择Oracle数据库版本而言,建议可以考虑对当前年份-2/3的算法。 即如果当前是2021年,则考虑使用(2021-2 or 3) 18c或19c;并打上最新的RU(Release Update)和RUR(Release Update Revision)。    

  • 更高效的DBA_EXTENTS 查询脚本

    DBI的Franck Pachot给出了一个更高效率的DBA_EXTENTS脚本,对于特别大的ORACLE数据库定位EXTENT时很有用: https://blog.dbi-services.com/efficiently-query-dba_extents-for-file_id-block_id/#comment-91162     column owner format a6 column segment_type format a20 column segment_name format a15 column partition_name format a15 set linesize 200 set timing on time on echo on autotrace on stat WITH l AS ( /* LMT extents indexed on ktfbuesegtsn,ktfbuesegfno,ktfbuesegbno */ SELECT ktfbuesegtsn segtsn,ktfbuesegfno segrfn,ktfbuesegbno segbid, ktfbuefno extrfn, ktfbuebno fstbid,ktfbuebno +…

  • Dgg Oracle MySQL SQL Server数据同步与比对

      下载: Dgg Oracle MySQL数据同步校准工具最新版:https://zcdn.askmac.cn/Dgg2107.zip Dgg申请个人版注册码: http://askmac.cn:3333/acquire   教程: 使用Dgg实现MySQL数据库同构跨库数据校验 使用Dgg实现Oracle数据库同构跨库数据校验 使用Dgg全量同步/初始化Initial Load MySQL数据 使用Dgg全量同步/初始化Initial Load Oracle数据   Dgg Oracle/MySQL数据库复制同步校准软件 Dgg Rdbms Oracle MySQL Table/Schema Sync Compare Repair 最新版:   Dgg is a single application that allows you to tranfer data between Oracle and MySQL. It will also support Microsoft SQL Server in future. It…

  • 使用Dgg实现MySQL数据库同构跨库数据校验

    在使用Dgg实现MYSQL跨库数据同步后,可以使用Dgg的数据校验功能来验证数据是否一致。   请首先参考《使用Dgg 全量同步/初始化Initial Load MySQL数据》 https://www.askmac.cn/archives/datagogo-initial-mysql.html 选中 树形图最上方的用户名,右击 Compare:           DataGoGo中存在三种 表数据的比较粒度: 只比较行数 ( 适用于大表 如日志表,为最粗粒度的比较) 只比较主键HASH (适用于中大表,要求表有主键,中等粒度比较) 比较全表HASH (适用于中小表,最细粒度比较 , 速度较慢)   测试 90万行 7列的表, 比较约耗时 10秒。    

  • 使用Dgg实现Oracle数据库同构跨库数据校验

    在使用Dgg实现Oracle跨库数据同步后,可以使用Dgg的数据校验功能来验证数据是否一致。   请首先参考《使用Dgg 全量同步/初始化Initial Load Oracle数据》 https://www.askmac.cn/archives/datagogo-initial-load-oracle-database.html 选中 树形图最上方的用户名,右击 Compare:         DataGoGo中存在三种 表数据的比较粒度: 只比较行数 ( 适用于大表 如日志表,为最粗粒度的比较) 只比较主键HASH (适用于中大表,要求表有主键,中等粒度比较) 比较全表HASH (适用于中小表,最细粒度比较 , 速度较慢)   测试 90万行 24列的表, 比较约耗时 2分钟。   比较结果如下:   Compare start date: 2021-06-07 14:58:54 Comparing SCOTT.T_XT_SYNCPERSONLOG and EAS.T_XT_SYNCPERSONLOG: SCOTT.T_XT_SYNCPERSONLOG full table checksum: 235801620123 EAS.T_XT_SYNCPERSONLOG full table checksum: 235801620123 Full…

  • udev reload会影响oracle ASM?

    UDEV RELOAD是否会影响oracle ASM?   回答: 如果频繁 reload 显然会影响Oracle ASM ,甚至导致ASM Diskgroup OFFLINE。 如果只是一次很快速的reload,那么影响的概率较小。   参考链接:   ‘udev’ rules continuously being reloaded resulted in Oracle ASM diskgroup outage https://access.redhat.com/solutions/1465913

  • LINUX 7 配置 multipath udev Oracle ASM

    multipath.conf   # This is a basic configuration file with some examples, for device mapper # multipath. # # For a complete list of the default configuration values, run either # multipath -t # or # multipathd show config # # For a list of configuration options with descriptions, see the multipath.conf # man page…

  • solidity学习笔记

    UINT 是 UINT256的别名 INT是INT256的别名 uint and int are aliases for uint256 and int256, respectively. Solidity 中整型有明确范围,例如 uint32 的范围是 0 ~ 2**32-1 , 若结果超过范围 会被truncate截断 address 类型  存放一个20字节的以太坊地址 address payable  类似于address ,且提供 transfer 和 send成员 ;   即 普通address默认不能传输ETH , address payable 可以 pragma solidity 0.5.10; contract Test1 { address public notpaybleaddress; address public payableaddress; uint public balance1; uint public balance2; uint public…

  • 使用Dgg全量同步/初始化Initial Load MySQL数据

    现有2套MySQL服务器,需要将一台上的服务器上的数据同步到另一台。可以使用Dgg数据同步校准软件实现数据初始化同步的目的。   打开Dgg软件,点击开始 => 打开, 创建2个MySQL session:     选择源端 并点击下一步,选择目标端 并点击 连接:     可以在两侧的对象树上看到相关的表 , 点中用户 右键 => Transfer:       初始化同步后,若对表数据的一致性存在疑问,可以通过Compare功能比对,在左侧树形种点中你要比对的表,右键Compare: 校验分成几种: 行数对比校验 (最粗粒度) 主键对比校验  (较粗粒度) 全表对比校验    (精细粒度)   其中行数对比校验 ,仅对比2个表的行数是否一致;即只比较count(1) 主键比对,只比对主键信息是否一致,支持联合主键 全表校验,比对全表数据信息(会排除TEXT LONGTEXT等长字段列)是否一致   对于小表而言(一般来说小于10万行),全表校验的速度也较快,其时间可接受。对于大表而言,除非是一致性要求极高的账目表,否则建议使用主键比对或行数比对。            

  • Oracle 相比 mysql 的优势在哪里

    Oracle 相比 mysql 的优势在哪里   原帖子在这里:  https://v2ex.com/t/773654?p=1   目前的项目用的 mysql,支撑几十亿数据没问题(分库分表),偶尔慢 sql 也能优化索引解决,至于复杂查询通过搜索引擎实现,听说 Oracle 超级贵,那 Oracle 具体有什么优势呢,哪些场景下是 oracle only 的? 看完了回复,oracle 能单表支撑几十亿数据还是很强的,因为目前因为分表键导致很多需求无法实现,只能同步一个表用另一个分表键。 我再问下,如果是同时涉及几十个字段的复杂搜索,oracle 可以支持吗,目前用的搜索引擎实现也非常贵。 有一说一,单表支撑几十亿数据,听着有点玄乎,真的假的啊 我的回复:   oracle 的优化器 CBO optimizer 目前应该是所有 RDBMS 里最复杂的(不说是最先进的)。MYSQL 至少在优化器上还处于比较初级的阶段,虽然 MySQL 的目标可能并不希望实现非常复杂的优化器算法。其他一些东西 例如 undo 的实现等等 可能优势并不明显, 这里就不提了。   举一个例子, 都不使用索引的情况下,NO INDEX ! NO INDEX | NO INDEX ! 以下数据量是一样的,机器是同一台。 Oracle 11.2.0.4 MySQL…