X

Oracle数据库技术支持通讯2018年2月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2018年2月版: 统计信息顾问 12cR2… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Friday, March 16, 2018 | 技术支持通讯 | Read More

又有新的数据库中文文档添加到 My Oracle Support 中了! (2018年3月)

最新翻译的文档列表: Note 2364820.1 使用 DBUA 升级数据库到 Database 12c 版本2(12.2)的完整核对清单 Note 2364834.1 datapatch -verbose 由于错误:" Patch xxxxxx: Archived Patch Directory Is Empty" 失败 Note 2364833.1 自动停止数据库(dbshut)在 OL 7 的 systemd 中不能运行 Note 2365616.1 SRDC - ORA-600 / ORA-7445: 10g 及以下版本的数据收集的检查清单 Note 2365571.1 SRDC - ORA-3137: 数据收集的检查清单 Note 2365615.1 SRDC - 数据泵导入(IMPDP)性能问题的诊断收集 Note 2365565.1 SRDC - SQL * Loader问题的诊断收集 Note 2365564.1 SRDC - DBVERIFY 问题的诊断收集 Note 2365576.1 SRDC -...

Monday, March 5, 2018 | 技术支持通讯 | Read More

Oracle数据库技术支持通讯2017年12月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年12月版: 12c 新的 Scheduler 特性 … Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Wednesday, December 27, 2017 | 技术支持通讯 | Read More

ora-119 错误的出现场景

本文测试一个不太常见的错误 ora-119. 错误解释是: "invalid specification for system parameter %s" 这个所谓的 ‘system parameter' 目前常见情况是指某种需要从DB外部获得解析的配置。 常见的如 域名解析 不存在,TNS name 解析不存在 等情况。 出现场景举例如下: (主机名/IP地址为隐藏替换值 ,非实际值,但是不影响结果) STEP 1. 确认名称解析初始配置。 这里没有DNS 服务干预,名称解析是通过/etc/hosts 文件。 [root@nascds10 etc]# cat hosts                   <<<<============= # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1       localhost.localdomain localhost::1     ...

Monday, December 18, 2017 | 测试案例 | Read More

12c新特性 在线操作数据文件

我们都知道,oracle pre-12c之前,若是想要把一个数据文件改名或者迁移,必须在归档模式下先把这个数据文件offline之后,然后进行OS上的copy或者rename 操作,最后在sqlplus里面进行alter database rename file x to Y;如果不是archivelog模式在offline数据文件的时候就会遇到ORA-01145   SQL> alter database datafile 8 offline; alter database datafile 8 offline * ERROR at line 1: ORA-01145: offline immediate disallowed unless media recovery enabled     12c oracle 增强了这个功能,我们可以在线进行数据文件的改名和迁移,而无需offline 数据文件,甚至都可以不打开归档的情况下进行操作,这无疑oracle在非停机运维的能力上又增强了。   下面是改名的一个操作输出,当然移动路径也可以用这个办法: SQL>...

Sunday, December 17, 2017 | 新特性 | Read More

segment header corruption的处理

  我们都知道,oracle从9iR2开始使用local managed tablespace来管理extent的分配情况,以替代原有用uet$/fet$表来管理的弊端,新特性是通过在 每个数据文件的file header block即block1后的1M的block中存放一个bitmap,每个bit代表一个extent,1 表示已经分配,0 表示未分配。 对于已经分配出去的extent,oracle都放在每个段内部进行自我管理,这个就是常说的ASSM,其中段的第一个extent的前三个block分别是一级块,二级块和三级块 我们称呼为L1,L2,L3,其中L3是最顶层管理块,有点类似索引的root block,L1是最底层块,类似索引的leaf block,直接管理datablock分配使用情况,L2是管理L1的使用情况,类似索引中的分支branch块,其中L3就是段头,segment header,那么一但这个segment header出现corruption会出现什么情况呢,如何处理呢? 下面我们来给您演示一下:     首先我们创建一个表 create...

Sunday, December 17, 2017 | 技术共享 | Read More

几种常见重新硬解析的原因

       经常有客户提SR说某个SQL的执行计划变差了,导致出现了性能问题,进而就问为啥解析出了新的 执行计划。首先可以肯定突然出现了新的执行计划表明sql进行了重新硬解析(注意重新硬解析不一定 产生新的执行计划),那么为啥好好的sql需要重新硬解析呢?今天我们就列举几种常见的原因:   1.自动收集统计信息  为了保证sql的最佳执行性能,oracle需要找到一个最优的执行计划,基于CBO模式的优化器必须 要知道最新的统计信息,例如条数,block数量,某个字段的选择率等,所以oracle每天凌晨都会运行一 个自动收集统计信息的job,来收集那些变化超过10%的表的最新统计信息,收集完成之后,理所当然 要对新来的sql进行使用,所以就需要进行硬解析。oracle 收集某个表统计信息后默认是不会立即invalid 所有相关的cursor,因为这样做太暴力,会引发硬解析相关的性能问题,所以巧妙的设计了一下,当某个相关sql执行的时候发现一个依赖对象最近收集过统计信息,便随机的打个一个时间戳,这个时间戳是 5个小时内某个时间戳,等到下次sql解析的时候若是发现了这个...

Saturday, December 16, 2017 | 技术共享 | Read More

又有新的数据库中文文档添加到 My Oracle Support 中了! (2017年12月)

最新翻译的文档列表: Note 2331569.1    故障排除指南 ORA-3136:WARNING Inbound Connection Timed Out Note 2331135.1    升级到 12c 后出现 ORA-28040: No Matching Authentication Protocol Note 2331572.1    如何生成 AWR 报告和 AWR 基线 Note 2331567.1    如何收集 'SYS' 用户拥有的对象和 'Fixed' 对象的统计信息 Note 2331144.1    诊断 ’library cache: mutex X’ 等待 Note 2331566.1    SQL 自动调优以及 SQL Profile Note 2331575.1    故障排除:"enq: TX - index contention" Note 2331842.1    在物理 standby 数据库上如何解决 MRP 进程卡住的问题? Note 2331528.1    Opatch:从Opatch...

Thursday, December 14, 2017 | 技术支持通讯 | Read More

如何手工运行Segment Advisor

针对特定的表、索引或表空间,可以手工的运行Segment Advisor,从而检查可以释放多少空间。 1.测试表定义如下: SQL> create table test.segtest (id char(800),id1 char(800),id2 char(800),id3 char(800),id4 char(800),id5 char(800),id6 char(800),id7 char(800),id8 char(800),id9 char(800),id10 char(800)) tablespace testsegment; 2. 表使用的空间情况如下: SQL>select owner,table_name,round((blocks*8),2)||' kb' "TABLE SIZE",round((num_rows*avg_row_len/1024),2)||' kb' "ACTUAL DATA"  from dba_tables where table_name='SEGTEST' and owner='SEGTEST';OWNER...

Thursday, December 14, 2017 | Read More

EXPDP如何导出两表关联后的数据

以SCOTT用户的EMP表为例,说明如何使用QUERY选项导出两个表关联后的数据 1. 检查EMP表的empno值 SQL> select empno from emp order by 1;      EMPNO ----------       7369       7499       7521       7566       7654       7698       7782       7788       7839       7844       7876       7900       7902       7934 14 rows selected. SQL> 2.创建测试表TEST01,并插入部分数据: SQL>create table test01 (name varchar2(30),empno number(8)); SQL> insert into test01 values ('test1',7788); insert into test01 values ('test2',7900);insert into...

Monday, December 11, 2017 | Read More

如何使用coe_load_sql_profile.sql来固定sql profile

SQLT工具包含一个脚本,名字是coe_load_sql_profile.sql,下面以用户SCOTT的EMP表为例,说明如何使用该脚本固定sql profile. 1. SQL> -- 对emp的列ename创建一个索引 SQL> create index i_emp_ename on scott.emp(ename); 索引已创建。 SQL> --收集统计信息 SQL> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'EMP') PL/SQL 过程已成功完成。 2.运行原始的SQL语句 SQL> select ename from scott.emp where ename='MILLER';  ENAME ---------- MILLER 执行计划如下: ------------------------------- SQL_ID  329d885bxvrcr           -------------------------------Plan hash...

Tuesday, December 5, 2017 | Read More

Scheduler job的日志记录时间与job运行时间不一致

最近遇到几个客户反映,Scheduler job的日志记录时间与job运行时间不一致,自动统计任务的window打开时间与job执行的时间不一致等问题。 例如下面的情况, SQL>select LOG_DATE, OWNER,JOB_NAME , STATUS , REQ_START_DATE,ACTUAL_START_DATE, RUN_DURATION from dba_scheduler_job_run_details; LOG_DATE OWNER JOB_NAME  STATUS REQ_START_DATE ACTUAL_START_DATE  RUN_DURATION 2017-09-26 20:01:07.156536 +08:00 HFMMS CW_UTIL_JOB SUCCEEDED 2017-09-26 05:01:01.300000 -07:00 2017-09-26 05:01:04.316769 -07:00 +000 00:00:03   从上述结果可以发现,日志记录的时间是2017-09-26...

Friday, December 1, 2017 | 方博客 - 数据库产品技术支持 | Read More

dbms_xplan.display_cursor的一点小问题分享

工具包dbms_xplan.display_cursor在诊断SQL性能方面是非常有用的,特别是与Statistics_level=all;一起使用同时制定Format为allstats last是会看到很多有用的信息,但是今天遇到一个问题,和大家分享一下。就是Statistics_level=all加dbms_xplan.display_cursor(null,null,'allstats last')显示的信息不完整。让我们看下如下的测试案例,问题与答案都一目了然了。 sqlplus / as sysdba SQL> create table test as select * from dba_objects; Table created. SQL>  alter session set Statistics_level=all; SQL> set linesize 500 SQL>  select count(*) from test;<<<<normal SQL      49981 SQL>  select *...

Thursday, November 30, 2017 | Read More

12.2 如何单为PDB创建AWR报告

只有12.2才有这个功能。 http://docs.oracle.com/database/122/TGDBA/gathering-database-statistics.htm#TGDBA-GUID-D64AEB01-18FF-47EF-BB5C-A0611117D180 步骤如下: 1)设置PDB的awr_pdb_autoflush_enabled=true: alter session set container=PDB1; alter system set awr_pdb_autoflush_enabled=true; 2)设置AWR snpashot时间间隔为1小时: select * from cdb_hist_wr_control; DBID    SNAP_INTERVAL    RETENTION    TOPNSQL    CON_ID 2580889417    +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT    3 execute dbms_workload_repository.mo...

Thursday, November 30, 2017 | 技术共享 | Read More

ORACLE数据库中如何插入生僻字

很多客户的数据库的字符集是ZHS16GBK ,但是有些特殊的生僻字在这个字符集里并不包括,下面就以䶮㼆为例,说明如何把这2个字符插入到数据库。 1.说明: 数据库的nls_characterset是ZHS16GBK, NLS_NCHAR_CHARACTERSET是AL16UTF16.  插入数据使用的工具是sqldeveloper,对应的版本是4.2.0.17.089 2.查询这2个字的Unicode编码 互联网上有很多Unicode相关的网站,通过相关网站可以查找到这2个字对应的Unicode编码: 䶮 Unicode编码:4DAE 㼆 Unicode编码:3F06 3.创建测试表 create table test(name nvarchar2(30)); 4.插入数据 SQL>insert into test values(N'䶮㼆'); --必须加字母"N"作为前缀,否则插入的数据依然乱码! SQL>commit; 5.验证数据 SQL> select name,dump(name,1016) b from test; NAME       B---...

Monday, November 27, 2017 | Read More

Oracle数据库技术支持通讯2017年11月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年11月版: Oracle Trace File Analyzer 版本 12.2.1.3.0 已发布… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Saturday, November 25, 2017 | 技术支持通讯 | Read More

使用SPM的SQL会引发library cache: mutex X和library cache lock的等待

提到数据库发生的library cache: mutex X和library cache lock,同时通过library cache lock的P3计算出对应的NAMESPACE为SQL AREA BUILD。到这里我们很容易想到Failure Parse。这里介绍一个Bug也会导致该问题Bug 16400122  Spikes in library cache mutex contention for SQL using SQL Plan Baseline。 这里对该bug做简单的介绍:该Bug的引发是由于SQL使用了SPM,而SPM需要定期更新Last_executed 字段,而更新改字段时就会把使用该SPM的游标Invalid,如果这时有大量的并发进程执行该SQL,可能会引发性能问题。Last_executed 字段并不是SQL每次执行都会更新的,因为这样会增加递归DML的数量,从而增加数据库负载。那么Last_executed 是怎么更新的呢?当SQL hardparse后,create time会作为一个属性保存在该游标...

Tuesday, November 14, 2017 | Read More

分区表增量搜集信息的引入摘要(synopses)的清理

1,首先分区表的增量统计信息搜集是11G引入的新特性,这样可以提高分区表搜集统计信息的效率。即:对于那些没有变化的分区,就不再进行扫描,而在实现该功能时引入摘要(synopses)来辅助完成(计算global信息)。 2,摘要(synopses)信息会逐渐增长从而占用大量的SYSAUX空间,这时最想的就是删除这些数据,但是往往没那么简单能删掉,这里的信息是否伴随统计信息删除而同时删除呢?请看如下测试案例,就会真相大白: 1,create test table create table t partition by list(x) ( partition p1 values (1) , partition p2 values (2) ) as select a.*, mod(rownum,2)+1 as x, (mod(rownum,2)+1)*5 as order_status from all_objects a; 2,set the incremental and gather table stats begindbms_stats.set_t...

Monday, November 13, 2017 | Read More

v$session - 你看到的event真的是session当前的等待事件么?

当数据库出现性能问题的时候,几乎所有的DBA都会通过v$session来查询数据库的等待。但是,您可曾想过,您用于查询session等待的SQL是正确的么?您看到的event可能并不是session当前的等待,下面举例来说明: 如下的一段简单的PL/SQL Block代码是一个死循环,很显然,它会持续的ON CPU begin   while true loop     null;   end loop; end; / 下面我们用以上代码做一个测试。 --开启一个sqlplus,先确定当前sesison的sid和spid select s.sid,s.serial#,p.spid from v$session s, v$process p, (select * from v$mystat where rownum=1) ms where s.paddr=p.addr and s.sid=ms.sid;        SID    SERIAL# SPID ---------- ---------- ------------------------      ...

Friday, November 10, 2017 | Read More

如何使用SQLT创建一个testcase

开Bug必备,wrong result问题必备。不解释,直接贴action plan。 1)在以下文档中下载并安装最新的 SQLT: SQLT (SQLTXPLAIN) - Tool that helps to diagnose SQL statement  performing poorly (Doc ID 215187.1) Install SQLT: # cd sqlt/install # sqlplus / as sysdba SQL> START sqcreate.sql 2)生成SQLT report(包含不带数据的testcase,如果生成带数据的,请直接跳到第3步): cd sqlt/run sqlplus / as sysdba START sqltxtract.sql <SQL_ID> <======替换<SQL_ID>成你想要生成报告的SQL ID. 比如: START sqltxtract.sql bkvbqs9tjpufv 如果是12c以上版本,使用SYSDBA是无法正确生成报告的,必须赋权或者使用其他用户: sqlplus /...

Thursday, November 9, 2017 | 技术共享 | Read More

安装ORACLE 12.2.0.1 GI 时遇到INS-44002错误

安装到Installation Location时遇到[INS-44002] The Oracle home location contains directories or files on following remote nodes 错误。 用户在环境变量中设置了ORACLE_HOME: ORACLE_HOME=/u01/oracle/app/grid/product/12.2.0 并且已经反复确认过/u01/oracle/app/grid/product/12.2.0目录下是空的,甚至把/u01/oracle/app/grid_base下的所有内容都删除了,也就是ORACLE_HOME和ORACLE_BASE都是空的,可是仍然遇到这个错误。   首先,Oracle软件在安装时不要设置任何oracle相关的环境变量,oracle默认用户什么都没有设置就开始安装,安装路径,ORACLE_BASE/ORACLE_HOME都是在安装时选择指定的。 其次,12.2的GI的安装有一个重大改变,不再有runInstaller了,而是直接解压到ORACLE_HOM...

Friday, November 3, 2017 | 技术共享 | Read More

为什么数据库中大量的server process没有对应的session?

在什么情况下oracle server process没有对应的session?除了px进程以外,还有没有其他情况?下面的一个真实的案例中,有600个个server process没有session对应,并且这样的process越来越多,似乎永远也不自己释放,原因是什么呢? 首先查询一下v$process和v$session,观察差异,可见差异有600多个。 select * from v$process; 1674 rows selected. select * from v$session; 1051 rows selected. 比对了一下,v$process中除了32个px进程以外,还有大量的普通server process,并且它们已经存在了很多天了。 select * from v$process p where p.addr not in (select addr from v$process p,v$session s where s.creator_addr=p.addr) order by pid; SPID    PROGRAM29674  ...

Friday, November 3, 2017 | Read More

12.2.0.1数据库alert log中的ORA-00933: SQL Command Not Properly Ended错误

12.2.0.1数据库alert log中经常报ORA-00933: SQL Command Not Properly Ended错误,是MMON的slave进程M000,M001,M002...报出来的: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2017-08-30T22:18:49.533322+08:00 Errors in file /u01/app/oracle/diag/rdbms/hods/HODS1/trace/HODS1_m002_77817.trc: ORA-00933: SQL command not properly ended ★ 2017-08-30T22:18:52.591018+08:00 WARNING: too many parse errors, count=100 SQL hash=0x750004bb PARSE ERROR: ospid=77817, error=933 for statement:2017-08-30T...

Thursday, November 2, 2017 | 技术共享 | Read More

RDA在远程节点上无法搜集日志的问题

在RAC环境中运行RDA,默认应该在一个节点上执行就可以搜集所有节点的数据并打包到当前目录下。 然而并没有(测试使用8.15版本,实际影响8.18之前的版本): 1. ./rda.pl -vXRda start CLOUD -p Rac_Assessment 2. ./rda.sh -v -e REMOTE_TRACE=1 Collecting diagnostic data ... ------------------------------------------------------------------------------ RDA Data Collection Started 22-May-2017 14:10:00 ------------------------------------------------------------------------------ Processing RDA.BEGIN module ...Inside BEGIN module, testing the RDA engine code...

Thursday, November 2, 2017 | 技术共享 | Read More

一个ASMCA无法识别磁盘设备的问题。

在linux 环境下,我们一般通过udev或者asmlib来绑定磁盘分区作为ASM的候选存储单元。在使用udev的情况下,一般只要我们可以看到被绑定的磁盘的设备,并且这些设备的属主和权限没有问题,ASM就可以识别并使用这些设备了。 但是也有例外情况: 1. 首先观察到的现象:在ASMCA的“"show eligible" 页面,看不到udev绑定的设备/dev/data2 2. udev的rule,和设备的权限以及属主都没有问题 cat 99-oracle-asmdevices.rules ...... KERNEL=="sda1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="360a980004430753872244b6e4a376f70",NAME="data2",OWNER="grid", GROUP="asmadmin", MODE="0660" ls -l /dev |grep data ......brw-rw---- 1 grid asmadmin...

Thursday, November 2, 2017 | 诊断方法 | Read More

不要认为使用全局临时表,对于redo的产生量的控制就可以高枕无忧!

对于全局临时表,有一个非常闪耀的亮点就是可以避免大量的redo产生,这是我们都知道的。文档68098.1中也有说明。 其实在对全局临时表做DML操作时,还是会产生一些redo的,这部分主要来自于undo,文档848852.1中也有说明。 那么,写这篇文章的目的就是想通过一个测试提醒大家,使用全局临时表,有时也会产生大量的redo。特别是在delete操作的时候,所以,如果使用全局临时表的出发点在于减少redo,那么要引起注意,请参照如下的测试: ----------------------------------------------------------------------- 1,create global temporary table temp SQL>create global temporary table temp as select  * from dba_objects; 2,check there is no record SQL> select count(*) from temp;  COUNT(*) ---------- ...

Friday, October 27, 2017 | Read More

Oracle Database - Standard Edition - Version 12.2.0.1 客户端在Windows 10 Pro (1703)平台安装报PRVF-3919

Oracle Database - Standard Edition - Version 12.2.0.1 客户端在Windows 10 Pro (1703)平台安装报PRVF-3919 : Failed to retrieve value of environment variable "PATH"错误。首先检查PATH的设置,如果没有问题可以参考如下步骤进行解决。 1,Download the srvm.jar. 2,Confirm whether the java version "1.8.0_91" is available, if not available then download the java and install. 3,Unzip the following filegroup1.jar of the following folder. <Shiphome>/stage/Components/oracle.swd.oui.core/12.2.0.1.4/1/DataFiles<shiphome>/stage/Components/...

Friday, October 27, 2017 | 其他 | Read More

Oracle数据库技术支持通讯2017年10月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年10月版: AVDF 升级到 12.2.X.X 版本的好处… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …

Wednesday, October 25, 2017 | 技术支持通讯 | Read More

TimesTen In-Memory Database FAQ

  Oracle 内存数据库 TimesTen 常见问题集锦   什么是 Oracle 内存数据库 TimesTen? Oracle 内存数据库 TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。 Oracle 内存数据库 TimesTen 作为缓存或嵌入式数据库部署在应用程序层中,利用标准的 SQL 接口对完全位于物理内存中的数据存储进行操作。所包括的复制技术能够在 TimesTen 数据库之间进行实时事务复制,以实现高可用性和负载共享。    什么是 Oracle In-Memory Database Cache?Oracle In-Memory Database Cache 是一个数据库选件,它为 Oracle 数据库提供了实时、可更新的缓存。Oracle In-Memory Database Cache 将来自数据库的对性能极其关键的一系列表和表碎片缓存到应用程序层,从而缩短应用程序事务响应时间。在内存数据库...

Tuesday, October 24, 2017 | TimesTen | Read More

log file switch (checkpoint incomplete) - 容易被误诊的event

首先来看如下的一份AWR,12分钟的采样,DB Time 105分钟。   DB Name DB Id Instance Inst num Startup Time Release RAC R11204 2114874159 R11204 1 23-Oct-17 10:10 11.2.0.4.0 NO   Host Name Platform CPUs Cores Sockets Memory (GB) nascds18 Linux x86 64-bit 2 2 1 11.64   Snap Id Snap Time Sessions Cursors/Session Begin Snap: 3 23-Oct-17 10:55:46 37 2.5 End Snap: 4 23-Oct-17 11:08:27 53 2.3 Elapsed: 12.67 (mins)   DB Time: 105.90 (mins)   Top event发现buffer busy waits和log file switch (checkpoint incomplete)几乎占用了所有的DB...

Tuesday, October 24, 2017 | Read More

一个因为log/trace太多导致的ocssd.bin内存泄露问题

一个用户通过OSW观察到ocssd.bin 的内存以每小时4M的增长,而最终的原因竟然是因为目录下面log/trace文件太多了。下面是相关的分析: 1. 首先看到了每小时4M的增长: 以1小时top的数据来看 Line 78: 42 ? 4102 grid -11 20 275M 102M run 0:30 4.72 4.71 ocssd.bin <<<<<<<<<<<<<开始时是102M Line 170: 42 ? 4102 grid -11 20 275M 102M run 0:32 4.60 4.60 ocssd.bin Line 262: 42 ? 4102 grid -11 20 275M 102M run 0:33 4.61 4.61 ocssd.bin Line 354: 42 ? 4102 grid -11 20 275M 102M run 0:34 4.85 4.84 ocssd.bin Line 446: 42 ? 4102 grid -11 20 275M 102M run 0:37 4.84 4.83 ocssd.binLin...

Monday, October 23, 2017 | Read More

一个因为外部authentication性能问题引起的实例终止。

一般来讲,RAC安装的grid、oracle用户都是本地(/etc/group, /etc/passwd)管理的方式。但是也有一些环境使用了外部管理的方式,比如ldap,或者vas。 下面介绍一个由于ldap性能问题导致的RAC实例终止的情况: 1. 首先现象是:LMHB因为错误29770 而终止实例: Wed Sep 20 23:08:34 2017 LMON (ospid: 5008) waits for event 'CSS operation: data query' for 8 secs. Wed Sep 20 23:08:38 2017 Thread 1 advanced to log sequence 66354 (LGWR switch) Current log# 4 seq# 66354 mem# 0: +LOG1/taorac09/onlinelog/group_4.260.864051729Current log# 4 seq# 66354 mem#...

Monday, October 23, 2017 | 诊断方法 | Read More

12.2IMPDP创建索引不并行的问题

在12.2上,IMPDP已经设置了并行,但是在trace中发现索引创建始终使用串行,而不是并行。 SQL> conn test/test@PDB1 SQL> create table a(m number,n number) parallel 4; SQL> create index a_ind on a(m) parallel 3; SQL> !expdp test/test@PDB1 dumpfile=b.dmp directory=my_dir SQL> !impdp test/test@PDB1 directory=my_dir dumpfile=b.dmp parallel=2 TRACE=480301 DW trace显示index创建使用的是parallel=1,而不是parallel=2!(多么细心的客户)。   CDB2_dw00_6658.trc ===================== PARSING IN CURSOR #140037561274968 len=170 dep=2 uid=79 oct=1 lid=79tim...

Monday, October 23, 2017 | 技术共享 | Read More

一个由于log/trace 目录文件太多导致的内存泄露。

最近处理了一个ocssd.bin内存泄露的问题,这个问题是由于ocssd.bin使用了过多内存达到系统设置的阀值,导致ocssd.bin无法分配内存并最终触发了系统重启。以下是诊断的过程: 1. 从cluster的alertlog中发现了在重启之前cssd失败的错误: 2017-07-11 23:23:01.817 [OCSSD(25291)]CRS-1656: The CSS daemon is terminating due to a fatal error; Details at (:CSSSC00012:) in /oracle/app/grid/diag/crs/node1/crs/trace/ocssd.trc <<<<<<<<<<< cssd failed. 2017-07-11 23:23:01.894 [OCSSD(25291)]CRS-1652: Starting clean up of CRSD resources. 2.进一步发掘cssd的log,发现错误的原因只是无法申请40k的内存。 2017-07-11...

Monday, October 16, 2017 | 诊断方法 | Read More

Oracle数据库技术支持通讯2017年9月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年9月版: 自动远程跟踪文件恢复… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …

Wednesday, October 11, 2017 | 技术支持通讯 | Read More

SLES12 SP2上遇到ORA-12518: TNS:listener could not hand off client connection错误

SLES12 SP2的linux上发生的问题,并不常见,但是给出了一些新的思路。 现象是数据库进程达到300个左右时,就无法继续连接数据库了,报以下错误。 ERROR: ORA-12518: TNS:listener could not hand off client connection 15-AUG-2017 01:40:01 * (CONNECT_DATA=(CID=(PROGRAM=myapp)(HOST=__jdbc__)(USER=admin))(SERVER=DEDICATED)(SERVICE_NAME=oracle)) * (ADDRESS=(PROTOCOL=tcp)(HOST=11.22.33.44)(PORT=1521)) * establish * oracle * 12518 TNS-12518: TNS:listener could not hand off client connection  TNS-12536: TNS:operation would block  TNS-12560: TNS:protocol...

Wednesday, October 11, 2017 | 诊断方法 | Read More

12c GI/RAC 日志目录路径的更改

12c的GI日志目录发生了改变,默认情况下,在 '$ORACLE_BASE/diag/crs/<node name>/crs/trace'目录下: [root@rac1 trace]# pwd /u01/app/oracle/grid/diag/crs/rac1/crs/trace [root@rac1 trace]# ls -l alert.log -rw-rw---- 1 grid oinstall 131004 Oct 11 21:41 alert.log [root@rac1 trace]# ls -l *cssd* -rw-rw---- 1 grid oinstall 52430990 Oct 9 21:31 ocssd_1.trc -rw-rw---- 1 grid oinstall 8064351 Oct 9 21:31 ocssd_1.trm -rw-rw---- 1 grid oinstall 52428999 Oct 11 02:39 ocssd_2.trc-rw-rw---- 1 grid oinstall 7515646...

Wednesday, October 11, 2017 | 技术共享 | Read More

12.2 PDB插入CDB后报ORA-41401错误

在12.1时,还要求PDB必须和CDB字符集相同,或者是CDB的子集,12.2已经支持在CDB中插入不同字符集的PDB。 但是alert log中可能仍会出现ORA-41401错误: Errors in file /scratch/oradb/app/diag/rdbms/cdba/cdba1/trace/cdba1_q005_12770.trc: ORA-41401: Define character set (873) does not match database character set (852) 这是Advance Queue的bug,BUG 22331316     - FIX RECURSIVE HSTDEF NLS STATE DURING MEDIUM CONTAINER SWITCH 。AQ处理时,从PDB跨到CDB时对字符集处理不当造成的。该bug的修复最终被包含在12.2.0.2中。 尽管Oracle已经支持在CDB中插入不同字符集的PDB,但是最佳实践仍然建议用户先做PDB数据库字符集转换,再plug-in。除了以上bug的原因...

Wednesday, October 11, 2017 | 技术共享 | Read More

12.2Data Guard新特性--使用DBMS_DBCOMP.DBCOMP数据比较

      Oracle Data Guard会主动对Hot数据(数据正被读取或修改)执行验证, 无论是primary还是standby,但对于那些Cold数据不会做任何检查和校验。所以在12.2版本中,引入了dbms_comp来验证校验Hot 和 Cold数据, 其可以确保standby端没有任何corruption,switchover 或failover后变成primary角色后可以正常运行。 执行DBMS_DBCOMP可以检测primary和standby的所有数据块,并进行一致性比较和standby写丢失。   SQL> select * from scott.emp; select * from scott.emp * ERROR at line 1: ORA-65478: shadow lost write protection - found lost write   相应的alertlog消息: ERROR  - I/O type:buffered I/O found lost write in block with afn:4...

Monday, September 25, 2017 | 新特性 | Read More

12.2 dataguard 新特性--密码文件

 我们知道在dataguard12.2 以前的版本,如果修改primary SYS用户的口令时,不能只使用alter user 命令,同时还要手工将primary端的密码文件拷贝至standby端。否则,log传输会报下面错误:                 ORA-16191 Primary log shipping client not logged on standby      当我们使用SYS 用户以remote login方式认证登录数据库并传输redo日志时, primary和standby两端的SYS用户口令必须一致。 由于standby数据库始终处于mount或readonly状态,所以其不能执行primary传递过来的“grant sysdba to x" 命令,这就是为什么我们需要手工拷贝密码文件的原因。    一. 12.2以下版本 dataguard环境 a)  pirmary 端更改sys用户密码     SQL>alter user sys identified by oracle123;      b)  需要手工将primary端密码...

Monday, September 25, 2017 | 新特性 | Read More

又有新的数据库中文文档添加到 My Oracle Support 中了! (2017年9月)

最新翻译的文档列表: Note 2297528.1 Grid Infrastructure 12.2 安装不同类型集群的选择 Note 2297452.1 12.2 Grid Infrastructure 安装:新变化  Note 2297515.1 12.2 Flex 磁盘组配额管理 Note 2297494.1 12.2 Shadow Lost Write Protection -- 检测写丢失,无需配置备用数据库 Note 2297511.1 Oracle Sharding 12.2 完整参考 Note 2298002.1 闰秒(多出的1秒)以及对 Oracle 数据库的影响 Note 2297544.1 12.2 多租户数据库的 undo 模式 – 本地或者共享模式 Note 2297973.1 使用 12.2 中的 DBA_EXTERNAL_SCN_ACTIVITY 找出外部 SCN 跳变 Note 2298001.1 列 Collation 和大小写不敏感数据库 - 12.2 特性  Note 2297540.1 使用 COE XFR...

Sunday, September 17, 2017 | 技术支持通讯 | Read More

一个connect by 应用的case

最近处理了一个connect by的case,分享给大家一下。 首先介绍一下connect by作用:对于数据有着严密的层级关系的表,我们有时候希望能够把有着 父子关系或者叫上下级关系的数据一次性展现出来,这个时候传统的sql 语法并不能就解决问题, 例如一个部门有一个总经理,多个副经理,每个下面又有多个总监,总监下面是员工, 我们设计表的时候,肯定只有一个字段来记录员工的上级,并不会记录他的上上级,那么我们 想把某个副经理的下面的所有员工都列出来的时候,就存在递归查找底层员工的情况,这种 就需要用到递归遍历,不同的DB给出了不同的解决办法,如DB2可以使用with+内嵌递归逻辑的 sql实现,oracle 提供了connect by的语法来实现。下面简单的看个例子: drop table emp; create table emp( emp_no number , manager_no number, name varchar2(100)); insert into emp values(1,,'总经理'); insert into emp...

Friday, September 15, 2017 | Read More

对于一个非空字段定义的表导出后,再imp时候报错ORA-01400: cannot insert NULL into xxx 为何呢?

最近有客户在11203环境上迁移一个大表的时候发现无法导入到新库,原因是imp时候报大量的ORA-01400: cannot insert NULL into xxx 但是通过查询这个表在原库上却没有null 数据,从表的定义上看也是not null的,而且有default值,这个是为什么呢?  下面的test case或许给您揭示原因: ==新建表并且插入几条记录 create table maob_t ( a number); insert into maob_t values(1); insert into maob_t values(2); insert into maob_t values(3); commit; ==对表新增字段并为非空+default 值 sqlplus>alter table maob_t add ( c number default 10 not null); ==第一次导出 exp maob/cdscds tables=maob_t file=maob_t.dmpAbout to export specified...

Friday, September 15, 2017 | 技术共享 | Read More

TimesTen 是关系型数据库还是 Oracle 11g/12c 的缓存?

许多客户都会问这样一个问题:TimesTen 是 Oracle 数据库的缓存,还是一套 关系型数据库系统?答案是,TimesTen 既可以配置为 Oracle 数据库的读/写缓存,也可以作为独立的关系型数据库系统。 TimesTen 作为关系型数据库系统 TimesTen 是低延迟的关系型内存数据库系统,它将数据持久化到磁盘并支持 ACID 事务。 检查点文件和事务日志用来持久化数据。在硬件或软件出现故障的情况下,可以使用检查点文件和事务日志来恢复数据库。TimesTen 使用事务日志文件来支持 ACID 事务的 COMMIT 和 ROLLBACK 操作。TimesTen 还支持多种方式来配置复制,以实现高可用性和在线升级。 TimesTen 使用 SQL 和 PLSQL,并支持丰富的运行环境: TimesTen 内存数据库是面向事务型的、可恢复的关系型数据库系统,为我们许多的客户提供 SQL 和 PLSQL 应用程序的关系型数据库服务。 TimesTen 用作 Oracle 数据库的缓存 TimesTen 内存数据库中的表,可以配置为 Oracle...

Thursday, September 7, 2017 | TimesTen | Read More

一次服务器时间调整引发的实例宕机。

问题描述: 1. 数据库实例突然crash,原因是ASMB有200多秒没有响应: Mon Sep 04 15:07:47 2017 WARNING: ASMB has not responded for 200 seconds <<<<<<<<<<<< ASMB has not responsed for 200 seconds. NOTE: ASM umbilicus running slower than expected, ASMB diagnostic requested after 200 seconds  NOTE: ASMB process state dumped to trace file /u01/app/oracle/diag/rdbms/iadw/iadw3/trace/iadw3_gen0_19179.trc Mon Sep 04 15:07:49 2017 NOTE: ASMB terminating Mon Sep 04 15:07:49 2017Errors in...

Wednesday, September 6, 2017 | 诊断方法 | Read More

如何在asm上定位数据块

我们都知道当db使用传统的文件系统时,定位block是就是通过dba_extents 中的blockid即可,然后 通过bbed或dd 直接操作对应数据文件的相应block即可,从10g开始,oracle使用ASM来管理磁盘, 因为所有数据文件都在ASM上,所以传统的bbed,dd都不能直接访问新型"文件系统"上的某个数据文件了 当我们需要在特殊场景下修改某个block的内存的时候该怎么办呢?下面给您演示一下: 首先我在这里先普及一下ASM的一点基础知识,需要知道的是ASM在磁盘上存储数据,分配的时候都是AU(allocation unit)为单位的,默认情况AU是1M,所以一个2G的数据文件 需要至少分配2×1024=2048个AU,当然存储这些AU的相关信息(如编号)也是需要存储空间的,这种元数据也是需要占用AU的,所以 实际上从ASM层面来看分配给某个数据文件的au数量要高于它的需求数量。对于ASM来讲,数据库的所有文件,如控制文件,spfile,数据文件都是作为一种叫文件目录(file directory)类型的数据进行管理的。每一条这种...

Sunday, August 27, 2017 | 技术共享 | Read More

Oracle数据库技术支持通讯2017年8月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年8月版: OKV BP5 12.2.0.5 的新特性… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …

Wednesday, August 23, 2017 | 技术支持通讯 | Read More

ADG备库的DRCP连接报错OCI-21500解决一例

一、问题描述: 在只读备库adgstby上启动connection pool并通过easy naming method通过pool连接备库: SQL> startup ORACLE instance started. Total System Global Area 1369579520 bytes Fixed Size                  2253104 bytes Variable Size             419434192 bytes Database Buffers          939524096 bytes Redo Buffers                8368128 bytes Database mounted. Database opened. SQL> alter database recover managed standby database using current logfile disconnect from session; Database altered. SQL>  exec...

Wednesday, August 16, 2017 | 诊断方法 | Read More

ADG switchover之后,数据库版本为何从11.2.0.4变成了11.2.0.2?

  最近接到了个比较奇怪的问题,switchover之后,新主库居然提示要以upgrade模式打开: alter database  open ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 我的第一反应是,客户的主库备库在switchover之前就是跨版本的。于是问客户要了下两边的alert log,发现确实是跨版本,新主库是11.2.0.2,而新备库是11.2.0.4。 于是建议客户: sqlplus / as sysdba startup upgrade       @?/rdbms/admin/catupgrd.sql   @?/rdbms/admin/utlrp.sql      shutdown immediate startup 然而客户说:我们升级是很久以前的事啦,早就都是11.2.0.4了,为...

Tuesday, August 15, 2017 | 诊断方法 | Read More

从现有ADG备库创建新备库的可行性测试

有客户问,因主库业务负载较高,能否从ADG备库创建出一个新备库来。为此做了如下测试,证明确实可行。 步骤: 1、在主库上创建standby controlfile [oracle@adg ~]$ export ORACLE_SID=adgpri [oracle@adg ~]$ sqlplus / as sysdba   SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 10 12:12:25 2017   Copyright (c) 1982, 2013, Oracle. All rights reserved.     Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options   SQL> alter database create...

Tuesday, August 15, 2017 | 测试案例 | Read More

TimesTen 内存数据库的速度有多快?

TimesTen 内存数据库在商业硬件领域上表现出极佳的性能。 衡量RDBMS 性能有两个重要因素:延迟和吞吐量。延迟是关于 SQL 即: Select、Insert、Update、Delete 或 Merge 等操作完成的速度。 TimesTen 以实现低延迟的 SQL 事务而闻名。 我们以微秒为单位衡量 TimesTen 延迟,而不是毫秒: 上图的延迟基准测试在商用 Linux / Intel 硬件上运行: •    2 CPU sockets,22 cores/socket,Intel Xeon E5-2699 v4 @ 2.20GHz •    基准测试使用 TPTBM 执行读取和更新操作 •    TimesTen 11.2.2.8.0(100M 行数据,数据库大小为17 GB) 真正的低延迟也有助于提高吞吐量。 RDBMS 吞吐量以每秒事务(ACID)量来定义。 该吞吐量基准测试在相同的商业硬件上运行: •    2 CPU sockets,22 cores/socket,Intel Xeon E5-2699 v4 @ 2.20GHz•  ...

Friday, August 11, 2017 | TimesTen | Read More

statspack 数据维护清理问题

我们都知道oracle从10g开始提供了Automatic Workload Repository (AWR)来完成对系统性能数据的自动收集和存储,甚至利用ADDM能够进一步完成自我诊断。但是这个工具包是企业版才提供的, 对于标准版并不是免费的,不过购买标准版license的客户仍然能够使用9i开始提供的Statspack功能包。但是AWR因为有完善的自我管理功能,如自动收集,自动清理, 所以是使用上非常便捷,相比免费的Statspack就没有任何自动维护功能,需要客户自行手动运行性能数据的收集和历史数据的清理。 对于statspack历史数据的清理问题,官方自带的@?/rdbms/admin/spdoc.txt文档是有所描述的:以11204版本为例 8.  Managing and Sharing performance data      8.2. Purging/removing unnecessary data       8.2.1. Input Parameters for the PURGE procedure and...

Tuesday, August 8, 2017 | 技术共享 | Read More

为什么控制文件的时间点恢复不使用controlfile backup而使用snapshot controlfile?

近日有客户提到了这个有趣的问题,为此做了个Test Case研究了下: 测试控制文件的时间点恢复。 1、恢复到控制文件备份时间点之前 2、恢复到控制文件备份时间点之后 3、恢复到控制文件备份时间点的sequence# 步骤1:环境准备 [oracle@adg ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 7 13:07:33 2017 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> archive log list;  Database log...

Tuesday, August 8, 2017 | 测试案例 | Read More

关于NUMBER(p,s) 精度P的相关解释

最近有客户问关于NUMBER(p,s) 其中 精度P如何理解。 下面是官方在线文档的解释: p is the precision, or the maximum number of significant decimal digits, where the most significant digit is the left-most nonzero digit, and the least significant digit is the right-most known digit. Oracle guarantees the portability of numbers with precision of up to 20 base-100 digits, which is equivalent to 39 or 40 decimal digits depending on the position of the decimal point. 1.怎么理解 20 base-100 digits  ? oracle...

Sunday, July 30, 2017 | Read More

记一次 sqlplus无法连接到实例 故障诊断

客户抱怨实例明明在启动状态,sqlplus 却无法登录db,一直提示 Connected to an idle instance 刚接到这个case,首先怀疑是不是客户搞错了SID大小写,因为没有指定正确的SID就会提示连接空实例的错误, 根据这个先检查一下客户提供的信息: $ ps -ef|grep noctest  oracle 27181     1  0  Jul  1  ?        1083:02 ora_mmnl_noctest  oracle 27155     1  0  Jul  1  ?        1122:34 ora_vktm_noctest  oracle 25941     1  0  Jul 25  ?         0:20 oraclenoctest (LOCAL=NO)  oracle 16621     1  0 18:03:19 ?         0:00 ora_w001_noctest oracle 25947     1  0  Jul 25  ?        ...

Sunday, July 30, 2017 | 技术共享 | Read More

Oracle数据库技术支持通讯2017年7月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年7月版: 最常见的 RAC 问题… Oracle 数据库技术更新 … 支持提示 … 补丁更新 … 

Thursday, July 27, 2017 | 技术支持通讯 | Read More

数据库12.2.0.1新变化Release Updates (Updates)和 Release Update Revisions (Revisions)

从2017年7月开始,Oracle 对数据库和 GI(Grid Infrastructure) 12.2及之后版本的主动修补程序进行了更改。传统的 “Patchset Update” 和“Database Proactive Bundle Patch” 对于12.2数据库将不再发布。将采用新的发布方式 Release Updates (Updates)和 Release Update Revisions (Revisions)。 这个战略的主要目标是双重的: 1. 拥抱一个更加简单的软件发布流程 a. Oracle每年都可以发布一些新特性,而不是像以前一样等很多年 b. Oracle通过减少每次发布的软件的修改来提升数据库的质量 2.可以提供给客户一个更灵活的方式来: a. 在需要时有效的提供 bug 修复(就像 12.1.0.2的DB Proactive BP 目前所提供的) b. 当客户环境稳定时,有效的提供季度安全更新(就像11.2.0.4以及12.1.0.2上的 PSU 目前所提供的) 请注意,本文所述的更改只适用于数据库和 GI(Grid...

Friday, July 21, 2017 | 新特性 | Read More

记一次监听异常处理

客户抱怨最近监听经常异常并无法注册服务,导致前台进程连接失败。 根据客户的提到最后一次的大致时间,我们来看一下监听日志情况: [.......] 21-JUN-2017 15:35:14 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVER=DEDICATED)(SERVICE_NAME=app2012)) * (ADDRESS=(PROTOCOL=tcp) 21-JUN-2017 15:35:14 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVER=DEDICATED)(SERVICE_NAME=app2012)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.231.3.85)(PORT=57408)) * establish * app2012 * 0No longer listening...

Saturday, July 8, 2017 | 诊断方法 | Read More

关于ORA-01536 报错的几种场景:

我们都知道unix 或linux下都可以限制某个用户使用磁盘空间,避免造成空间占用100%引发系统事故, oracle也可以实现该功能,就是通过指定用户对某些表空间的配额quota来实现的。一旦超过配额上限, 就会报ORA-01536,下面的几个场景就来介绍一下。 场景1:用户quota不足 sqlplus / as sysdba drop user test cascade; create user test identified by abcdefg; alter user test quota 1m on users ; grant create session to test; grant create table to test; 查看配额情况:  select username, tablespace_name,bytes, max_bytes from dba_ts_quotas where username = 'TEST';   USERNAME                 TABLESPACE_NAME             ...

Saturday, July 8, 2017 | 测试案例 | Read More

奇怪的等待事件“enq: ss - contention”

数据库有时会遇到大量的进程发生'enq: ss - contention'等待,持续5到10分钟,然后自动消失。从字面上看,'SS'是Sort Segment: select * from v$lock_type where type='SS' TYPE       NAME   ID1_TAG     ID2_TAG   IS_USER DESCRIPTION --------------------------- ---------------------------------- -------------------------- -------------------- SS    Sort Segment   tablespace #   dba    NO  Ensures that sort segments created during parallel DML operations aren't prematurely cleaned up 为何大量的进程需要等待Sort Segment enqueue呢? 从ASH的信息看,Sort...

Wednesday, July 5, 2017 | 技术共享 | Read More

Oracle数据库技术支持通讯2017年6月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年6月版: 新版 Trace File Analyzer 12.2.1.1.0 已发布 …  Oracle 数据库技术更新 …  支持提示 … 补丁更新 …  

Monday, June 26, 2017 | 技术支持通讯 | Read More

自Oracle 12.2始, 可以限制pdb的IO了

从12.2版本开始,Oracle引入了两个参数来限制PDB的磁盘IO量,分别是MAX_IOPS以及MAX_MBPS。 在CDB中存在多个PDB时,如果某一个PDB产生了大量的磁盘IO,那么很可能会影响到其它的PDB。现在可以通过设置MAX_IOPS来限制PDB每秒钟产生的IO请求次数,通过设置MAX_MBPS来限制PDB每秒钟产生多少兆的IO请求。如果同时设置了两个参数,那么两个参数就同时生效。 在不同的级别设置这两个参数会产生不同的效果: 1.    如果只在CDB root里设置这两个参数,那么设置的值就会在所有的PDB中生效。 2.    如果只在application root(这是12.2中的新特性)中设置了这两个参数,那么设置的值就会在所有的application PDB中生效。 3.    如果在CDB root或者PDB level中都设置了这两个参数,那么PDB level设置的值会有更高的优先级。 4.    这两个参数的默认值都是0,也就是默认不限制IO产生的数量。 注意:这两个参数不能设置在non-CDB中;并且只能限制PDB的...

Thursday, June 15, 2017 | 新特性 | Read More

自Oracle 12.2始,Active Dataguard也可以支持AWR功能了

自Oracle 12.2始,Active Dataguard也开始支持AWR功能了 在之前的版本里,Active Dataguard不支持AWR report。只能安装standby statspack来监控ADG数据库的性能,而且statspack不支持自动收集;需要手工收集statspack快照,或者自己定义脚本/Job来收集statspack的快照。 从Oracle 12.2开始,通过dblink以及RMF(Remote Management Framework,远程管理架构)技术,ADG也开始支持AWR功能了。 就像上面的示意图所示,主库通过dblink连接到ADG数据库并发起收集AWR快照的动作,之后ADG数据库把AWR快照通过dblink发送到主库存储。主库和ADG库在这里组成一个RMF拓扑结构,ADG库是拓扑结构中的source,而主库则是拓扑结构中的destination。存储在主库中的ADG库的AWR快照被称为remote snapshot。这是RMF结构的最简单的方式。实际上RMF拓扑可以更复杂;比如存储remote snaps...

Thursday, June 15, 2017 | 新特性 | Read More

RAC ASM到单机ASM的dataguard创建步骤

有客户需要RAC ASM环境到单机ASM环境的创建步骤,由于MOS上的英文note中没有提及对这个过程中可能遇到的问题如何解决,故这里讲全部创建步骤和问题解决记录如下以供参考。  一、环境: 1、Primary 11204两节点rac [oracle@rac11g1 ~]$ cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1       localhost.localdomain localhost ::1             localhost6.localdomain6 localhost6 192.168.56.18   rac11g1.fsm.com rac11g1 192.168.56.19   rac11g2.fsm.com rac11g2 192.168.210.18  rac11g1-priv.fsm.com    rac11g1-priv 192....

Monday, June 12, 2017 | 技术共享 | Read More

Oracle数据库技术支持通讯2017年5月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年5月版: 12.2 新特性:应用容器… Oracle 数据库技术更新  支持提示 … 补丁更新 …  

Tuesday, May 23, 2017 | 技术支持通讯 | Read More

Oracle数据库技术支持通讯2017年4月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年3月版: 在 Dataguard 环境中诊断 SQLNET 错误 … Oracle 数据库技术更新  支持提示 … 补丁更新 …  

Wednesday, April 26, 2017 | 技术支持通讯 | Read More

如何将文件上传到Oracle MOS系统

下面的方法可以根据文件大小,将文件上传到Oracle MOS系统。 MY ORACLE SUPPORT (MOS)方式 - 最大2GB FTPS和HTTPS方式上传文件到MOS - 最大200 GB 下面举例演示一下如何在Linux服务器通过FTPS命令上传比较大的文件到MOS的SR。 FTPS上传文件到SR的命令: $curl -k -T <path_to_file> -u "<user>" ftps://transport.oracle.com/issue/<sr_number>/ 注意: 这里的“<path_to_file>”,是文件的绝对路径和文件名称,如果文件在当前路径,可以直接使用文件名称。 比如: /home/temp/test.zip 或 test.zip都是可以的 这里的“<user>”,是MOS用户账号,比如:a.b@c.com 这里的“<sr_number>”,只包括SR号码,而不包括“<>”,并确保包含最后的“/” FTPS上传文件到SR的示例: $ ls -lt FTPS_test.zip-rw-r----- 1 oracle...

Wednesday, April 26, 2017 | 其他 | Read More

GI 中新的基础架构 --MDNS, gipc 和 gpnp 是如何协同工作的

  最近一直有朋友来询问oracle 的集群管理软件从11.2 这个版本开始开始出现的新的组件mdns, gpic, 和gpnp 是做什么的,以及他们是如何协调工作的。所以就花了时间写了这篇文章来解释一下这些新组件的基本功能和它们之间是如何协同工作的。   首先来回顾一下历史。对于10g版本的oracle 集群管理软件(CRS),当集群启动的时候,集群节点的列表和每个节点的公网地址,私网地址是可以从OCR当中获得的,而且如果集群包含多块私有网卡的话,是需要依赖于OS层面的网卡绑定软件(例如:linux 的bonding)的,也就是说集群的私网网卡数量是对CRS透明的,集群只需要知道经过聚合之后的网卡名称就可以了。   但是,在11.2 这个版本开始,oracle的集群管理软件(GI)开始需要自己来管理集的网卡,也就是说GI要能够管理多块私网网卡;另外,由于集群启动的流程发生了改变,OLR的出现改变了11.2 集群启动的行为,OCR在集群最初启动时不再被使用了,而完全变成了集群应用资源层的一个注册表(registry)。所以,就需要一些组件来完成节点发现...

Wednesday, April 19, 2017 | 新特性 | Read More

回收站对象过多造成查询dba_free_space缓慢

日常监控免不了监控表空间空闲信息,但是有时发现查询他非常缓慢,这是因为dba_free_space 里面条目过多,所以查询起来非常缓慢,为啥这个view里面条目如此 之多呢,有时候会发现里面的extent居然还是连续的, 其实这是因为drop 对象造成的,下面的例子可以展示一下这个场景: create table t1 as select * from dba_tables where rownum<1000; create table t2 as select * from dba_tables where rownum<1000;  分别新建两个表,然后查询他们的extent情况 select * from dba_extents where segment_NAME IN ('T1','T2') MAOB T1  TABLE USERS 0 4 520 65536 8 4 MAOB T1  TABLE USERS 1 4 528 65536 8 4 MAOB T1  TABLE USERS 2 4 536 65536 8 4MAOB T1 ...

Tuesday, April 4, 2017 | 诊断方法 | Read More

Advisor Webcast 2017年03月28日: Oracle Clusterware 节点重启问题的诊断

主题:  Oracle Clusterware 节点重启问题的诊断摘要: 本次网上研讨会大约1小时, 关于如何诊断及避免Oracle CRS集群节点重启问题。适用于有一定系统管理经验的DBA和系统管理员参加。 时间: 2017年3月28日14:00 ~15:00 (北京时间)包括: 1.我们将着重介绍Oracle为什么会发起CRS或者主机的重启,以及为什么Oracle会做这样的重启。 2.我们会介绍重启的几个组件以及如何诊断重启的原因。 3.我们通过以上的讲述,让客户知道如何避免这样的故障发生。 欢迎有经验的DBA以及系统管理员参加这次Webcast的培训。 参考文档:所有webcast的时间安排和过去的演讲pdf文稿和录像,可以在文档 Note 740966.1 中找到。 WebEx 会议详细内容: Topic: Oracle Clusterware 节点重启问题的诊断(Mandarin Only) Event Number: 595 859 256 Event Passcode: 123456注册地址:https://oracleaw.webex...

Monday, March 27, 2017 | 技术共享 | Read More

Oracle数据库技术支持通讯2017年3月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年3月版: 在 12c 多租户数据库中克隆和迁移 PDBs… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Friday, March 24, 2017 | 技术支持通讯 | Read More

在Oracle Linux 6.5上安装Oracle RAC 12.2.0.1

这篇文档重点描述了安装配置12.2.0.1 GI/RAC,以及在集群环境下创建CDB的具体步骤。 详细的安装/配置步骤请下载附件。由于文件较大,因此文档被分解压缩为2个子压缩包,参考下面方法下载/解压缩: 1.下载附件,右键点击下面的链接,选择“另存为”,将二个压缩文件下载到同一个文件夹内 Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5.zip.001 Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5.zip.002 2.解压缩,在第一个文件(Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5.zip.001)上点击鼠标右键,然后选择7-zip -> Extract Here 3.完成后,可以看到解压后的PDF文档:Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5.pdf

Thursday, March 16, 2017 | 新特性 | Read More

12c新特性-Oracle Sharding简介

Oracle Sharding简介 ================ Oracle Sharding是Oracle 12.2版本推出的新功能,也称为数据分片,适用于online transaction processing (OLTP). Oracle Sharding基于表分区技术,是一种在数据层将数据水平分区存储到不同的数据库的技术. Sharding可以实现将一个分区表的不同分区存储在不同的数据库中,每个数据库位于不同的服务器,每一个数据库都称为shard, 这些shard组成一个逻辑数据库,称为sharded database (SDB).  这个table也称为sharded table, 每个shard数据库中保存该表的不同数据集(按照sharding key分区), 但是他们有相同的列(columns)。 Shard是一种shared-nothing技术,每个shard数据库使用独立的服务器硬件(CPU,内存等)。Shard可以运行在单机数据库或者DATAGUARD/ADG数据库。 Oracle Sharding优势 ============...

Saturday, March 11, 2017 | 新特性 | Read More

一条SQL语句究竟会产生多少个并行进程?

有一些数据库性能问题可能是因为同时启动的并行进程过多造成的,特别常见于RAC节点重启,很多时候是因为瞬间启动了几百个并行进程,导致OS各项指标“彪高”,后台进程失去响应。最近遇到的一个,是因为SQL语句中写了/*+ parallel a,8*/  ,但是在RAC的两个节点上各启动了512个并行进程,一共启动了1024个并行进程,导致网络心跳丢失。因为问题可以通过执行这个语句重现,而使用parallel_force_local=true可以workaround这个问题,所以基本可以确定是跨节点并行导致的。 抛开这个问题背后的其他因素不谈,我们单来讨论一下:一条SQL语句究竟会产生多少个并行进程? 一条SQL语句使用的并行度受3个层面的数值影响: 1)hint中指定的并行度select /*+ parallel(a,8) */ * from scott.emp a order by ename; 2)表的并行度,也就是表的degree:select owner,table_name,degree from dba_tables...

Wednesday, March 8, 2017 | 技术共享 | Read More

双向多主复制环境下的timesten升级测试

背景 =========== 客户升级应用,但应用打包了timesten,所以升级应用过程中涉及timesten的重装,所以如何避免升级过程中因升级而写入升级库的数据不被复制到另一边的未升级环境就成了问题。本测试步骤用升级过程中插入数据 application upgrade来模拟应用升级的数据插入。 环境 ============= 两个虚拟机,ADG和ADG2,重装(升级)ADG的timesten,升级过程中(恢复ADG2到ADG复制之前)的数据不复制到ADG。 配置(双向多主复制) =================== ADG1: create replication REP.REPSCHEME1 element "COMPLETE1" datastore master "ACTIVE" on "ADG2" subscriber "ACTIVE" on "ADG" element "COMPLETE2" datastore master "ACTIVE" on "ADG" subscriber "ACTIVE" on "ADG2"stor...

Wednesday, March 1, 2017 | TimesTen | Read More

Oracle数据库技术支持通讯2017年2月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年2月版: Oracle Trace File Analyzer (TFA) – 概要指南… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Tuesday, February 28, 2017 | 技术支持通讯 | Read More

RAC 11.2.0.4 升级到 12.1.0.2 详细步骤

12.1.0.2已经发布一段时间了,随着用户的增多,目前12C的版本稳定性,以及各个方面的功能性,得到大家的认可。很多用户,需要将数据库从低版本升级到12C,本文就升级过程,做了详细的记录。      由于图片过多,通过PDF附件的形式上传到blog,请下载附件。 Upgrade_Oracle_Grid_Infrastructure_11.2.0.4_to_12.1.0.2.pdf    

Friday, February 24, 2017 | 测试案例 | Read More

系统内存耗尽的案例分析

近日遇到一个RAC节点hang导致节点被重启的问题,最后经过分析,发现在系统运行一段时间后,系统内存就会耗尽,原本256G的内存,最后只剩几百M。 1. 问题时间段的TOP输出可以看到,内存只剩7G,而分析内存问题,TOP输出是不够的,一般情况下,Database的SGA和PGA是内存使用大户,所以,在TOP很难发现谁是使用内存最多的。 除非某些进程内存使用的格外明显 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Linux OSWbb v7.3.3 zzz ***Tue Feb 21 00:00:10 CST 2017 top - 00:00:12 up 14:16, 10 users, load average: 2.97, 2.31, 2.05 Tasks: 3087 total, 11 running, 3076 sleeping, 0 stopped, 0 zombie Cpu(s): 11.7%us, 2.8%sy, 0.0%ni, 83.7%id, 0.9%wa, 0.0%hi, 0.9%si,...

Thursday, February 23, 2017 | 诊断方法 | Read More

关于sys CPU usage 100%问题的分析

最近一个客户抱怨他的核心EBS数据库出现性能问题。这是一个10.2.0.3的数据库, 运行在Red Hat Enterprise Linux Server release 5.5 (Linux x86-64)操作系统上。 根据客户描述,由于需要维护UPS,他们重启了数据库,结果重启数据库后他们发现只要他们的应用 开始连接数据库,那么主机的sys CPU使用率就会变成100%, 但是user CPU使用率几乎是0. 而且只要停掉监听或者应用不开启新session连接数据库,这个问题就会消失。 如下是问题发生期间的vmstat输出,可见cpu中的sys(倒数第4列)几乎100%, CPU Run Queue (第1列) 非常高,而此时free memory还有20G(第4列),看来内存很充裕。 SNAP_INTERVAL 15 CPU_COUNT 32 zzz ***Fri Dec 2 17:05:03 CST 2016procs -----------memory---------- ---swap-- -----io----...

Tuesday, February 7, 2017 | 诊断方法 | Read More

又有新的数据库中文文档添加到 My Oracle Support 中了! (2017年2月)

最新翻译的文档列表: Note 2227021.1 Oracle Database - 数据库补丁使用方法概述 Note 2226599.1 在 Unix AIX,HP-UX,Linux,Solaris 和 MS Windows 操作系统上安装和配置 Oracle 数据库(RDBMS)的要求的快速参考 Note 2226539.1 如何使用 MOS 补丁冲突检查工具[视频] Note 2226611.1 有效节点注册检查(VNCR) Note 2225765.1 12c:关于告警信息"Heavy Swapping Observation" 和 ORA-700 [kskvmstatact: excessive swapping observed] Note 2226594.1 在 11g alert 日志中报 Fatal NI Connect Error 12170, 'TNS-12535: TNS:operation timed out' Note 2227040.1 在升级/迁移/复制/移动数据库的时候如何执行全库导出导入Note...

Monday, February 6, 2017 | 技术支持通讯 | Read More

Oracle数据库技术支持通讯2017年1月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2017年1月版: 数据库支持工具 – 下一代… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Monday, January 23, 2017 | 技术支持通讯 | Read More

Oracle数据库技术支持通讯2016年12月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2016年12月版: 12c:GI 打补丁的最佳实践 … Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Wednesday, December 28, 2016 | 技术支持通讯 | Read More

12c新特性-安装创建12.1.0.2 GI/RAC(CDB数据库)

这篇文档重点描述了安装配置12.1.0.2 GI/RAC,以及在集群环境下创建CDB的具体步骤。 详细的安装/配置步骤请下载附件。由于文件较大,因此文档被分解压缩为3个子压缩包,参考下面方法下载/解压缩: 1.  下载附件,右键点击下面的链接,选择“另存为”,将三个压缩文件下载到同一个文件夹内 12.1.0.2_GI_RAC_Create_CDB_Blog.7z.001 12.1.0.2_GI_RAC_Create_CDB_Blog.7z.002 12.1.0.2_GI_RAC_Create_CDB_Blog.7z.003 2.  解压缩,在第一个文件(12.1.0.2_GI_RAC_Create_CDB_Blog.7z.001)上点击鼠标右键,然后选择7-zip -> Extract Here 3. 完成后,可以看到解压后的PDF文档:12.1.0.2_GI_RAC_Create_CDB_Blog.pdf

Wednesday, December 14, 2016 | 新特性 | Read More

在12.1版本中如何能使用Oracle12.2的Adaptive新特性

 从Oracle 12.2 中引入新特性:加入参数OPTIMIZER_ADAPTIVE_PLANS和 OPTIMITER_ADAPTIVE_STATISTICS;  但是在Oracle 12.1中我们也可以通过打补丁来使用12.2的Adaptive新特性来摒弃本用一个参数OPTIMIZER_ADAPTIVE_FEATURES来管理ADAPTIVE PLANS 和 ADAPTIVE STATISTICS两个部分的机制。 关于Adaptive新特性的推荐, 请您参考:     MOS: Note: 2187449.1     Recommendations for Adaptive Features in Oracle Database 12.1 关于12.2新特性的更多信息, 请您参考:     http://docs.oracle.com/database/122/REFRN/OPTIMIZER_ADAPTIVE_PLANS.htm#BEGIN     ==> 1.211 OPTIMIZER_ADAPTIVE_PLANS 默认值为 true   ...

Tuesday, December 6, 2016 | 新特性 | Read More

一个奇怪的ora-4030错误的诊断过程

一个奇怪的ora-4030错误的诊断过程 前些天我收到一个客户报出的相当奇怪的ora-4030的问题,特和大家分享一下。 根据客户的描述,他是在Solaris 10 Sparc上尝试将一个Oracle 10.2.0.5.6的数据库升级到Oracle 12.1.0.2, 在执行数据字典升级($ORACLE_HOME/perl/bin/perl catctl.pl -n  6 -l $ORACLE_HOME/diagnostics catupgrd.sql) 的时候,报出了ora-4030,而且他尝试重复多次执行升级脚本,总是在第70步左右报出ora-4030。 trace文件内容大概如下: ORA-04030: out of process memory when trying to allocate 616 bytes (SQLA^b20dbe57,frodef:qcpitnm) ======================================= PRIVATE MEMORY SUMMARY FOR THIS PROCESS------...

Thursday, November 24, 2016 | 诊断方法 | Read More

Oracle数据库技术支持通讯2016年11月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2016年11月版: 如何在 Oracle 中配置和运行外部存储过程… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …  

Monday, November 21, 2016 | 技术支持通讯 | Read More

关于RunQ过高引起的latch等待问题

最近一个客户新上线系统做压力测试发现负载一直上不去,cpu 只有20%左右, 遇到大量latch: ges resource hash list等待事件,客户怀疑数据库存在瓶颈, 导致测试结果无法达到他们性能要求,要求进行诊断。我们先看一下AWR 情况: Top 10 Foreground Events by Total Wait Time vent Waits Total Wait Time (sec) Wait Avg(ms) % DB time  latch: ges resource hash list 723,722 76.6K 105.86 16.8    <<<16.8% DB CPU 31K 6.8                                             <<<6.8 latch free 207,653 22.5K 108.33 4.9 Other                  <<<<< 上述top10可以看到,的确latch: ges resource hash list等待占用了大量的DB...

Sunday, November 20, 2016 | 诊断方法 | Read More

全局临时表GTT的统计信息收集办法:

我们都知道,全局临时表GTT分为两种,一种是transaction level,一种是session level, 分别通过on commit delete rows/preserve rows实现,其中session level表示在本sessoin 数据有效,相同session内,之前事务操作的数据,对于后续的操作都可见,而事务级的GTT表示 一旦事务结束(commit)那么立即delete,相同session 的后续操作看不到之前事务操作。 在9i阶段可以使用GATHER_TABLE_STATS调用来收集统计信息须传入参数GATHER_TEMP为TRUE, 10g开始oracle对于普通表和GTT收集统计信息并没有特殊处理,都是通过GATHER_TABLE_STATS 存储过程来收集,但是由于上述的两种GTT特殊性,收集统计信息有特殊性: 1.对于session level的,因为GTT数据并不持久化,存在session 隔离性,需要在当前session 收集,若是通过另起窗口(新session)收集统计信息会不成功,原因...

Saturday, November 19, 2016 | 技术共享 | Read More

时区调整对job的运行时间的影响

调整时区既可以在操作系统调整,也可以在session 调整,那么不同的方式对于job的计划时间是否有影响呢, 我们用实际例子来验证一下: Test1: 1.首先看一下默认系统时区: oracle@fmw11g.vm.oracle.com $ date Sat Nov 19 03:50:10 GMT 2016 <'TJ1', job_type => 'STORED_PROCEDURE', job_action => 'JOB_PRO_TEST1', start_date => sysdate + 1/24, <<1hour 之后开始运行 enabled => true, auto_drop => true ); end; / 3.check job的运行状态 select owner,job_name,job_action,start_date, state from ALL_SCHEDULER_JOBS where owner='MAOB'; MAOB TJ1 JOB_PRO_TEST1 11/19/2016 4:51:26.000000 AM...

Saturday, November 19, 2016 | 技术共享 | Read More

Oracle数据库技术支持通讯2016年10月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2016年10月版: Oracle OpenWorld 2016: 继续对话… Oracle 数据库技术更新 … 支持提示 … 补丁更新 … 

Wednesday, October 19, 2016 | 技术支持通讯 | Read More

网罗收集10046的各种Case,方便trace信息的收集

每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题。 因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation的具体情况。 具体等待事件,每个时间具体的时间消耗等等。希望下面的Case有一种就能帮助到您。 EVENT: 10046 "enable SQL statement tracing (including binds/waits)" (Doc ID 21154.1) Interpreting Raw SQL_TRACE output (Doc ID 39817.1) General SQL_TRACE / 10046 trace Gathering Examples (Doc ID 1274511.1) ================== SQL性能常用: 所有版本     10046 on session/system     To start tracing:    Alter session/system(慎用) set events...

Sunday, October 9, 2016 | 诊断工具 | Read More

Oracle数据库技术支持通讯2016年9月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2016年9月版: ORAchk 版本 12.2.0.1.1 现已发布… Oracle 数据库技术更新 … 支持提示 … 补丁更新 … 

Thursday, September 22, 2016 | 技术支持通讯 | Read More

一个IP packet reassembles failure导致的IPC Send timeout和实例驱逐

记一个IP packet reassembles failure导致的IPC Send timeout和实例驱逐案例 一般来说,对于IPC Send timeout,可能的情况有以下几种: 1、节点本地盘CPU等待队列超高或IO繁忙、空闲物理内存用尽等,这种情况往往是相互伴随发生的,可以从OSWatcher的vmstat和iostat来发现; 2、私网网络发生丢包或异常,从OSWatcher的netstat和trace route输出中可以看到; 3、DRM或skgxp等方面的Oracle Bug,如(Doc ID 1594578.1)   这个案例属于上述第二种,但由于处理过程比较反复,且最后一次重现时问题指向IP reassembles failure,而不是UDP packet drop,所以记录下来以备今后参考。详细信息请下载附件文档:   IP reassembles failure导致节点驱逐的案例 有客户可能会问:是不是LINUX所有的系统都需要调整上面的参数呢? 从后来在网上查到的类似案例来看,RHEL方面确认这个问题基本也就出现在LINUX6.6和...

Tuesday, September 13, 2016 | 诊断方法 | Read More

Oracle数据库技术支持通讯2016年8月版已发布

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。 2016年8月版: 12c 多租户的字符集设置… Oracle 数据库技术更新 … 支持提示 … 补丁更新 …

Friday, September 9, 2016 | 技术支持通讯 | Read More

Index Unique Scans我们要说的

最近遇到一个客户发现一个sql语句的执行计划走了index range scan,他期望的结果是Index Unique Scans,因为对应的字段上是有主键的。 经过排查我们发现INDEX_NAME IX_XXXXXXXXXXXXX INDEX_TYPE NORMAL TABLE_OWNER CXXX TABLE_NAME CXXX_XXXXXXXX TABLE_TYPE TABLE UNIQUENESS NONUNIQUE                              <<<<<<<<<<<<<<<< NONUNIQUE 主键可以使用NONUNIQUE INDEX吗? NONUNIQUE INDEX的存在是引起执行计划改变的原因吗? 带着疑问我做了下面的测试:drop table t_table; --创建表 CREATE TABLE t_table(numcol INT); --创建非唯一性索引 CREATE INDEX t_table_idx ON t_table(numcol); --追加主键约束ALTER TABLE...

Thursday, September 8, 2016 | 诊断方法 | Read More

又有新的数据库中文文档添加到 My Oracle Support 中了! (2016年9月)

最新翻译的文档列表: Note 2179484.2 - TFA 收集器 - 加强版诊断日志收集工具 Note 2178918.1 - 如何验证/启用内存数据库配置? Note 2178917.1 - 在数据库中如何验证 In-Memory 选项的使用 Note 2178527.1 - 如何卸载 Oracle Database 12.1 Note 2179719.1 - Data Guard 12C 新特性:Far Sync Standby Note 2179481.1 - 如何确定一次性补丁是否冲突? Note 2178532.1 - 故障排除:为什么 EM Express 不工作 Note 2179478.1 - 诊断 ORA-27300 ORA-27301 ORA-27302 错误 Note 2179701.1 - 12c 的 Cascaded Standby 数据库Note 2178468.1 - 诊断指南 - Ksvcreate: Process(xxxx) Creation Failed / ORA-00445: Background...

Wednesday, September 7, 2016 | Read More

standby 磁盘IO性能较差,影响Primary性能

近日处理一个由于standby 磁盘IO性能较差,导致Primary的性能受到影响。 主库主要是等待"log file switch completion",通过ASH dump分析,最终发现实际等待事件是"LGWR-LNS wait on channel”.这个事件基本上可以将问题归结到网络性能和standby的IO性能,而客户的传输模式是“MAXIMUM AVAILABILITY" 最后提出两个解决方案, 1. 更换性能更好的standby存储 2. 修改传输模式为MAXIMUM performance,并使用LGWR ASYNC传输模式 这里顺带强调一下standby三种传输模式,以及对应的可使用的传输方式 问题的根本,就是standby IO性能差,而使用“MAXIMUM AVAILABILITY"方式传输,使用sync模式,需要磁盘IO的写入成功的确认信息,导致拖累的primary的性能。  下面是关于SYNC和ASYNC的介绍 ...

Monday, September 5, 2016 | 诊断方法 | Read More

数据文件,通过List Bakcup在catalog的不同显示问题

环境: Oracle database 10.2.0.5 Primary RAC+ASM Standby Single Instance+Non-ASM Catalog OS Oracle Linux 6 1.近日遇到一个小问题,在standby上连接controlfile进行全库备份,备份完成后,通过list bakcup,查询到的数据文件路径是“u01/data/****” ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [$ rman target / Recovery Manager: Release 10.2.0.5.0 - Production on Mon Sep 5 15:39:55 2016 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: ORA10G (DBID=4146617466, not open) RMAN> backup database;Starting...

Monday, September 5, 2016 | 诊断方法 | Read More

12C新特性--为批量加载的在线统计信息收集

从12c开始,数据库能针对批量加载的操作自动的进行在线统计信息的收集: 1)CREATE TABLE AS SELECT 2)INSERT INTO ... SELECT 使用直接路径加载的方式插入到一个空表 在12C之前,我们针对大的数据量进行加载后,考虑到新能的原因都需要针对表再进行统计信息的收集, 这仍然是费时费力的操作。这个特性的引入,在我们进行数据加载的同时进行了统计信息的收集,避免 了不必要的表的二次扫描,同时也不需要再次人为的收集统计信息。 下面通过一些测试对这个特性加以澄清:1)test1  以CREATE TABLE...AS SELECT..方式进行批量加载create table big_table as select * from dba_objects; alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';select * from  DBA_TAB_STATISTICS where owner='SKYDL'...

Monday, September 5, 2016 | 新特性 | Read More