起行列转换,大家是既熟悉又陌生,在oracle 10g版本之前如果要做行列转换,都基本得使用decode来完成,在11g中情况有了改观,可以直接使用pivot特性来完成。这种方式相比decode来说要更加简洁清晰。 我们来举两个例子来说明一下。 -->session状态的监控 对于数据库中的session状态监控可以作为系统运维工作的一部分,一旦发现session异常就可以很快定位出可能是哪些类型的问题。 我们创建一个临时表来替代v$session来说明。 create table session_te
墨墨导读:本文来自墨天轮用户“只是甲”的投稿,总结所有Oracle行转列的语法,供大家参考学习。
大多数情况下,了解Oracle常用目录结构,将大大提高数据库管理与维护的工作效率,本文介绍了Oracle 10g 的常用目录。
编写一个 SQL 查询来重新格式化表,使得新的表中有一个部门 id 列和一些对应 每个月 的收入(revenue)列。
环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4
expdp/impdp是10g推出的导入导出工具,9i下是没有该工具的,有人提议用10g的expdp,通过dblink导出9i的数据,乍一听感觉是那么回事,但究竟行不行,咱们实验说明。
Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
--==========================================
最近抽空练习了下手工建库,在10g的时候基本都在20分钟搞定,在11g中其实还可以更快,因为10g中需要配置的admin目录,需要创建bdump,udump之类的目录等等,在11g都被adr给默认替代了,只要提供了$ORACLE_BASE,就会默认在$ORACLE_BASE下生成对应的目录结构。 其它步骤完全可以按照10g的脚本来使用,没有任何问题,但是如果反过来,在11g里使用的一些语句在10g中可能会有一些问题,这一点也是在今天的测试中发现的一个小细节。 首先我在11g的库中创建了一个数据库实例,使用c
作者:eygle 出处:http://www.eygle.com/blog 日期:October 28, 2005 本文链接:http://www.eygle.com/archives/2005/10/howto_control_10goem.html
Oracle的imp/exp组件是我们常用的工具,它的一个操作原则就是向下兼容。下面是据此总结的几个使用规则和相关测试: 规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器 --1.1 使用9i客户端通过imp连接到10g数据库 C:\Documents and Settings\yuechaotian>exp userid=hdtest/test@s67 tables=(ab01) rows=n file=d:\x.dmp Export: Release 9.2.0.1.0 - Production on 星期三 2月 20 10:09:55 2008 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 注: 将不会导出表数据(行) 即将导出指定的表通过常规路径 ... . . 正在导出表 AB01 在没有警告的情况下成功终止导出。 --1.2 使用10g客户端通过imp连接9i数据库:连接失败(而不是导出失败) C:\Documents and Settings\yuechaotian>exp userid=hbjb_kf_hd/test@s46 owner=hdtest file=d:\x.dmp Export: Release 10.2.0.1.0 - Production on 星期三 2月 20 09:57:22 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. EXP-00056: 遇到 ORACLE 错误 6550 ORA-06550: 第 1 行, 第 41 列: PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件 ORA-06550: 第 1 行, 第 15 列: PL/SQL: Statement ignored EXP-00000: 导出终止失败 规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件) --2.1 使用10g客户端exp出10g的数据 C:\Documents and Settings\yuechaotian>exp userid=test/test@orcl owner=test file=d:\10g.dmp Export: Release 10.2.0.1.0 - Production on 星期三 2月 20 11:16:39 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 服务器使用 AL32UTF8 字符集 (可能的字符集转换) 即将导出指定的用户... …… 导出成功终止, 但出现警告。 C:\Documents and Settings\yuechaotian> --2.2 使用9i客户端imp上面所导出的dmp文件到10g:可以连接到10g中,但无法识别文件 C:\Documents and Settings\yuechaotian>imp userid=test/test@s10g fromuser=test touser=test file=d:\10g.dmp Import: Release 9.2.0.1.0 - Production on 星期三 2月 20 11:20:33 2008 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With t
在Oracle 10g的中搭建Data Guard环境真是一个纠结,目前大体都是采用两种方式,一种是rman备份,一种是duplicate的方式,但是这两个地方不够让我满意,一来是rman备份数据量不小,需要先在本地生成备份,然后拷贝到备库去,这个搭建周期略长,另外一个就是推荐的方式duplicate,在10g中有些鸡肋的味道,本地备份,然后拷贝到备库,然后动用duplicate的方式,这样的方式还不如手工rman的方式同步来得顺心顺意,所以在10g中我是不怎么喜 欢duplicate方式。当然11
BBED(Block Browerand EDitor Tool) 是 Oracle 内部工具,可用于直接查看和修改数据文件数据。
WIN7 64bit安装Oracle 10.2.0.1后,运行cmd-sqlplus / as sysdba会提示:
对于dataguard说,switchover,failover是一种互补可选的容灾解决方案。但是对于这种容灾思路还是存在着一些实践中的细节需 要,从数据层面而言,只能是最大程度保证了数据的不丢失,但是数据切换过去了,权限,配置这些信息还是需要考虑的,如果切换过程很快,收尾的补充工作很 慢,那么总体来看切换的时间就被拉长了。 在提出准备的需求之前,容我花一点时间来简单吐槽一下10g中的dataguard. 10g中的状态切换 10g中的dataguard没有adg的特性,在使用中还是有很大的限制,很多时候备
从Oracle客户端连接到服务器,除了使用静态注册方式之外,9i后续的版本支持动态注册服务,同时可以将服务注册到非默认的端口。将服务注册到非默认端口可以提高数据库系统的安全性。
Oracle提供了DBCA来创建数据库,对于初学者来说使用DBCA创建数据库简化了很多工作和设置,直接在交互界面即可实现所有的功能。然而对于实际的生产数据库来说,使用DBCA来创建不切实际,建议按实际需求规划来创建数据库。Oracle数据库的创建不像SQL server,直接使用CREATE DATABASE DB_NAME(仅作临时,演示用)一条语句即可实现。不管是SQL还是Oracle,对于创建生产型数据库都需要进行需求分析、规划、创建等步骤。
自Oracle 10g开始,Oracle会将处于等待状态的会话的相关信息复制一份到VSESSION_WAIT中,而VSESSION_WAIT_HISTORY是其归档表,但这个表只会保存VSESSION_WAIT最近10次的等待信息,这对一段时间内的数据库性能的检测是远远不够的。为了解决这个问题,Oracle 10g新添加了一个视图VACTIVE_SESSION_HISTORY。
环境:OEL 5.7 + Oracle 10.2.0.5 RAC 需求:实验在Oracle 10g环境使用amdu抽取数据库文件
GoldenGate这些年在数据迁移中是大放光彩,简称OGG,对于很多DBA来说,学会这项技能也会给自己加分不少。 Oracle在10g开始推出的GRID的概念,分为了以下四个层面。 1)存储层面 ASM 2)数据库服务 RAC 3)应用 Stream 4)管理 Grid Control 现在来看看这四个方面的发展。 ASM如果说在10g是试水,那么在11g中是走向成熟,12c作为标配。 RAC呢,自不必说,其实已经远远超出了它本身的含义,数据库的组件那么多,唯独这个组件是很多大企业的首选,
前言:想让PHP可以操作Oracle数据库,那绝对是需要安装关于Oracle扩展。php的Oracle扩展叫oci
之前写了一篇文章分析了目前存在的一个问题和改进思路。迁移式升级的一点思考 (r10笔记第27天) 当前的硬件环境是Solaris,Oracle 10gR2 单实例,数据量在800G左右。想迁移到另外一台服务器上。大体的需求如下: 1.借助这次维护的时机,能够把数据库升级至11g 2.升级的过程需要尽可能保留一个较短的时间窗口,计划在2个小时以内完成 3.有较好的解决方案去演练整个过程,多次总结,提高迁移的效率,保证质量 4.有完善的回退计划,能够支持回退场景下业务平滑过渡
今天在本地搭了一套oracle环境,首先安装数据库的时候顺带了EM,结果安装好之后想修改监听器的端口,把原本15521的端口换成别的,结果在目录中修改了几个参数文件,EM竟然直接起不来了。最后自己分析了,其实有好几种思路来完成密码的修改。 一种是直接删除EM,然后重建,可以使用emca -deconfig dbcontrol db -repos drop来完成删除,然后通过emca -config dbcontrol db -repos create来重新创建EM, 还有一种方式可以通过图形界面来完成,这种
如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2010/03/30/5431428.aspx 虽然 Oracle 10g Database Release 2 已经推出几年了,但这个版本仍然为很多初学者学习的版本,下面详细讲述了安装 Oracle 10g 的步骤。 一、 linux 的版本选用 目前 linux(RHEL) 使用的主要版本为 5.4 版,可以到下面的地址下载其安装文件。 RHEL5.4 下载 http://download.chinaunix.net/download/0013000/12623.shtml 二、关于 linux 的安装 很多初学者使用的是 XP 系统上的虚拟机来安装 Linux ,因此本文也是在虚拟机上安装 Linux 然后再安装 Oracle 10g. 至于虚拟机可以使用 VMware 6.5 Workstation 版,这个可以到百度 ,Google 找一下,比较多。安装了 linux 时,我们需要特殊的配置一下 Oracle 的安装环境,关于这个配置 Oracle 安装环境,请参考: VmWare6.5.2下安装 RHEL 5.4(配置 Oracle安装环境) 三、安装 Oracle 前的环境检查 1. 下载 Oracle 10g R2 Oracle 10g for Linux http://www.oracle.com/technology/software/products/database/index.html 2. 查看 Linux 内核参数,有点多余,作为初学者,还是可以练习一下。请确保高于 2.6.9 -5.0.5.EL 以上内核 强烈建议大家安装 SecureCRT 或 VNC 工具,这样不必来回在 XP 和 Linux 下切换。 uname –r [root@localhost ~]# uname -r 2.6.18 -164.el5xen 3. 查看 CPU 、内存、 Swap 及磁盘可用空间 内存:至少 1GB ,下图中我的内存仅 900MB Swap :一般为可用物理内存的 2 倍,比如设定为 2GB /Temp 分区:至少 400MB Oracle 安装目录所在的分区:至少 4GB [root@localhost ~]# free -m total used free shared buffers cached Mem: 900 568 331 0 56 356 -/+ buffers/cache: 154 745 Swap: 2251 0 2251 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 6.4G 3.8G 2.3G 63% / /dev/sdd1 6.8G 144M 6.3G 3% /u01 /dev/sdc2 1.2G 34M 1.1G 3% /home /dev/sdc1 760M 17M 704M 3% /tmp /dev/sda1 456M 18M 415M 5% /boot tmpfs 450M 0 450M 0% /dev/shm none 450M 104K 450M 1% /var/lib/xenstored /dev/hdc 2.8G 2.8G 0 100% /media/RHEL_5.4 i386 DVD 四、配置安装环境 1. 安装补丁包 关于确认补丁包的是否已安装,可以使用下述方式来查看 rpm -q gcc make
这是2014年写的一篇文章(http://blog.csdn.net/bisal/article/details/18910785#reply),看了一下,当时的实验和说明是,
DBA_TAB_MODIFICATIONS视图(基表为SYS.MON_MODS_ALL$)记录了从上次收集统计信息以来表中DML操作变化的数据量,包括执行INSERT、UPDATE和DELETE影响的行数,以及是否执行过TRUNCATE操作。另外,DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO可以将内存(SGA)中的数据快速刷新到数据字典SYS.MON_MODS_ALL$中。
在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1
新发的笔记本,Windows 7 Pro,需要安装Oracle Client,同事给了一个10g的版本。安装过程中提示:
何剑敏 Oracle ACS华南区售后团队,首席技术工程师。供职于Oracle ACS华南区售后团队,首席技术工程师。多年从事第一线的数据库运维工作,有丰富项目经验、维护经验和调优经验,专注于数据库的整体运维。 编辑手记:运维中会面临各种各样的问题,有时候我们不能找到问题的根源就是因为在我们心里,有一个想当然的答案,比如认定了600就是bug,1555就是undo设置不合理,这些想当然的答案在很大程度上阻碍了我们的分析。我们通过今天的分享一起学习如何拨开云雾,发现问题的真相。 同事在12c中跑的buf
Oracle数据库的10g版本在7月31日结束了Extended Support - 扩展支持阶段,正式进入Sustaining Support - 持续支持阶段,在这个阶段,Oracle将不再提供补丁支持。也即Oracle 10g开始退出主流版本舞台。 这一切伴随着Oracle 12c的发布,更加推动用户去更替数据库版本,如题图所示,Oracle 11g版本自2007年发布以来,已经过去了7个年头,这期间11g版本经受了时间和应用的考验,已经成熟,而且根据规划,11g的新的补丁集11.2.0.4原本应该在
Oracle 10g是甲骨文公司在2007年年7月12日推出的最新数据库软件,Oracle 10g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月。相对过往版本而言,Oracle 10g具有了与众不同的特性。数据库重演(Database Replay)这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。因为我只是学习Oracle的开发知识,并不是来做产品的,所以就安装Oracle10!现在Oracle的最高版本是12,Oracle11算是比较稳定的版本,不过有3G的安装文件夹,所以我采用了
最近数据库从10.2.0.3升级到了10.2.0.5之后,一些对象无法编译通过。查看了这些对象主要表现在之前写法不严格的SQL语法导致了这些package无法成功编译,诸如select查询列中不能使用混淆的列名称等。另外一个比较表现突出的是返回ORA-00932: inconsistent datatypes: expected - got CLOB错误,即不一致的数据类型,获得CLOB数据类型。下面是这个问题的症状及对策。
随着这几天Oracle OpenWorld大会的召开,Oracle11g的新特性越来越多的被展现出来。
有时候在很多工作环境中,如果彼此几个机器的配置相似,我们就可以不用一遍又一遍的安装数据库软件了,我们可以为了更快的完成安装工作,在静默安装,图形安装的选择之外,还有克隆安装。不过在10g,11g的版本中还是存在一定的差别。虽然方法有差别,但是思路都是一致的。 我们可以从源环境中直接把ORACLE_HOME给打个包,在目标环境解压即可。这个时候尽管你去尝试sqlplus,exp这些工具也能用,但是还是存在很大的风险,毕竟别把它当成绿色版的。出了问题谁都兜不住。 11g的环境中,可以使用下面的方式来安装。 到达
DBA用户:具有sysdba,sysoper权限的用户被称为dba用户。默认情况下sysdba角色中存在sys用户,sysoper角色中存在system用户
CentOS 6.3(x86_32)下安装Oracle 10g R2 一、硬件要求 1、内存 & swap Minimum: 1 GB of RAM Recommended: 2 GB of RAM or more 检查内存情况 # grep MemTotal /proc/meminfo # grep SwapTotal /proc/meminfo 2、硬盘 由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。 检查磁盘情况 # df -h 二、软件 系统
从oracle中ASM的发展来看,到今天的普及使用,应该可以算做一种文化,因为这体现的不仅是ASM技术在实际工作中的成功普及,而且从某种程度来说,都代表了一个新生事物的发展历程,无论是java的发展还是各种开源项目的普及,都有着相似的痕迹。 asm从Oracle 10g版本推出,是作为grid的一部分鼓励使用的。而在这段漫长的时间里面,其实asm就在逐渐完善。 就如同你去公司内部推广一套很新技术的时候,人家肯定得衡量你的东西是不是足够好,如果性能指标能够达到指数级的提升,或者操作能够简化到极致,而且稳定,
环境:Oracle 11.2.0.4 RAC 现象:sysaux空间满导致无法正常生成快照,清理空间后,手工生成快照可以成功,但是观察自动生成快照依然是不成功。 之前了解到awr对应的相关后台进程是mmon,那么如何重启这个mmon进程呢? 起初我误以为是这种非核心进程是kill掉会自动启动,实际在实验环境中测试发现杀掉mmon进程并不会再自动起来。 那想启动mmon进程难道要重启数据库吗?当然,重启数据库自然是可以实现重启mmon的目的,但是这对于绝大多数的生产环境来说,如果为这样的需求去申请重启数据库都是几乎不可接受的。 下面我在实验环境做一个实际的演示:
由于要使用ODM,最好还是装个oracle,但可能由于本科时使用过oracle 9i的缘故,搞的现在还是好担心它的运行情况,所以下了个Oracle 10g的Express Edition,只有200多MB,比标准版小得多,但目前还不知道它对ODM工具的支持情况。。。
在Oracle中,自动收集统计信息的机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?
前几天有个朋友遇到一个问题,在做日期类型数据的运算的时候出现了‘0000-00-00’的结果,不得其解。你是否遇到过同样的问题呢?这样一个并不存在的时间点,难道是因为数据库系统穿越了? 问题回顾 在使用ogg同步数据到备库的时候,报ORA-01850的错误,通过logdump发现了很多类似的SQL报错,选取其中一个如下: select to_char(a.station_time) from sfis1.r_vip_log a where id=486270420; 结果显示:0000-00-00 因为显
作者介绍 郭成日 云和恩墨北区技术工程师 专注于SQL审核和优化相关工作。曾经服务的客户涉及金融保险、电信运营商、政府、生产制造等行业。 在优化器进行查询转换的时候,如果将内嵌视图里推入连接谓词,视
作者简介: 罗海雄 云和恩墨优化专家 ITPUB论坛数据库管理版版主,2012 ITPUB全国SQL大赛冠军得主,他还是资深的架构师和性能优化专家,对 SQL 优化和理解尤其深入;从开发到性能管理,他
C:\Documents and Settings\Administrator>explsxy/lsxy@lsxy_dbfile=E:\lsxy.dmp owner=lsxy
链接:http://www.eygle.com/archives/2010/11/recover_archivelog_corruption.html
不带ONLINE的新建或重建索引的SQL语句获取的是4级TM锁,它会阻塞任何DML操作。
本文将演示如何使用脚本一键安装 Oracle 19C RAC 3 节点数据库的全过程。
介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接。
领取专属 10元无门槛券
手把手带您无忧上云