oracle
文章平均质量分 63
蘑菇丁
每份经历,不管是顺境还是坎坷,都会增加生命的厚度。
世界很小,请带着梦想一起奔跑。
世界很大,请带着坚持努力成长!
勇于挑战,不断突破自我!加油!!!
建了一个大数据运维群,各位大数据运维的同学可以一起讨论 群号584912368
https://github.com/liangjingbin99/shouhuo/tree/master/%E7%AC%AC02%E7%AB%A0
展开
-
如何生存awr报告
首先进入$ORACLE_HOME/rdbms/admin目录 sqlplus / as sysdba @awrrptCurrent Instance~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance----------- ------------ -------- ------------ 857742363 HXY 1 HXYSpe...原创 2018-02-22 11:35:04 · 1003 阅读 · 0 评论 -
写出函数如何将123456789实现转置输出0987654321
create or replace function reverse_string(v_strings in varchar2) return varchar2 isr varchar2(30):='';va varchar2(30):='';begin for i in 1..length(v_strings) loop va:=substr(v_strings,le原创 2013-11-15 13:04:54 · 1264 阅读 · 0 评论 -
返回相同结果,用不同SQL的执行计划
1)SQL> select deptno from scott.dept where deptno not in (select deptno from scott.emp);Execution Plan----------------------------------------------------------Plan hash value: 304125360----原创 2013-11-06 10:39:41 · 632 阅读 · 0 评论 -
oracle 如何实现上一条、下一条、查找不连续的值(转)
第一部分:oracle 如何实现上一条、下一条select z.p from ( select y.org_id,lag(y.org_id,1,0) over (order by y.org_id) as p from t_org y ) z where org_id= '34010100' select z.p from ( select y.evidence_id转载 2013-10-28 13:55:17 · 1635 阅读 · 0 评论 -
show_space
CREATE OR REPLACE procedure show_space( p_segname in varchar2,p_owner in varchar2 default user,p_type in varchar2 default 'TABLE',p_partition in varchar2 default NULL )-- this procedure user转载 2013-10-15 15:39:20 · 611 阅读 · 0 评论 -
oracle debug
oradebug hanganalyze 3Oracle HANG 后可能会导致sqlplus 无法连接至数据库,从而无法获得Oracle 系统和进程的状态,这会使定位问题时缺少强有力的依据。所幸的是Oracle 10g 的sqlplus 中增加了-prelim 选项,当数据库HANG 时使用该选项依然能够连接至数据库中,从而能获得数据库的状态。prelim 的使用方法如下所示:$转载 2013-10-15 14:09:29 · 1340 阅读 · 0 评论 -
在线过期数据迁移到离线数据库
1、在线过期数据迁移到离线数据库1)创建数据文件存放的路径,让oracle自动在该路径下创建文件,并使用oracle自己的方式为数据文件命名。alter system set db_create_file_dest='/u01/app/oracle/hxy/hxy/datafile/';2)为每个表分区创建一个独立的表空间create tablespace ts_sales_201原创 2013-10-14 22:27:44 · 1078 阅读 · 0 评论 -
一个改善含有ROWNUM条件语句性能的案例
数据库版本: 10.2.0.3;案例背景:我们有一个Java程序会从一个配置文件中读取并执行以下一条SQL语句,由查询结果确认是否存在满足条件的数据记录,然后据此再执行后续代码。最初的语句为:SQL代码Select count(1) as rowcount from B2B_BIZ_KEY B WHERE EXISTS (SELECT ID FROM B2B转载 2013-11-08 21:33:14 · 698 阅读 · 0 评论 -
Oracle index】SQL语句无法走索引的一些情况分析及语句改写思路
因为优化器还不够强大,还有很多限制,或者因为一些逻辑原因,分析认为SQL要走索引比较好,但是事实却无法正确利用索引。这时候,除了给ORACLE需要的统计信息之外,写的SQL必须要能够给优化器足够多的额外有效信息,让优化器能够选择更好的执行计划。要让给优化器正确使用上需要的索引,要考虑两点:1).如何避免优化器的限制 2).根据业务数据特点改写SQL语句 说明:这里说的走不转载 2013-12-18 13:03:36 · 1112 阅读 · 0 评论 -
RMAN 备份与恢复 实例
1. 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则修改数据库归档模式。 startup mount alter database archivelog alter database open2.连接到target数据库转载 2013-12-16 11:50:50 · 627 阅读 · 0 评论 -
oracle优化缓存对象与数据
当系统出现性能瓶颈时,尽量较少不必要的资源消耗,最后就是平衡cpu,内存,io,network等资源,使数据库可以稳定的运行。 oracle数据库优化的根本是1.尽量减少资源消耗,例如优化sql,减少sql本身的资源消耗2.如果无法进一步减少资源的消耗,那就让数据尽量靠近cpu,也就是把数据从硬盘转移到内存(内存的读写速度快) 或者换更快的磁盘 本文就简单总结转载 2013-12-12 11:37:40 · 668 阅读 · 0 评论 -
oracle 函数索引
一.B树索引0. B树索引中不存在非唯一的条目。1) 在非唯一索引中,ORACLE会把rowid作为一个额外的列追加到键上,使得键唯一。Exp:create index I on T( x , y ) ,从概念上讲就是Create unique index I on T(x , y , rowid)。ORACLE会首先按索引键值排序,然后再按照rowid升序排序。转载 2013-12-12 10:26:08 · 661 阅读 · 0 评论 -
脚本实现查看表空间使用情况
#!/bin/bashsource ~/.bash_profile. /home/ora10/system_tablespacesqlplus -S oracle/hao12345@hxy col BYTES_USED for 9999999999999set feed offset linesize 100set pagesize 200spool /home/原创 2013-12-02 14:18:02 · 958 阅读 · 0 评论 -
shell脚本实现自动生成awr报告
主要实现自动生成awr报告,代码思想非本人,但是有进行部分改造,之前网上的不能执行,经过部分改造可以正常执行的生成语法[oracle@hxy ~]$ bash ./dba_oracle_awr.sh -s HXY -f 20131125140000 -t 20131125150000 -p text -h /u01/app/oracle/product/10.2.1/db_1脚本如下原创 2013-11-25 15:46:39 · 1273 阅读 · 1 评论 -
查看PAG的使用情况
select s.username username,s.serial# serial,se.sid,n.name, max(se.value) maxmemfrom v$sesstat se, v$statname n, v$session swhere n.statistic# = se.statistic#and s.sid=se.sid原创 2013-11-25 16:27:28 · 821 阅读 · 0 评论 -
FAQ手册
1、怎么样查询特殊字符,如通配符%与_select * from table where name like 'A\_%' escape '\'2、如何插入单引号到数据库表中[A]可以用ASCII码处理,其它特殊字符如&也一样,如 insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'或者用两个单引号表示一个or转载 2013-11-25 16:33:32 · 3365 阅读 · 0 评论 -
oracle 启停
在命令行我们可以用net命令手工启动Oracle服务: C:\>net start oracleserviceeygle 在正常情况下,数据库即可随之启动,如果数据库不能启动,则可以通过sysdba身份连接进入数据库,手工mount并Open数据库 C:\>sqlplus "/ as sysdba" SQL> select instance原创 2018-01-17 14:53:20 · 366 阅读 · 0 评论 -
oracle 10.2g centos7.2上静默安装步骤
1、检查内存情况(swap一般是4G )root@namenode01 dfs]# grepMemTotal /proc/meminfoMemTotal: 57495220 kB[root@namenode01 dfs]# grepSwapTotal /proc/meminfoSwapTotal: 28835836 kB2、硬盘只要10G以上df原创 2017-09-08 18:12:17 · 2760 阅读 · 0 评论 -
centos7.2 oracle10g 如何修改sid实例名
主机名改变后需要更改改下面的文件1. 监听里的host需要更改如下:/u01/app/oracle/product/10.2.0/db_1/network/admin修改如下文件主机名 sed –i 's/ora10/oracle10/g'/u01/app/oracle/product/10.2.0/db_1/network/admin/ listener.ora [or原创 2017-09-08 14:00:04 · 2177 阅读 · 0 评论 -
oracle 查看隐含参数语句
select a.ksppinm name, b,ksppstvl value,a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '_spin_count';原创 2017-08-23 17:45:20 · 626 阅读 · 0 评论 -
asm基本命令总结
在Oracle 环境下,使用grid帐号执行运行asmcmd进入asm命令模式,如:[grid@rac1 ~]$ asmcmdASMCMD> ASMCMD> du //显示指定的ASM目录下ASM文件占用的所有磁盘空间ASMCMD> ls -ls //列出ASM目录下的内容及其属性、磁盘空间占用ASMCMD> pwd //查看当前路径ASMCMD> cd ../DA原创 2017-06-23 09:18:58 · 791 阅读 · 0 评论 -
oracle 图形化安装
Oracle Serverinstance = SGA(System Global Area) + background processes物理数据库 = 数据文件 + 控制文件 + 日志文件OServer= instance + DB安装条件安装全部的开发工具包安装Xwindow/tmp至少150M-200M的磁盘空间,安装Oracle原创 2017-05-05 16:34:59 · 500 阅读 · 0 评论 -
RAC grid卸载
1、通过root用户进入到grid的ORACLE_HOME[root@rac1]# source /home/grid/.bash_profile[root@rac01]# cd $ORACLE_HOME/crs/install/2、执行如下两个脚本(只在其中一个节点执行,root用户)[grid@rac2 install]$ pwd/data/app/grid_hom原创 2017-04-28 17:54:42 · 701 阅读 · 0 评论 -
查询抵消sql
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXTFROM V$SQLARE原创 2017-02-21 16:26:25 · 718 阅读 · 0 评论 -
统计表大小
SELECT owner,segment_name,SUM(bytes /1024/1024 /1024) sum FROM dba_segments GROUP BY owner,segment_name having SUM(bytes /1024/1024 /1024) >2ORDER BY 3 DESC原创 2017-02-21 16:25:45 · 353 阅读 · 0 评论 -
安装oracle时swap分区不存在
安装oracle时会验证交换分区磁盘大小是否够,但有些云主机没有交换分区,用如下方法可以解决此问题: 1. dd if=/dev/zero of=/home/swapfile bs=1M count=512 2. mkswap /home/swapfile 3.swapon /home/swapfile此时用free -m就可以看到swap空间已经增加了,但是重启后就原创 2016-11-15 11:22:01 · 2182 阅读 · 0 评论 -
11g静默安装 centos系统
1 安装前环境: 操作系统:CetnOS6.6x64 最小化安装,已配置好网络IP:10.10.10.12,物理内存32GB,硬盘300GB。 已下载: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 位于目录: /sharedisk/11G/ bin原创 2016-11-14 18:10:38 · 725 阅读 · 0 评论 -
oracle 版本下载
复制链接使用迅雷即可下载。 4种包的介绍: ***_database_*.zip 是oracle数据库 服务端 软件的安装包,如果你要创建一个数据库,请下载这个版本 ***_client_*.zip 是oracle数据库 客户端 软件的安装包,如果你不需要转载 2016-11-14 18:08:13 · 295 阅读 · 0 评论 -
系统优化之---分区表加速查询速度和删除速度
1、删除表里的数据最用下面语句alter table t_name drop partition p_name;alter table t_name truncate partition p_name;delete 方式弊端:消耗大量的系统资源和无法释放空间SQL> create user test identified by test account unlock;原创 2013-11-28 16:20:28 · 2314 阅读 · 0 评论 -
新接触oracle数据库需要了解的东西
当我们来到一个新的数据库环境我们首先需要了解的东西如下:1、先要了解当前的Oracle 数据库的版本和平台和相关信息 这个很重要,忙乎了半天还知道你的数据库是哪个版本,跑在什么系统上,那岂不是很悲哀,所以我个人认为这是第一步需要了解的。下面的这些脚本可以帮助你获取你需要的相关信息。 select * from v$version; select * from d转载 2013-11-28 16:17:25 · 734 阅读 · 0 评论 -
Oracle从10g升级到11g详细步骤
Oracle从10g升级到11g详细步骤数据库旧版本:10.2.0.4数据库新版本:11.2.0.2OS 版本: Solaris 10参考文档:Complete Checklist for Manual Upgrades to 11gR2 [ID 837570.1]第一部分 - 安装11gR2软件这里对软件的安装就不详细说明了,可以参考相应的文档。这里需要注意的是:如果你想转载 2013-11-28 16:16:18 · 611 阅读 · 0 评论 -
在线重定义方法将普通表变为分区表的步骤
在线重定义的大致操作流程如下:(1)创建基础表A,如果存在,就不需要操作。(2)创建临时的分区表B。(3)开始重定义,将基表A的数据导入临时分区表B。(4)结束重定义,此时在DB的Name Directory里,已经将2个表进行了交换。即此时基表A成了分区表,我们创建的临时分区表B 成了普通表。此时我们可以删除我们创建的临时表B。它已经是普通表。[oracle@hxy ~]原创 2014-03-05 10:45:48 · 839 阅读 · 0 评论 -
hint--all_rows和fist_rows
在日常工作中经常被是该用all_rows还是fist_rows所迷惑,今天静下心来研究了一下,大致上明白了他们的区别。all_rows的功能是指示优化器在优化语句时,以消耗最少资源的最佳吞吐量为优化目标。fist_rows指示优化器在优化语句时,以最高效地返回前面指定数量的记录为目标。SQL> SET AUTOTRACE ONSQL> select /*+ all_rows */*原创 2014-03-13 11:38:00 · 1250 阅读 · 0 评论 -
undo 表空间满了的处理方法
在插入数据或者update时,有时会报ora_30036错误,导致数据插入失败,其原因是数据库的undo表空间不足所致,解决undo表空间间满的方法有两种 方法一: 添加undo 表空间的数据文件 alter tablespace undo add datafile '/u01/oracle/backup/undo02.dbf' size 100M reuse; 方法二:原创 2014-03-19 15:12:16 · 5268 阅读 · 0 评论 -
SQLT工具的安装过程
安装步骤如下: [oracle@haoxy u01]$ unzip sqltfor10.zip -d sqltfor10[oracle@haoxy u01]$ cd sqltfor10/sqlt/[oracle@haoxy sqlt]$ lsdoc input install run sqlt_instructions.html utl[oracle@haoxy sq原创 2014-03-22 17:05:36 · 1077 阅读 · 0 评论 -
oracle 字符集乱码本质验证
之前一直困惑为什么数据库字符集和客户端字符集是一致的但是当数据库插入到表里却成了乱码,今天在群里看见一位前辈讲解了这个问题,因此也就跟着做了一个实验验证下,结果发现了其中的奥秘:1) 如果恰巧数据库的字符集也是UTF8, 那么Oracle就不作任何转换直接插入到数据中.2) 如果数据库的字符集是ZHS16GBK, 那么Oracle会根据内部的MAP,按UTF8截取客户端发来的字符串, 转换原创 2014-03-26 13:41:44 · 1682 阅读 · 1 评论 -
group by hash join优化案例
原本有两个表,其中一个表的数据是150W 另一个表的数据是15W,他们两个hash join后花费的时间很长,后改成半连接后性能明显提升不少SQL> conn hxy/hxy as sysdbaConnected.SQL> create table t1 as select * from dba_objects where rownumTable created.SQL> cr原创 2014-03-28 09:54:12 · 1781 阅读 · 0 评论 -
误删除表的恢复方法
1、使用逻辑备份恢复(有数据丢失)2、flush table tname to before drop(在回收站里有此表才可以恢复) drop表时;drop table t purge;不能用闪回恢复3、闪回数据库flashback database 得不偿失(生成库不用此方法)4、用点时间的不完全恢复1)首先查看下归档日志select name from v$archived原创 2014-04-12 23:42:52 · 1034 阅读 · 0 评论 -
exists改写成left join
select * from ((select t1.GOPAY_TXN_TM GOPAY_TXN_TM, t1.ORDER_STLM_TIME order_stlm_time, t1.MER_ORDER_ID mer_order_id,原创 2014-04-23 16:47:36 · 1792 阅读 · 0 评论 -
如何清理监听日志
今天一个1、关闭监听记录日志信息lsnrctl set log_status off2、备份监听日志mv listener.log listener_`date +%Y%m%d`.log.bak另外,cp不是也耗时间吗?尤其是在监听日志文件比较大的时候,这样直接一mv不是更好吗?3、重新设置,让监听记录日志lsnrctl set log_status on原创 2014-08-13 11:34:48 · 664 阅读 · 0 评论