随笔分类 -  Oracle

1 2 3 下一页

Study Note for Oracle
unique constraint 和 unique index 的关系
摘要:今天开发人员说,明明执行了删除唯一约束,但是插入数据的时候仍然遇到唯一性冲突。经过检查,发现是和约束同名的一个唯一索引造成的。为啥删除了唯一约束之后,索引还在?这个地方其实有点讲究,关键的区别就在于,索引是自动建立的还是手动建立的。 自动建立 默认的情况下,当我们建立一个unique constraint的时候,Oracle会自动的建立一个同名的unique index,真正... 阅读全文

posted @ 2013-01-30 10:52 wait4friend 阅读(1846) 评论(0) 推荐(1)

Listagg() - Oracle11gR2进行字符串汇总的新函数
摘要:在 wait4friend 的一篇老文《Oracle进行字符串汇总》里面,提到了三种常用的方式。其中比较好用的是10g之后提供的wm_concat()函数。在日常使用中,我们发现了wm_concat函数的一些缺点。首先是这个函数本身不支持排序,要通过嵌套视图的方式进行排序。另一个问题是,当排序过程中,可能会遭遇ora-01467 sort key too long错误。在11gR2版本中,有一个新的函数listagg(),可以提供更强的功能,并且效率更高。listagg()可以作为聚合函数使用,也可以作为分析函数使用。语法如下,LISTAGG(measure_expr [, 'deli 阅读全文

posted @ 2013-01-11 15:10 wait4friend 阅读(1065) 评论(0) 推荐(0)

Oracle11gR2_RAC全静默安装攻略
摘要:1 系统规划 DNS Server: 192.168.6.101 FreeNAS Server : 192.168.6.102 SCAN IP: 192.168.6.107, 192.168.6.108 RAC1 ... 阅读全文

posted @ 2013-01-09 14:25 wait4friend 阅读(1433) 评论(0) 推荐(0)

使用/*+ no_expand */避免执行路径中的CONCATENATION
摘要:昨天的一次SQL优化过程,仅作记录。 背景是在一台11gR2的机器上,用户反映一个查询操作非常慢,基本都要20~30分钟才能有结果。经过仔细查看该SQL的执行计划,发现由于SQL中使用了or,导致CBO走出了一个非常糟糕的CONCATENATION路径。因为SQL本身是通过程序动态生成的,开发人员不愿意进行大的调整,就采用了/*+ no_expand */提升的方式避免CBO选择CO... 阅读全文

posted @ 2012-12-14 15:45 wait4friend 阅读(2605) 评论(0) 推荐(0)

Oracle11gR2下PL/SQL访问网络的错误ORA-24247
摘要:原有系统运行在10g下面,有很多程序是使用utl_smtp, utl_http等包进行网络访问。最近升级到11gR2之后,wait4friend 遇到ORA-24247错误。错误信息如下 ORA-24247: network access denied by access control list (ACL) 这是Oracle11g的一个安全特性,所有使用网络访问的用户都需要特殊的赋权... 阅读全文

posted @ 2012-12-04 10:19 wait4friend 阅读(747) 评论(0) 推荐(0)

Oracle Restart 11gR2 安装
摘要:对于在Linux单机上安装的Oracle Instance,以前需要配置dbstart或者dbstop脚本来实现在操作系统起停时自动起停数据库实例的操作,现在通过Oracle Restart则无需这两个脚本了。安装其实很简单,实际上没有单独安装Oracle Restart的过程,只需要安装Oracle Grid Infrastructure就可以,在安装的时候选择“仅安装网格基础结构软件”,也可以... 阅读全文

posted @ 2012-12-02 16:22 wait4friend 阅读(1164) 评论(0) 推荐(0)

Oracle 11gR2 RMAN脚本
摘要:在配置ADG环境的同时,wait4friend 整理了一下RMAN脚本,记录一下 ########################################################################################### backup.rman.sh 这个脚本自动判断Primary和Standby,进行不同的操作。如果是单机环境,备份的... 阅读全文

posted @ 2012-11-19 10:58 wait4friend 阅读(493) 评论(0) 推荐(0)

Linux 5.8 自定义静默安装Oracle 11gR2 全攻略
摘要:最近做了一个生产库11g ADG 的安装,这里把安装用到的东西整理一下。很多东西都在 wait4friend 以前的文章提到过,这次就算整理打包了。 1 服务器安装 1.1 操作系统安装 操作系统为 CentOS 5.8 x86_64 注意: 1. 为满足Oracle安装需求,设置系统swap空间至少为内存1.5倍,最大16G 2. 磁盘规... 阅读全文

posted @ 2012-11-16 16:34 wait4friend 阅读(1674) 评论(0) 推荐(0)

Oracle 11gR2 Active Data Guard 运维脚本
摘要:这几天搭建Oracle 11gR2 的ADG环境,wait4friend 顺手写了几个用于日常运维的脚本,记录下来。 ####################################################################### dg_start_db.sh 启动ADG环境中的Primary和Standby脚本,自动判断db role,然后启动到相... 阅读全文

posted @ 2012-10-30 10:31 wait4friend 阅读(1013) 评论(0) 推荐(0)

Linux下SQL Plus遭遇UTF8
摘要:昨天wait4friend在处理部署脚本的时候遭遇了中文乱码。因为以前一直面对国外客户,所以在处理中文乱码上没啥经验,在运维同事的帮助下,折腾了半天终于搞清楚了状况。 背景如下:在Pl/SQL Dev里面进行存储过程的开发,代码里面有中文信息和注释。在Win下把包导出之后,FTP到Linux端,通过SQL Plus来执行。 遇到的第一个问题是,在Linux端看到文件内容里面的... 阅读全文

posted @ 2012-09-29 12:03 wait4friend 阅读(1818) 评论(0) 推荐(0)

使用 ExpDP 和 ImpDP 来转移数据
摘要:今天遇到一个需求,把一个Schema下的对象(Table, Sequence, Package, etc)分别转移到其他两个Schema下。如果用普通的Exp/Imp,需要在tables参数里面写很多东西。并且 wait4friend 还不确定能否对sequence等对象进行排除。所以决定使用10g之后提供的数据泵来处理。 背景是这样的,原始用户是Test,分别导入 1. Test... 阅读全文

posted @ 2012-09-26 17:38 wait4friend 阅读(490) 评论(0) 推荐(0)

Oracle SQL 模拟MySQL的inet_aton()和inet_ntoa()
摘要:MySQL提供了一个很方便的功能,可以对IP地址进行数字格式和IPv4地址格式的转换。在数据库中对IP进行数字格式的保存,在进行范围比较的时候非常方便。Oracle没有内置这样的函数,今天自己实现了一个,以备不时之需。样本数据IPv4格式: 209.207.224.40 对应的数字格式: 3520061480inet_ntoa()select trunc(ip/16777216)||'.'|| trunc( mod(ip, 16777216)/65536) ||'.'|| trunc(mod(ip,65536)/256)||'.'|| trunc 阅读全文

posted @ 2012-09-03 14:57 wait4friend 阅读(1650) 评论(0) 推荐(1)

Oracle 中两表关联进行更新
摘要:这是一篇以前写的文章,今天整理出来关于两个表关联进行更新,在论坛上经常有人问这个问题。尤其是不少刚刚从sql server转到oracle的 朋友,会把两种数据库的语法混淆。今天正好做了个测试,纪录下来 OS: RedHat Linus AS4 DB: Oracle 10gR2 案例:经典的detp/emp表,现在希望把emp.ename更新成ename+loc的形式。其中loc是通过关联emp和dept 取得的数据。 Last login: Mon Jan 22 15:40:57 2007 from 192.168.10.100 [oracle@t... 阅读全文

posted @ 2012-08-08 09:35 wait4friend 阅读(465) 评论(0) 推荐(0)

CentOS 下修改/dev/shm 大小解决ORA-00845
摘要:环境:CentOS6.2 64bit VMWare Workstation 7.1 Linux下,Oracle 11g的自动内存管理不能指定大于这个/dev/shm的总量内存。否则就会出现如下错误 ORA-00845: MEMORY_TARGET not supported on this system Linux环境下,挂载点 /dev/shm默认... 阅读全文

posted @ 2012-05-07 11:06 wait4friend 阅读(2355) 评论(0) 推荐(0)

Oracle 11gR2 Silent Install
摘要:最近在很多台机器上安装了Oracle 11gR2, 每次都是使用的GUI完成。今天 wait4friend 决定尝试一下静默安装。整个流程和《Oracle 10g Silent Install》这里面差不多,只是一些配置参数有了变化。 安装的环境还是CentOS 6.2,安装前的准备工作和GUI安装一样,安装程序包,修改系统参数,建立目录用户等等。详细步骤看《64位RHEL5平台安装... 阅读全文

posted @ 2012-04-09 11:41 wait4friend 阅读(1152) 评论(0) 推荐(1)

CentOS环境配置Oracle 11g R2 Data Guard
摘要:DBSRV1 192.168.229.201 SID data DBSRV2 192.168.229.202 SID data 准备环境 首先在主库和备库系统上安装Oracle11gR2,其中备库仅安装数据库软件。在CentOS上安装Oracle见这篇博文。 1. 主库配置 a) 必须是强制日志和归档模式 SQL> s... 阅读全文

posted @ 2012-04-06 14:08 wait4friend 阅读(875) 评论(0) 推荐(0)

同时update多张表的语句 -- 梦中的面试
摘要:昨天晚上在梦中有这样的场景:自行车爆胎了,修车师傅一边忙活,忽然回头对我说“你是做数据库的吧,考考你。用一条update语句怎么同时修改两张表?” wait4friend石化了几秒钟,然后下意识的给出一个答案。正确与否还不知道,然后就惊醒了。那么当时 wait4friend 给出的答案是啥呢?当时想到的是,利用key-preserved table这个特性来修改视图,达到同时更新多张表的目的。 ... 阅读全文

posted @ 2012-03-16 10:59 wait4friend 阅读(2043) 评论(0) 推荐(0)

Oracle11gR2 Exp/Imp 备忘
摘要:空表不能导出的解决 Oracle11g中,有一个参数 deferred_segment_creation,默认值是true。这个参数的作用是当表为空的时候不自动分配存储空间,带来的副作用是使用exp导出的时候,空表不能被导出。 解决方法1: 设置system参数,仅对参数更新后创建的表生效 alter system set deferred_segment_creation=... 阅读全文

posted @ 2012-03-07 14:57 wait4friend 阅读(228) 评论(0) 推荐(0)

Oracle Timestamp类型计算
摘要:当并不需要microsecond信息的场景下,wait4friend一般不建议使用timestamp类型来存储日期信息(如生日)。不过一些遗留系统或者设计不严谨的系统中,总是有这样的数据存在。这样的设计会导致计算年龄等操作不太方便。这两天就遇到一个例子,这个例子不单计算不方便,而且由于垃圾数据的存在还会在特定场景发生异常。-- 表结构已经进行简化,只保留了ID和一个Timestamp字段,表中数据超过60WSQL> desc tp1;Name Type Nullable Default Comments ---- -----------------... 阅读全文

posted @ 2012-03-02 09:33 wait4friend 阅读(2696) 评论(0) 推荐(0)

使用DBMS_LOCK手动锁定
摘要:在PL/SQL中,我们有时候需要保证某个Procedure不被并发执行。一般采用select for update对一个固定数据表的数据行进行锁定。除此之外,还可以使用dbms_lock包提供的request()和release()方法进行锁定。下面例子的逻辑是,在插入A之前用count()判断,如果A中没有数据就插入。在高并发的环境下,没有锁定就可能造成多条插入。为了避免并发错误,使用dbms_lock进行手动控制。drop table a;create table a(x int);drop table b;create table b(sid number, dt timestamp d 阅读全文

posted @ 2012-02-10 15:39 wait4friend 阅读(1135) 评论(0) 推荐(1)

1 2 3 下一页