ORACLE RETURNING 语句的使用方法
1.The RETURNING INTO clause allows us to return column values for rows affected by DML statements. The following test table is used to demonstrate this clause. DROP TABLE t1;DROP SEQUENCE t1_seq; CREATE TABLE t1 (ID NUMBER(10),DESCRIPTION VARCHAR2(50),CONSTRAINT t1_pk PRIMARY KEY (id)); CREATE SEQUENCE t1_seq; INSERT INTO t1 VALUES (t1_seq.nextval, 'ONE');INSERT INTO t1 VALUES (t1_seq.nextval, 'TWO');INSERT INTO t1 VALUES (t1_seq.nextval, 'THREE');COMMIT; 2.When we insert data using a sequence t
数据库启动,关闭,restore时scn的情况
1,当数据库clean shutdown时 (normal,immediate),ckpt进程会将scn写到四个地方去,其中control file中有3个,datafile中1个----control file的三个地方1.System checkpoint SCN ===========> (SYSTEM CHECKPOINT SCN in control file)SQL> select checkpoint_change# from v$database;2.Datafile checkpoint SCN ===============> (DATAFILE CHECKPOINT SCN in control file)SQL> select name,checkpoint_change# from v$datafile 3.Stop SCN ======================> (STOP SCN in control file)SQL> select name,la
ORACLE 动态注册和静态注册的区别
1, oracle 10g 用netca方式建立的都默认为动态注册方式2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = JEFF ) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) --就这一段 (GLOBAL_DBNAME = jeff) ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCO
ORACLE REDO LOG 频繁切换问题解决与分析
OS: SOLARIS 10DB: 10.2.0.4问题描述:我的数据库的压力非常小 transaction per second = 0.25,所以基本上没有压力从 2010-08-23日 到2010-09-03日 产生了20G的archivelog ,所以这个问题是非常不正常的。解决方法:1,对archivelog进行了一次分析,从分析的结果看 select USERNAME ,SESSION#, OPERATION, SEG_OWNER ,SEG_NAME,count(*) from sys.logmnr group by USERNAME ,SESSION#, OPERATION, SEG_OWNER ,SEG_NAME order by count(*) descUNKNOWN 0 INTERNAL 1422INNOCOM 539 INTERNAL 1077INNOCOM 537 INTERNAL 916INNOCOM 453 INT
今天新学到的动态性能视图 v$sesstat
Oracle动态性能视图学习之v$sesstat2007-11-29 12:59按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。 类似于v$sysstat,该视图存储下列类别的统计:事件发生次数的统计,如用户提交数。数据产生,存取或者操作的total列(如:redo size)执行操作所花费的时间累积,例如session CPU占用(如果TIMED_STATISTICS值为true)注意:如果初始参数STATISTICS_LEVEL被设置为TYPICAL或ALL,时间统计被数据库自动收集如果STATISTICS_LEVEL被设置为BASIC,你必须设置TIMED_STATISTICS值为TRUE以打开收集功能。
如果有一天你收到了 snap too old 的错误
今天在itpub上看到有人发帖关于 收到snap too old 的话 你应该怎么办的讨论,有的人认为是一个老问题只要加大undo_tablespace的大小或是 增加undo_retention就ok了,但是有些时候往往我们在解决问题的时候这样做是远远不够的,今天我总结了一写碰到此类错误的方法1,首先确定那两个参数的值被正确的设定。2,你要确定你的问题是程序带来的还是你自己执行sql时带来的如果是程序带来的问题,你可能就要和程序员好好谈谈了,可能是他们的sql语句抒写不当,要建议他们多commit几次,如果是你写sql的问题,那你就自己看着办吧,这里不做讨论因为
我的rman备份脚步
首先设置rman的参数CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS ---窗口时间为7天CONFIGURE CONTROLFILE AUTOBACKUP ON ---控制文件自动备CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/control_file_backup/sales_%F' --设置为自动备份的控制文件的路径CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET --设置分配几个通道进行备份CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/home/oracle/rman/backup_p%p_s%s_t%t_%T.bak'CONFIGURE CHANNEL 2 DEVICE TYPE DIS
ORA-1555错误综述
ORA-1555错误综述ORA-1555是一个非常著名但让人讨厌的错误,下面就该错误是如何产生的及该如何来预防做个综述。 ORA-1555错误简单的说就是针对一个数据块产生一致读时发生了错误。一致读就是指ORACLE利用回滚段来临时重构一个和事务或查询开始时的块状态相同的快照块的过程。如果一个块改变了多次,可能就会有多个快照块的。 一个事务或查询开始执行时,ORACLE会产生一个SCN来记录这个开始时刻点,这个SCN也就叫做SNAPSHOT SCN。ORACLE仅仅看基于SNAPSHOT SCN的快照记录。如果块中有活动的事务或BLOCK SCN> SNAPSHOT SCN时,
ORACLE 锁机制
Oracle锁机制及锁的探讨 一、 Oracle锁机制1、什么是锁锁是控制“共享资源”并发存取的一种机制。注意这里说“共享资源”而不仅指“数据行”,数据库的却在行一级对表的数据加锁,但是数据库也在其它地方对各种资源的并发存取使用锁。比如说,如果一个存储过程在执行过程中,它会被加上某种模式的锁只允许某些用户执行它而不允许其他用户修改它。锁在数据库中被用来实现允许对共享资源的并发存取,同时保证数据的完整性和一致性。2、锁的类型在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Lo
关于db_file_multiblock_read_count参数的详细讲解
--这是转eygle大师的文章初始化参数db_file_multiblock_read_count 影响Oracle在执行全表扫描时一次读取的block的数量.db_file_multiblock_read_count的设置要受OS最大IO能力影响,也就是说,如果 你系统的硬件IO能力有限,即使设置再大的db_file_multiblock_read_count也是没有用 的。理论上,最大db_file_multiblock_read_count和系统IO能力应该有如下关系: Max(db_file_multiblock_read_count) = MaxOsIOsize/db_block_size当然这个Max(db_file_multiblock_read_count)还要受Oracle的限制,目前Oracle所支持的最大db_file_multibl
sqlserver2005 ssis变量的使用方法
一、SSIS变量简介 SSIS变量分为两种,一种是系统变量,一种用户定义的变量。系统变量包含有关包、容器、任务或事件处理程序的非常有用的信息。例如,在运行时,MachineName 系统变量包含运行包的计算机的名称,StartTime 变量包含包开始运行的时间。系统变量是只读的。在 SSIS 中,用户变量是用户在开发的过程中根据需要申明的变量,用户变量可以使用在脚本中;在由优先约束、For 循环容器、派生列转换和条件性拆分转换使用的表达式中;以及在更新属性值的属性表达式中。在各种编程语言中申明的变量一般情况下都会有作用范围的,SSIS变
我的oracle监控脚本
----检查磁盘空间------------------bin/shd1=`df -h | grep /home | awk '{print $5}' | awk -F% '{print $1}'`if [ $d1 -ge 80 ]thenecho "`date +%F" "%H:%M:%S` The disk is not enough ,the message from ip " | mail -s "primary_ipdisk alert" jie.du@mailfi------------检查oracle standby服务器的状态---------------------------#!/bin/bashprimary_log=`ls -t /home/oracle/archive_log | head -n 1 | awk -F_ '{print $2}'`standby_log=`ssh -p65508 oracle@192.168.10.13 "ls -t /home
oracle 高级复制 配置步骤
测试环境 linux as 4 + oracle 10.2.0.3master : sfgamereplication_server: rep******注意: 如果有的存储过程不知道怎么写,那就用企业管理器来做 --这个东西超级好用,建议用这个1,首先设置初始化参数--at sfgame db_domain=sfgame.com global_names=true job_queue_processes=10 # 缺省值 open_links=4 # 缺省值--at rep db_domain=rep.com global_names=true job_queue_processes=10 # 缺省值 open_links=4 # 缺省值2,配置tns使其能够相互访问3,用system登录数据库--at sfgamealter databa
oracle 创建表时的storage的参数的含义
本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义。 图表阐述 可用于:表空间、回滚段、表、索引、分区、快照、快照日志 建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值) 一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle 816中可修改MINEXTENTS参数) 对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent 在分配一个新Extent时,系统直接按NEXT的值分配一个Extent, 然后用公式:前一NEXT值*(1+PCTINCREASE/100) 计算出下一个应该分配的Extent的大小
oracle常用函数
1,decode: 其实是一个if函数 例: select decode(6-5,1,'a','b') from dual; --如果6-5=1那么返回a,否则返回b.2,nvl 如果exp1为null则返回exp2,否则返回exp1.例子:select nvl(null,'a') from dual; select nvl ('dd','a') from dual;3,rollup:汇总函数:把汇总出来的数据再汇总,如果两个值4,cube:把各个子项汇总5,trunc: 用来取整数,如果是时间的话就取时间的整点 例1:SQL> select trunc(sysdate) from dual; TRUNC(SYSDATE) ------------------- 2007-04-11 00:00:00 例2: SQL> select trunc(22
显示数据库属性的函数
selectSYS_CONTEXT('USERENV','TERMINAL') terminal,SYS_CONTEXT('USERENV','LANGUAGE') language,SYS_CONTEXT('USERENV','SESSIONID') sessionid,SYS_CONTEXT('USERENV','INSTANCE') instance,SYS_CONTEXT('USERENV','ENTRYID') entryid,SYS_CONTEXT('USERENV','ISDBA') isdba,SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory,SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency,SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar,SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') nls_date_format,SYS_CONTEXT('USERENV','NLS_DAT
rman 自己的总结
1,设置channel的个数,或说是并行度CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET2,进行备份的时候记录日志3,设置备份策略是按天还是按照冗余备份的数量。(一般我选择按照天)4,使用clear命令来将修改过的值设置为默认比如原来的:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS使用clear来改回默认值: CONFIGURE RETENTION POLICY CLEAR --注意这个clear的位置是在 "TO" 的前面5,list命令: (1), list backup of database:列出所有的数据库备份. (2),list backup of tablespace us
配置 oracle的web管理方式
1,直接运行 emca -repos create 如果数据库中没有sysman用户,那么就会自动创建一个出来2,初始化参数中的job_queue_processes 要大于 1-----如果你不知道该用什么路径访问就用 emctl status dbconsole命令来查看-----------------------------------------------emca -repos create -- 创建一个EM资料库emca -repos recreate -- 重建一个EM资料库emca -repos drop -- 删除一个EM资料库emca -config dbcontrol db -- 配置数据库的 Database Controlemca -deconfig dbcontrol db -- 删除数据库的 Database Control配置重新配置db control