关于SAVEPOINT和自定义异常使用的一点看法
前两天有同事问怎么样才能控制存储过程中的回滚和提交,以及如果某个环节发生错误之后怎么样退出该存储过程,想了两天才算是有点小眉目了。[@more@]Rollback to savepoint;回滚之前所有做过的事情但不包括块和其他savepoint里面的事务SavePoint 应该是个单独的事务点,他的失败不影响其他事务Commit 能够提交之前所有的操作-- Create tableCREATE TABLE TEST( testID NUMBER(20) not null, testName VARCHAR2(20));-- Create/Recreate primary, unique and foreign key constraints ALTER TABLE TEST ADD CONSTRAINT testprimaryKey
一次关于解决数据库侦听的小经历
自从有了10g被该死的侦听器折磨好几次了,估计该遇到的问题全遇到了。。。这个只是其中一个小小的问题...[@more@]好好的报表服务器的数据库突然有人说登陆不了了,PL/SQLdeveloper登陆报Ora-12541:TNS:没有监听器的错误,而SQLPlus以本机登陆却是好好的,百思不得其解;因项目原因还是自己动手尽快解决吧。 1. 手工在windows的服务中重启tns监听服务,起不来2. Check windows的application日志,未发现有价值消息3. Check windows的system日志,未发现有价值消息4. 手工在命令行方式下查看lsnrctl status
Oracle Performance Tune Plan
偶本来就不是DBA,写出来的东西也不怕别人笑话了,以下内容是为项目写的,仅限Oracle入门或者项目开发人员使用J[@more@]ObjectiveThe objective of this document is to provide the simplified steps for Oracle performance tune of application system development.And the document doesn’t involve performance tune of OS, Database parameter, and database physical and logical Structure.KeywordsPerformance tune, ScalabilityINTRODUCTIONThis document is prepared on the basis of my project experience for Oracle Perfor
关于外键约束和对应主键信息的查询脚本
初衷是想根据表中存在的外键信息得到相应的索引脚本,后来才扩展到获取相应的主键字段,大同小异。这些系统表都是相类似的,例如user_cons_columns 和user_constraints, user_indexes和user_ind_columns[@more@]定义一个函数,把多列的约束字段以逗号串起来create or replace function f_GetConstraintColumn(itablename in Varchar2,iConstraintName in Varchar2) return varchar2 is type cur_type is ref cursor; myCur cur_type; v_Column1Value varchar2(4000); v_Result varchar2(32767);begin Open myCur for Select COLUMN_
Oracle性能优化视频学习笔记-动态调整SGA
这个章节估计是所有视频中最短的了,:),主要说了一个granule的概念和如何进行动态参数设置[@more@]动态调整SGA动态SGA分配调整buffer caches调整共享池大小动态SGA允许改变SGA配置,在不重启实例的情况下SGA受限于SGA_MAX_SIZE动态SGA能够通过DBA命令行进行增大和缩小动态SGA分配单元为granule通过v$buffer_pool监控buffer cache的大小granule的大小依赖于SGA的总大小buffer cache,shared pool,fixed SGA(include redo buffer)至少需要个一个粒初始化参数SGA_MAX_SIZE=XXXMDB_CACHE_SIZE=XXXMSHARED_POOL_SIZE=XXXMalter system set ..
Oracle性能优化视频学习笔记-数据库配置和I/O问题
本章节主要是介绍表空间数据文件日志文件的最优配置和相关I/O的性能视图表[@more@]数据库配置和I/O问题Oracle文件类型表空间不正确的用法表空间分区的原因检查点如何工作监视和优化检查点监视和优化日志基本优化原则磁盘I/O最小化磁盘负载平衡本地化管理表空间通过文件分布减少磁盘竞争数据文件和重做日志文件分离重做日志文件访问频繁,放在比较快的磁盘上,不适于RAID5条带化表的数据减少与数据库无关的磁盘I/O裸设备的使用,与文件无关,直接读写设备;无法使用操作系统和数据库进行备份;管理成本比较高编辑裸设备配置文件重新启动ser
Oracle性能优化视频学习笔记-诊断和调优工具
这个章节恐怕是最长的了,耗时2个多小时,总算听完了,先别管效果如何了,呵呵;恐怕还得再听一次[@more@]诊断和工具show parameter background_dump_dest;指出告警日志文件的目录log_checkpoint_to_alert=true记录检查点信息和未完成的检查点记录归档时间用户跟踪文档跟踪用户发布的SQL信息alter session set sql_trace=true;能够在会话一级进行SQL操作跟踪execute dbms_system.set_sql_trace(sid号,子序列号,true)跟踪会话中相应的SQL使用tkprof解析跟踪的SQL跟踪文件catproc.sql用来生成创建跟踪的包视图和工具V$XXX,动态性能视图v$l
Oracle性能优化视频学习笔记-性能优化概念(二)
性能优化第一课学习笔记...[@more@]性能调优概论Who tunes?应用设计者应用开发者数据库管理员操作系统管理员Why tune?How much tuning?定期收集性能视图设定优化目标定量确定性能优化指标:客户响应时间,磁盘I/O,物理读分析调整结果破坏性的性能问题参数配置错误没有优化的性能问题微调非调优问题没有办法调整找出性能问题的根本原因分析性能调整结果性能调优的不同阶段应用程序设计和开发 应用代码复用和绑定变量数据库配置 内存参数调整和物理逻辑结构调整,争用调整,操作系统调整增加新的应用 观察新应用对数据库的影响,在测试环
Oracle性能优化视频学习笔记-性能优化概念(一)
本周开始学习Oracle性能优化视频,顺便做点笔记,帮助提高学习效率。[@more@]确定性能调整目标听取用户意见用户需求变化监控系统响应时间系统本身负载变化硬件问题内存CPU磁盘软件操作系统OracleOracle配置诊断和优化工具根据统计包收集性能报表数据字典视图和动态性能视图analyse命令和实例警告日志和跟踪文件共享池空间调整共享池包括库缓存和数据字典缓存收集数据字典和库缓存命中率确定库缓存对象调整共享池保留空间UGA和会话内容其他调整内容数据高速缓存空间调整调节其他SGA大小java池和大池数据库配置和磁盘I/O1、描述文件类型,2、
关于数据库对象版本比较的脚本
项目原因导致出现两个开发环境,主数据库环境因需求变更每天都需要进行脚本的修改,而报表服务器的脚本也需要同步更新,需求变更很少会同步提醒的;人工判断太过于麻烦,我又是一个懒人;只好写个脚本自动进行识别并加以运行了。这只是一个简单的版本比较工具,事实上变更是很难判断的,例如表中新增了一个字段,导致顺序发生变更,这个时候你很难判断是新增还是修改的;诸如字段类型的修改.因此只能去判断表是否存在,字段是否存在,进而执行判断脚本,产生相应的表脚本和字段教本。事实上Oracle有个DBMS_METADATA数据包提供了DLL脚本,不
检查数据库数据字段命名规范和合法性的脚本
做开发DBA重要的是经常要检查开发人员或建模人员对数据库的命名规范是否严谨。。。关键字详细信息可以查看v$reserved_words视图[@more@]--检查不符合数据库命名规范的字段名Select TABLE_NAME,COLUMN_NAME,DATA_TYPE From user_tab_columns Where column_name In --(Select keyword From v$reserved_words)('ACCESS','ADD','ALL','ALTER','AND','ANY','AS','ASC','AUDIT','BETWEEN','BY','CHAR','CHECK','CLUSTER', 'COLUMN','COMMENT','COMPRESS','CONNECT','CREATE','CURRENT','DATE','DECIMAL','DEFAULT','DELETE', 'DESC','DISTINCT',
关于ORA-12154: TNS:could not resolve the connect identifier specified的问题
项目里没什么DBA,因此我毛遂自荐做了个业务+兼职的DBA,平常没啥事,帮他们检查一下错误而已,偶尔遇到什么复杂的SQL或者功能,帮忙一下。今天就遇到了一个ORA-12154: TNS:could not resolve the connect identifier specified,在网上搜了半天,还是看看解决的步骤吧,:)[@more@]起因:用户登陆SQL PLUS,报告:ORA-12154: TNS:could not resolve the connect identifier specified。但是比较奇怪的是客户端tnsping都是通的,就是sql plus连不上。1.首先查看sqlnet.ora和tnsname.ora,和自己的机器比较了一下,没有问题!SQLNET.AUTHENTICA
Oracle Package在itpub菠菜上的一点应用
今天闲的无聊写了个存储过程,把itpub NBA菠菜的胜负关系倒腾到数据库中,进行分析,方便菠菜时进行参考。初始的时候写了个存储过程,只是想把比赛名单拷贝参数中,由存储过程对名单按照“,”进行分解,写入数据表中,然后通过分组函数求出最高胜率的。完成之后,突然想自己还没写过包的东西,以前只是纸上谈兵,不如写写看看,后来逐渐把面向对象的一些基本的set,get方法和多态也加进来了,有点意思。不过写的过程中也遇到不少语法问题,看样子还得多写点才行,:)[@more@]create table ITPUBNBABET( ITPUBID VARCHAR2(100) not null,
Windows环境下的Oracle Data Guard安装和配置
操作环境:Windows 2003 企业版 + Serveice pack 2数据库:Oracle 9.2.0.1主库SID:dbguard IP: 192.168.159.133从库SID:dbguard IP: 192.168.159.131其实网络上有很多关于data guard的安装配置资料,不过真正做起来还是会遇到很多问题的;在小杨的帮忙下,总算搞定了。[@more@]oracle安装采用OMF结构1. 主从库均Install Oracle 9i,且只选择安装软件,不创建数据库2. 在主库上使用DBCA,创建dbguard实例3. 创建测试环境,创建test表空间和test用户以及test表和简单的几条记录SQL> create table test 2 (ID
详细解读 STATSPACK 报告(转载)
本文出自Oracle数据库管理板块,itpub网友BTxigua的原作。链接如下: http://www.itpub.net/875132.html 这是我看到的最为详尽的StatSpack报告解读,甚至比eygle的新书有关部分还要detail。抱歉因为文章太长,博客无法显示全文,特提供PDF文件下载!详细解读 statspack 报告.pdf感谢BTxigua的共享精神![@more@]详细解读 STATSPACK 报告详细解读 STATSPACK 报告... 11、报表头信息... 22、实例负载档信息... 23、实例有效性信息... 34、TOP 5及其他等待事件信息... 55、SQL统计信息... 105.1 SQL统计信息-逻辑读... 115.2 SQL统计信息-物
关于Oracle Merge操作的简单用法
Oracle9i新增的Merge是Update和Insert的功能的合集,能够根据相关匹配条件分别进行Update和Insert操作,一次扫描即可完成两个任务,提高了系统的性能。[@more@]1. 创建源数据表create table SourceTable( ID number, Name varchar2(20), Property varchar2(20));alter table SourceTable add constraint PrimarySourceTable primary key (ID);2. 创建完全覆盖目标表create table DestTable( ID number, Name varchar2(20), Property varchar2(20));alter table DestTable add constraint Prima
Oracle学习系列—Oracle透明网关 for SQL Server
ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。因此透明网关也是Oracle数据仓库和数据迁移中的一个重要组成部分。透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。本文ORACLE或SQL SERVER数据库在同一台主机上;SQL Server版本为SQL Server 2000Oracle版本为Oracle9i 9.2.0.1操作系统版本为WindowsXP[@mo
Oracle学习系列—数据库优化—索引图例
关于索引其实图例看的更清楚一些,包括各种索引的结构和适用范围.[@more@] B树索引 反向建索引 函数索引 位图索引
Oracle学习系列—数据库结构—Mount阶段动态视图
动态性能视图(在 NOMOUNT 阶段可以访问),Oracle8i版本中,摘自于<企业 DBA 第 1A 部分 体系结构和管理> [@more@] V$PARAMETER 包含关于初始化参数的信息 V$SGA 包含有关 SGA 的摘要信息 V$OPTION 列出随 Oracle 服务器安装的选项 V$PROCESS 包含有关当前活动进程的信息 V$SESSION 列出当前会话信息 V$VERSION 列出版本号及组件 V$INSTANCE 显示当前例程的状态 V$THREAD 包含线程信息如关于重做日志组的信息 V$CONTROLFILE
Oracle学习系列—数据库优化—创建性能良好的数据库
Oracle Installer允许使用Database Creation Assistant创建一个数据库,并且对于中小型数据库来说是相当有效的方法中,它提供了一个直观的图形化的用户接口,但是这个创建过程有一些局限性,对于大型数据库环境是不推荐的.具体的文章在前面系列中已有,本文来自于Oracle官方文档[@more@]1.数据库创建前参数文件必须要考虑的参数 参数 描述 DB_BLOCK_SZIE 设置数据文件和SGA缓存的数据块的大小,缺省值在2K~16K,一般设置为4K或8K;数据仓库环境可设置为8K或16K DB_NAME