星期六 二月 06, 2016

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

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。
2016年1月版:

SQL 性能分析器(SPA)工具概览…
Oracle 数据库技术更新 …
支持提示 …
补丁更新 …

星期四 二月 04, 2016

Thread Checkpoint在单节点和RAC中的不同。

在Oracle的官方文档中介绍Oracle的checkpoint有: (1)Thread Checkpoint (2)Tablespace and datafile checkpoint (3) Incremental checkpoint. 对于后两种checkpoint,大家都有一个比较清晰的认识。 但是对于Thread checkpoint和database checkpoint之间的关系以及他们在单节点和RAC数据库之间的不同可能存在一些误区。 下面将通过一些例子来讲解一下Thread checkpoint,以及在单节点和RAC中Thread checkpoint的不同。

一 单节点数据库(或者是RAC database中,只保留一个节点):

*为了便于观察checkpoint的,设置log_checkpoints_to_alert,让checkpoint的信息打印到alert log中:

SQL> show parameter log_checkpoints_to_alert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_checkpoints_to_alert             boolean     TRUE


1) 对数据库做"alter system switch logfile":


sys@R11203> select file#, CHECKPOINT_CHANGE# from v$datafile;

    FILE#         CHECKPOINT_CHANGE#
---------- --------------------------
        1             12717430780764
        2             12717430780764
        3             12717430780764
        4             12717430780764   <<<<<<<<<< 未switch之前

sys@R11203> alter system switch logfile;

System altered.

sys@R11203> select file#, CHECKPOINT_CHANGE# from v$datafile;

    FILE#         CHECKPOINT_CHANGE#
---------- --------------------------
        1             12717430780764
        2             12717430780764
        3             12717430780764
        4             12717430780764  <<<<<<<<<<<<< switch之后立即查看,v$datafile对应的checkpoint_change#并没有变化。


2)检查一下数据库的alert log:

Tue Jan 19 16:01:02 2016  
Beginning log switch checkpoint up to RBA [0x5a.2.10], SCN: 12717430780990    <<<<<<<<<<<<<<<  开始做log switch的checkpoint 到SCN12717430780990,但是并没有看到checkpoint结束。

3) 过了大约几分钟后,再次检查 alert log 以及 V$datafile

Tue Jan 19 16:05:58 2016   <<<<<<<<<<<<<<<<<< 16:05 已经结束checkpoint
Completed checkpoint up to RBA [0x5a.2.10], SCN: 12717430780990  


sys@R11203> select file#, CHECKPOINT_CHANGE# from v$datafile;

    FILE#         CHECKPOINT_CHANGE#
---------- --------------------------
        1             12717430780990
        2             12717430780990
        3             12717430780990
        4             12717430780990 <<<<<<<< v$datafile 中的checkpoint check# 已经更改到新的SCN:12717430780990

二 RAC数据库:

1) 对数据库做"alter system switch logfile":

SQL> select INST_ID,INSTANCE_NAME,STATUS from gv$instance;

  INST_ID INSTANCE_NAME    STATUS
---------- ---------------- ------------
        1 ora11g1          OPEN
        2 ora11g2          OPEN

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11583337
        2           11583337
        3           11583337
        4           11583337
        5           11583337
        6           11583337

6 rows selected.

SQL> alter system switch logfile;

System altered.

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11583337
        2           11583337
        3           11583337
        4           11583337
        5           11583337
        6           11583337  <<<<<<<<<<  checkpoint_change# 并没有改变。

6 rows selected.

2) 观察此节点的alert log:

Wed Jan 20 07:10:16 2016
Beginning log switch checkpoint up to RBA [0x22f.2.10], SCN: 11583841 <<<<<<<<< 开始 log switch的checkpoint。
Thread 1 advanced to log sequence 559 (LGWR switch)
 Current log# 1 seq# 559 mem# 0: +DATA1/ora11g/onlinelog/group_1.257.827893181
Wed Jan 20 07:10:16 2016
Completed checkpoint up to RBA [0x22f.2.10], SCN: 11583841   <<<<<<<<<<  log switch的checkpoint已经完成。

3) 重新观察一下v$datafile:

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11583337
        2           11583337
        3           11583337
        4           11583337
        5           11583337
        6           11583337  <<<<<<<<<<<< checkpoint_change# 还是没有改变。

6 rows selected.

4) 执行"alter system checkpoint"

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11583337
        2           11583337
        3           11583337
        4           11583337
        5           11583337
        6           11583337

6 rows selected.

SQL> alter system checkpoint;

System altered.

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11583983
        2           11583983
        3           11583983
        4           11583983
        5           11583983
        6           11583983 <<<<<<<<<< 变成: 11583983

6 rows selected.

5) 观察此节点的alert log:

Wed Jan 20 07:14:21 2016
Beginning global checkpoint up to RBA [0x231.3.10], SCN: 11583983   <<<<<<<<<<  Global checkpoint到 11583983。
Completed checkpoint up to RBA [0x231.3.10], SCN: 11583983

6) 那么如果在RAC中做log switch,每次thread checkpoint的记录在哪里可以查询到呢?

SQL> select INSTANCE_NUMBER,INSTANCE_NAME,THREAD#,STATUS from gv$instance;

INSTANCE_NUMBER INSTANCE_NAME       THREAD# STATUS
--------------- ---------------- ---------- ------------
             1 ora11g1                   1 OPEN     <<<<<<<<<<<<<<<<<<<<   节点1的thead号为: 1
             2 ora11g2                   2 OPEN

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11616270
        2           11616270
        3           11616270
        4           11616270
        5           11616270
        6           11616270

6 rows selected.

SQL> alter system switch logfile;

System altered.

7)在alert log中:

Thu Jan 21 02:22:52 2016
Beginning log switch checkpoint up to RBA [0x23a.2.10], SCN: 11621392
Thread 1 advanced to log sequence 570 (LGWR switch)
 Current log# 2 seq# 570 mem# 0: +DATA1/ora11g/onlinelog/group_2.258.827893183
Thu Jan 21 02:22:53 2016
Archived Log entry 358 added for thread 1 sequence 569 ID 0xfbc6d574 dest 1:
Thu Jan 21 02:22:55 2016
Completed checkpoint up to RBA [0x23a.2.10], SCN: 11621392   <<<<<<<<<<<<<  Thread checkpoint 到 11621392已经完成。

SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile;

    FILE# CHECKPOINT_CHANGE#
---------- ------------------
        1           11616270
        2           11616270
        3           11616270
        4           11616270
        5           11616270
        6           11616270 <<<<<<<<<< v$datafile中的checkpoint change#照例没有改变。

6 rows selected.

8) 查看v$thread:

SQL> select THREAD#,CHECKPOINT_CHANGE# from v$thread;

  THREAD# CHECKPOINT_CHANGE#
---------- ------------------
        1           11621392   <<<<<<<<<<<<<<<<  Thread 1 checkpoint 到 11621392 (和alert log中的描述一致)
        2           11619485

总结一下:

1. 对于单节点数据库,由于只有一个thread,所以由log switch发起的对当前thread的checkpoint,实质上就是整个数据库的checkpoint,所以log switch会导致v$datafile (v$datafile_header)中的checkpoint_change#改���。 但是必须要等checkpoint完成以后才会变成最新的值。

2. 对于RAC(2个节点以上)的数据库,由于至少存在2个或者以上的thread,所以对单一thread的 log switch并不会触发v$datafile (v$datafile_header)的checkpoint_change#的修改。原因是:只对其中一个thread(log)cover块的checkpoint,只会触发在此节点上脏块的写回. 但是由于多于2个节点,所以其他的节点可能存在在此checkpoint SCN之前的脏块,所以对于数据文件(或者是数据库)来说,这并不是一个完整的database级的checkpoint。 在RAC中,只有所有节点间的全局检查点(global checkpoint)会导致v$datafile中的checkpoint_change#的变化,比如"alter system checkpoint"。

 3. 在RAC中,对于thread的checkpoint_change#,可以通过v$thread来查询。

星期三 一月 27, 2016

关于 Oracle 数据库 PSU/SPU/Bundle Patch的补丁号变化




熟悉Oracle Database PSUBundle PatchDBA一定知道,一般来讲,这些patch的命名规则一般是按照推出的先后顺序,比如在201510月推出的对11.2.0.4 的第8DB PSU就命名为:DB PSU 11.2.0.4.8 20161月份推出对PSUSPUBundle Patch新的命名规则。


新的命名规则为(以11.2.0.4为例):11.2.0.4.YYMMDD 
此处的YYMMDD为主要patch PSUSPUBundle)发布的具体日期年份后两位加上两位的月份以及两位的日期。

比如对11.2.0.4推出的第9 DB PSU (本来应该命名为:11.2.0.4.9,在新的命名规则下,这个patch被命名为:11.2.0.4.160119 这也表示这11.2.0.4PSU 是在16119日推出的patch


Oracle最新补丁号码名称参考文档:Quick
Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and
Patchsets (Doc ID 1454618.1)

星期五 一月 08, 2016

root.sh脚本支持checkpoints文件实现重复运行

安装集群GRID/GI一般包括三个过程:首先,运行OUI/RunInstaller输入集群配置信息,其次,拷贝/编译集群文件,最后,以root用户运行root.sh脚本配置集群/启动集群,其中运行root.sh脚本是最关键的阶段。接触过很多 SR 都是在这个阶段出现错误导致安装失败。如果问题修复后,需要先deconfigure 已有的配置,然后再运行root.sh。从11.2.0.2版本开始支持重复运行root.sh脚本,也就是说修复问题后,可以直接再运行root.sh,并且从上次失败的地方继续安装(类似”断点续传”)。这个特性在12c中又得到增强。实现这个功能主要是通过将安装阶段信息记录到checkpoint文件和OCR文件来实现:

[Read More]

星期四 十二月 24, 2015

RAC之间消息传输流量控制

RAC系统中,对于节点和节点之间数据块一致性的保证是通过消息的机制来保证的,也就是我们常说的gcs和ges的这些消息来确保的。这些消息分别有LMD和LMS的进程在实例之间进行传输。

LMD负责处理message的信息,如块的状态,lock level等信息。而LMS会负责数据块的传输。我们这不讨论一致性的机制,主要关注在消息传输的流量和控制上。

[Read More]

星期二 十二月 22, 2015

Oracle数据库技术支持通讯2015年12月版(2015年12月)

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

您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。



2015年12月版:




星期五 十二月 11, 2015

【网上研讨会】Oracle数据库12c 升级过程的新特性

网上讲座: Oracle数据库12c 升级过程的新特性 (Mandarin only)

讲座时间:

周二, 2016年1月19日, 下午03:00 (北京时间)

内容概要:
这个1小时的网上研讨会,建议有数据库管理经验的DBA参加。在本次讲座中,我们将帮助DBA了解 12c升级过程中的新特性,比如:12c 升级的新特性,介绍新 的DBUA的接口等。

    - DBUA的新界面(New DBUA Interface)
    - 新的预升级信息工具(New Pre-Upgrade Information Tool)
    - 增强的升级自动化功能(Enhanced Upgrade Automation)
    - 命令行升级示例(Demo on Command Line Upgrade)
    - DBUA在Windows平台的特殊变化(DBUA Windows Specific Changes)

关于所有网上讲座的时间安排和材料下载,请访问MOS的文档 <<Note 740966.1>>

网上讲座的会议信息:

Topic: Oracle数据库12c 升级过程的新特性 (Mandarin only)
Event Number: 598 864 884
Event Passcode: 909090

注册该讲座: https://oracleaw.webex.com/oracleaw/onstage/g.php?d=598864884&t=a

Once the host approves your request, you will receive a confirmation email with instructions for joining the meeting.

InterCall Audio Instructions

A list of Toll-Free Numbers can be found below.
    Participant US/Canada Dial-in #: 1866 230 1938   
    International Toll-Free Numbers
    Alternate International Dial-In #: +44 1452 562 665
    Conference ID: 72899302

VOICESTREAMING AVAILABLE

星期三 十一月 25, 2015

大连数据库技术研讨会

Oracle数据库技术支持不定期为您提供免费技术研讨会。
我们将在这里共享技术研讨会的相关信息和培训资料,敬请期待。

******技术研讨会 Session02 on 2015-12-05******
Topic:RAC数据库的连接管理
讲师:高斌
资料:Training_Material_Session02_20151205.pdf

******技术研讨会 Session01 on 2015-08-29******
Topic:SQL语句处理的详细过程
讲师:李鑫
资料:Training_Material_Session01_20150829.pdf

Oracle数据库技术支持通讯2015年11月版(2015年11月)

Oracle数据库技术支持通讯2015年11月版已发布.
您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。

2015年11月版:




星期五 十一月 06, 2015

12c 新特性 - OPatch Automation Tool - opatchauto


从12c开始,在集群GRID/RAC环境下,通过root用户使用opatchauto命令安装patch
(注:11.2 GRID通过opatch auto)。

opatchauto命令详细参数:

$ cd $GRID_HOME/OPatch
$ ./opatchauto -help
OPatch Automation Tool
Copyright (c) 2015, Oracle
Corporation. All rights reserved.


Usage: opatchauto [ -help ] [ command ]
command := apply
resume
rollback
version
<global_arguments> := -help Displays the help message for the
command.

example:
'opatchauto -help'
'opatchauto -h'
'opatchauto apply -help'
'opatchauto resume -help'
'opatchauto rollback -help'
'opatchauto version -help'

opatchauto succeeded.


查看 apply 选项的详细输出

$ ./opatchauto apply -help
OPatch Automation Tool
Copyright (c) 2015, Oracle
Corporation. All rights reserved.


DESCRIPTION
Apply a System Patch to Oracle Home. User specified the patch
location or the current directory will be taken as the patch location.
opatchauto must run from the GI Home as root user.
SYNTAX
<GI_HOME>/OPatch/opatchauto apply
[-analyze]
[-database
<database names> ]
[-generateSteps]
[-invPtrLoc
<Path to oraInst.loc> ]
[-jre <LOC> ]
[-norestart ]
[-nonrolling ]
[-ocmrf <OCM
response file location> ]
[-oh
<OH_LIST> ]
[ <Patch
Location> ]

其中"-analyze"选项可以模拟OPatchauto apply,提前检查所有检查项目,但是运行"-analyze"选项不会真正改变系统。

在安装patch之前请下载最新的OPatch包:patch 6880880 ,以避免一些低版本OPatch包中的已知问题。

opatchauto 安装GI PSU 具体命令:

1. 同时对GI home all Oracle  RAC database homes psu
# opatchauto apply  <UNZIPPED_PATCH_LOCATION>/20996835 -ocmrf <ocm response file>


2. 只单独对GI home psu
# opatchauto apply  <UNZIPPED_PATCH_LOCATION>/20996835 -oh <GI_HOME> -ocmrf <ocm
response file>


3.只单独对RAC database  homes psu
# opatchauto apply  <UNZIPPED_PATCH_LOCATION>/20996835 -oh  <oracle_home1_path>,<oracle_home2_path> -ocmrf <ocm response  file>


参考文档:
https://docs.oracle.com/cd/E24628_01/doc.121/e39376/opatchauto_commands.htm#OPTCH586
https://docs.oracle.com/cd/E24628_01/doc.121/e39376/configuration_patching.htm#OPTCH149


星期一 十一月 02, 2015

Oracle数据库技术支持通讯2015年10月版(2015年10月)

Oracle数据库技术支持通讯2015年10月版已发布.
您可以收藏或访问 Note 1529795.1 来阅读最新内容,它包含了当前的技术通讯和历史版本的链接。

2015年10月版:






星期五 十月 30, 2015

产品新闻 – TimesTen 11.2.2 新版本、新体验


Oracle TimesTen In-Memory Database 11.2.2 版本从 2012 年发布至今已经有三年多的时间。新版本产品日趋稳定,并吸引越来越多的客户使用TimesTen 并利用最新的内存数据库技术为应用提供更优质的服务。TimesTen 最新的TimesTen发行版本 11.2.2.8.0 于 2015 年初发布,是一款面向所有支持平台的版本。这里将 TimesTen 11.2.2 版本的变化和新功能汇总,希望大家通过了解并使用新功能来更好的体验内存数据库技术。

        自 11.2.2 版本开始,TimesTen 引入了新的内存分析功能来更好的服务于实时分析和报表应用对内存数据库的需求。

        对于内存分析功能的增强主要表现在:


-- 提供针对内存分析的 SQL 优化器来支持和优化更多的数据仓库类聚合查询(例如星型连接)。

-- 支持丰富的数据分析查询功能:

分析功能:AVG, SUM, COUNT, MAX, MIN, DENSE_RANK, RANK, ROW_NUMBER, FIRST_VALUE and LAST_VALUE
分析语法:OVER PARTITION BY and OVER ORDER BY
多维度操作:
Grouping 语法: GROUP BY CUBE, GROUP BY ROLLUP, GROUP BY GROUPING SETS
Grouping 功能: GROUP, GROUPING_ID, GROUP_ID
支持WITH 语法
聚合表达式可使用 DISTINCT
空值处理 (ORDER BY 语句中 NULLS FIRST 或者 NULLS LAST )

-- 支持列压缩技术。对于内存分析类型的表,可以通过压缩方式来存储更多的数据,进一步优化内存空间的使用。

-- Hash 索引的全面支持。我们知道,hash 索引是优化等值查询的首选索引类型。之前的版本(11.2.2.5),hash 索引只支持创建在主键字段上。现在,可以创建任何单字段 hash 索引,甚至可以创建多字段 hash 索引。

-- 支持 Index Advisor 来帮助给出数据库查询语句基于索引的优化建议。

-- 优化数据加载效率。通过使用并行加载的方式,来极大缩短数据加载到 TimesTen 数据库所用的时间,例如使用 ttLoadFromOracle 内置工具进行并行加载,

-- ROracle 支持 TimesTen。ROracle提供 R 和数据库之间的接口,使用 SQL 查询语言提供 R 统计编程环境下丰富的功能。 ROracle 使用 OCI 连接数据库,提供了比标准的ODBC更好的性能。

-- 提供多种工具支持数据源加载数据到 TimesTen 数据库。

       全新的 ttImportFromOracle 工具不但可以帮助分析 Oracle 数据库需要加载的数据,而且会提供给出多种导入优化的指导建议。

       Oracle GoldenGate 支持数据从 Oracle 数据库同步到 TimesTen 数据库。

       Oracle TimesTen 始终致力于为 OLTP 应用提供实时事务处理的服务。因此,在 OLTP 方面也提供了一系列新的功能:

-- 全新的 B+Tree 索引技术。在11.2.2.5版本之后引入的全新 B+Tree 索引技术可以极大优化并发控制,提高事务处理能力,提供更高的高并发写入场景下的吞吐量,是当今多核计算机时代下高并发,大规模事务处理型应用的理想选择。测试表明,吞吐量的提升是之前 B-Tree 索引的五倍。新的数据库,可以通过配置 DSN 中数据库参数 RangeIndexType = 0 来启用 B+Tree 索引。

-- Hash 索引的全面支持。我们知道,hash 索引是优化等值查询的首选索引类型。之前的版本(11.2.2.5),hash 索引只支持创建在主键字段上。现在,可以创建任何单字段 hash 索引,甚至可以创建多字段 hash 索引。

-- 优化 NUMA 架构下的数据库性能。当今的计算机时代,每个服务器都能装备大量 CPU以及大容量物理内存 DRAM。一般这类系统存在 Non Uniform Memory Access (NUMA) 内存延迟的情况,例如,当访问的内存不在本地处理器(socket)当中时。TimesTen 作为内存数据库完全运行在物理内存 DRAM 中,对 NUMA 架构非常敏感,且受到的影响远大于基于磁盘的关系型数据库(数据访问在存储级优化)。因此,TimesTen 在每个版本都持续不断的优化 NUMA 系统的支持。11.2.2 中对NUMA 本地化和代码路径进行了一系列的改进和提高,可以在 Oracle T5-8 这台配置 128核 和1024处理线程的服务器上完成每秒接近 6千万查询,和1千万事务更新的能力。在 NUMA 架构下,建议通过实例绑定 socket 的方式来获得最佳的性能。

-- 并行复制功能。在11.2.2版本中,在部署了 HA 架构下,通过配置 ReplicationParallelism = n (n>1) 来充分利用高速网络带宽和服务器多核处理器实现并发复制功能。

由于确保了每个复制流维护操作和事务顺序(提交顺序),它也存在一个复制所能达到的最大吞吐量的限制。因此,在11.2.2 版本中,还可以通过解除复制流中事务间操作和提交顺序的依赖,针对不需要严格提交顺序的应用场景,实现进一步实质性的性能提升。许多的OLTP应用具有彼此独立的事务处理,例如,你的账户扣除余额与扣除我的账户余额之间是独立的;你的移动设备的更新位置与我的设备的位置是独立的。 对于这样的应用程序,它通常是没有必要在使用复制的高可用性时,使用相同的提交顺序来应用这些事务。我们曾经看到过在放宽备用数据库提交顺序后,有接近80% 的复制吞吐量的提升。为了放宽接收主机上的顺序,设置属性 ReplicationApplyOrdering 值为2。

-- 加速数据库重启功能。在11.2.2.8.0 发行版本中,用户可以通过启用并行线程来读取 TimesTen 数据库检查点文件来减少他们的数据库重新启动时间。对于检查点文件比较大的,并存储在固态或闪存情况下是非常有用的。并行检查点读功能,通过设置新的 CkptReadThreads 属性来启用。 CkptReadThreads 是一个第一连接属性,并应在加载数据库前预先设置。 CkptReadThreads的默认值设置为1(通常用于硬盘存储)。当使用固态驱动器或闪存时,用户可以设置 CkptReadThreads 属性的值从2至8。采用最新 SSD 与8 路并行检查点读线程,使用单个SSD设备或PCIe闪存卡,它可以达到2 GB /秒的读取速度。还可以通过使用双 SSD 设备 / 闪存卡(通过磁盘条带化)来实现3.4 GB /秒的持续读取速度。这意味着,一个大小为 1TB 的TimesTen数据库被加载到内存中大概仅��需要5分钟。

-- ttStats 实时监控和快照报表功能。一直以来,客户都希望获得类似 Oracle 数据库的 AWR 诊断报告功能。在11.2.2版本中,ttStats 内置工具提供了 HTML 格式的数据库诊断快照报表功能。该功能是基于 PL/SQL 的一个监控工具,通过命令行或 SQL Developer 界面操作来生成报表。可以用于实时监控,快照捕获和HTML报告等功能,帮助管理员快速了解从数据库层到具体 SQL 语句的性能情况。

-- Oracle Enterprise Manager 插件新版本 TimesTen Plug-in 12.1.0.3.0。新版本为企业中的数据库管理员们带来很多新功能。除了数据库的性能和可用性监控,新的插件为管理员们提供管理和维护他们的 TimesTen 实例和数据库的能力,例如启动和停止TimesTen 服务,装载数据库到内存和从内存中卸载数据库,调度备份和还原数据库。此外,用户可以监控数据库和复制活动,内存和磁盘的用量,工作负载性能统计,并确定运行时间最长,最常被执行的SQL语句。新的 TimesTen 插件是全球化的,其用户界面支持九种不同的语言(包括支持中文界面),提供与 Oracle Enterprise Manager完全相同的语言。

       以上这些是11.2.2的部分重要新功能介绍。如果希望了解更多详细的产品新功能介绍和功能增强,请参阅产品发布说明书。此外,新版的快速入门手册也为我们带来了全新版本的技术介绍,使得我们可以在很短的时间内,配置、搭建并感受到TimesTen 内存数据库产品带来的全新体验。

星期五 十月 23, 2015

pga_aggregate_target和_pga_max_size都不能绝对限制实际PGA的使用

     
和sga_target不同,pga_aggregate_target并不能限制PGA的大小。 另一个差别是,SGA是数据库启动时按照sga_max_size预先分配的,而PGA则是“按需分配”的。

       以下详细解释下,为什么pga_aggregate_target并不能限制PGA的大小。一般的文档会把PGA分为stack space和UGA两个部分,但这种提法太笼统,不利于我们理解这个问题。我们把它分为work area和work area之外的部分。

       所谓work area,就是session要执行SQL,需要在数据库内部分配的,为了存放中间结果的内存。 比如sort area,为了排序用的内存,比如hash area,为了hash join用的内存,这一部分直接和SQL执行相关,影响SQL执行的效率,比如更大hash area会让hash join更快。pga_aggregate_target实际上只限制work area的大小。当work area达到pga_aggregate_target的限制,则会产生4030错误。隐含参数_pga_max_size只是限制单个进程使用的work area大小,也是在pga_aggregate_target的限制之内的更小限制。而work area之外的内存,不被pga_aggregate_target和_pga_max_size所限制。所以你经常会看到PGA的大小超过了pga_aggregate_target。这通常是因为PL/SQL中的变量和数组中装入了巨大的数据造成的。通常的例子是bulk collect,imp/exp,sql loader等工具也会产生类似的问题。

      我下面给出一个具体的示例:
alter system set "_pga_max_size"=10m scope=both;
alter system set pga_aggregate_target=100m scope=both;
SQL> shutdown immediate
startup
SQL> select ksppinm as "hidden parameter", ksppstvl as "value" from x$ksppi join x$ksppcv  using (indx) where ksppinm like '%_pga_max_size%' order by ksppinm;
hidden parameter
--------------------------------------------------------------------------------
value
--------------------------------------------------------------------------------
_pga_max_size
10485760

<=========限制单个进程使用PGA 100M(其实是work area)

执行一个PL/SQL,使用bulk collect使其内存使用大大超过pga_aggregate_target和_pga_max_size:
DECLARE
  CURSOR c1 IS
    SELECT *
    FROM oracle.employees;
  TYPE emp_row IS TABLE OF c1%ROWTYPE;
  table_set  emp_row;
BEGIN
  -- Assign values to nested table of records:
  SELECT *
    BULK COLLECT INTO table_set
    FROM oracle.employees;
  -- Print nested table of records:

    FOR i IN table_set.FIRST .. table_set.LAST LOOP
      DBMS_OUTPUT.PUT_LINE (
        table_set(i).email || ' ' ||
        table_set(i).last_name  || ', ' ||
        table_set(i).first_name
      );
    END LOOP;END;
/

select pid,spid,program,pga_used_mem/1024/1024,pga_alloc_mem/1024/1024 from v$process
where spid=3735758

PID SPID         PROGRAM                                          PGA_USED_MEM/1024/1024 PGA_ALLOC_MEM/1024/1024
--- ------------ ------------------------------------------------ ---------------------- -----------------------
19    3735758    oracle@nascds5 (TNS V1-V3)    616.22734165191650390625    616.63962650299072265625
《=========PGA使用了600M

select a.name,to_char(b.value,'999,999,999') value
from v$statname a,v$mystat b
where a.statistic# = b.statistic#
and a.name like '%ga memory%';

NAME                                                             VALUE
---------------------------------------------------------------- ------------
session uga memory                                                  1,896,024
session uga memory max                                              1,896,024
session pga memory                                                  2,330,120
session pga memory max                                            647,400,968  <==========Peak PGA size for the session. 647,400,968


12c新追加了一个参数PGA_AGGREGATE_LIMIT来限制PGA的大小:
Limiting process size with database parameter PGA_AGGREGATE_LIMIT (Doc ID 1520324.1)

星期四 十月 22, 2015

TimesTen 返璞归真 – 多连接在ttIsql 中的应用


        最近有用户咨询:ttIsql是否可以支持多个并发连接到 TimesTen 数据库。这个问题具有一定的普遍性,相信其他用户也会感兴趣,因此决定将其纳入这篇博客。
        ttIsql是一个用来操作TimesTen数据库的交互式SQL命令型管理程序 (utility)。除了支持SQL命令的执行,它还提供了一整套丰富的功能,使得用户不仅能够连接到数据库, 执行其内置(built-in)程序和管理程序,还能支持灵活的命令编辑,以及调用主机操作系统的命令。 所有这些都可以在同一个ttIsql会话中实现!
        当你想执行的命令需要不同的用户凭据的时候,那么在同一个 ttIsql会话中,使用多连接就会变得非常便利。例如,有一些数据库的操作需要管理员权限,而其他操作仅需要表的所有者或是一般数据库的访问权限。如果你打算使用多连接,给连接起名字就会变得非常有用。这样一来,ttIsql可以帮助你清楚地知道正在执行的是哪个连接。在接下来的例子当中,我们会创建两个连接到同一个范例数据库,SAMPLEDB – 第一个连接使用的是应用用户(APPUSER),第二个连接使用的是管理员用户(ADM)。我们将使用CONNECT命令,并指定每个连接的名称:

$ ttIsq
Command> CONNECT “DSN=sampledb;uid=appuser;pwd=appuser;ConnectionName=app_conn”;
Command> SELECT count (*) from mytable;
< 1000000 > 1 row found.

Command> CONNECT "DSN=sampledb; uid=adm; pwd=adm; ConnectionName=adm_conn";
adm_conn: Command>

在ttIsql中,最后创建的连接是当前的活动连接,ttIsql提示符将显示当前正在使用的连接名称。那么如上所示,adm_conn就是当前正在使用的连接。

adm_conn: Command> CALL ttRamPolicySet ('manual');

执行ttRamPolicySet内置程序需要管理员权限。在不退出当前ttIsql会话或者发起另一个会话的前提下,都可以在这里方便地使用多连接功能。如上所示,我们使用管理员的连接执行了一个设置 RAM policy 为 MANUAL 的命令。
如果想切换到不同的连接,只需执行USE命令:

adm_conn: Command> USE app_conn;
app_conn: Command> CALL ttVersion();
< 11, 2, 2, 8, 0 >

1 row found.

请注意,在 USE命令执行后,ttisql提示符将变为app_conn来提示当前连接。 ttVersion是一个用于返回当前TimesTen版本信息的内置程序。任何用户都可以调用。
如果想断开某一个连接,使用 DISCONNECT命令:

app_conn: Command> DISCONNECT adm_conn;

在ttIsql中,另一个有用的功能是可以执行主机操作系统的命令。 你可以执行任何你权限下的OS命令。举个简单的例子,我们执行 MORE 命令,来查看myconfig.ini文件中的内容:
app_conn: Command> HOST more /home/appuser/myconfig.ini
This is myconfig.ini file
Line 1
Line 2
Line 3
app_conn: Command> exit

当然,ttIsql还有许多其他的功能。你可以用它来帮助你自动化日常的操作。欲了解更多信息,请参阅产品文档中的TimesTen 数据库参考手册

星期五 十月 16, 2015

Class of Secure Transport (COST) 限制实例注册 测试


  COST 是class of secure transports 的缩写。是为了控制实例注册提供的一种安全控制机制。其作用是对于一个确定的listener,限制哪些实例通过哪些协议可以进行注册。这将避免有其他远程实例进行恶意注册,并由此产生信息泄露等风险。
  它通过在 listner.ora中设置参数SECURE_REGISTER_listener_name的值,指定为一个transport list(限定的注册协议列表,如IPC、TCP、TCPS)来实现这一功能。  该功能从 10.2.0.3 版本开始支持(虽然10g R2的在线文档中并未明确说明),一直到11.2.0.4版本及之后依然可用。但是,在11.2.0.4后,oracle建议使用默认的VNCR配置。
(关于cost的细节请参考 本文末尾的链接) 。

下面,我们将对这一功能的基本配置进行一个测试:

1. 我这里有一个两节点的RAC环境
2.首先在节点1和节点2上都没有打补丁,我们看看现象:
[grid@nascds11 ~]$ /u01/app/11.2.0/grid/OPatch/opatch lsinventory
Invoking OPatch 11.2.0.1.7

Oracle Interim Patch Installer version 11.2.0.1.7
Copyright (c) 2011, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/11.2.0/grid
Central Inventory : /u01/app/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.1.7
OUI version       : 11.2.0.3.0
Log file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2015-09-10_06-27-03AM.log

Lsinventory Output file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2015-09-10_06-27-03AM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):

Oracle Grid Infrastructure                                           11.2.0.3.0
There are 1 products installed in this Oracle Home.

There are no Interim patches installed in this Oracle Home.

Rac system comprising of multiple nodes
  Local node = nascds11
  Remote node = nascds10

--------------------------------------------------------------------------------

OPatch succeeded.
[grid@nascds11 ~]$


3.正常情况下的LOCAL_LISTENER的注册实例信息:
[grid@nascds11 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 06:28:55

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                01-SEP-2015 08:48:15
Uptime                    8 days 21 hr. 40 min. 40 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/nascds11/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.35)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.33)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "ora11g" has 1 instance(s).
  Instance "ora11g2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@nascds11 ~]$

4. 正常情况下scan_listenr里的信息:
[grid@nascds11 ~]$ lsnrctl status listener_scan1

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 06:30:38

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                10-SEP-2015 06:24:45
Uptime                    0 days 0 hr. 5 min. 53 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/11.2.0/grid/log/diag/tnslsnr/nascds11/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.29)(PORT=1521)))
Services Summary...
Service "ora11g" has 2 instance(s).
  Instance "ora11g1", status READY, has 2 handler(s) for this service...
  Instance "ora11g2", status READY, has 2 handler(s) for this service...
The command completed successfully
[grid@nascds11 ~]$


4.我们尝试对listener进行所谓的“投毒”操作:
我在同网段的另外一台数据库server上把一个单实例注册到这个监听上:
4.1 .我们先对scan listener进行 “投毒”操作:
SQL> alter system set remote_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.29)(PORT=1521))' scope=memory;

System altered.

SQL> alter system register;

System altered.


4.2. 我们看以下监听的状态:
[grid@nascds11 ~]$ lsnrctl status listener_scan1

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 06:33:38

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                10-SEP-2015 06:24:45
Uptime                    0 days 0 hr. 8 min. 53 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/11.2.0/grid/log/diag/tnslsnr/nascds11/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.29)(PORT=1521)))
Services Summary...
Service "R10205" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service... <<<======================此时,我们看到R10205的单实例已经注册到了RAC环境中的scan listener中
Service "R10205XDB" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service...
Service "R10205_XPT" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service...
Service "ora11g" has 2 instance(s).
  Instance "ora11g1", status READY, has 2 handler(s) for this service...
  Instance "ora11g2", status READY, has 2 handler(s) for this service...
The command completed successfully
[grid@nascds11 ~]$

4.3.我们尝试对本地的listenre 进行“投毒”测试:
SQL> alter system set remote_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.32)(PORT=1521))' scope=memory;

System altered.

SQL> alter system register;

System altered.

[grid@nascds11 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 06:37:01

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                01-SEP-2015 08:48:15
Uptime                    8 days 21 hr. 48 min. 46 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/nascds11/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.35)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.33)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "R10205" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service...    <<======================此时,我们看到R10205的单实例已经注册到了RAC环境中的local listener中
Service "R10205XDB" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service...
Service "R10205_XPT" has 1 instance(s).
  Instance "R10205", status READY, has 1 handler(s) for this service...
Service "ora11g" has 1 instance(s).
  Instance "ora11g2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@nascds11 ~]$

截止到此,我们已经看到了所谓的"投毒" 是怎么回事儿,是如何操作的;
接下来我们看如何避免这种问题的产生:
5. 首先,我们需要下载补丁12880299,并同时打到GI和RDBMS的HOME里, 如下: (我们不介绍如何打补丁,打补丁的步骤就跳过了)

GI:
[grid@nascds10 OPatch]$ ./opatch lsinventory
Invoking OPatch 11.2.0.1.7

Oracle Interim Patch Installer version 11.2.0.1.7
Copyright (c) 2011, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/11.2.0/grid
Central Inventory : /u01/app/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.1.7
OUI version       : 11.2.0.3.0
Log file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2015-09-10_06-45-01AM.log

Lsinventory Output file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2015-09-10_06-45-01AM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):

Oracle Grid Infrastructure                                           11.2.0.3.0
There are 1 products installed in this Oracle Home.

Interim patches (1) :

Patch  12880299     : applied on Thu Sep 10 03:07:58 CST 2015
Unique Patch ID:  14821502
   Created on 4 May 2012, 04:17:20 hrs PST8PDT
   Bugs fixed:
     12880299

Rac system comprising of multiple nodes
  Local node = nascds10
  Remote node = nascds11

--------------------------------------------------------------------------------

OPatch succeeded.
[grid@nascds10 OPatch]$

RDBMS:
[oracle@nascds10 OPatch]$ ./opatch lsinventory

Invoking OPatch 11.2.0.1.7

Oracle Interim Patch Installer version 11.2.0.1.7
Copyright (c) 2011, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2.0/db_1
Central Inventory : /u01/app/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.1.7
OUI version       : 11.2.0.3.0
Log file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2015-09-10_06-52-02AM.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2015-09-10_06-52-02AM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.3.0
There are 1 products installed in this Oracle Home.

Interim patches (1) :

Patch  12880299     : applied on Thu Sep 10 03:10:14 CST 2015
Unique Patch ID:  14821502
   Created on 4 May 2012, 04:17:20 hrs PST8PDT
   Bugs fixed:
     12880299

Rac system comprising of multiple nodes
  Local node = nascds10
  Remote node = nascds11

......


(通过以上命令输出验证补丁安装结果)。


6. 打开 listener.ora 文件,添加以下信息:

SECURE_REGISTER_LISTENER = (IPC,TCP,TCPS)
SECURE_REGISTER_LISTENER_SCAN1 = (IPC,TCP,TCPS)



--注意,不要把监听的名字写错了,通过以下命令确认监听的名称:

ps -ef |grep lsnr
grid      4176     1  0 Sep01 ?        00:01:01 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid      8086     1  0 06:24 ?        00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit

--重启listenrs,命令如下:

lsnrctl stop listener
lsnrctl start listener

lsnrctl stop LISTENER_SCAN1
lsnrctl start LISTENER_SCAN1



7.尝试是否可以避免该问题:

[grid@nascds10 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 07:06:15

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     listener
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                10-SEP-2015 03:19:57
Uptime                    0 days 3 hr. 46 min. 19 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/nascds10/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.32)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.34)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "ora11g" has 1 instance(s).
  Instance "ora11g1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@nascds10 admin]$

SQL> alter system set remote_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.32)(PORT=1521))' scope=memory;

System altered.

SQL> alter system register;

System altered.


[grid@nascds10 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 07:07:40

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     listener
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                10-SEP-2015 03:19:57
Uptime                    0 days 3 hr. 47 min. 45 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/nascds10/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.32)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.34)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "ora11g" has 1 instance(s).
  Instance "ora11g1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@nascds10 admin]$

查看listenr的日志,我们会发现以下信息:

10-SEP-2015 07:07:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=nascds10.cn.oracle.com)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647296)) * status * 0
10-SEP-2015 07:07:20 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport
10-SEP-2015 07:07:20 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport
Thu Sep 10 07:07:25 2015
10-SEP-2015 07:07:25 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport
Thu Sep 10 07:07:40 2015
10-SEP-2015 07:07:40 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=nascds10.cn.oracle.com)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647296)) * status * 0
Thu Sep 10 07:08:08 2015
10-SEP-2015 07:08:08 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport
10-SEP-2015 07:08:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=nascds10.cn.oracle.com)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647296)) * status * 0

同样,我们看对scan_listenr进行测试:
SQL> alter system set remote_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.29)(PORT=1521))' scope=memory;

System altered.

SQL> alter system register;

System altered.

SQL>

[grid@nascds10 trace]$ lsnrctl status listener_scan1

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 10-SEP-2015 07:11:35

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                10-SEP-2015 07:05:16
Uptime                    0 days 0 hr. 6 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/11.2.0/grid/log/diag/tnslsnr/nascds10/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.182.208.29)(PORT=1521)))
Services Summary...
Service "ora11g" has 2 instance(s).
  Instance "ora11g1", status READY, has 2 handler(s) for this service...
  Instance "ora11g2", status READY, has 2 handler(s) for this service...
The command completed successfully

日志信息:
10-SEP-2015 07:13:21 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport
Thu Sep 10 07:13:27 2015
10-SEP-2015 07:13:27 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=nascds10.cn.oracle.com)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER_SCAN1)(VERSION=186647296)) * status
* 0
10-SEP-2015 07:13:31 * service_register_NSGR * 1194
TNS-01194: The listener command did not arrive in a secure transport


参考:
Note: 1453883.1   (Using Class of Secure Transport (COST) to Restrict Instance Registration)
Note: 1340831.1   (Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC)

About

本博客由Oracle全球技术支持中国区的工程师维护。为中文用户提供数据库相关的技术支持信息,包括常用的诊断工具、诊断方法、产品新特性、案例分析等。此外,MOS也陆续推出各类中文内容:技术通讯统一发布在Note 1529795.1 中,中文文档列表更新在Note 1533057.1 中,网上讲座请查看MOS文档 1456176.1,在"Archived"中可以下载历史的录音和文档。

Search

Archives
« 二月 2016
星期日星期一星期二星期三星期四星期五星期六
 
1
2
3
5
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
     
       
今天