Author: mac
-
ASM Metadata元数据介绍
1. ASM Metadata介绍 ASM基础概念: ASM的最小存储单位是一个”allocation unit”(AU),通常为1MB,在Exadata上推荐为4MB ASM的核心是存储文件 文件被划分为多个文件片,称之为”extent” 11g之前extent的大小总是为一个AU,11g之后一个extent可以是1 or 8 or 64个AU ASM使用file extent map维护文件extent的位置 ASM在LUN DISK的头部header维护其元数据,而非数据字典 同时RDBMS DB会在shared pool中缓存file extent map,当server process处理IO时使用 因为ASM instance使用类似于普通RDBMS的原理的instance/crash recovery,所以ASM instance奔溃后总是能复原的 ASM将任何文件以AU大小均匀分布在Disk Group的所有Disk上。每一个ASM Disk均被维护以保持同样的使用比率。这保证同一个Disk Group中的所有Disk的IO负载基本一致。由于ASM在一个Disk Group中的磁盘上的负载均衡,所以为同一个物理磁盘的不同区域划分为2个ASM Disk不会对性能有所影响;而同一个物理磁盘上划分2个不同分区置于不同的2个Disk Group则有效。 当ASM Disk Group启用冗余时单个ASM Disk仅是一个失败单元。对于该ASM Disk的写失败在10g会自动从该Disk Group drop掉该Disk,前提是该Disk的丢失被容许。 Allocation Unit 每一个ASM Disk都被划分为许多个AU allocation units(单个AU 的大小在 1MB…
-
【视频教学:性能优化】Maclean Liu的Oracle性能优化讲座第一回《真正读懂Oracle SQL执行计划》
【视频教学:性能优化】Maclean Liu的Oracle性能优化讲座第一回《真正读懂Oracle SQL执行计划》 b站的搬运: https://www.bilibili.com/video/BV1e5411w78f/ 本次的讲座议程包括: 如何查看SQL执行计划 正确的执行计划执行顺序 通过示例来实践正确阅读执行计划的方法 介绍执行步骤的特性 读懂执行计划有什么用呢? 执行计划贯穿Oracle调优始终 了解执行计划的真实执行过程,将有助于优化 对于Oracle的原理理解有一定帮助 解决部分同学心中多年的疑惑 读懂执行计划,SQL调优的第一步 什么是SQL Execution Plan执行计划? SQL是声明型语言,她只说我要去哪里,但很少告诉你到底如何去? RDBMS所要做的是基于算法和现有统计信息计算最佳路径: Access Path访问路径分析:访问数据是用TableScan还是index (FFS) 对返回的行结果集做例如Join的进一步处理,以便返回行给客户端 SQL语句的执行最终会落实为Oracle执行步骤的组合 =》【SQL执行计划】 更多内容见本次讲座正式版 讲义PDF版目前可供下载: Maclean Liu的Oracle性能优化讲座 第一回-真正读懂Oracle SQL执行计划Execution Plan .pdf (1.94 MB, 下载次数: 2370) 本次讲座的视频已经上传,收看地址 https://zcdn.askmac.cn/%E3%80%90%E8%A7%86%E9%A2%91%E6%95%99%E5%AD%A6%EF%BC%9A%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E3%80%91Maclean%20Liu%E7%9A%84Oracle%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E8%AE%B2%E5%BA%A7%E7%AC%AC%E4%B8%80%E5%9B%9E%E3%80%8A%E7%9C%9F%E6%AD%A3%E8%AF%BB%E6%87%82Oracle%20SQL%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92%E3%80%8B1080.mp4
-
【AskMaclean技术分享】Oracle dba技能列表
Oracle dba技能列表,来看看你掌握了这张列表里的多少技能? 有多少是熟练的,有多少是仍不熟悉的? 【AskMaclean技术分享】Oracle dba技能列表 下载: 【AskMaclean技术分享】Oracle dba技能列表-Z.pdf (459.98 KB, 下载次数: 102)
-
采用OGG Goldengate实现Oracle与MySQL之间的复制
本文永久地址:https://www.askmac.cn/archives/goldengate-oracle-mysql.html 采用OGG Goldengate实现Oracle与MySQL之间的复制 一、安装Goldengate 根据MySQL版本及操作系统版本,下载合适的MySQL安装介质,本例中操作系统为Windows XP,MySQL版本为1.42,因此,下载“Oracle GoldenGate V11.1.1.0.3 for MySQL 5.x on Windows 2003, 2008.zip”,文件大小约14MB; 将上述zip文件展开到OGG安装目录,本例为D:\Oracle\GGS11g_MySQL; 进入目录D:\Oracle\GGS11g_MySQL,执行“ggsci”进入OGG命令行,执行如下命令创建子目录: Ggsci> create subdirs 在OGG命令行下执行如下命令,为OGG管理器命名: Ggsci> EDIT PARAM ./GLOBALS 在文件中,添加如下一行,并保存: MGRSERVNAME GGSMYSQL 配置OGG mgr参数: Ggsci> EDIT PARAM MGR 在文件中,添加如下内容,并保存: port 8809 DYNAMICPORTLIST 8840-8850 autorestart er *, retries 5, waitminutes 1 purgeoldextracts /ggs/dirdat/*,usecheckpoints, minkeepdays 3 启动OGG mgr: Ggsci>…
-
OGG GoldenGate 故障诊断手册Troubleshooting handbook
本文地址:https://www.askmac.cn/archives/ogg-goldengate-%E6%95%85%E9%9A%9C%E8%AF%8A%E6%96%AD%E6%89%8B%E5%86%8Ctroubleshooting-handbook.html OGG GoldenGate 故障诊断手册Troubleshooting handbook 1 前期准备 前期准备可以避免很多不必要的错误,因此在实施之前可以尽量完成以下准备工作。 1.1 操作系统环境变量 HP-UX:export LD_LIBRARY_PATH=/ggs/11.1:$LD_LIBRARY_PATH AIX:export LIBPATH=/ggs/11.1:$LIBPATH 这里要注意,将GoldenGate安装目录放在LD_LIBRARY_PATH/LIBPATH环境变量最前面 1.2 GoldenGate运行操作系统用户 建议使用oracle用户运行GoldenGate,oracle用户已将oracle相关环境变量设置好,包括lib相关的环境变量。如果使用独立的GoldenGate用户,可以将oracle用户的环境变量复制到profile文件中,额外添加lib包相关的内容。 1.3 操作系统资源使用限制 使用操作系统命令:ulimit –a 查看相应的系统资源使用限制,通过修改/etc/security/limits文件,建议都设置unlimitied。如果不能全部设置为unlimited,必须将以下参数设置为unlimited: max memory size (kbytes, -m) unlimited file size (blocks, -f) unlimited data seg size (kbytes, -d) unlimited cpu time (seconds, -t) unlimited stack size (kbytes, -s) unlimited 很多情况下出现问题,和stack没有设置成unlimited有关。 1.4 源数据库必须启动归档模式并开启附加日志…
-
了解OGG GoldenGate Lag监控
了解OGG GoldenGate Lag监控 GGSCI中显示的LAG代表 事务被写入到磁盘介质中的时刻例如Oracle中redo被写入到online redo logfile中 和 Replicat将同一个事务分发到目标数据库的时刻 之间的时间间隔。 通俗地说,一个事务内的所有行记录将对应同一个LAG; 除非出现了一个事务被打散且被多个REPLICAT分别apply或者变成多个事务的情况。 OGG参数例如RANGE这种对应于第一种情况,即一个事务被多个REPLICATE分别APPLY。 OGG参数MAXTRANSOPS对应后一种情况。 LAG在以下情况中被引入: 当Extract进程在读取redolog并写出到TRAIL或REMOTE HOST 当额外的datapump在读取extract trail并通过网络写出到远程节点REMOTE HOST 当collector在目标服务器上接受网络数据并写出到LOCAL TRAIL 当REPLICAT读取LOCAL TRAIL并写出到数据库中 同时也需要注意通过GGSCI中INFO或STATUS等命令显示的LAG,或通过SEND 对象名,LAG命令获得的LAG可能不一致: INFO命令所获得的LAG可能与SEND命令所得值存在小的差别 INFO命令获得的LAG返回自MANAGER来源于最近记录的checkpoint SEND <OBJECT>, lag获得的LAG值基于<OBJECT>正在处理的行记录的时间戳 LAG常使用时间单位或需要处理的数据单位Kilobytes来表达 归根结底LAG是衡量 数据归档或写出到日志的时间 和 EXTRACT/PUMP/REPLICAT处理该数据的时刻 这2个时间点之间的差距, 而不是说 LAG反映了EXTRACT还要工作多久。 实际EXTRACT/PUMP/REPLICAT都不知道自己要工作多久才能追上 REAL TIME,它们的LAG值只是显示 最近它们处理的一条记录的时间 和这条记录被写到REDO LOG的时间点之间的差距,即LAG只说明ER之前的工作延迟,不代表还要工作多久才能追平。…
-
GoldenGate OGG Director 安装及配置文档
GoldenGate OGG Director 安装及配置文档 安装及配置文档 GoldenGate Director 安装及配置文档 1.1 概述 本章节所有文本均基于Oracle GoldenGate V10.4版本,主要描述GoldenGate Director的安装及配置使用。所有部署在生产系统的GoldenGate进程,均需要经过开发、测试小组严格认真的测试之后才可以进行部署。 1.2 GoldenGate Director概述 GoldenGate Director是GoldenGate的图形化监控管理软件,可以方便、集中管理多个GoldenGate实例。平安集团需要部署多个GoldenGate实例,每个实例部署在一个单独的服务器上,如果使用命令行方式进行监控和维护,则每次都需要登录到每个单独的服务器,极不方便。使用GoldenGate Director,只需要事先配置好连接,就可以在统一界面中监控所有的GoldenGate实例。Director提供了两种图形化监控客户端,一种是基于Web方式,另一种是基于C/S。 下图描述了GoldenGate Director各个组件及其关系: GoldenGate Director 体系架构 GoldenGate Instances是需要被管理的实例。Director可以方便管理多个GoldenGate实例。 Director Server是Director服务端,需要部署在WebLogic Server下。Director服务器通过Monitor Agent和GoldenGate实例进行通信。 Director Database用来存放Director Server资料库(Repository)。 Director Administrator是管理Director Server的客户端工具,主要负责实例的注册和配置。 Director Client是基于C/S模式的客户端,可以用于监控实例。 Director Web是基于Web的客户端,可以通过统一的Web界面监控多个GoldenGate实例。 1.3 GoldenGate Director的安装 1.3.1 部署方案必需条件 1.3.1.1 Director服务器安装前提 硬件 可支持的操作系统 Windows NT/XP/2000/Vista Solaris AIX Redhat…
-
Oracle GoldenGate OGG与Quest Shareplex对比
Oracle GoldenGate OGG与Quest Shareplex对比 GoldenGate Quest SharePlex DSG RealSync 公司背景 公司介绍 GoldenGate成立于1995年,一直专注于数据库复制领域,现在已经被Oracle收购,能够得到数据库厂商大力支持,正在开发整合后的新版本,届时功能和性能均能进一步提高。 Quest Software成立于1987年,公司总部位于美国加州。公司致力与数据库管理软件,SharePlex只是其众多产品中一个非主流的小产品。 DSG北京公司于2002年8月在北京成立,前身是DSGuardian Inc,注册于美国。主要产品为数据库复制及备份软件。只有几十个人的国内小公司。 数据库厂商支持 Oracle公司产品,能够与数据库一起进行技术支持,并且产品持续与Oracle数据库进行整合中。(☆☆☆☆☆) 与Oracle有合作关系,但因Oracle不完全公开日志格式,在复制领域无法得到更多技术支持,出现问题后Oracle无法进行支持,版本兼容性容易出现问题。 与Oracle无关系。其产品为一位前Oracle人员开发,只有此人能够解决问题,技术力量差,无法对Oracle后继版本有效支持。同样因Oracle不完全公开日志格式,在复制领域无法得到更多技术支持,出现问题后Oracle无法进行支持。 产品成熟度 GoldeGate产品最早发布于1995年,目前版本为10.4,产品成熟度高,在全球有超过2000多个成功案例。 SharePlex产品最早发布于1999年,目前的版本为7,产品成熟性比较高,在全球有近千个成功案例 产品推出时间较短,很不成熟,会出现各种问题,经常需要开发人员在客户现场修改代码,并在客户生产环境中测试运行。仅在国内有少量案例。 成功案例 在国内有海关总署、体育彩票中心、国家税务总局、北京移动、第一重工等众多大型成功案例。在全球有超过2000多个成功案例。 在国内有一些成功案例,包括北京地 税,天津地税,贵州联通,黑龙江移 动,大连商品交易所等客户,在全球有近千个成功案例。 客户较少,应用主要集中在数据库升级及备份,实时复制案例较少。 产品方面 兼容性和可扩展性 支持Oracle、DB2、SQL Server、Sybase、MySQL、Teradata等各种数据库平台(☆☆☆☆☆) 仅支持Oracle。 仅支持Oracle。 复制机制 基于交易(Transaction)的复制,可以保证数据复制过程中交易的完整性。 只复制提交交易,保证数据一致性。 使用常规加载方式装载数据,可靠性高。 (☆☆☆☆☆) 基于SQL的复制,无法保证复制过程中交易数据的一致性。(例如,如果两边数据集不同,则相同sql可能产生不同结果) 复制所有提交和回滚交易,会造成资源浪费,也容易造成两端数据不一致。(其优势是无需保存一定时间归档日志,同时复制无需等待交易提交,对大交易速度较快) 基于交易(Transaction)的复制,可以保证数据复制过程中交易的完整性。 只复制提交交易。 使用Direct Inser模式插入数据,效率较高但有以下问题: 1…
-
Oracle GoldenGate与磁盘复制和卷复制对比
Oracle GoldenGate与磁盘复制和卷复制对比 如IBM、EMC、HP等存储厂商的镜像技术,Veritas等厂商的卷复制技术等。 优点: 灾备的可靠性 在日常业务状态下的容灾,存在以下两个问题: 对于业务数据而言: 数据变化的最小粒度是交易,每个交易的数据应当全部被复制到目标端或者全部不被应用到目标端,这样才能保证目标数据是一致的;如果出现只有部分交易数据被复制到目标端,则目标数据就会出现不一致的情况,这是业务所绝对不能允许的。 底层复制技术从原理上根本无法获取交易的边界,例如如果一个大交易有10万点记录,那么在灾难发生时可能只传输了5万条,那么底层复制会把这5万记录复制过去,无法保证交易的完整性;而GoldenGate是逻辑复制技术,完全可以判断出来交易数据不完整,不在目标端应用该部分数据。 2)对于系统数据而言: 更为严重的是,由于这些底层复制技术对于逻辑数据的不可感知,如果在复制中断时正好数据库在更新系统数据(如控制文件、表空间等数据库内部信息),则有可能出现目标数据库出现无法装载和打开的情况,由此会造成容灾的失败,对客户业务造成严重影响。GoldenGate数据复制的备份端始终处于打开状态,可以时刻接管业务,其容灾可靠性是其它底层技术所无法实现的。 对于人为失误和数据库Bug等意外因素 磁盘阵列和卷复制为低级复制,会把磁盘操作忠实的传播到备份端,这里面也也包括错误操作,这种错误可以是人为的,也可以是系统错误。比如操作人员失误删除了一个文件,或者磁盘写入出现错误,或者数据库有一个bug,都有可能造成数据丢失,严重的时候会造成数据库不可用。磁盘阵列复制和卷复制会忠实的传播到备份端,这样两端数据库会出现同时数据丢失或不可用的情况,导致容灾失去意义。 GoldenGate只复制交易数据,不会传播这些底层错误到备份端,可以在出现上述错误的情况下保证备份端的可用性。 一个问题:可以向各个硬件厂商提出问题,在使用磁盘镜像技术复制时,如果业务繁忙时段出现复制中断,目标数据库是否保证可以打开? 正如上所述,没有一个底层复制技术能够保证目标数据的可用性,而客户花费大量投资建立一个容灾系统,目的就是为了保证在出现灾难时容灾中心的数据是100%可用的,如无法保证100%可用性就意味着灾难发生肯能会丢失容灾中心全部的数据,容灾系统建设也就失去了意义。 容灾指标 接管时间短 – RTO小: 容灾当中有一个很重要的指标RTO(Recovery Time Object)表示系统出现灾难后恢复到正常运行的时间。对于磁盘阵列级复制和卷复制,它们的备份端是不可用的,如果出现灾难需要重新装载磁盘或卷,数据库也需要重新恢复和启动,因此接管时间比较长。而GoldenGate的备份端是活动的,可以在灾难出现后立即把业务接管过来,快速恢复业务,大大减少RTO。 异地备份数据丢失少 – RPO小: 容灾的另外一个指标RPO(Recovery Point Object)表示系统出现灾难后数据丢失的时间。容灾的数据丢失取决于数据复制的延迟,而延迟除去技术本身的机制外还要取决于网络及其在网络上传输的数据量,相同带宽条件下所需带宽最低的技术所丢失的数据最小。 经济性和投资回报率 带宽要求低 这是因为GoldenGate需要在网络上传输的数据量要小。磁盘阵列的数据复制是以块为复制单位,当块中任何数据发生变化,整个块都要复制到备份端。对于卷复制,通过把逻辑卷划分为若干个单元,当每个单元中发生变化,则将此单元发送到备份端。由此可见,无论是磁盘阵列复制还是卷复制,都要传输大量的冗余数据。而GoldenGate是通过解析数据库日志,只复制其中数据的变化,因此相对于磁盘阵列和卷复制方式,数据量要小很多。另外GoldenGate还可以提供数据压缩功能,可以进一步降低网络传输的数据量。如果采用磁盘阵列复制和卷复制,在交易量比较大的情况下一般都要求采用光纤等高带宽的传输方式,投资和运营的费用非常大。而采用GoldenGate则有可能采用比较低廉的通讯链路比如租用电信的DDN线路,从而节约很大一笔费用。如果相同的网络情况下,GoldenGate因为要传输的数据量小,它的延时会比磁盘阵列和卷复制要小。 例如,根据某国家机关的统计,GoldenGate数据复制带宽占用约为磁盘阵列复制的1/300或更小。例如,其两家数据量相当的分支机构,使用磁盘阵列复制的点日常复制占用60兆带宽,则使用GoldenGate复制的点日常带宽占用只有约200K左右。 高兼容性、降低投资 对于磁盘阵列复制,各厂家一般要求用同一厂商的同种或者几种磁盘阵列,操作系统和数据库也必须保持一致。对于卷复制,对磁盘阵列兼容性好,但是也需要相同的操作系统和数据库。而GoldenGate则可以兼容各种磁盘阵列,也可以跨不同操作系统和不同数据库以及数据库不同版本,因此客户在采购方面可以更为灵活,处于更有利的商务地位。另外,采用磁盘阵列复制或卷复制方案原有设备可能需要彻底更新,而利用GoldenGate可以跨平台复制的特性可以将旧设备用作备份端,保护以前的投资。 实现目标库的再利用 使用GoldenGate建立灾备系统以后,由于灾备系统数据库是活动的,可以在日常担负部分报表、查询等业务。可以将主机的部分业务转移到备份端执行,实现负载均衡,有效地降低主机的负荷。比如,一些查询相关的业务就可以放到备份端,提供实时的数据查询。而磁盘阵列级复制和卷级复制备份端是不可用的,无法做到负载均衡,某些厂家可以作只读的快照,但是在数据量大的情况下需要时间会比较长,而且数据不是实时的。 可扩展性 GoldenGate可以实现一对一、一对多、多对一、双向复制等多种灵活的拓扑结构,它可以实现数据的分发和集中以及对等复制,非常灵活。比如容灾中广泛采用的n+1备份模式,只需建立一个备份中心,通过GoldenGate实时复制将各数据库的数据整合到一个数据库,提供统一的数据视图,而磁盘阵列复制和卷复制只能做到物理上的集中,无法实现逻辑上的集中。 缺点 GoldenGate不能复制数据库以外的数据 例如应用程序。磁盘阵列复制和卷复制则没有这个限制。可以如下解释:…
-
GoldenGate OGG 安装实施最佳实践
本文永久链接地址:https://www.askmac.cn/archives/goldengate-ogg-安装实施最佳实践.html GoldenGate OGG 安装实施最佳实践 GoldenGate OGG 安装实施准备 安装信息收集 收集客户信息(建议至少提前两周) –测试环境,操作系统、数据库、网络等 –数据结构,包括表数量、是否存在无主键表、是否有不支持数据类型、是否有不支持操作(如direct insert等)等 –客户需求、测试场景、(竞争对手) 一定要验证OGG版本可用性!!! –Metalink上面有很多edelivery上所没有的patch可用于POC测试 带宽估算 根据峰值产生日志量估算带宽占用 假设条件 –假设OGG队列与日志比例为1:4。如只复制部分表则此比例可以假设为更低。 –假设网络传输效率为0.7 –假设网络传输压缩比例为1:8。根据数据内容有所变化,一般字符数据较多时压缩比例较大,二进制对象压缩效率较低 带宽估算算法 –以客户业务高峰期每小时产生40G为例,可以估算如下 – 带宽=40G/3600(秒/小时)/ 4(日志过滤比例)/8(压缩比率) * 8(每字节8位) /0.7(网络传输效率)=4M 实施准备 –实施文档准备 拟定安装操作文档 拟定初始化方案并与客户达成一致 –根据测试场景准备 数据库脚本,如建立用户、赋予权限等 准备OGG安装所需脚本,如add trandata命令脚本、目标端禁止trigger和cascade delete脚本等 OGG参数文件,列出所有可能用到参数 OGG命令,常用命令预先放在文本里 验证参数、命令、脚本的可行性 发现潜在的问题,及时寻求解决方案 –预订技术支持 – 注意:OGG参数文件中所有关键字或“,()”等分割符前后应当加入空格(半角!),否则可能会被误认为连续的字符串,导致进程终止 本文永久链接地址:https://www.askmac.cn/archives/goldengate-ogg-安装实施最佳实践.html 实施准备 –系统设置(源和目标) 建立GoldenGate运行用户 –需访问数据库的动态库、在线日志及归档日志 –使用oracle用户,也可为其创建新的系统用户将其加入到oracle安装用户所在组(一般为oinstall)。 –为GoldenGate运行用户配置内存限制 分析和抽取交易数据需一定内存,需放宽GoldenGate运行系统用户对内存大小(memory)、文件大小(fsize)、DATA、STACK等参数的值,在系统允许的情况下尽量将参数设置为-1(ulimited),一般在/etc/security/limits文件中。…