bbed(block brows editer)工具使用
bbed-----------------------block brows editer是oracle提供的块编辑工具但这个工具是内部使用的一旦使用oracle将不再支持这个工具没有windows版本linux/unix版本需要编译后才可以使用编译后的工具也可以对windows下数据库文件进行编辑-----------------------bbed编辑9i、10g下可以直接编译方法相同,如下:[oracle]$cd $ORACLE_HOME/rdbms/lib[oracle]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed11g中默认是不带bbed的,如果确实需要使用可以将10g中文件复制过来再编译编译的方式相同。需要复制的文件如下:$ORA10g_HOME/rdbm
java程序查询绑定变量值
v$sql_bind_capture --bind variablev$sql_bind_datav$sql_bind_metadataCTAScreate table tab_kksfparallel 4 nologging as select * from t1;[@more@]
使oralce索引失效
10g以上skip_unusable_indexes=true;alter index idx_name unusable;重新可用:alter index idx_name rebuild;[@more@]
SQL语句去重及优化
表结构id number 主键xm varchar2(30) 姓名xb varchar2(1) y 性别csrq varchar2(8) y 出生日期rybs varchar2(2) y 人员标示zjlx varchar2(30) 身份证件类型sfzh varchar2(32) 身份证件号码rygxzl varchar2(3) 人员关系种类gxpdgz varchar2(3) 关系判别规则gxfssj varchar2(14) y 关系发生时间gxfsdd varchar2(255) y 关系发生地点gxms varchar2(500) y 关系描述gxfswz varchar2(100) y 关系发生位置groupid number 组编号bz varchar2(3000) y 备注查找内容通过SFZH查出GROUPID相同的一组人,如果有SFZH和RYGXZL相同的
管理运行中的Oracle
ADDM、ASMM、ASM、ASSM、AUM、oracle联机重定义技术[@more@]
quote operator
select q'# I'm a big man !#' from dual;[@more@]qu
flashback version query and flashback transaction query exam
结合闪回版本查询和闪回事务查询完成对某个事务修改数据的恢复.例子,SQL> insert into zdry.test values(8,'uestc');已创建 1 行。SQL> commit;提交完成。SQL> select versions_xid from zdry.test versions between timestamp sysdate-2/1440 and sysdate;VERSIONS_XID ----------------
Notice:oracle CASE WHEN statement
在一些oracle数据库的某些版本中必须使用CASE …… WHEN …… ELSE …… END CASE;完整语句,否则会报错.所以为了避免报错,编写PLSQL代码时,记住写完整.[@more@]
等级函数查询
1.一般等级查询,使用order by 和 rownum完成.例如,查询最近两次做的snapshot的snap_id,select snap_id from ( select * from dba_hist_snapshot a order by a.snap_id desc) where rownum<=2;2.rank函数分析功能其实oracle对于rank和dense_rank已经支持合计功能,不过这次我仅仅使用了其分析功能。具体语法如下:RANK ( ) OVER ( [query_partition_clause] order_by_clause )。 CREATE TABLE rank(subject VARCHAR2(100),mark NUMBER);SQL> select * from rank;SUBJECT
SQL Profiles使用实例
SQL Profiles使用实例在统计信息不完整或者缺失时,有时优化器会产生错误的判断,产生性能比较低下的执行计划。传统的方式,通过手工添加相关的提示生成正确的执行计划。但对于那些封装好的应用程序,修改代码不是一件容易的事情,相信这个问题也曾经困扰过很多的DBA。在Oracle10g中可以很方便的使用自动SQL调整(Automatic SQL Tuning)来调整这些SQL语句,而不用去修改应用代码。其中使用的关键技术就是强大的SQL Profiles。下面通过一个小例子,看看SQL Profiles是如何进行SQL语句自动调整的。1. 使用HR用户登录,创建测试用例SQL>
Pivoting Scenarios
Pivoting ScenariosA data warehouse can receive data from many different sources. Some of these source systems may not be relational databases and may store data in very different formats from the data warehouse. For example, suppose that you receive a set of sales records from a nonrelational database having the form:product_id, customer_id, weekly_start_date, sales_sun, sales_mon, sales_tue, sales_wed, sales_thu, sales_fri, sales_sat The input table looks like the following:SELECT * FROM
Oracle常见等待事件说明
Oracle常见等待事件说明Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。 空闲事件指Oracle正等待某种工作,在诊断和优化数据库的时候,我们不用过多注意这部分事件。 常见的空闲事件有: • dispatcher timer • lock element cleanup • Null
Linux x86安装oracle10gR2
[root@jerry ~]# su - oracle[oracle@jerry ~]$ grep MemTotal /proc/meminfoMemTotal: 514372 kB[oracle@jerry ~]$ grep SwapTotal /proc/meminfoSwapTotal: 524280 kB[oracle@jerry ~]$ df -h /tmpFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 15G 3.8G 9.7G 28% /[oracle@jerry ~]$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 15G 3.8G 9.7G 28% //dev/sda1
rman恢复测试1
RMAN> list backup;RMAN> backup database plus archivelog format '/opt/oracle/app/oracle/data_bak/%d_full_backup';Starting backup at 25-JAN-11current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archive log backupsetchannel ORA_DISK_1: specifying archive log(s) in backup setinput archive log thread=1 sequence=2 recid=1 stamp=741352074input archive log thread=1 sequence=3 recid=2 stamp=741353773input archive log thread=1 sequence=4 recid=3 stamp=741353829input archive log
oracle常见错误
1.如果oracle在参数文件中设置了db_domain,那么在客户端tnsnames.ora文件中应该加上db_domain,否则在连接数据库时,会出现tnsping通,但是sqlplus会报错,并且在listener中会有TNS_12564错误。例如:db_domain=egfit.com 客户端需做如下配置。ORCLST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.43.90)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORCLST.egfit.com))) 2.session会话过多ora-00018错误达到会话限制alter system set session=300;[@more@]
备份与恢复
1.基于用户的备份与恢复冷备(noarchivelog mode):shutdown immediate;cp datafile,control file,redo log to the new locationstartup;热备(archivelog mode):alter database begin backup;cp datafile,control file,redo log to the new locationalter database end backup;alter tablespace <> begin backup;cp datafile to a new location;alter tablespace <> end backup;热备恢复:--完全恢复startup mount;recovery database;alter database open;--不完全恢复startup mount;recover database until time <>;al
AWR、ADDM及备份恢复
主动维护数据字典中的信息和表中的信息,是不一样的,所以要统计信息和收集信息。statistics_level:basic手动收集统计信息type自动收集统计信息(默认)all自动收集统计信息AWR(automatic workload repository)SGA->MMON->AWR(SYS SCHEMA),默认收集时间是60分钟一次记录数据库度量快照,保留期为7天。MMON在SGA中收集统计信息放入AWR里。ADDM(automatic database diagnostic monitor)在记录每个AWR快照之后运行,监视实例:检测瓶颈,在AWR存储结果DBMS_ADVISOR程序包DBA_OUTSTANDING_ALERTS DBA_ALERT_HISTORY自动维护任务
oracle安全与网络配置
用户认证方式 passwordexternal:域名服务器认证,第三方认证global: AD LDAPSYSOPER :comlete recovery only.SYSOPER: can not perform 'CREATE DATABASE ' 'DROP DATABASE' SYSMAN、DBSNMP :OEMprofile(概要文件) edit profile at $ORACLE_HOME/rdbms/admin/utlpwdmg.sql to modify default profilecreate profile pro_u1 limit;alter user u1 profile pro_u1;dba_profiles约束条件enable/disablevalidate/novalidate解决FK问题:enable novalidate(do experiments) --可以OK.启用constraints但是不验证已存在的记录FK_TAB中存在
高级分组、外部表
drop table t_name;show recyclebin;flashback table table_name to before drop;drop table t_name purge;after we drop table a table we can flash it back from recyclebin ,except SYS schema of the table.viewuser_viewscreate or replace FORCE view vw_force as select * from aa; --force to create a view when aa table doesn't exist.sequenceuser_sequencesindexuser_ind_columnsuser_indexesset autotrace on;synonymuser_synonymsdba_synonyms --see the pulic synonymdictionarydict --contains all the dictionary tab
函数、集合和查询
group functionsum() avg() max() min()the group function will not handle null value except count(*).count(*) return all rows including null;count(expr) return the not null rows.SQL> select count(*) ,count(comm) from emp; COUNT(*) COUNT(COMM)---------- ----------- 14 4count(distinct expr) select column,group_function(expr_column) from table group by column order by expr;--group by column having group_condition order by不使用别名或数字作为order by 的排序条件,因为有可能会导致优