大的数据统计,可以跑统计
大的数据统计,可以跑统计[@more@]大的数据统计,可以跑统计
物化视图
物化视图得概念物化视图得创建物化视图得执行物化视图得删除[@more@]物化视图得基本概念: oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。物化视图可以分为以下三种类型:包含聚集
rebuild online 索引,中途失败:
1. rebuild 索引在业务不忙的时候做 2. 中途是不能主断的 3. oracle 会自动清除(时间不同)4. 通过重新启动数据库 oracle 自动清除5. 通过修改系统表(oracle 9i)[@more@] update ind$ set flags=flags-512 where obj#=(select obj# from obj$ where owner#=(select user# from user$ where name='WRJ' ) and name='IDX_TEST1' ); select flags from ind$ where obj#=(select
oracle 9 aq
drop queue create queue [@more@]sqlplus wrj/wrjdrop queue_table 的名称begin sys.dbms_aqadm.stop_queue(queue_name => 'SGIP_SEND_QUEUE');end;/begin sys.dbms_aqadm.drop_queue (queue_name => 'SGIP_SEND_QUEUE'); end;/begin sys.dbms_aqadm.drop_queue_table (queue_table => 'SGIP_SEND_TABLE'); end;/create queue_table 名称: begin sys.dbms_aqadm.create_queue_table( queue_table => 'SGIP_SEND_TABLE', queue_payload_type => 'SGIP_SEND_TYPE', sort_list => 'ENQ_TIME' );end
用 rman rename oracle 数据文件
用 rman rename oracle 数据文件 [@more@]$ more rmanhf_rename.sh #!/bin/sh. /export/home/oracle/.profilerq=`date +%Y%m%d`date$ORACLE_HOME/bin/rman target / log=/export/home/oracle/rman/hf$rq.log<<!run{set newname for datafile '/trunkbow/oracle/oradata/mpaper/system01.dbf' to '/u01/oracle/oradata/mpaper/system01.dbf' ; set newname for datafile '/trunkbow/oracle/oradata/mpaper/undotbs01.dbf' to '/u01/oracle/oradata/mpaper/undotbs01.dbf';set newname for datafile '/trunkbow/oracle/oradata
dataguard 最大保护模式下的 failover
测试如下 测试版本 : 9。2。0。8 [@more@]建立最大保护模式最大性能模式修改成最大保护模式 :SQL> alter database add standby logfile GROUP 4 ('/u02/oracle/uassdb/stdy_redo04.log') SIZE 300m;alter database add standby logfile GROUP 4 ('/u02/oracle/uassdb/stdy_redo04.log') SIZE 300m*ERROR at line 1:ORA-01156: recovery in progress may need access to filesSQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.SQL> SQL> SQL> startup nomount pfil
物理dataguard 正常切换 脚色转换
物理dataguard 正常切换 脚色转换,switchover_status 状态改变: [@more@]正常切换 切换前: 主库: SQL> select DATABASE_ROLE from v$database;DATABASE_ROLE----------------PRIMARYSQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS---------- -------------------- -------------------- ------------------READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBYSQL> SELECT COUNT(*) FR
ALTER DATABASE REGISTER LOGFILE 手工注册日志测试
ALTER DATABASE REGISTER LOGFILE 手工注册日志测试[@more@]不设置 log2 手工同步arc ALTER DATABASE REGISTER LOGFILE '/trunkbow/oracle/oradata/mmcdb/archive/1_6.dbf';SQL> create user wrj identified by wrj;User created.SQL> SQL> SQL> grant dba,connect,resource to wrj;Grant succeeded.SQL> grant unlimited tablespace to wrj;Grant succeeded.SQL> connect wrj/wrj;Connected.SQL> create table test1 as select * from dba_objects;Table created.SQL> SQL> SQL> SQL> alter sys
物理 dataguard 管理
物理 dataguard 的管理: 1. 查询备用库的保护模式,可切换模式SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS---------- -------------------- -------------------- --------------------MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE NOT ALLOWED2. 查询连接程序select sid,process,program from v$session;3.查询有没有传输日志,MFS 进程 v$managed_standby ----有没有正在传输的日志SQL>
warehouse 整理的几篇文章
http://www.itpub.net/viewthread.php?tid=911241&extra=&page=1warehouse 整理的几篇文章 [@more@]http://www.itpub.net/viewthread.php?tid=911241&extra=&page=1 warehouse 整理的几篇文章
编译程序报 libclntsh.so.9.0: Permission denied
Exception in thread "main" java.lang.UnsatisfiedLinkError: /export/home/oracle/product/9.2.0/lib32/libocijdbc9.so: ld.so.1: java: fatal: /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0: Permission denied [@more@]报权限不够,增加权限 # chmod 755 /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0# ls -ltra /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0
aq 引起的latch free 的完美解决方案
查出热点块 热点sql优化sql 问题解决 [@more@]oracle aq 问题,版主帮忙,江湖救急252 processes: 216 sleeping, 31 running, 3 stopped, 2 on cpuCPU states: 0.0% idle, 91.5% user, 8.5% kernel, 0.0% iowait, 0.0% swapMemory: 4096M real, 147M free, 5835M swap in use, 5522M swap free PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND10215 mpaper 17 43 0 547M 402M run 45:22 5.30% java22646 oracle 1 33 0 2230M 2223M run 22.0H 4.51% oracle22648 oracle 1
rename 数据文件,在线文件路径
干净的关闭数据库,rename 数据文件,日志文件 [@more@]$ ls -llttotal 27709826-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control01.ctl-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control02.ctl-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control03.ctl-rw-r----- 1 oracle dba 524288512 Dec 25 16:47 redo02.log-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 sysaux01.dbf-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 system01.dbf-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 undotbs01.dbf-rw-r----- 1
动态sql 用法二 :
动态游标 的使用 : [@more@]游标声明: type tcur is ref cursor;c_corp tcur;v_qury :=’’打开动态游标open c_corp for v_query loop fetch c_corp into exit when c_corp not found ;end loop;close c_corp;
动态sql 的 用法 1:
1. 其中v_query 变量 可以是 ddl ,select,dml [@more@]create or replace procedure create_test(p_date varchar2) isv_date date;v_sqlstr varchar2(1024);beginv_date := to_date(p_date, 'YYYYMMDD') + 1;-- Create tablev_sqlstr := 'create table aa.test' || to_char(v_date, 'YYYYMMDD') || ' ' || '(' ||' ISDN VARCHAR2(21) not null,' || ' HOST VARCHAR2(4),' ||' R_FROM VARCHAR2(4),' || ' R_TO VARCHAR2(4) not null, ' ||' RECORD_TIME DATE default sysdate ' || ')';execute immediate v_sqlstr;end;==========
9i 10g 检查点的增强
v$instance_recovery fast_start_mttr_target [@more@]SQL> show parameter fastNAME TYPE VALUE------------------------------------ ----------- ------------------------------fast_start_io_target integer 0fast_start_mttr_target integer 300fast_start_parallel_rollback string LOWsql>select t.RECOVERY_ESTIMATED_IOS REIO,t.ACTUAL_REDO_BLKS ARB,t.LOG_FILE_SIZE_REDO_BLKS TRB,t.LOG_CHKPT_TIMEOUT_REDO_BLKS LCTRB,t.LOG_CHKPT_INTERVAL_REDO_BLKS LCIRB,t.TARGET_REDO_BLKS TMTTR,t.ESTIMATED_MTTR EMTTR,t.CKPT_
临时表空间被删除,恢复的办法
创建新的temp2修改数据库的临时表空间到temp2drop 原来的temp[@more@]创建新的temp2create temporary tablespace temp2 tempfile 'C:oracleoradataora101ttemp2_01.dbf' size 100m extent management local uniform size 128k;修改数据库的临时表空间到temp2alter database default temporary tablespace temp2; drop 原来的tempdrop tablespace temp including contents and datafiles ;
一个更新语句
update user_order s set s.area_code = (select t.area_code from isdn_head t where substr(s.user_isdn,1,6)=t.exchg_code or substr(s.user_isdn,1,7)=t.exchg_code or substr(s.user_isdn,1,8)=t.exchg_code )[@more@]user_order 表,字段user_isdn,area_codearea_code现在是空的,还有号段表 exchg_code,area_code能不能一条语句把area_code填上update user_order s set s.area_code = (select t.area_code from isdn_head t where substr(s.user_isdn,1,6)=t.exchg_code or substr(s.user_isdn,1,7)=t.exchg_co
数据库恢复的理解
理解数据库恢复的过程 :数据库在 open 的时候,进行2次检查 :[@more@]理解数据库恢复的过程 : 在数据库immediate 关闭的的时候,oracle 数据库将进行一系列的检查点的操作,使结束scn (v$datafile 中的last_change# ) 由无穷大变成 开始 scn (v$datafile_header中的checkpoint_change#)在数据库abort 关闭的的时候,oracle 数据库不进行一系列的检查点的操作所以结束scn 为无穷大,也就是空值。 数据库在 open 的时候,进行2次检查 : 1. 检查数据文件头中 v$datafile_header (checkpoint_count) 的值和控制文件的中的ch
ckpt 的 理解
何时触发检查点 检查点作写什么: [@more@]切换日志会触发checkpoint什么是checkpoint?checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件。什么时候发生checkpoint?我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。1.当发生日志组切换的时候2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL(8i),fast_start_io_target,fast_start_mttr_target(9i)参数设置的时候3.当运行ALTER SYSTEM SWITCH LOGFILE的时候4.当运行ALTER SYSTEM C