自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 SPA 最佳实践

SPA 最佳实践SPA官方描绘的蛮完美的,但在实践中,还是有很多的坑。下面会一一展示本人在SPA实践项目中遇到的各种坑,以及解决方案。OPTIMIZER_MODE问题SQL在目标库实际运行时需要跟源库保持一致,以SIEBEL库为例,它都会在SESSION级别设置以下影响CBO的参数。alter session set optimizer_mode=FIRST_ROWS_10

2014-08-12 15:54:33 2187

原创 ORACLE 存储过程权限问题

create user tester identified by tester; grant connect ,dba to tester; create user tester2 identified by tester; grant connect,resource to tester2; conn tester2/tester create table t1(aa

2014-05-28 07:20:04 764

原创 SQL 列转行/list agg 列超长处理方法

CREATE USER tester IDENTIFIED BY tester ;grant   dba,resource,connect to tester;   conn tester/testercreate table t24(num number,a varchar2(30));beginfor i in 1.. 1000loopinsert into

2014-05-14 20:21:33 3161

原创 ORA-00911: 无效字符,PL/SQL: ORA-01790 表达式必须具有与对应表达式相同的数据类型

ORA-00911: 无效字符SET SERVEROUTPUT ON beginexecute immediate 'select * from dual;';end;/动态拼出来的SQL,加了分号后,比较容易出这个问题。改成execute immediate 'select * from dual'; 就OKPL/SQL: ORA-01790: 表达式必须

2014-05-07 07:44:35 9277

原创 《基于ORACLE的SQL优化读书》笔记 星形转换/谓词推入/连接因式分解/表移除

星形转换:事实表和维度表由外键相连,事实表的外键列上有位图索引。星形转换核心:将针对各个维度表的限制条件通过等价改写的方式以额外的子查询施加到事实表上。然后通过索引间的位图操作。允许星形转换:Alter session set star_transformation_enabled =true; 谓词推入:还是会把视图中定义的SQL当成一个独立的处理单元来处理,但CBO

2014-04-16 15:49:38 1082

原创 《基于ORACLE的SQL优化读书》笔记 子查询展开/视图合并

查询转换是硬解析的第一步,在9i 中,它在CBO之前执行。10G以后,属于CBO的一部分。CBO会对查询转换做成本估算。子查询展开:将子查询拆开:不能做子查询展开的子查询通常在目标SQL的执行计划的最后一步才会被执行,并且走FILTER类的执行方式。改写不基于成本!!where条件为exists,in,=any的子查询,ORACLE会转换成相应的半连接。Notexists, not in,

2014-04-15 16:26:51 1841

原创 《基于ORACLE的SQL优化读书》笔记 ORACLE里应用的类型

ORACLE里应用的类型:硬解析:(open,parse,execute,fetch,close)软件解析:SESSION_CACHED_CURSORS 设置为0(每次open,parse,bind,execute,fetch,close)软软解析:SESSION_CACHED_CURSORS 设置>0,执行三次以上。(一次open,每次parse,bind,execute,fetch

2014-04-12 20:17:24 485

原创 《基于ORACLE的SQL优化读书》笔记 自适应游标共享

自适应游标共享:(通过适时触发硬解析动作,缓解绑定变量窥探带来的副作用)Exec dbms_stats.gather_table_stats( method_opt=>’for allcolumns size 1’) 不收集直方图统计信息Exec dbms_stats.gather_table_stats( method_opt=>’for allcolumns size auto’) 自

2014-04-12 12:52:18 570

原创 《基于ORACLE的SQL优化读书》笔记 常规游标共享

常规游标共享:OLTP系统,在开发阶段没有使用绑定变量,上线了之后才发现问题,此时使用绑定变量,大部分SQL要改写。代价大,考虑使用常规游标共享。在解析之前,使用系统产生的绑定变量来替换目标SQL文本中where或是values子句中的具体输入值。受cursor_sharing 控制:EXACT: 不启用SIMILAR:排除不安全的谓词条件(范围查询,有通配符的LIKE,对有直方图

2014-04-11 14:06:50 569

原创 《基于ORACLE的SQL优化读书》笔记 得到绑定变量值

查询v$sql_bind_capture,如果查不到,再去查dba_hist_sqlstat或

2014-04-11 10:33:48 785

原创 《基于ORACLE的SQL优化读书》笔记 绑定变量分级

绑定变量分级:Level1: 32Level2:33-128Level3:129-2000Level4:2000+分级只适用于文本类型,NUMBER类型固定为22.SQL文本没有变化,如果绑定变量的定义长度发生了变化,该SQL还是可能会做硬解析。在11.2.0.4上做了下实验。2000没有做出来。而且如果先有了N为4000的子CURSOR则不会再为小于4000的级别分配子CUR

2014-04-09 20:35:52 640

原创 《基于ORACLE的SQL优化读书》笔记 绑定变量窥探

绑定变量窥探(参数_OPETIM_PEEK_USER_BINDS)绑定变量窥探,在硬解析中会确定下来一个执行计划。如果某个SQL 对应的SHARED CURSOR 被清出SHAREDPOOL了,而再次执行时值不对,则会引起绑定错误的执行计划让ORACLE执行目标SQL使用硬解析方法:对SQL涉及到的表使用DDL。比如COMMENT.Comment on table t1 is

2014-04-03 21:04:57 706

原创 ORA-32773: operation not supported for smallfile tablespace

想把TABLESPACE从autoextend on改成autoextend off,使用以下语句就会报错:alter tablespace TEST_DATA autoextend off;要从DATAFILE 那里改:alter database datafile‘XXXXXXXXXX/XX/A.DBF’autoextend off;批量使用se

2014-03-26 19:58:59 1448

原创 ORA-28000: the account is locked

找出被锁的用户然后,解锁。SELECT a.session_id, s.SERIAL#,a.oracle_username, a.os_user_name, s.machine, b.object_name FROM v$locked_object a, all_objects b, v$session sWHERE a.object_id = b.object_id and a.SESS

2014-03-26 09:16:24 711

原创 DATAPUMP 导出TIPS

因为TNSPING不通,不能使用DBLINK + DATAPUMP来做数据迁移。先用EXPDP导出DMP文件,FTP到目标服务器,再导入。1.      需要估算导出文件有多大,看本地MOUNT POINT装不装得下。加ESTIMATE_ONLY=y,而且去掉DUMPFILE项。2.      测试了下compression 确实不是压缩DMP文件大小,EXPDP自带压缩,把实际数据量大小

2014-03-25 15:40:58 673

原创 读书笔记MTTR

故障类别:语句错误,用户进程错误,网络故障,用户错误,实例错误,介质故障。用户进程错误:PMON会定时CHECK 恢复进程网络故障:提供冗余路径,备份监听程序,网络连接和网络接口卡。Enterprise Manager > Availability > View and Manage TransactionsDB装载了控制文件后,打开数据文件

2014-03-21 16:32:46 543

原创 闪回查询

闪回查询查看是否开启了闪回:Selectflashback_on from V$database;SQL> select * from t1;          A----------         8         6 SQL> delete from t1 where t1.a =6;commit;select * from t1;sel

2014-03-20 20:56:47 516

原创 闪回数据库

以下为配置闪回数据库,及闪回操作示例回到强制闪回点时数据保持一致性,不使用归档日志。SQL> ALTER SYSTEM SET db_recovery_file_dest ='/home/XXX/data' SCOPE=BOTH;System altered.SQL>alter database flashback on;SQL>Database a

2014-03-20 20:54:44 567

原创 读书笔记-ORACLE数据迁移

移动数据体系结构:DBMS_DATAPUMPORACLE LOADER API;ORACLE数据泵,直接路径API:减少数据转换和语法分析元数据API:数据库对象使用XML存储直接加载较常规加载的优势:使用数据保存,只在特定条件下生成重做项。只强制PK,UK,NOT NULL。不触发INSERT,在加载结束后合并索引。注,直接加载 不能加载到聚簇表中

2014-03-18 15:54:46 714

原创 读书笔记 ORACLE数据恢复

数据库到OPEN状态的条件:控制文件都存在,而且已经同步数据文件都存在且已经同步。每个重做日志组有至少一个成员。通过v$recover_file 查看有问题的文件OPEN状态下,数据库出现以下问题就会失败控制文件系统或是还原表空间的数据文件整个重做日志组数据恢复指导可处理以下两种情况:一种是因必需的数据库文件缺失、不一致或损坏

2014-03-18 10:18:54 625

原创 审计

审计系统权限审计对象权限审计花费比较大,要特别注意空间的使用。by session:在一个会话中,同类型的操作只审计一条,审计系统权限默认.by access:每个符合审计的操作全部审计,审计对象权限默认.基于值审计也就是自己写触发器,细粒度审计挺强大的。Alter system set audit_trail='OS' scope=spfile; SQL> cre

2014-03-13 20:35:32 957

原创 回滚表空间大小设置

UNDO 最小 UNDO保留时间* 每秒最大产生块数 *db_block_sizeSQL> select ut.begin_time,ut.end_time,ut.undoblks,ut.maxquerylenfrom v$undostat ut;  2BEGIN_TIM END_TIME    UNDOBLKS MAXQUERYLEN--------- --------- -

2014-03-13 15:28:21 726

原创 IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsExport file created by EXPORT:V10.02.01 via convent

2014-03-13 14:29:40 1052

原创 读书笔记-锁

锁为数据的一个属性。查看某一行是不是锁定了,要找到这一行。V$lock实为队列表。DML 锁:TX,TMDDL锁:排他DDL锁,共享DDL锁,可中断解析锁注:DDL自带COMMIT,执行DDL,不想让它提交现有事务,可以使用自治事务。  SQL> select * from t1 where a=1 for update;          A---------

2014-03-13 13:51:06 599

原创 约束延迟

约束延迟:批量插入,更新时不必设置延迟。但如果是分开成几个SQL做,则需要设置。CREATE TABLE t3 (a int, b int );   insert into t3values(2,1);  insert into t3values(1,4);  insert into t3values(4,5);  insert into t3values(5,2)

2014-03-11 14:53:35 642

原创 约束的四模式

对原来的数据做检查 validate/novalidated对建完约束后进来的数据做检查enable/disable有四种模式:ENABLE VALIDATEcreate table t1 (a int);insert into t1 values(0);alter table t1 add constraint t1_a check(a > 0);alter tabl

2014-03-11 14:08:33 868

原创 ORA-03113 end-of-file on communication channel 问题解决

SQL> startup forceORACLE instance started.Total System Global Area 2672361472 bytesFixed Size                  2256232 bytesVariable Size            1392509592 bytesDatabase Buffers

2014-03-11 11:38:15 1111

原创 ora-00918

ORA-00918: column ambiguously defined这个说明选择的列可能在多个表中存在,需要指明是哪张表。如T1,T2都有NAME这个列,以下SQL就会报这个错。select NAME from T1,T2 where XXXXXXXXX;这时需要指明NAME具体是T1,或是T2中的。改成select t1.name from T1,T2 where XX

2014-03-06 08:09:20 1353

原创 RMAN 删除无效 过期备份

删除无效备份(根据备份策略不需要的):DELETE OBSOLETE;删除过期备份(实际已经不存,空有一条记录):DELETE EXPIRED;文档如下:Crosschecks update outdated RMAN repository information about backups whose repository records do not match their p

2014-03-05 15:26:06 3213

原创 ORA-01110: data file

测试场insert 操作时报错。ORA-01110: data file 4: '/home/XXX/data/XXX_01.dbf'。先查看了下DB状态,是OPEN。DF,看空间大小,也没满。从dba_data_files中找出这个DBF对应的TABLESPACE,去dba_tablespaces中看了下它的状态。为READ ONLY!有点慌。。快速查看了所有的表空间哪些是REA

2014-03-05 13:50:00 5472

原创 transport tablespace Tips

注意字符集什么的,OS版本,是否加密什么的,这里不列了。列下被坑到的几个点。1.高版本到低版本(测试使用的11.2.0.2->10.2.0.5)有BUG,用不了。2.You cannot transport the SYSTEM tablespace. Therefore, objects such as sequences, PL/SQL packages, and other ob

2014-03-03 19:09:14 691

原创 ORA-39250

使用transport tablespace从11.2.0.0到10.2.0.5,加version参数后,有这个错误。查证为ORACLE  Bug 10297446。直接用DBLINK +DATAPUMP没啥问题,只能回避用TRANSPORT TABLESPACE.

2014-03-03 18:01:44 798

原创 Linux unexpected end of file ,`xxxx' unexpected

写好的脚本运行时报错如下:syntax error at line 6: `else' unexpected或是syntax error: unexpected end of file看语法,其实没有问题。经查证,为从WINDOW 拷贝到LINUX时出文件格式会有问题。文件名为XXXvi xxx:set fileformat=unix :wq再次

2014-03-03 10:48:37 728

原创 ORA-01157: cannot identify/lock data file

删除了DBF文件,遇到ORA-01157: cannot identify/lock data file 101 – see DBWR trace fileORA-01110: data file 101: ‘xxxx.dbf’使用以下方式可以进到到OPEN 状态alter database datafile 101 offline drop;SQL> startup

2014-02-27 17:02:23 592

原创 脚本建立数据库

1.      设置ORACLE_SID:2.      建立相关目录3.      建立密码文件4.      建立参数文件5.      用SQL建立DB    1export ORACLE_SID=ad_test注意不能超过8个字符2mkdir ad_testcd ad_testmkdir bdumpmkdir adumpmkdir cdump

2014-02-21 15:17:06 798

原创 ora-03297处理

1.先查看下表空间的使用情况,如果使用了1G,要resize到800M,当然是不行的。使用如下脚本--------------------------------------------------------------------------------------------- SCRIPT: DF.SQL-- PURPOSE: Show Oracle tablespace fre

2014-02-21 14:55:22 1583

原创 ora-39002 invalid operation

使用expdp导出时遇到如下错误:ORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file operationORA-06512: at "SYS.UTL_FILE", line 475ORA-29283: invalid file operation

2014-02-19 13:58:26 2241

原创 transport tablespace

1.      在源数据库与目标数据库检查字符集是不是相同2.      源数据库需要导入表空间是不是自包含的3.      检查操作系统信息是不是被支持4.      检查DB FILE的位置1col PARAMETER for a30col VALUE for a30select * from v$nls_parameters where PARAMETERin('NLS

2014-02-19 10:21:54 916

原创 《基于ORACLE SQL优化》读书笔记-游标

show parameter open_cursors; --单个session可并存sessioncursor数 select count(*) from v$open_cursor where sid in (select sidfrom v$mystat where rownumselect name,value from v$sysstat where name ='opene

2014-02-18 10:04:48 725

原创 ORA-00257解决

ORA-00257: archiver error.Connect internal only, until freed. Cause: Thearchiver process received an error while trying to archive a redo log. If theproblem is not resolved soon, the database will

2014-02-18 09:59:17 825

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除