Oracle
文章平均质量分 80
Hehuyi_In
这个作者很懒,什么都没留下…
展开
-
Oracle 主从库目录不一致(异路径)的n种处理方案及效果
db_create_file_dest db_file_name_convert log_file_name_convert 与 不设置原创 2023-08-20 18:49:43 · 1974 阅读 · 0 评论 -
ORA-01795 Oracle in中超过1000个值处理方法汇总
最近又又又遇到了开发同事问Oracle 中in超过1000个值遇到ORA-01795: maximum number of expressions in a list is 1000怎么处理,之前也陆陆续续查过一些方法,汇总整理一把。当然,其中的一些方法只是保证它不报错,性能可能堪忧,尽量少用。原创 2023-06-03 19:46:38 · 9889 阅读 · 0 评论 -
expdp/impdp时大量等待Streams AQ: Enqueue Blocked On Low Memory
用expdp导出schema数据时突然非常慢,平时大概半小时,突然变为2小时,数据库中有大量 Streams AQ: Enqueue Blocked On Low Memory 等待。查询文档发现可以加大streams_pool_size参数CONNECT / as sysdbaALTER SYSTEM SET streams_pool_size=150m SCOPE=both;虽然文...原创 2019-08-26 15:24:51 · 3494 阅读 · 3 评论 -
ansible DBA常用场景命令小集
这个小工具真的好用,运维方便了很多。随着慢慢用的变多,整个单独的文档记录一些平时需要批量处理的小场景和命令。因为场景通常比较简单,基本都是用的 Linux命令和shell脚本,也没什么学习成本。理论上只要能写好shell脚本、传到目标库、执行,足够干n多事情了。原创 2022-11-13 12:41:08 · 941 阅读 · 0 评论 -
Oracle RMAN 口令加密测试
业务希望对一些不由DBA运维的数据库配置备份设置加密,密码仅由业务同事保存,必须输入密码才能进行数据恢复。考虑业务同事需要保存密码,而基于wallet的加密配置较复杂、DBA又难以接触到相关服务器,。设置方法口令务必要记得,否则后续无法会恢复数据。原创 2022-11-08 15:46:38 · 1392 阅读 · 0 评论 -
oracle to polardb-o (postgresql) dblink创建步骤
一、 架构图本质上polardb-o的底层是postgresql数据库,因此该需求可以转换为创建oracle topostgresql的dblink。1.原理图2. 实际架构下面为实际创建步骤二、 安装依赖包 yuminstall-y unixODBC yuminstall-y unixODBC-devel yuminstall-y libtool yuminstall-y libicu yuminstall...原创 2022-04-26 14:34:02 · 4023 阅读 · 0 评论 -
重复查询/标量子查询改写为case when
生产环境中经常会看到要取一个表不同条件值的时候,写n多子查询查同一个表。本文整理一些典型案例和改写方法。核心思想就是减少对表的多次扫描,最好减成一次。创建测试表create table t1 as select * from dba_objects;create index ind_object_id on t1(object_id);create index ind_object_name on t1(object_name);create index ind_owne...原创 2022-04-17 10:52:20 · 2128 阅读 · 0 评论 -
Oracle 关联更新 update
Oracle 关联更新 update原创 2022-04-17 10:35:33 · 17852 阅读 · 0 评论 -
Oracle OR条件的优化与改写
一、 两个字段谓词条件的orselect object_name,object_type,object_id from t1 whereobject_name='T1' or object_id<=10;优化方法:如果字段选择率高,两个字段分别加索引即可二、 高选择度的or改写 上面这种情况,如果两个字段的选择性可以,而且都存在索引,不论是oracle还是mysql,优化器都是会自动改写的,如果要手工改写,可以这样改:select object_name,obj...原创 2019-05-05 19:34:27 · 10579 阅读 · 0 评论 -
Oracle 表关联、半关联、反关联
一、 表关联先建两个测试表create table t1(id int,name varchar2(10));create table t2(id int,name varchar2(10));SQL> select * from t1; ID NAME---------- ---------- 1 A 2 b 3 p 4 L VSQL> select * fro...原创 2022-04-09 12:06:00 · 5742 阅读 · 0 评论 -
Oracle 最值的优化 -- 利用分析函数改写
一、 最值在表关联中1. 低效且有重复值的写法找出各部门工资最高的员工信息select a.EMPNO, a.ENAME, a.JOB, a.MGR, a.HIREDATE, a.SAL, a.COMM, a.DEPTNO from emp a, (select deptno, max(sal) as max_sal from emp group by deptno) bwhere a.deptno = b.deptno and a.sal = b.max_sal...原创 2022-04-05 18:36:03 · 2409 阅读 · 0 评论 -
Oracle 游标逐行处理 改写为 大表直接关联
以下案例及写法来自 triger liu《专题培训-SQL写法与改写》,有部分个人测试及删改,原文请参考原课程。一、 创建测试表create table tb_mbi_temp2(ofr_id int);create table tb_bil_mbi_day(ofr_id int,ofr_code int);insert into tb_bil_mbi_day values(7902,800);insert into tb_bil_mbi_day values(7698,1600);原创 2022-04-05 15:47:11 · 2570 阅读 · 0 评论 -
阿里云 ADAM 迁移工具测试问题记录
最近试用了阿里云ADAM,测试源库为oracle,目标库为polardb-o,测试3天踩到n多坑,记录一下 序号 问题 影响 解决方案 进度 备注 1 数据采集器不支持在线采集PDB 在线界面显示有PDB,实际采集会报错 下载离线采集器使用离线采集 已解决 阿里云反馈为前端文字显示问题,前端完成了后端没有实现原创 2022-03-31 17:58:24 · 1940 阅读 · 0 评论 -
通过 虚拟机克隆快速搭建Oracle dataguard
适合数据库很大,通过rman duplicate创建非常耗时的场景。测试10T数据库:rman duplicate 12-15小时,追主从复制约12小时 通过克隆方式,克隆12小时,搭建约1小时操作步骤准备一个已经搭好的单实例读写库 停库克隆出一个新服务器,并修改服务器ip及/etc/hosts文件 主从库按正常配置监听及tns文件,启动监听 主库启动到mount状态 创建standby controlfile ALTERDATABASECREATESTANDBY CONT...原创 2021-10-06 22:39:01 · 1968 阅读 · 0 评论 -
Oracle用户的状态有几种?分别表示什么含义?
一、 简介Oracle用户的状态是由密码来决定的,而Oracle中的密码是由PROFILE来配置的。PROFILE是口令限制、资源限制的命令集合。当建立数据库时,Oracle会自动建立名称为DEFAULT的PROFILE。当创建用户而没有指定PROFILE选项时,Oracle就会将DEFAULT分配给用户。通过如下的命令可以查出与密码相关的PROFILE的值: SELECT * FROM DBA_PROFILES D WHERE D.PROFILE = 'DEFAULT' A转载 2020-03-14 02:08:29 · 3038 阅读 · 1 评论 -
Oracle存储过程定位慢SQL方法
最近遇到开发反馈一个执行将近2天的存储过程,需要分析慢的原因。查询和咨询了大家一些定位方法,汇总记录一下。一、 存储过程中加入计时代码原始的分析方法,适用于较简单、性能要求不太高的存储过程场景。在怀疑段设置计时点,不断缩小范围。缺点:需要改业务代码 复杂存储过程需要多次或者大量设置,可行性不高 需要再次执行存储过程 计时点设置过多可能影响存储过程本身性能二、 dbms_profiler用于分析Oracle存储过程中的各段代码的时间开销情况,从而快速找到性能...原创 2021-12-06 19:03:46 · 5224 阅读 · 0 评论 -
并行insert出现library cache lock与cursor: pin S wait on X等待问题记录
一、 故障现象与紧急处理开发反馈凌晨5点左右应用出现大量报错ORA-04021: timeout occurred while waiting to lock object,并且集中出现在insert im_message这个表的操作上,其他表不受影响。查看当时等待情况,发现确实有异常的内存等待,而且还可以看到sid=15和1347的会话在相互等待,串成了环。SQL> select sid,status,blocking_session,final_blocking_session,ev.原创 2021-10-09 21:53:38 · 2707 阅读 · 0 评论 -
Oracle压测工具 —— SLOB
一、 简介1. 功能定位SLOB全称叫 Silly Little Oracle Benchmark,是一个在避免应用争用的情况下(锁、latch等),通过SQL模拟IO负载的工具。定位介于Orion、CALIBRATE_IO与全功能事务性压测工具 之间。它是一个shell脚本工具,如果有兴趣有需求,可以按实际改写脚本。SLOB is not a database benchmark. SLOB is an Oracle I/O workload generation tool kit..原创 2021-07-24 23:42:17 · 3577 阅读 · 0 评论 -
Oracle 单进程可用PGA为4G限制导致的ORA-4030报错
一、 问题背景收到开发反馈,系统报表运行过程中报错,一看发现是ORA-4030,内存的问题查看alert日志,发现期间有大量ORA-4030报错,并且主要是pga相关的打开trace文件,可以看到报错进程使用内存接近4G但是查看pga参数设置,会发现设置的上限是20G,完全没到,并且期间总的PGA使用率也不高二、 报错原因MOS搜索发现Doc ID 1325100.1 文档,看到现象也是You are running a PL/SQL package or...原创 2021-07-21 20:26:25 · 2495 阅读 · 3 评论 -
Nginx配置数据库服务器反向代理
一、 目标通过Nginx服务器ip及端口,能访问到Oracle数据库。在应用迁移时将应用连接改到Nginx做中转,或者作为vip,都比较好用。二、nginx安装下载地址http://nginx.org/en/download.html新建组和用户groupadd -g 1004 nginxuseradd -g nginx nginx解压安装包tar xvf nginx-1.18.0.tar.gzcd nginx-1.18.0/安装依赖包yum -y i.原创 2020-02-28 00:00:47 · 5931 阅读 · 0 评论 -
Oracle 常规坏块处理方法
收到业务反馈,查看erp请求时遇到报错,一看居然是坏块。。。-_-||alert日志中也出现相关报错,但还好只有一个坏块一、 有备份的处理方法这一般就非常简单,rman有坏块修复功能Recover datafile 19 block 44;如有必要,可同时修复多个文件多个块Recoverdatafile 19 block 44datafile 19 block 43datafile 18 block 44,66,150;二、 无备份的处理方法因为..原创 2021-07-17 21:03:34 · 3238 阅读 · 3 评论 -
Oracle数据库冷备份与恢复
接着上篇,由于无法搭建dg,业务方让把现在的主库数据克隆一份到之前准备的从库服务器。由于两个服务器目录结构都是一样的,又有足够停机时间,直接停了主库服务将物理文件传到从服务器对应位置,startup即可,真是比其他恢复方法简单很多。对应之前有主从关系的DB,若想将其中一台或几台迁移至其他服务器,也可以使用冷备份恢复的方法,恢复之后仅需修改监听配置即可保留原先的主从关系,不需重新配置。另外也顺便搜集了一下各种情况下的冷备份与恢复,以防万一。一、 冷备份1. 查询物理文件位置--参数文件(原创 2020-03-08 00:27:13 · 2059 阅读 · 0 评论 -
Oracle 审计commit 与 rollbacked 操作
PostgreSQL 实时健康监控 大屏 - 低频指标 - 珍藏级作者digoal日期2018-06-13标签PostgreSQL , 大屏指标 , qps , long query , locks , active , idle in transaction , long idle in transaction , 2PC背景最关键的一些数据库健康指标,趋势监测。...原创 2019-07-14 16:08:48 · 1825 阅读 · 0 评论 -
Oracle replay工具用法
一、 简介Oracle 11g推出的神器,可以抓取生产环境真实负载(sql语句),在目标环境重演,进行对比。在核心生产环境迁移等重大变更前,尽量确定变更带来的影响。核心步骤包括:准备工作、捕获负载、预处理负载、重演负载、对比分析,每步又包含多个子步骤,下面通过测试案例来看。二、 准备工作源与目标库版本要一致,测试中使用19.3版本 源与目标库启用AWR,并设置好采集间隔和保留时间 目标库要有源库中数据,通过dump、rman、dg等同步均可-- 本例中我们只建一个表-- .原创 2020-07-16 16:40:12 · 2873 阅读 · 1 评论 -
Oracle 11gR2 新技术 Cardinality Feedback
有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件。SQL Server也有它的定时任务组件 SQL Server Agent,基于它可以方便的部署各种数据库相关的作业(job)。一、作业历史记录作业的历史记录按时间采用FIFO原则,当累积的作业历史记录达到上限时,就会删除最老的记录。1. 作业历史记录数配置所有作业总计记录条数默认为1000,最多为999999条。单个作业总计记录条数默认为100,最多为99999..转载 2020-12-26 22:34:18 · 2293 阅读 · 0 评论 -
Oracle 透明网关创建到 SQLServer dblink
一、 情景介绍业务中有两个不同的系统,分别使用的是 Oracle 和 SQLServer 数据库,现需要在Oracle 数据库中直接查询SQLServer 数据库的数据。Oracle、网关和 SQL Server 可以分别安装在任意主机上,只要满足网络互通就可以。想要在 Oracle 中直接查询 SQL Server 中的数据,需要完成以下步骤:下载并安装透明网关 配置透明网关 配置 Oracle 数据库的 TNS 配置 配置 SQL Server,使其能够远程连接(若已.转载 2020-12-10 01:24:20 · 2902 阅读 · 1 评论 -
JDBC连接Oracle报错 ORA-01882: timezone region not found
开发反馈jdbc连接oracle时遇到报错java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-01882: timezone region not found。并且只有这一台应用服务器有这个问题,别的都是正常的。网上搜索发现,通常是由于:Oracle数据库与应用的时区不一致导致的。一、 常规解决方案查看下JVM的时区,编写一个简单的CheckTz.javaimport java.uti.原创 2020-12-09 19:32:26 · 7485 阅读 · 0 评论 -
Oracle Database 21c(原20c) 十大新特性一览
Oracle 已经在官网上线了关于 Oracle Database 21c 的在线文档,这让所有关于 Oracle 数据库的用户心中一惊,转眼 2020年已经接近尾声,Oracle 数据库又将进入下一个版本周期。然而我们必须和大家进一步梳理一下,Oracle的版本变化,并且明确:Oracle 21c 其实就相当于 Oracle 20c,因为 20c从未进入公众可用的版本发布。在官方的版本计划中,20c 已经被移出,并做出如下声明:考虑到2020年我们的客户将面临前所未有的经济和业务中断,我们决定不转载 2020-12-09 19:13:54 · 4863 阅读 · 1 评论 -
聊聊分区Partition——我们为什么要分区
原文一共有三篇(参考文末链接),概括了一下作者的主要观点整理成一篇,有删改。一、 分区的优势转载 2020-12-05 00:48:10 · 3210 阅读 · 1 评论 -
oracle导出千万级数据为csv格式
当数据量小时(20万行内),plsqldev、sqlplus的spool都能比较方便进行csv导出,但是当数据量到百万千万级,这两个方法非常慢而且可能中途客户端就崩溃,需要使用其他方法。一、 sqluldr2工具1. 优缺点优点:高效;支持功能较多;用户只需有对应表查询权限;可以在从库执行 缺点:目前已没有再维护,只能找到基于oracle 10.2的版本(高版本目前还可以用);密码必须要跟在用户名后面输,安全性不足2. 下载安装百度云链接:https://pan.baidu.com.原创 2020-12-01 17:40:49 · 12721 阅读 · 0 评论 -
设置MEMORY_MAX_TARGET为0导致 ORA-00843 ORA-00849 报错
一、 问题背景想禁用掉oracle的AMM特性,在修改内存参数时执行了 alter system setMEMORY_MAX_TARGET=0 scope=spfile; 在设置时没有报错,但在启动数据库时遇到报错:ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account ORA-00849: SGA_TARGET 10737418240 cannot be set to more than MEMORY_MAX_TARGET..原创 2020-11-13 23:20:28 · 3342 阅读 · 0 评论 -
Oracle 集群的自启动,OLR与套接字文件
当Oracle集群安装部署完成后,默认会处于启动的状态,当服务器重启之后集群也会被自动启动,那么,Oracle集群是如何来实现自启动的呢?一、集群的自启动1. 自启动脚本Oracle 10G:cat/etc/inittabh1:35:respawn:/etc/init.d/init.evmdrun>/dev/null2>&1</dev/nullh2:35:respawn:/etc/init.d/init.cssdfatal>/dev/n...转载 2020-10-24 20:28:17 · 2765 阅读 · 1 评论 -
阿里云 DTS迁移自建Oracle优缺点及注意事项记录
经过三个多星期花式踩坑终于迁移成功,记录下DTS优点和迁移过程中遇到的各种问题。一、 注意事项迁移表必须有主键或唯一索引,否则DTS不保证数据一致 支持以DG库作为DTS源,主从库均需开启PK,UK补充日志,只开DG库的会无法进行增量同步 注意源和目标库字符集,如果不一致迁移后可能出现乱码或遇到字段长度报错等 若要同步表比较大,须加大主从库undo_retention参数及undo表空间,在较空闲时操作,否则可能遇到ora-1555报错 根据阿里云回复DTS任务重启后大约会从中断前5分.原创 2020-10-20 12:26:39 · 14702 阅读 · 0 评论 -
Oracle 嵌套事务 VS 自治事务
一、概念嵌套事务(Nested Transaction):指在主事务(MT)中嵌套的一个或多个子事务,并且子事务与主事务相互影响。自治事务(Autonomous Transaction):由主事务调用但又独立于主事务,子事务对commit和rollback进行自治管理,不影响主事务执行效果。常用于写入LOG或TRACE信息便于查找错误。二、嵌套事务1.预备Create TablecreatetableTEST_POLICY(POLICY_CODE...原创 2020-09-25 00:05:17 · 2191 阅读 · 0 评论 -
Oracle DG —— 可更新的从库 Snapshot Standby Database
一、 简介1. 特点我们知道,无论是Physical还是Logical Standby,都只能从主库同步数据,从库都是只读的,而Snapshot Standby的出现改变了这一点。在Oracle官方文档中,对这个特性的解释如下:A snapshot standby database is a fully updatable standby database. A snapshotstandby database receives and archives, but does not appl.原创 2020-09-14 01:42:15 · 3746 阅读 · 0 评论 -
会长期锁表吗?Oracle add column default 在各版本的优化
Oracle add column default 在各版本的优化原创 2023-11-29 14:55:43 · 4681 阅读 · 0 评论 -
Oracle NCHAR与NVARCHAR2 最大字符数和最大字节数
网上搜索感觉好多文章说的不清不楚,根据官方文档和实验测试整理一下常见问题以及相关结论。一、 含义及用途NCHAR和NVARCHAR2都是Unicode数据类型,存储Unicode字符数据。NCHAR和NVARCHAR2数据类型的对应的国家字符集(NLS_NCHAR_CHARACTERSET)只能是AL16UTF16或者UTF8。NCHAR字段存储对应于国家字符集固定长度的字符串 NVARCHAR2则存储可变长度字符串二、 最大字符长度我们知道,对于char和varchar类型..原创 2020-09-11 16:28:48 · 9326 阅读 · 0 评论 -
Oracle DG 与 坏块自动修复(ABCR)
一、 简介在Oracle11.2版本之后,若搭建实时应用日志的物理备库,那么在主库数据文件少量坏块的情况下,可以利用ABCR技术快速修复坏块。Starting in Oracle Database 11g Release 2 (11.2), the primary database automatically attempts to repair the corrupted block in real time by fetching a good version of the same bloc转载 2020-09-05 15:22:16 · 2559 阅读 · 0 评论 -
通过 RMAN备份恢复搭建Oracle DG
平时都是通过RMAN DUPLICATE来搭建dg,今天遇到了问题,只能改换方法。一、 奇怪的问题执行RMAN DUPLICATE时发现数据文件传输十分之慢,在约250M/s的磁盘上传输速度居然只有10M/s左右。检查存储、网络、服务器均无异常。查看源库有remote DB file write等待,搜索发现MOS有相关文档RMAN Hangs When Creating Standby DB As Duplicate From Active Primary (文档 ID 2512075.1) 。.原创 2020-09-04 22:09:23 · 4111 阅读 · 1 评论 -
Oracle RWP大开眼界系列笔记
发现一个非常好的公益课,是Oracle RWP团队介绍性能优化的常用技巧,视频链接https://space.bilibili.com/28628293/video?tid=0&page=1&keyword=&order=pubdate每个连接是一个server process连接池最大值是不是应该越大越好?为什么?这只考虑了应用端连接池连接数最大288,thinktime=10s连接池连接数最小288最大6000,think...原创 2020-08-29 01:36:01 · 2171 阅读 · 0 评论