【RMAN】RMAN备份至ASM
一、问题描述 此次,我们希望将RMAN备份出来的文件放到ASM当中存储,这个操作不太难,就是正常的RMAN脚本,将format输出到正确的磁盘组就好。接下来我们实践一下。二、实践1.在磁盘组中建立目录[grid@sam1 ~]$ asmcmd -p ASMCMD [+] >&n
【DATAPUMP】Expdp 备份到ASM之 ORA-39070
一、问题描述 需求要使用expdp备份数据,检查系统空间很小,不够放备份文件。直接给系统加空间不就得了,可是这样一来就要耽误时间,还要联系一大堆人员。此时ASM空间是很充足的,可不可以使用呢。接着就有以下的操作了。二、实验1.数据库建立directorySYS@PROD1 > create dire
【ERROR】ORA-27102: out of memory 解决方法
一、问题描述 oracle数据库在修改SGA后,启动时报错ORA-27102: out of memory,这很显然表示超出了内存范围,但是机器内存是够的,这是why? 通过一系统search,最终发现是操作系统参数shmall设置过小影响了,shmall 参数是全部允许使用的共享内存大小。下面实验一下,看看小小参数的魅力。二、实验1
【ERROR】JOB执行DDL语句报错ORA-06550 & PLS-00103
一、问题描述 需求要通过JOB定时执行DDL语句(purge recyclbin),来实现清空回收站。简单的问题,由于语法不了解所以报错:ORA-06550 & PLS-00103。让我们来看一下如何在JOB中执行DDL语句的正确语法。 二、测试1.建立JOBBEGIN  
【ERROR】OPatch failed with error code 73
一、问题描述 今天要给Oracle数据库软件打补丁,操作过程中报错 “OPatch failed with error code 73” ,通过具体报错信息后得知是libclntsh.so.11.1文件被占用了,通过一路追查后得知某程序占用后,停掉相应的程序后打补丁通过。二、实验1.打补丁(未成功)[oracle@suzzy 2773
Oracle 静默安装-单机
一、前期准备1.硬件检查cat /etc/issueuname -r (版本)grep MemTotal /proc/meminfo (内存大小)grep SwapTotal /proc/meminfo (交换区大小)grep "model name" /proc/cpuinfo (CPU信息)free ...
【Partition table】分区表删除分区数据时,导致索引失效
一、描述 今天有个小任务就是要删除些数据,哈哈,先自己小开心一下。因为要删除的数据表是我之前转换成的分区表。这个分区表是按照里面有个创建时间字段来分区的,1个季度为1个分区。所以我现在要将2017年7月1日之前的数据删除(数据量约1000万),可以直接删除表分区数据就好。如果要是...
Oracle Function -- wmsys.wm_concat 合并行记录函数
一、描述 小需求又来了,现在需要将某表上的记录查询出来并且要求连接使用。通过查找后发现Oracle有个内部函数 wm_concat,这个函数在wmsys用户下。使用时那是当然的容易。一般人我都不告诉他(开个小玩笑)。二、实验1.创建实验表SAM@orcl > create table t1 ...
Oracle通过Sqlplus结合Shell脚本方式生成Excel文件
一、问题描述 今天接到一个任务,是要求每天通过SQL脚本生成excel文件,并且自动发送到相关人员邮箱。这个需求我还真是没有做过,之前只做过通过SQL脚本生成为HTML网页文件。于是乎,我又开始的学习过程,如今的Internet时代,解决问题就是easy,很快就找到了eygle的博客(使用SQL*PL...
【DATAPUMP】导出时使用exclude排除表
一、问题描述 今天有个小小需求,要从生产数据库上导数据到测试库,问题是有张大表(30G)不需要导出到测试环境,所以要使用到expdp中’exclude’参数。但是在使用过程中还是碰到一点点question。二、操作过程1.根据expdp -help 信息中得知exclude参数的for example如下...
无法set autotrace on 报错SP2-0618,SP2-0611
一、问题说明 业务用户想使用set autotrace on直接来查看SQL的执行计划时,报错SP2-0618,SP2-0611,问题是缺少对应权限。 二、问题重现与处理 1.问题重现DZWJ_USER@orcl1 > set autot on SP2-0618: Cannot find the Session Identifier. C...
【ERROR】ORA-14452: ... temporary table already in use
一、问题描述 通常我们在删除临时表时会遇到的ORA-14452报错问题,首先我们先了解一下什么是临时表(temporary table),顾名思义就是临时使用,使用完自动清理。按要清理条件分为两种:1.事务 2.会话。而且临时表中存入的数据对当前会话是私有的,每个会话只能读取使用自己的数据。...
【Sysaux】sysaux表空间清理,小心有坑
一、问题描述 SYSAUX表空间做为SYSTEM表空间的辅助表空间,主要存放EM相关的内容以及表统计信息,AWR快照,审计信息等,而如果SYSAUX表空间在默认条件下你如果不做任何配置,随着时间的推移,会膨胀的越来越大。经过几次的不断扩展增加SYSAUX表空间,目前已经24G以上了,所以是...
【LOB】clob 字段中字符串如何替换
一、场景描述 业务需求,现在有张业务表的一个字段为clob类型,要将该字段中部分内容的日期'2016年04月22日’修改为'2016年04月11日’,该替换需要用到replace参数, 注意:oracle 10g 版本以上可使用regexp_replace参数。让我们实验来用用看。二、实验1.创建测试表及数据...
SQL语句中特殊字符“&”如何转义
一、问题描述 在SQL语句中“&”符是特殊字符,代表环境变量的输入,比如(select '123&a' from dual; )此处的&a就好比请给变量a赋值,如果我们就是想输出字符串&a这个字符呢,下面的实验中将会给出答案。其实大家会说用转义符就好了,但是这个字符有些特殊,用不了转义,不信可以自...
利用DBMS_SCHEDULER进行JOB的创建与使用
一、DBMS_SCHEDULER说明及介绍 DBMS_SCHEDULER包是提供调度函数和存储过程的集合,并且能被PL/SQL程序所调度。为何学习这个包呢,原因是之前我们在使用JOB制定定时任务时,通常使用DBMS_JOB包,该包使用过程中,指定时间参数时较为麻烦,所以从10G开始,ORACLE提供了新的包DBMS_SCHED...
Oracle字符串中前后包含空格处理方法
一、问题描述 今天碰到个问题,有个列中的字段前后都有不同数量的空格,开发人员要求去掉这些空格。其实ORACLE早就替我们准备好trim函数来处理这样的问题。让我们实验一下,学习记住trim这个小东东。二、实验1.创建测试数据点击(此处)折叠或打开SAM@OC...
【RMAN】增量备份学习与实践
一、基础知识 大家对RMAN我想都有不少的了解,此处只想对增量备份进行一下学习与实践,也是因为工作中确实有这样的需求存在。增量备份分为两种:Differential 差异,Cumulative 累积。如果不指明增量备份参数,默认的增量备份为Differential差异。常规备份方案:1周1次0级备份,其余为差异...
【ERROR】ORA-00054:resource busy and acquire with NOWAIT ...
一、故障描述: 早晨接到个开发人员的问题,truncat table T_USER_LABEL表时,报错: ORA-00054:resource busy and acquire with NOWAIT specified or timeout expired,如下图。按照字面意思,是资源忙,被占用了。处理思路:查到谁在占用资源,并且杀掉占用该资源的会话就可以了。有...
AWR生成快照间隔调整
一、描述 测试环境经常会对数据库进行压力测试,在这个测试过程中,有稳定性,也有突发性,因为我对测试方面不是很专业,所以自己理解成这个样子,要在短时间内高并发的测试时,需要调整ORACLE数据库AWR生成快照的间隔才可以生成短时间内的AWR报告,使用DBMS_WORKLOAD_REPOSITORY包...