mysql MHA配置及三种切换方式演练
master节点/MHA管理节点:172.31.217.183slave节点/MHA成员节点:172.31.217.182已开启半同步。数据库版本为5.7配置免密码登录master节点:root@bd-dev-mingshuo-183:/opt/soft#ssh-keygen -t rsa Generating public/private rsa key pair.Enter file in w
oracle分区表的增量收集统计信息
分区表的增量统计信息收集分区表的统计信息存在global和partition级别两种。在收集分区表的全局统计信息的时候,不可避免的要对表的所有分区进行统计,但是由于表分区的初衷,不同分区数据变化情况很可能不一致。那么极容易出现有的分区统计信息是准的,有的分区是不准的,扫描所有分区必然造成资源多余消耗,增量收集统计信息功能就可以解决这个问题了。该功能只针对有变化的分区收集统计信息,然后将其与没有变化
oracle 12c新特性之在线移动数据文件
11g时是无法在线移动数据文件的,12c增强了移动数据文件的功能,不仅可以更改路径,还可以给数据文件改名。oracle 12c在线移动或更名数据文件语法案例:alter database move datafile '/opt/mingdbdata/data/tbs_test01.dbf' to '/opt/mingdbdata/data/MINGPDB1/tbs_test
oracle 11g移动数据文件到其他磁盘组
目标:将USERS表空间数据文件从RAC_DATA磁盘组移动到MING磁盘组。这里不用alter database move datafile那种方式,直接用rman copy,然后switch一下就可以了。首先修改数据库为归档模式SQL> alter system set log_archive_dest_1='LOCATION=/arch1' scope=spfile s
oracle sql优化之多列统计信息
本文讨论多列统计信息在CBO计算cardinality中的帮助创建测试表create table t1(id int,name varchar2(10),other varchar2(20));插入数据declarebeginfor i in 1..10000 loopinsert into t1 values(1,'A',dbms_random.string('u'
oracle12c新特性之APPROX_COUNT_DISTINCT函数
oracle 12c新特性之APPROX_COUNT_DISTINCT函数在进行sql优化时经常要统计某一列不同的值的个数,进而计算该列的选择性。但是在表体量很大,并且列上又没有索引时,count(distinct column)经常要花费很长的时间。12c提供了一个近似去重的新函数approx_count_distinct。这个函数的返回值是不准确的,不统计null值,但是胜在速度快。SQL&g
oracle数据泵导入遭遇bug记录
下午收到了一个导数据的需求,一张表,20多万数据,小case,却遇到了问题。关键报错:ORA-39097 ORA-39065 ORA-01427 ORA-39126 ORA-06502 LPX-00225导入语句:impdp "'/as sysdba'" directory=DATA_PUMP_DIR dumpfile=NCHATTAG1.dmp logfile
oracle查找一段时间内的非绑定变量的sql
查找一段时间内的非绑定变量sql的方法v$SQL动态性能视图中的FORCE_MATCHING_SIGNATURE列,可以帮助我们快速定位到非绑定变量的sql。该列的含义是"The signature used when the CURSOR_SHARING parameter is set to FORCE".意思就是如果将CURSOR_SHARING参数设置为force,sq
oracle18c&&12c新特性之alter system cancel sql
alter system cancel sql 'sid,serial#';这条命令是oracle 18c的新特性,但是实际上12c里面就已经存在了。这条命令可以终止某条sql的运行,类似手动Ctrl+C。与kill会话是不同的。kill session是修改session的paddr进程地址,多个session被kill的话,这些session的paddr会被标记为同一个。这条命
oracle12c之表级别恢复
oracle12c之表级别恢复表/表分区级别的恢复存在如下限制:1.SYS用户下的表/表分区无法进行恢复。2.SYSTEM/SYSAUX表空间中的表/表分区无法进行恢复。有的文章说带有非空约束的表在用remap参数时无法恢复,12.2亲测是可以的。最后有测试结果。创建表SQL> sho user con_nameUSER is "MING"CON_NAME--------
oracle优化之改写exists降低逻辑读
通过将exists改写成in或这inner join优化sql。Sql_id:056bs9dzz8mwy问题简述:逻辑读高。Sql文本:SELECT A.*, a.rowid FROM WBANK.WD_BANK_BASEINFOMATION A WHERE EXISTS (SELECT 1
oracle基于增量备份解决dataguard gap问题
Dataguard alert日志中报错:2018-07-31T18:10:11.540837+08:00Primary database is in MAXIMUM PERFORMANCE modeRFS[6]: Assigned to RFS process (PID:18880)RFS[6]: No standby redo logfiles ava
一则oracle 12c的bug问题解决过程记录
一套新安装的12c的主库和dataguard库中发现alert日志报错:2018-07-30T22:04:17.522506+08:00Non critical error ORA-48913 caught while writing to trace file "/opt/app/oracle/diag/rdbms/mingdb_dg/mingdb_dg/t
oracle sql优化之 not in子句包含null返回结果为空的研究
开发人员说一条sql说没有返回值,但是子查询和外部单独执行,能看到有结果集,我在解决这个问题的时候发现了一个关于null的很有意思的问题。现在还原整个过程。 简化后的sql本质实际上是很简单的一条,这里就不贴了,实验环境直接还原过程: 创建测试表:create table t_dept as select * from scott.dept;create tabl
oracle自动收集AWR报告脚本(for 11g && 12c)
AWR报告收集过程需要进行交互,有的数据库收集频率是15分钟,范围大了之后寻找snap id是一件非常头痛的事。所以我用shell写了一个自动收集AWR的脚本。脚本在11个和12c都可以使用。本来想构造函数进行迭代判断时间的合法性的,但是后来觉得自己管理的数据库收集频率自己应该清楚,而且输入的时候尽量输入15min的倍数是不会有什么问题的,不用花太多
oracle sqlloader导入时报ORA-01830解决过程
目标:将/home/oracle/xfsqlldr.csv导入到新建的CHOICE.T_LOAN_ANNUAL_CUSTNO表中。新建表:create table CHOICE.T_LOAN_ANNUAL_CUSTNO(LOANNO VARCHAR2(200) ,FUNDCUSTNO VARCHAR2(200) ,DATEDATE DATE ,DATETYPE
oracle 异步IO简述
在同步IO中,线程启动一个IO请求之后就进入等待状态,知道IO结束后线程才结束等待,转而去处理其他请求。异步IO将IO请求发送到内核后就不管了,无需等待IO操作完成,就去处理其他事情了。异步IO可以提高性能。但是显而易见的是对磁盘处理IO能力有较高要求,否则提交的处理请求多,处理能力跟不上,根本无法达到提高性能的要求。异步I
oracle检查scn headroom的正确方法
oracle12c新特性之异步全局索引维护
异步全局索引维护这是oracle12c的新特性。之前drop分区或者truncate分区的时候,会使得全局索引不可用,update indexes和update global indexes虽然可以维护索引的可用性,但是索引的维护是当时立刻发生的,业务高峰时刻会争夺性能。全局索引的异步维护就可以解决这个矛盾点。配合update索引的语句,表中的数据会当时就删...
模拟enq: TX – allocate ITL entry以及数据块dump文件分析
ITL的含义ITL,即Interested Transaction List,也就是事务槽,是一种数据块的内部结构,它位于数据块头中。当对数据块做修改的时候,进程需要获取一个空的事务槽。ITL事物槽由槽位号、XID、Uba、Flag、Lck、Scn/Fsc组成。ITL的个数是由参数initrans控制,maxtrans参数已经被废弃。默认initrans值是1,但是实际...