题目部分 在Oracle中,当DML语句中有一条数据报错时,如何让该DML语句继续执行? 答案部分 当一个DML语句运行的时候,如果遇到了错误,那么这条语句会进行回滚,就好像没有执行过。...----- 10 LHR@orclasm > SELECT COUNT(1) FROM T2; COUNT(1) ---------- 20 可以看到,由于插入的数据违反了唯一性约束...② 直接路径的INSERT或MERGE语句违反了唯一约束或唯一索引(注意:从Oracle 11g开始,已经取消了该条限制)。 ③ 更新操作违反了唯一约束或唯一索引。...LHR@orclasm > 可见,从Oracle 11g开始已经取消了该条限制。...constraint (LHR.PK_T1_A) violated 可以看到,如果更新操作导致了唯一约束或唯一索引冲突,是不会记录到错误记录表中的。
相关参考: Oracle Data Guard 重要配置参数 基于同一主机配置 Oracle 11g Data Guard 1、逻辑备库的一些限制 对于逻辑备库,存在很多限制,如对于一些特殊的些数据类型象...约束时,则最短的非空的唯一索引/约束会随同被更新列做为update语句的一部分 表无主键,无唯一索引/约束,所有可定长度的列(除long,lob,long raw,object...11g而言,可以直接从active database来创建,也可以基于10g 的RMAN使用duplicate方式来创建。...可以参考:基于同一主机配置 Oracle 11g Data Guard http://blog.csdn.net/robinson_0612/article/details/9979405 b、...11g不再是必须的。
对于IS NOT NULL,type字段定义为NOT NULL,此SQL明显违反了表中的约束条件,则会在执行计划最上层增加一个NULL IS NOT NULL恒为假的条件,根本不需要真正执行这个SQL,...对于IS NULL,由于查询条件满足约束的条件,因此Oracle会做全表扫描,并且省略了type is not null的过滤,直接返回所有记录,就造成了type非空的假象。...原因就是11g新特性,新增一个有默认值的NOT NULL约束的字段,默认值不会像以前一样,插入每条记录中,而是会存储于一张数据字典表sys.ecol$,Oracle允许NOT NULL列默认值为NULL...根据错误提示,我们删除表中数据,再新增字段,可以增加,但不能再插入一条NULL至这个非空约束字段。 ?...至此,12c修复了11g中这个非空约束字段允许保存空值的bug,同时又支持11g新增默认值非空字段使用数据字典存储的特性,并且做了扩展支持,满足范围更大了。 小问题隐藏了大智慧。
作者简介 刘晨,网名bisal,Oracle 10g/11g OCM,并国内首批Oracle YEP成员,博客:blog.itpub.net/bisal 很多人在做一些表设计时会留出几个reverse的字段...3. 11g以上的版本,如果新增字段没有默认值,也没有NOT NULL约束,则还是会使用ROW EXCLUSIVE模式锁,但由于不需要更新字段值,执行时间也是比较短。...1、对于IS NOT NULL,type字段定义为NOT NULL,此SQL明显违反了表中的约束条件,则会在执行计划最上层增加一个NULL IS NOT NULL恒为假的条件,根本不需要真正执行这个SQL...原因就是前面介绍过的11g新特性,新增一个有默认值的NOT NULL约束的字段,默认值不会像以前一样,插入每条记录中,而是会存储于数据字典表,Oracle允许NOT NULL列默认值为NULL,因此对于...根据错误提示,我们删除表中数据,再新增字段,可以增加,但不能再插入一条NULL至这个非空约束字段。
)的NEED_PO字段,插入值“NEED_PO",很显然,7个长度的字符,插入1个长度的列,肯定会抛出异常, PARSING IN CURSOR #140623645148936 len=56 dep...“add column optimization”指的是11g对新增列的一种优化改进,当为表增加一个含默认值且设置了非空约束的列时,他是不会实际更新这张表的,而是在数据字典中增加该列信息,当用到这张表的该字段...,就会从数据字典中读取,一方面满足读取字段的需求,另一方面让增加字段的操作很快地执行,而在11g以前的版本,这种增加列操作,是需要实际更新这张表的字段,如果表的数据量非常大,则增加字段的操作会执行很久,...Database 11g 11.2.0.4.0 Oracle Database 11g Examples...Database 11g 11.2.0.4.0 Oracle Database 11g Examples
对于Oracle 11g而言,可以直接从Active Database来创建,也可以基于10g的RMAN备份方式来创建。对于Oracle 10g而言,只能基于RMAN来创建。...在Oracle 11g之前的物理DG只能在MOUNT状态下进行恢复,虽然可以以只读方式打开备库,但是不能应用日志,而到了Oracle 11g时备库可以在打开的情况下执行恢复操作了,这称为ADG(Active...(三)快照DG(Snapshot DG) 当Physical Standby转换为Snapshot Standby时,它是一个完全可更新的Standby数据库。...00:00:00 ora_pmon_oradgss -- ORACLE_SID=oradg11g SYS@oradg11g > select db_unique_name,database_role...=oradgphy SYS@oradgphy > select db_unique_name,database_role,open_mode from v$database; DB_UNIQUE_NAME
本文旨在指导客户完成Oracle 11g的ADG部署工作,主库环境已具备,备库环境已安装完成数据库软件。...7.更新tnsnames.ora文件 8.拷贝主库RMAN备份和参数文件到备库 9.拷贝主库密码文件到备库 10.创建备库需要的目录 11.修改备库参数文件 12.拷贝主库tnsnames.ora文件到备库...注:使用scp拷贝时,如果两端$ORACLE_HOME变量值不一样,目标端需要修改为具体的绝对路径。...Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning.../scripts/del_arch.sh 至此,Oracle 11g ADG 部署(duplicate)整个过程已完成。
,可以看出,对于唯一性约束,Oracle会自动创建一个,普通的唯一索引,索引名称默认采用约束名。...Oracle Database should enforce the constraint, thereby determining the constraint state....简言之, 如果约束设置enabled,则会检查新插入或更新的数据是否符合约束条件。 如果约束设置disabled,则表中可以包含,违反约束的记录。...测试表现在有(a, b, c)唯一性约束,此时插入两条记录,且三个字段均为空值,分别用null和''两种方法,插入空值数据,是可以插入的,并未违反唯一性约束, SQL> insert into test...含有部分空值的复合唯一性约束的非空列上不能有相同的值。 总结: 1. 表中不存在重复的数据,可以直接创建唯一性约束,Oracle会自动创建唯一性索引,索引名称默认为约束名。 2.
二、Register server with the broker dgmgrl sys/oracle@orcl ##pri是configuration名称,随意 ##第一个orcl是db_unique_name...##第一个orcl_stby是db_unique_name ##第二个orcl_stby是TNSNAME ADD DATABASE orcl_stby AS CONNECT IDENTIFIER IS...是db_unique_name+DGMGRL ##primary add (SID_DESC = (GLOBAL_DBNAME = orcl_DGMGRL) (ORACLE_HOME...六、Snapshot Standby Snapshot standby database是ORACLE 11g的新特性。允许Physical standby短时间的使用read write模式。...注意:一旦snapshot standby被激活的时间超出了primary 的最大负载时间,再次的本地更新操作将会产生额外的异常。
SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition...USERS 此时,如果我们再试图在ID列上创建一个唯一索引,Oracle会报错,因为该列上已经存在一个唯一索引: SQL> create unique index idx_test_uk on...如果我们让主键约束或者唯一键约束失效,Oracle自动创建的唯一索引是否会受到影响? SQL> drop table test purge; Table dropped....SQL> select index_name, index_type, uniqueness from user_indexes; no rows selected 当主键约束或者唯一键约束失效时,Oracle...总结如下: (1)主键约束和唯一键约束均会隐式创建同名的唯一索引,当主键约束或者唯一键约束失效时,隐式创建的唯一索引会被删除; (2)主键约束要求列值非空,而唯一键约束和唯一索引不要求列值非空; (3)
-sid database_system_identifier [-createAsStandby [-dbUniqueName db_unique_name_for_standby...一键安装单机11G/12C/18C/19C并建库脚本 2、环境配置 a.配置hosts文件 主库: cat /etc/hosts ##FOR DG BEGIN 192.168.1.180 orcl_stby...standby database是ORACLE 11g的新特性。...--主库插入数据,测试之后切换回physical standby是否能同步 insert into test.test values (9999); commit; --备库尝试插入数据,drop表...---- 1 2 3 9999 注意:一旦snapshot standby被激活的时间超出了primary 的最大负载时间,再次的本地更新操作将会产生额外的异常
操作不一样) RAC后期变更,绑定网卡时: 11g 需要先oifcfg setif -global 新网卡名称/subnet:cluster_interconnect ..../app/oracle/product/10.2.0.5/dbhome_1 oradb28 jyrac2 /u01/app/oracle/product/10.2.0.5/dbhome_1 DB_UNIQUE_NAME...(11.2.0.4): [oracle@oradb23 ~]$ srvctl config database -d jyzhao -a 数据库唯一名称: jyzhao 数据库名: Oracle 主目录...用法: srvctl config database [-d unique_name> [-a] ] [-v] 用法: srvctl config service -d unique_name...用法: srvctl add database -d unique_name> -o oracle_home> [-c {RACONENODE | RAC | SINGLE} [-e <server_list
Data Guard在11g中引入Active Data Guard,12c又赋予了新的功能,如: Far Sync Instance等。...同时在配置多个Far Sync实例时,可以使用Enhanced Alternate Destination的新特性。...这个特性使所有的DBA都为之兴奋,从此再也不会为了因为主库密码发生改变没有同时更新到备库,导致主备库无法同步,甚至可能面临重新搭建备库。...注:1.当有Far Sync实例时,仍需手动将修改后的密码文件同步到远程同步实例,一旦远程同步实例更新后,会自动同步到所有的物理备库。 2. ...当然也可以在Oracle 11g的版本设置redo_transport_user参数来实现同样的功能。
也就是说oracle版布号的第四位会被修改 每一个PSR是都整合了之前的一些bug,并且经过了严格的测试,通常更新PSR风险相对较小 如10.2,10.2.0.1.0是基础发行版,至今已有五个...#下面是Oracle 11g下使用lsinventory -detail时patch的应用情况 [oracle@linux1 OPatch]$ ....Database 11g 11.2.0.1.0 There are 1 products installed...#下面是Oracle 11g下使用使用lsinventory -bugs_fixed来查看patch的情形 [oracle@linux1 OPatch]$ ....Database 11g 11.2.0.1.0 There are 1 products installed
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning...Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning...Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning...Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning...skip_unusable_indexes=y对unique index不起作用,因为此时的unique index扮演者constraint的作用,所以在insert数据时index必须被 更新。
ALTER TABLE persons MODIFY age int NOT NULL; SQL UNIQUE 约束 下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 UNIQUE...当表已被创建时,如需在 "P_Id" 列创建 PRIMARY KEY 约束,请使用下面的 SQL: MySQL / SQL Server / Oracle / MS Access: ALTER TABLE...KEY 约束 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。...SQL AUTO INCREMENT 字段 Auto-increment 会在新记录插入表中时生成一个唯一的数字。...如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。 NULL 值的处理方式与其他值不同。
前天写了篇文章《表中已存重复数据的情况,如何增加唯一性约束?》,提到了存在唯一约束前提下,重复数据的问题。 很感谢建荣兄,他给我补充了两点, 1....对于含有null的复合索引,mysql和oracle的结果完全不同。 对于第二点,前同事曌哥,碰巧也说到了,MySQL下和Oracle的些许不同,这块我需要验证下,才能体会得更清楚些。...此时我们向TEST表插入一条重复的数据,自然会报错,违反唯一性约束的错误, SQL> insert into test values(3, 'a', 'a', 'a'); insert into test...,换句话说,这条不可能插入TEST表的数据,插入了ERR$_TEST表,另外ORA_ERR_MESG$字段显示的错误信息,正是不加log errors子句时,控制台直接返回的错误信息,我们猜出ORA_ERR_OPTYP...---- 接下来我们看看,Oracle官方的介绍,从《Oracle® Database PL/SQL Packages and Types Reference》文档可以检索DBMS_ERRLOG包。
2.NOT NULL : 指示某列不能存储 NULL 值; 如果不向字段添加值就无法插入新记录或者更新记录,否则会报错; 3.UNIQUE : 保证某列的每行必须有唯一的值; 在设置字段为UNIQUE...在每次插入新记录时自动地创建主键字段的值,注意Contraints字段必须是非空的; 基础实例: -- Constraints 约束实例 -- -- (1) MySQL 约束 : NOT NULL...撤销PRIMARY KEY约束时,不论约束条件为一列还是多列(由于PRIMARY KEY唯一性,MYSQL处理办法简单) CREATE DATABASE Demo; USE Demo; CREATE TABLE...b.禁用约束(子表的外键约束) ALTER TABLE 表名 disable constraint 约束名; 2)删除子表:可以删除子表或者数据不报错 #二、更新时 a.更新父表会违反约束 b.可以更新子表...c.没有针对约束的级联更新 #三、插入时 a.父表可以插入 b.子表插入会违反约束 DROP 语句 描述:通过使用 DROP 语句,可以轻松地删除索引、表和数据库(注意删除是立即执行,并且不会留下日志记录
Oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在Oracle 10g 中收集统计信息时会导致索引被监控,此并非sql语句而产生。...而在11g则不会出现类型的情形。其次对于存在子表存在外键的情形,对于主表进行操作时是否会导致索引被监控呢?下面描述的是这个话题。...Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production --创建主表 SQL> create table ptb...1 | TABLE ACCESS BY INDEX ROWID| PTB | 1 | 12 | 1 (0)| 00:00:01 | |* 2 | INDEX UNIQUE...) c、由上可知,对于外键索引未被监控到的情形,不可盲目的认为该索引无效而删除 d、对于子表不存在索引的情形,对于主表上的主键的更新以及删除主表中的一行都将导致整个子表被锁住
1.故障现象描述 2.确认故障现象 3.排查ASM层面 4.解决问题 1.故障现象描述 环境:AIX 7.1 + Standalone Oracle 11.2.0.4 现象:客户反映某11g版本的ADG...long (more than 900 seconds) by 'inst 1, osid 18875390'. 2.确认故障现象 登录到db实例,尝试查询select open_mode from v$database...4.解决问题 首先查找MOS时匹配到下面的文档: ASM Instance Hangs During The Diskgroup Mount Stage After AIX OS Patch Install.../trace/$ORACLE_SID_diag_.trc....但实际上事违人愿,我在尝试杀死这个rbal进程时,发现即使使用kill -9也无济于事。