Oracle Job 迁移小记
之前在做数据迁移的时候发现有用户的job没有迁移成功,原因是job号冲突导致,今天写了个sql,用于job的迁移.1.对于job的导出,可使用dbms_job.user_export,需要使用job的拥有者进行登录,执行后该用户的job都以DDL的行式列出来set lin 300set serveroutput on size 1000000 format wrappedv_jobno varcha...
如何以最快方式干净的关闭数据库?
在有限的停机时间窗口内如果遇到shutdown长时间无反应的情况,这是比较闹心的。如何以最快的方式干净的关闭数据库呢??
Oracle用户密码中含有特殊字符的登录办法
在日常工作中如果遇到密码含有特殊字符的情况,使用sqlplus,expdp等工具进行登陆时可能会遇到各种麻烦。比如下面的:?oracle@lzstix0itest12:~> sqlplus user1/"a@(^_^)p!"-bash: !": event not found??SQL> conn user1/"a@(^_^)p!"ERROR:ORA-12560: TNS:protocol adapter error
Oracel 12c Alert日志中的Creating new log segment
在对数据库进行Daily Check的时候发现Alert日志中出现Creating new log segment这样一大段信息,咋一看还以为数据库意外重启了,仔细看看又好象一切正常,只是在正常的日志切换期间插入了一些数据库的参数和补丁相关的信息。不过这些信息意味着什么呢?如果是正常的,那么在以前的版本中怎么都没有出现过呢?
测试RMAN的backup archivelog all delete input会不会删除还未传输到备库的归档日志
客户的一套数据库(2 nodes 11.2.0.4 RAC + Physical Standby),primary库的RMAN配置中没有配置归档日志删除策略。我以前一直有个担心,这样会不会把未被applied的归档给误删了,于是做了一个小试验,试验过程不贴了,直接贴结果吧。第一种情况,配置了归档删除策略CONFIGURE ARCHIVELOG DELETION POLICY...
关于数据文件autoextend on的一点记录
有个应用联系我说他们在进行业务数据导入的时候提示表空间不足,于是他们问我该表空间是自动扩展的,为什么还会提示空间不足呢?对于这个问题我自己也有2个疑问,第一个是自动扩展为什么还会提示空间不足呢?第二个是autoextend on 默认的next值是多少?
12c 新特性之大表自动缓存 Automatic Big Table Caching
Oracle 12c的大表自动缓存特性可以使较大的表自动缓存到buffer cache中,这极大增强了以往对大表扫描往往消耗过多物理IO的不足。在RAC环境下,这个特性仅仅支持并行查询,在单实例环境下这个特性同时支持并行查询和串行查询。大表缓存主要是为提高数据仓库性能而设计的,不过我们仍然可以在混合型的应用中使用它以提高性能。大表自动缓存使用基于对象热度的算法来跟踪大表的使用情况,Oracle不会缓存很小的表。想要启用大表缓存特性,必须设置DB_BIG_TABLE_CACHE_PERCENT_TARGET参数为非零值。另外,如果是在RAC环境下,参数PARALLEL_DEGREE_POLICY值必须为AUTO或ADAPTIVE才能启用该特性。在RAC环境下,一个大表可能会被分区缓存至所有实例之上,如果无法完全缓存大表的所有数据,那么经常访问的表将会被缓存,余下的数据将通过直接路径读的方式被读取。
12c 新特性之 Limiting the Size of the Program Global Area
在自动PGA管理模式下,Oracle使用动态参数PGA_ARRGREATE_TARGET来控制PGA中Work Areas大小的分配。不过,PGA内存的分配是可以超过PGA_ARRGREATE_TARGET设置的值的,原因如下:1.参数PGA_ARRGREATE_TARGET实际上只作为一个目标,而不是实际的限制。2.参数PGA_ARRGREATE_TARGET仅仅能够限制那些可调的内存(work areas)。
11gR2 RAC+DG打PSU补丁的简要步骤
关于打PSU补丁,我想最好的文档一定是补丁程序里自带的ReadMe。这里我自己总结了些简要的步骤,供以后打PSU时参考。1.根据下面的两篇文档下载最新的PSU补丁Oracle 最新补丁参考文档:Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)E...
Oracle Data Redaction实验记录
Oracle从11.2.0.4以后新增了数据校订作为一个新的安全特性。Oracle Data Redaction(Oracle数据校订),它提供了一个有效且易于实现的方法来屏蔽敏感信息。该工具能够实时地从数据校订得出的查询结果会返回到它们原来的应用程序。当你想要隐藏一个字段的所有值或部分值,但同时还要为用户提供他们需要的信息的时候,Data Redaction便有了用武之地。诸如社会保险号,信用卡号和客户端IP地址之类的个人标识未经许可是不能发布的。通过允许你隐藏个人信息并同时仍允许访问关键文件,Data Redaction将帮助你遵循法规和行业标准,同时保证不中断业务的正常流程。
Oracle 12c Cloud Control中的数据掩码(Data Masking)功能实验日志
Oracle Data Masking and Subsetting Pack for Oracle Enterprise Manager helps organizations comply with data privacy and protection mandates that restrict the use of actual customer data. With Oracle Data Masking and Subsetting Pack, sensitive information such as credit card or social security numbers can be replaced with realistic values, allowing production data to be safely used for nonproduction purposes.
oracle 12c 使用RMAN的传输表空间功能在PDB之间迁移数据
oracle 12c 使用RMAN的传输表空间功能在PDB之间迁移数据记录1.备份PDB数据库ORA12CPD的USERS表空间,如下:oracle@lzstix0itest12:~> sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 6 15:17:23 2016Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to:Oracle D...
Oracle 12c PDB基于时间点的不完全恢复记录
Oracle 12c中当对指定的PDB进行不完全恢复的时候,其它的PDBS是完全不受影响的,并且在恢复完成后老的PDB备份仍然有效,我们也不用为这个PDB创建新的备份。在实验的时候我遇到了一个小问题,就是在进行recover操作时会启动辅助实例,辅助实例则会使用到fast recovery area,如果fast recovery area的空间不够了,recover时会报错。后来手动使用AUXILIARY DESTINATION子句来为辅助实例指定一个临时的位置,就没有问题了。
Oracle 12c Recovering tables and table partitions 表或分区级别的恢复
从Oracle 12c开始,可以使用RMAN的RECOVER TABLE命令来现实表或表分区级别的不完全恢复。 Recover Table在下面的场景中可能被用到: 1.你只想恢复数据库中的某几张表,但发现使用Restore Database或Tablespace的代价很高而且效率很低。 2.对于用户误删除等逻辑方面的错误(drop or truncate),可以使用Recover Table进行恢复。 3.对于undo内容已被覆盖Flashback Table无法完成恢复的情况下,可以使用Recover Table进行恢复。
Physical Standby上开启flashback database实验日志
生产环境中,出于对性能和空间的考虑,大多数生产数据库都没有开启flashback database功能,本文记录了在物理备库上开启flashback database的整个过程,这样可以在不影响主库性能的前提下针对用户误操作的一些数据库逻辑错误进行挽回。
ORACLE 10G下LOB_DATA字段类型占满临时表空间问题
??有一套10.2.0.4两节点RAC数据库,大概每隔一星期左右,后台alert就会报临时表空间不足的错误,通过查询发现占用监时表空间的sql是在执行一个包体,该包体已被加密,并且之前该库的临时表空间已经扩展过2次,每次30G,基本上可以说,既使再扩展的话还是有可能造成临时表空间不足的情况,带着这个问题,我们发现占用大量监时表空间的数据类型为LOB_DATA和LOB_INDEX,每个会话占用的临时段大小不一,最大的可能占用到几十G以上,并且还会持续增长,这说明会话占用的临时段一直不释放,积累造成临时表空间满。通过网上搜索及查询MOS文档,觉得可能是ORCLE的bug(Bug 5723140 – Temp LOB space not released after commit [ID 5723140.8]),从10.2.0.4开始虽然已经修复了该bug,但是默认情况下:为了更加高效的利用temp,在session未断开前,不自动释放temp 空间,可以通过设置event 60025来强制会话在commit之后就立即释放临时段。
Oracle 12c 新特性 Active Data Guard Far Sync
Active Data Guard Far Sync 是Oracle 12c 的新功能(也称为Far Sync Standby),Far Sync 功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync 实例,主库(Primary Database) 同步(synchronous)传输redo 到Far Sync 实例,然后Far Sync 实例再将redo 异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync 实例只有密码文件,init参数文件和控制文件,而没有数据文件。
11g内存管理新特性的internal表现
您一定很困惑Oracle在unix平台上是如何对共享的sga内存空间与私有的pga内存空间进行切换的?这意味着Oracle需要经常释放sga中的部分内存以便允许pga去使用它们.传统的sys V 使用的共享内存shm接口不具备如此的灵活性.我们来看看Oracle是如何做到的?
ASM下数据文件迁移至不同磁盘组小记
有的时候我们需要迁移ASM下的数据文件到其他ASM磁盘组,前几天刚迁移了3T左右的数据,个人认为纯属体力工作,不过还是把步骤记录下来,以后有这样的工作直接复制粘贴就好了。我的方法是利用rman的copy命令,所以必须得在归档方式下进行,以下为具体实施步骤:
Oracle 11g业务用户更改密码后产生大量library cache lock等待
在我的一个两节点RAC数据库上,alert日志中平均每3秒左右就会产生一条ORA-3136连接超时错误,登录数据库之后,检查会话的等待事件,发现很多会话的event为library cache lock,并且发现由于library cache lock造成锁阻塞的会话也很多,从AWR报告的Time Model Statistics部分可以看到,connection management call 消耗的时间占整个DB Time的99.95%,记得以前好象看到过由于11g的新特性密码错误可能造成大量library cache lock的文章,于是上MOS上也查了查相关的文档,结合dba_audit_trail视图发现,从4月7日起到现在,平均每天约有九千多次的登录失败记录,那么是不是4月7日对PAMPAS_W用户更改密码了呢? 通过查询sys.user$也得到了验证,用户在4月7日9点31分更改过密码。到此问题查清了,解决方案也很简单,通知负责应用的工程师来改正密码或者在数据库层面也可通过设置28401事件来屏蔽密码错误验证延迟功能。 oracle采用的这种密码延