网上搜集的一些关于oraclerac负载均衡的资料[转帖]
虽然在Oracle的立场上,总是建议客户能够更好地规划自己的应用,在有其它负载平衡方法的时候,尽量不要依赖于Oracle的Load Balance方法,但是往往在给客户配置完Oracle RAC数据库以后,客户都会要求要测试负载平衡(Load Balance)和TAF(Transparent Application Failover),并且将这两个测试作为RAC是否安装成功的标准。[@more@]这是一件很无奈的事情,像把旁枝末节看作了主要功能,甚至有些买椟还珠的感觉,但是毕竟这是客户,更了解Oracle Load Balance(后文用LB表示),才可以更好满足客户需求。本文不牵涉TAF(可以参看老熊关于TA
Oracle RAC Failover 详解[转帖]
Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉不到这种切换。 Oracle 10g RAC 的Failover 可以分为3种:1. Client-Side Connect time Failover2. TAF3. Service-Side TAF[@more@]注意事项: 不能在listener.ora 文件中设置GLOBAL_NAME, 因为这个参数会禁用Connect-time Failover 和 Transparent Application Failover. 一.Client-Side Connect
分区表移动
如果没有二级分区可以直接移动一级分区,如果有二级分区不可直接移动一级分区--移动二级分区到其它表空间 select 'ALTER TABLE '||t.table_name||' MOVE SUBPARTITION '||t.subpartition_name||' TABLESPACE TBS_DW_NEWS compress;' from user_tab_subpartitions t where t.table_name = upper('TDW_MUSIC_WAP_LOGIN_LOG_H') order by t.partition_name[@more@]--移动一级分区到其它表空间 select 'ALTER TABLE '||t.table_name||' MOVE PARTITION '||t.partition_name||' TABLESPACE TBS_DW_NEWS compress;' from user_tab_partition
使用DBMS_STATS保存分析结果
在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。首先创建一个分析表,该表是用来保存之前的分析值。[@more@]SQL> begin2 dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');3 end;4 /PL/SQL 过程已成功完成。分析表信息SQL> BEGIN2 --DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');3 DBMS_STATS.gather_table_stats(ownname => 'TEST',tabname => 'A');4 END;5 /PL/SQL 过程已成功完成。导出表分析信息到st
RMAN备份归档日志脚本
ORA_STATUA=`ps -ef | grep ora_ | grep -v grep | wc -l`if [ $ORA_STATUA -gt 0 ];then/arch/nbuscripts/hot_archive_backup.shfiexit 0以下是hot_archive_backup.sh的内容:[@more@]#!/bin/sh# $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $##bcpyrght#***************************************************************************#* $VRTScprght: Copyright 1993 - 2007 Symantec Corporation, All Rights Reserved $ *#***************************************************************************#ecpyrght## -
RMAN全库备份脚本
ORA_STATUA=`ps -ef | grep ora_ | grep -v grep | wc -l`if [ $ORA_STATUA -gt 0 ];then/arch/nbuscripts/hot_database_backup.shfiexit 0以下是hot_database_backup.sh的内容:[@more@]#!/bin/sh# $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $##bcpyrght#***************************************************************************#* $VRTScprght: Copyright 1993 - 2007 Symantec Corporation, All Rights Reserved $ *#***************************************************************************#ecpyrght##
讨厌的MERGE JOIN CARTESIAN
今天开发的同事报说有个存储过程老是跑不过去,帮忙看了一下这个存储过程有两具语句,总是在第二个语句出错SQL如下:[@more@]今天开发的同事报说有个存储过程老是跑不过去,帮忙看了一下这个存储过程有两具语句,总是在第二个语句出错SQL如下:select 201007, t1.prov_id, t2.prov_name, t2.pay_act_num from vgopdw.tb_det_prov t1, (select nvl(tb.prov_name, '全国') prov_name, count(distinct ta.serv_num) pay_act_num from vgopdw.tdw_mtv_uord_cmon_stat_m ta, vgopdw.tdw_number_s
oracle数据值型数据改精度测试
今天,同事问我一个问题,一个字段定义原先是NUMBER(15,2),并且里面的数据都是整数,现在想改成NUMBER做了一个测试:SQL> desc bName Type Nullable Default Comments ---- ------------ -------- ------- -------- COL1 NUMBER(15,2) Y SQL> select * from b;[@more@] COL1----------------- SQL> insert into b values(12); 1 row inserted SQL> insert into b values(11.11); 1 row inserted SQL> commit; Commit complete SQL> select * from b 2 ;
查看一个分区的大小
--查看分区select * from user_tab_partitions t where t.table_name = upper('tdw_ft_active_d')[@more@]--查看子分区信息select * from user_tab_subpartitions t where t.table_name = upper('TDW_FT_CONTACT_H')--查看一个分区的大小select t.segment_name as "表名",t.owner as "用户名",sum(t.bytes)/1024/1024 as "表大小(单位:M)"from dba_segments twhere t.partition_name in ('D_FT_CONTACT_H_20100701','D_FT_CONTACT_H_20100702','D_FT_CONTACT_H_20100703','D_FT_CONTACT_H_20100704','
linux下表空间文件系统移动到裸设备测试
1. 用fdisk划分裸磁盘fdisk /dev/sdbnw[@more@]2. 绑定裸设备 1)先分区:fdisk /dev/sdc比如创建了分区/dev/sdc12)添加裸设备到文件/etc/sysconfig/rawdevices文件中:例如:/dev/raw/raw1 /dev/sdc13)绑定裸设备,并且使之重启也有效:service rawdevices restart可以用命令:raw -qa查看系统绑定了哪些裸设备# raw -qa3. 在文件系统创建表空间并创建一个表,把表空间OFFLINECreate tablespace guyuanli ‘/home/oracle/guyuanli.dbf’ size 16m;Create table guyuanli tablespace guyuanli as select * from dba_objects;Selec
HPUNIX下表空间文件系统到裸设备测试
创建裸设备# lvcreate -L 1024 -n lvtest vg00Logical volume "/dev/vg00/lvtest" has been successfully created withcharacter device "/dev/vg00/rlvtest".Logical volume "/dev/vg00/lvtest" has been successfully extended.Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf[@more@]# ls -l | grep testbrw-r----- 1 root sys 64 0x000014 Aug 17 19:20 lvtestcrw-r----- 1 root sys 64 0x000014 Aug 17 19:20 rlvtest#chown ora
分区表备份恢复测试
1.用sys用户登陆建立目录create directory exptest_gu as '/oracle/expdumpdir';2.给要导出数据的用户有使用这个目录的权限grant read,write on directory exptest_gu to vgopdw;3.导出数据[@more@]expdp vgopdw/vgopdw directory=exptest_gu tables=TDW_MANUAL_TV_ACT_USER_M:TV_ACT_M_201003 dumpfile=TDW_MANUAL_TV_ACT_USER_M_TEST.dmp job_name=news_10074.尝试带表元数据导入impdp vgopdw/vgopdw directory=exptest_gu dumpfile=TDW_MANUAL_TV_ACT_USER_M_TEST.dmp logfile=test.log tables=TDW_MANUAL_TV_ACT_USER_M:TV_ACT_M_2010
HPMC集群加LV步骤
最近做了HP集群加LV,特记录一下:1.停MC集群包#cmhaltpkg -v mccdb012.停MC集群双机#cmhaltcl -v[@more@]3.由HP工程师从存储上增加磁盘到各个节点上,一块磁盘有四个电路,如/c6t2d0 /c8t2d0 /c10t2d0 /c12t2d04.把VG踢出集群,并激活VG#vgchange -c n /dev/vgdata01 --踢出集群#vgchange -a y /dev/vgdata01 --激活VG5.增加磁盘到VG,并划分LV#vgextend /dev/vgdata01 /dev/dsk/c6t2d0 --四个电路只加一个就可以了,就可以格式化磁盘#lvcreate 6.查看是否加到集群的配置文件中#strings /etc/lvmtab7.去激活VG#vgchange -a n /dev/vgdata
常见Oracle HINT的用法
1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: [@more@]SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 3. /*+CHOOSE*/ 表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量; 表明如果数据字典中没有
oracle 数据库性能健康检查脚本[转帖]
年底了,要对负责的数据库进行,性能健康检查,特此记录. *******************os层检查#检查oracle进程ps -ef|grep ora|wc -lcrs_stat -t -vtopglancecrsctl check cluster (cssd)vmstat 3600 6[@more@]***********************查看基本信息#database 概况信息检查#检查database基本信息select * from v$version;select name ,open_mode,log_mode from v$database;select instance_number,instance_name ,status from gv$instance;show parameter cpu_cshow parameter block_sizeselect group#,thread#,members,bytes/1024/1024 from gv$log;
关于Oracle取整的函数
关于Oracle取整的函数分别有以下几种: 1.取整(大) select ceil(-1.001) value from dual[@more@]2.取整(小) select floor(-1.001) value from dual 3.取整(截取) select trunc(-1.002) value from dual 4.取整(舍入) select round(-1.001) value from dual
oracle随机数 — dbms_random
oracle随机数 — dbms_randomORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式,罗列如下:1、小数( 0 ~ 1) select dbms_random.value from dual[@more@]2、指定范围内的小数 ( 0 ~ 100 ) select dbms_random.value(0,100) from dual3、指定范围内的整数 ( 0 ~ 100 ) select trunc(dbms_random.value(0,100)) from dual4、长度为20的随机数字串 select substr(cast(dbms_random.value as varchar2(38)),3,20) from dual5、正态分布的随机数 select dbms_random.normal from dual6、随机字符串 select dbms_r
oracle11g gateway for sql server2005配置
最近一个项目用到了透明网关,这里把配置过程简单记录下来,供大家参考。oracle的透明网关是oracle直接访问异构数据库的利器。在9i中,透明网关是包含在数据库安装程序中的,在安装数据库软件过程中可以选择;10g和11g中,oracle把透明网关独立出来,需要单独下载安装。本文主要讨论在oracle下如何配置透明网关去访问sqlserver数据库。在11g之前,for sqlserver的透明网关只能安装在windows操作系统上,从11g开始,for sqlserver的透明网关也可以安装在linux/unix系统中。在本例中,涉及到二个服务器:ORACLE DB服务器: OS: solaris + OR
How to Setup DG4MSQL (Oracle Database Gateway for MS SQL Server) Release 11 on Linux [转帖]
In this Document Goal Solution How to Setup DG4MSQL (Oracle Database Gateway for MS SQL Server) on LINUX --------------------------------------------------------------------------------Applies to: Oracle Transparent Gateway for Microsoft SQL Server - Version: 11.0.1.0.1Linux x86[@more@]GoalStarting with 11g Oracle now provides a Database Gateway for MS SQL Server on Linux.The setup in 11g slightly differs from previous releases and this note will explain the steps how to configure DG4MSQL
inner join,full outer join,left join,right jion[转贴]
inner join,full outer join,left join,right jion 内部连接 inner join 两表都满足的组合 full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有 A表没有的显示为(null) A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为null A表 right join B表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null[@more@]查询分析器中执行: --建表table1,table2: create table table1(id int,name varchar(10)) create table table2(id int,score int) insert into table1 se