
Oracle
文章平均质量分 78
CsongSY
Tahiti
展开
-
PL/SQL:DBMS_PIPE包的使用
PL/SQL:DBMS_PIPE包的使用 包DBMS_PIPE用于在同一例程的不同会话之间进行管理通信.Oracle管道(PIPE)类似于UNIX系统的管道,但它不是采用操作系统机制实现的,基管道信息被缓存在SGA中,当关闭例程时会丢失管道信息.在建立管道中,既可以建立公用管道,也可以建立私有管道.其中,公用管道是指所有数据库用户都可以的管道,而私有管道只能由建立管道的数据库用户访问.注意转载 2017-02-15 18:57:09 · 821 阅读 · 0 评论 -
RMAN之恢复服务器参数文件
1.首先将数据库至于归档模式。[oracle@BD02 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 15 20:39:22 2016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:Orac原创 2016-03-15 21:09:32 · 1019 阅读 · 0 评论 -
RMAN之恢复控制文件
1.首先全库备份RMAN> startup mountconnected to target database (not started)Oracle instance starteddatabase mountedTotal System Global Area 1653518336 bytesFixed Size 2253784原创 2016-03-16 00:13:49 · 1509 阅读 · 0 评论 -
ORACLE之搭建DG(COPY数据文件方式)
1.准备工作 首先得准备两个能够PING通,并且装了Oracle软件且已经建库的Linux虚拟机。操作系统不限,至少有一个虚拟机已经建好库,最好两个都建好相同SID的库,这样少很多创建目录的麻烦,这里库的SID都是orcl,Linux严格区分大小写,所以SID的大小写得注意。 我这里有两个名为PD和ST的Linux虚拟机。 PD:192.168原创 2016-03-21 01:43:08 · 2196 阅读 · 0 评论 -
ORACLE之搭建DG(RMAN Duplicate方式)
1.准备工作 首先得准备两个能够PING通,并且装了Oracle软件且已经建库的Linux虚拟机。操作系统不限,至少有一个虚拟机已经建好库,最好两个都建好相同SID的库,这样少很多创建目录的麻烦,这里库的SID都是orcl,Linux严格区分大小写,所以SID的大小写得注意。 我这里有两个名为PD和ST的Linux虚拟机。 PD:192.168原创 2016-03-23 01:32:27 · 6894 阅读 · 0 评论 -
ORACLE之搭建DG(ADG方式)
1.准备工作 首先得准备两个能够PING通,并且装了Oracle软件且已经建库的Linux虚拟机。操作系统不限,至少有一个虚拟机已经建好库,最好两个都建好相同SID的库,这样少很多创建目录的麻烦,这里库的SID都是orcl,Linux严格区分大小写,所以SID的大小写得注意。 我这里有两个名为PD和ST的Linux虚拟机。 PD:192.1原创 2016-03-23 17:54:58 · 7559 阅读 · 0 评论 -
Oracle dataguard之主备库切换(switchover)
1.确保主库的所有日志文件都刷到备库查询备库的v$archived_log视图。SQL> select sequence#,applied from v$archived_log; SEQUENCE# APPLIED---------- --------- 48 YES 49 YES 50 YES 51 YES 52 YES 53 YES 55 YES 54 YE原创 2016-04-03 16:56:20 · 2924 阅读 · 0 评论 -
Oracle dataguard之备库切换(failover)
oracle 11g中有一个新特性叫flush redo,就是说如果主库挂了,只要能mount,就可以将没传到备库的online redo log信息刷到备库去,这样就不会有数据丢失。1.在主库flush redo到备库这里强调只有在mount的时候才能flush redo,看实验。SQL> alter system flush redo to orcl_pd;alter sys原创 2016-04-03 18:19:29 · 2752 阅读 · 0 评论 -
Buffer Cache 原理
这篇文章 是我给team做内部培训用的,现在拿出来share一下 Buffer Cache 原理 我们在监控等待事件,查看AWR,ASH报表的时候经常会看到latch: cache buffers chains,有可能还会转载 2017-03-07 11:43:42 · 717 阅读 · 0 评论 -
用好HugePage,告别Linux性能故障
1概述Oracle发展这么多年,提供了多种的内存管理方式,从最早SGA、PGA手工管理,到9I版本出现的PGA的自动管理,到10G版本出现的SGA自动管理(ASMM),再到11G版本出现的memory自动管理(AMM),Oracle基本是在朝着智能化、傻瓜化、自动化的方向稳步前进着,对于初学Oracle的DBA来说,看到这些不同的内存管理方式一定心里有着不同程度的疑惑,例如:Oracle有转载 2017-04-11 13:21:37 · 1049 阅读 · 0 评论 -
【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)
原创 2016-09-12 熊军 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage) 熊军(老熊)云和恩墨西区总经理Oracle ACED,ACOUG核心会员 PC Server发展到今天,在性能方面有着长足的进步。64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Serv转载 2017-04-11 14:17:01 · 990 阅读 · 0 评论 -
传输数据库升级11.2.0.3 DG集群到12.2
1. 原理之前有介绍过怎么使用Transport Data来升级Oracle 11.2.0.3到12.2.版本。http://blog.youkuaiyun.com/cscscscsc/article/details/78035928这里可以发散一下思维,如果我有一套11.2.0.3的DG环境,假设,我事先在所有的节点都安装好了新的Oracle12.2的数据库软件,并且安装新的数据库且能同步原创 2017-09-19 23:43:19 · 2312 阅读 · 0 评论 -
临时撤销段(TEMPORARY UNDO)
默认,临时表的撤销信息都会存储在撤销表空间中,并且会将重做信息记录到重做日志。这个方式和普通的表的撤销信息是一样管理的。然而,你可以使用TEMP_UNDO_ENABLED初始化参数来分离临时表的撤销信息和普通表的撤销信息。当这个参数设置成TRUE,这是临时表的的撤销信息被称作TEMPORARY UNDO。这是12c才有的功能。l 关于管理临时撤销段临时撤销记录都是存储在数据库的里原创 2017-09-19 23:42:27 · 948 阅读 · 0 评论 -
传输数据库升级Oracle11.2.0.3到Oracle12.2
最近在找一些方法升级Oracle到12.2,怎样才能停机时间短,普通的升级方式,我感觉很漫长。看了官方文档,发现了一个停机时间短的方法,利用传输数据库的方式升级数据库,能看到我的实验,导入时间是9分钟,整体停机时间是15分钟不到。我觉得可以接受了。大致原理是:知道传输表空间的同学都知道,只需要导出表空间的元数据,不用导出实际的用户数据。导入也很快,导入元数据后相当于让Oracle知道我有这原创 2017-09-19 23:40:56 · 3223 阅读 · 0 评论 -
Linux下静默安装oracle11.2.0.4软件
1.解压两个oracle安装包2.在database的response目录下拷贝一个db_install.rsp文件到database目录下3.编辑db_install.rsp文件(对照修改一下)###################################################################### Copyright(c) Oracle Corp原创 2016-06-15 20:01:43 · 2366 阅读 · 0 评论 -
V$ACTIVE_SESSION_HISTORY视图的使用
V$ACTIVE_SESSION_HISTORY 显示数据库中的采样会话活动。ASH每秒从v$session中取快照,存在V$ACTIVE_SESSION_HISTORY中,并收集所有活动会话的等待信息。若ASH数据被刷新到磁盘,则需要从DBA_HIS_ACTIVE_SESS_HISTORY视图中查询相关信息。该视图是ASH的核心,用以记录活动SESSION的历史等待信息,每秒采样一次,这转载 2017-03-16 14:31:27 · 4951 阅读 · 0 评论 -
OSWatcher Balck Box简介
OSWatcher Black Box (oswbb)是Oracle开发、提供的一个小巧,但是实用、强大的系统工具,它可以用来抓取操作系统的性能指标,用于辅助监控系统的资源使用。其安装部署、卸载都非常简单;资源消耗也比较小,原理也十分简单,它通过调用OS的的一些命令(例如vmstat、iostat等)来采集、存储CPU/Memory/Swap/Disk IO/Nentwork相关数据。安装和运转载 2017-03-16 12:55:23 · 1050 阅读 · 0 评论 -
几种RMAN恢复场景
前期准备:做一次全库备份:[oracle@localhost ~]$ rman target /Recovery Manager: Release 11.2.0.4.0 - Production on Thu Sep 8 11:15:52 2016Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights原创 2016-09-10 22:39:31 · 5265 阅读 · 0 评论 -
ORACLE的Copy命令和create table,insert into的比较
在数据表间复制数据是Oracle DBA经常面对的任务之一,Oracle为这一任务提供了多种解决方案,SQL*Plus Copy 命令便是其中之一。SQL*Plus Copy 命令通过SQL*Net在不同的表(同一服务器或是不同服务器)之间复制数据或移动数据。 在实际运行环境中若能恰当地选择使用SQL*Plus Copy 命令可以有效地提高数据复制的性能。 下面将简要介绍SQL*Plus转载 2017-02-16 16:16:42 · 1339 阅读 · 0 评论 -
一次SYS用户还原普通用户失败的问题
今天想把一个DB1上的schema备份还原到DB2上去,备份的动作很顺利,还原的时候报错了,报错如下(部分报错信息):开始使用数据泵备还原chenguangfair。 Import: Release 11.2.0.4.0 - Production on 星期四 6月 9 10:04:11 2016Copyright (c) 1982, 2011, Oracle and/or its原创 2016-06-16 12:02:50 · 5668 阅读 · 0 评论 -
PLSQL DEV工具挂载官方文档
本片文档讲解如何利用PLSQL DEV工具查询官方文档,当然这里需要先下载一份官方文档,不管10g,11g,12c都行。具体如何下载官方文档,自己google一下。 下面进入正题,我在D盘根目录下保存了一份11g的最新官方文档11.2,如图所示: 打开我们的PLSQL Developer,这里不用登入任何数据库,直接打开即可,点击一个ORACLE的官方图标,如图所示:原创 2015-12-23 17:10:55 · 664 阅读 · 0 评论 -
Linux下安装Oracle12cR1
1.下载oracle12c安装包 先去oracle的官网下载oracle12c的两个安装包,这里不阐述怎么下载。2.准备oracle linux环境 利用virtualbox工具创建一个linux环境的虚拟机,配好相关的IP,禁用防火墙等等。[root@SY Csong]# service iptables stopiptables: Setting chains t原创 2016-01-24 19:18:10 · 2171 阅读 · 0 评论 -
抓出where使用且未建索引且指定选择性的列
/*1. 抓出列选择性>=20 的列2. 这个列没有建立索引3. 这个列出现在where条件中*/这里面的owner值自己改改。WITH u AS (SELECT 'NORMPHONE' owner FROM dual)SELECT a.owner, a.table_name, a.column_name, a.selectiv原创 2015-12-22 16:01:25 · 541 阅读 · 0 评论 -
查出索引的聚集因子
其实查询索引的聚集因子,如果是组合索引,一个sql应该搞不定的,如果是单字段索引,一个sql还是可以搞定的。我做了一个存储过程,用来查询组合索引的聚集因子。1.首先创建一个表:create table sql_test(table_name varchar2(2000),index_name varchar2(2000),sql_text clob,row_cnt number(1原创 2015-12-22 15:43:33 · 783 阅读 · 0 评论 -
Linux下开启Oracle oem
1.登入linux系统,进入oracle用户下2.输入命令emctl start dbconsole开启oem3.看oem的状态 输入命令emctl status dbconsole如图:原创 2015-11-23 11:22:49 · 858 阅读 · 0 评论 -
对字段值按字符拆分多行方法
1.如果有多行数据需要拆分的话 SELECT ename, substr(ename, LEVEL, 1) AS cFROM empCONNECT BY LEVEL <= length(ename) AND PRIOR ROWID = ROWID AND PRIOR dbms_random.value() IS NOT NULL;原创 2015-11-16 14:31:05 · 2194 阅读 · 0 评论 -
Windows下Oracle创建数据库的3种方式
1. Creating a Database with DBCADatabaseConfiguration Assistant (DBCA) is the preferred way to create a database,because it is a more automated approach, and your database is ready to use whenDBCA原创 2015-09-08 01:11:09 · 8589 阅读 · 0 评论 -
Oracle11g透明网关搭建
11g透明网关搭建1.环境概述本次透明网关搭建的环境如下:WinServer2008+SqlServer2005+Oracle11gGateway,IP:192.168.1.43 hostAWin7+Oracle11gR2,IP:192.168.1.160 hostB原创 2015-08-21 17:25:24 · 3833 阅读 · 0 评论 -
oracle之乘法口诀
1.这是一种sql写法,忘了在什么地方看到的,觉得不错。SELECT REVERSE(sys_connect_by_path(rpad(REVERSE(to_char(rownum * lv)), 2) || '=' || rownum || '*' || lv,原创 2015-12-24 11:36:06 · 2094 阅读 · 0 评论 -
Linux下创建Oracle的OEM
1.创建OEM注意,这里的SID必须要大些,Linux不忽略大小写,否则会失败。[oracle@BD01 ~]$ emca -repos createSTARTED EMCA at Mar 15, 2016 8:01:42 PMEM Configuration Assistant, Version 11.2.0.3.0 ProductionCopyright (c) 2003, 2原创 2016-03-15 20:19:51 · 2338 阅读 · 0 评论 -
plsql代码加密命令wrap
有时候,我们写的代码不想别人看到或者修改,那么可以加密一下。使用wrap命令。C:\Users\Csong>wrap iname=check_tablespace_usage.prc oname=check_tablespace_usage_wrap.prciname输入文件名,oname输出文件名。使用这个命令之前,先确保自己的代码没有编译错误,然后将wrap后的密码在环境中原创 2016-03-30 14:48:39 · 1556 阅读 · 0 评论 -
oracle在线添加日志组和日志组成员
1.在线添加日志组成员SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo01a.log';Database altered.SQL> alter database add logfile member '/u01/app/oracle/fast_recovery_area/orcl/red原创 2016-06-15 10:14:45 · 12341 阅读 · 0 评论 -
shared everything,shared disk,shared nothing
shared everything:其实就是针对单个主机单元的,所有的处理共享所有的cpu,memory,io,disk,并行很差。shared disk:其实就是所有的处理单元都有自己的cpu,memory,但是会共享disk。比如经典就是oracle的rac,asm就是共享存储,每一个rac节点都有自己的实例。shared nothing:其实就是每个处理单元都有自己的cpu,memo原创 2016-05-19 17:05:54 · 1537 阅读 · 0 评论 -
oracle迁移数据文件
迁移数据文件其实很简单,就是三个步骤SQL> alter tablespace klffair offline;Tablespace altered.SQL> alter database rename file '/u01/app/oracle/oradata/KLFFAIR.dbf' to '/u01/app/oracle/oradata/orcl/KLFFAIR.dbf';Data原创 2016-05-11 10:43:22 · 400 阅读 · 0 评论 -
ORA-04068: 已丢弃程序包 的当前状态
一般来说,我们都会用到包,但是包的使用范围是会话级的,通常因为你的会话没有关闭,而别的会话却在修改包然后编译,这时候会出现ORA-04068: 已丢弃程序包 的当前状态的错误,但是再次调用包的时候又不会复现之前的问题,有时候就会不管不顾,技术继续使用。这是为什么,因为包的缓存在报错后第二次调用会被重新刷新。下面就做一个实验看看。1.开启两个会话,我们成为A和B会话A执行如下动作:原创 2016-04-10 23:37:07 · 20180 阅读 · 0 评论 -
WHERE IN LIST问题解析 –丁俊
摘要:这篇文章重点是SQL语句优化,构造SQL,所有的测试都是基于IN子句进行的,正如题目所写,当然与其他的,比如exists,join等是相通的。包括动态SQL构造,解决办法,以及where in list的性能问题等方面。1. 背景介绍在系统开发中,经常有这样的需求:前台传入一个字符串,而且此字符串具有指定分隔符,并且长度不定,那么如何根据传入的这个字符串查询对应的结果呢?考虑转载 2016-04-14 11:43:53 · 4902 阅读 · 0 评论 -
error in invoking target 'agent nmks' of makefile
今天给公司的服务器装Oracle11.2.0.4,装到70%的时候报错了。error in invoking target 'agent nmks' of makefile先别终止,在网上搜了一下,vi $ORACLE_HOME/sysman/lib/ins_emagent.mk找到$(MK_EMAGENT_NMECTL)把他改成$(MK_EMAGENT原创 2016-03-21 23:37:49 · 549 阅读 · 0 评论 -
Linux下Oracle开机自启动
1.用oracle用户编辑dbstart文件登入oracle用户,切换到$ORACLE_HOME/bin目录下,修改文件dbstart。[oracle@ST ~]$ vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart修改:看下面注释部分进行修改。LOGMSG="logger -puser.alert -s "trap 'ex原创 2016-04-02 17:08:24 · 863 阅读 · 0 评论 -
如何创建Statspack
1.首先给Statspack创建一个表空间因为会创建一个用户prestat,会指定默认表空间。创建表空间语句:create tablespace perfstat datafile '/u01/app/oracle/oradata/orcl/perfstat_01.dbf' size 512m autoextend on;2.执行安装脚本执行脚本:@?/rdbms/ad原创 2015-09-11 01:53:44 · 458 阅读 · 0 评论