英文解析:resource busy and acquire with NOWAIT specified
对部分表进行Move操作之后,未重建对应的索引,会导致ORA-1502 索引不可用。
今天有个朋友问我们一个问题,说他在使用了impdp导入数据的时候,使用了TABLE_EXISTS_ACTION=REPLACE这个选项,结果现在数据都给覆盖了。现在没有备份,想问问能不能做相应的恢复操作。 对于这个选项,自己看着熟悉,不过很少用到,碰到了这个问题,首先想到的就是闪回。 不过也不能敷衍,自己在本地做了一个测试,想看看闪回的效果怎么样。首先简单模拟了一下这个问题。 conn n1/n1 SQL> create directory oradmp as '/home/ora11g/oradmp';
ALTER TABLESPACE TS_DD_LHR DROP DATAFILE n; --n为数据文件号
① 该语句会删除磁盘上的文件并更新控制文件和数据字典中的信息,删除之后的原数据文件序列号可以重用。
发现有一张表的高水位线(HWM)挺大,想试下shrink table(表空间收缩)
周玉其 云和恩墨南区技术顾问,曾在电信、物流等行业从事多年数据库开发、管理工作。
约束是表、列级的强制规定、是防止那些无效或有问题的数据输入到表中。当对该表进行DML
导读:区块链表是仅插入表(Only-Insert),将行组织成许多链。通过使用加密哈希将链中除第一行之外的每一行链接到链中的前一行。
在Oracle数据库中,什么是不可用索引(Unusable Indexes),哪些操作会导致索引变为不可用(unusable)即失效状态?
Oracle数据恢复顾问用于当数据发生错误或故障时,进行自动收集数据故障信息,并生成恢复脚本,用于完成数据恢复。数据恢复顾问也可以主动检查故障。 在这种模式下,它可以在数据库进程发现数据损坏并发出错误之前进行潜在的检测并分析数据故障。数据故障可能非常严重。 例如,如果您当前的日志文件丢失,则无法启动你的数据库。 一些数据故障(如数据文件中的块损坏)不是灾难性的他们不会将数据库关闭或阻止您启动Oracle实例。 数据恢复顾问处理这两种情况:当您无法启动数据库时(因为某些情况)所需的数据库文件丢失,不一致或损坏)以及文件损坏时的数据库文件在运行时发现。
–sql>alter database mount (读取控制文件),没有实例恢复。
A. It should be larger than the database.
在本地的测试库中,本来空间就不足,结果创建了一个表有600多万条记录,想创建一个index. 物理段有340多M. 临时段大小有100M,结果想创建一个索引,总是报临时表空间不足的错误。 [ora11g@rac1 test]$ ksh test.sh "create unique index t_pk on t(object_id) tablespace pool_data nologging online;" create unique index t_pk on t(object_id) tables
表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那它具体的过程和逻辑是怎样的?下文是其具体的描述。
关于 Oracle 20c 区块链表(Blockchain Table),很多朋友表达了强烈的关注,通过一些基本测试,我们能够揭示关于区块链表的工作原理。
崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向“Oracle”社区投稿。 我们都知道在 Oracle 数据库里是“读不阻塞写,写不阻塞读”,那么是否可以认为在正常情况下,select 操作是怎样都能执行,始终不会被 hang 住的呢?注意这里提到的是正常情况下,不包括那些由于 latch 被 hold 住、或者 bug 等相关异常导致的 select 操作 hang 住的情况。 答案是:不可以这样认为
今天读了一篇MOS文章,《ORA-01722, ORA-01839, ORA-01841, ORA-01847 or ORA-01858 from Queries with Dependent Predicates (文档 ID 232243.1)》,整篇文章的目的就是为了阐述对于包含相互依赖关系谓词的SQL语句产生错误的可能原因(To explain the possible causes of these errors in SQL statements that include predicates that are dependent on each other)。
注:OCP-052最新题库完整详细解答版请联系小麦苗私聊。解题不易,请大家尊重原创。
create index IDX_ANA_OFFICE on ANA (OFFICE_CITY, OFFICE_NO) tablespace IDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 128K next 128K minextents 1 maxextents unlimited pctincrease 0 );
如果您在不同位置安装了多个运行相同应用程序的数据库,并且想要包括所有数据库中的数据,例如要运行数据分析查询,则可以将独立数据库合并为分片数据库,而无需修改数据库模式或应用程序。
http://www.eygle.com/case/sql_trace_2.htm
Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整。除了使用RMAN工具以及第三方备份与恢复工具之外,基于
在Oracle12c之前的版本中,rman进行数据恢复时只能进行database/tablespace/datafile/block四种级别的恢复,如果误操作删除某张表或表中数据,无法通过闪回进行数据还原时,且有完整备份以及归档,该种情况下可以进行表空间时间点恢复,但恢复方式较麻烦,在Oracle12c中,Oracle对rman功能进行了增强,除了之前的四种级别的恢复,rman也提供了表/表分区级别的恢复,该特性可以直接从现有的rman备份中来恢复表/表分区,且恢复的过程不影响数据库中的其他的对象。
修复由于主库NOLOGGING操作引起的备库ORA-01578和ORA-26040错误
DBA_TAB_MODIFICATIONS视图(基表为SYS.MON_MODS_ALL$)记录了从上次收集统计信息以来表中DML操作变化的数据量,包括执行INSERT、UPDATE和DELETE影响的行数,以及是否执行过TRUNCATE操作。另外,DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO可以将内存(SGA)中的数据快速刷新到数据字典SYS.MON_MODS_ALL$中。
在数据库中,有时候需要删除用户,大多数时候都需要使用cascade选项,有些时候却不需要,想知道在这个简单的命令之后数据库倒底在干什么, 这时候给一些指定的操作加上trace就跟把那层纱窗揭开一样,可以很清楚看到数据库倒底在干些什么。 10046,sql_trace等都是一些不错的选择。 首先来复现一下这个问题。‘ 创建一个新用户,然后马上删除。 SQL> create user jeanron identified by jeanron; User created. SQL> drop user jea
众所周知我们的Data Guard数据同步是基于日志流的。所以在主库执行nologging操作是不被允许的。这也就是为什么我们需要在配置Data Guard阶段需要使用Force Logging。但是这也会带来很多问题(SQL执行效率),例如:当我们使用数据泵进行迁移时我们希望最少停机时间完成,这时候我们就可能会考虑到以最小日志导入的方式以加快导入速度,然后重新同步备库。
在Oracle中,如何修复由于主库NOLOGGING引起的备库ORA-01578和ORA-26040错误?
--====================== -- 只读表空间的备份与恢复 --====================== 一、只读表空间的特性 使用只读表空间避免对静态数据的频繁备份 当使用alter tablespace tbs read only时,数据文件会执行检查点进程(将所有脏缓冲区的内容写至磁盘), 当前的SCN号会被标注,同时存储了SCN的数据文件头部被冻结.控制文件内也会记录该数据文件的冻结信息。 可以清除只读表空间的对象 二、只读表空间的备份 一般情况下,只读表空间只需要进行一次备份,即当表空间状态发生改变时应立即进行备份 可以使用OS系统cp命令来备份或RMAN进行备份只读表空间 使用RMAN时建议启用备份优化选项 RMAN> CONFIGURE BACKUP OPTIMIZATION ON; 只读表空间不支持热备 SQL> alter tablespace tbs1 begin backup; alter tablespace tbs1 begin backup * ERROR at line 1: ORA-01642: begin backup not needed for read only tablespace 'TBS1' 三、只读表空间的还原与恢复 还原与恢复只读表空间的问题在于控制文件如何控制只读表空间,分为下列三种情况: --------- --------------- ---------------- ------------------------------------- case backup 1 crash status recovery --------- --------------- ---------------- ------------------------------------- case 1 Read-Only Read-Only 将备份的只读表空间复制到目的地(Restore) case 2 Read-Only Read-Write 先Restore backup1,后recover(applied log ) case 3 Read-Write Read-only 先Restore backup1,后recover(applied log ) 只读表空间恢复时需要考虑的问题 重建一个控制文件时 重命名数据文件时 使用一个备份的控制文件时 下面对表空间tbs1置为只读后对比前后生成的重建控制文件的脚本
Range分区是应用范围比较广的表分区方式,它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中。
早上正在上班路上,群里客户说,有一张24G的大表,delete删了26小时还没有跑完,目前进程还在跑让帮忙处理下,停止当前进程,并保留对应条件的数据,多余数据删掉。
触发器是很多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,运行和异常处理过程的PL/SQL块。
运维优化 本文详细讲解了如何对Oracle数据库进行运维,从各个方面来说明了如何去运维。
上周应用上线,有一个数据库脚本,包含改字段长度等操作,执行过程中,现象就是有些改字段成功了,有些执行出错,报了ORA-00054的错误。了解一下原理,就能对这个错误,有比较深入的理解了。
100.sql>startup pfile和ifile,spfiled有什么区别?
有一次在某微信群里,有人提问以下两条操作还能恢复吗?而且是在没有开归档。紧接着又有人提问数据库是否开了闪回?
源环境:RHEL6.4 + Oracle 11.2.0.4 目的环境:Windows 2003 需求:研发测试环境的Oracle数据库从Linux迁移到Windows,可以停机。
故障描述:数据库字符集:US7ASCII,在SPA分析阶段正常,但在取报告阶段xml解析失败,具体现象如下:
今天同事提出了一个问题: 使用数据泵expdp导出1个schema,有个表主键是触发器自增的id,导入测试库测试时,发现表里的数据比自增序列的值要大。导致插入数据报错。 最终结论是: 由于数据库先进行序列导出,然后再进行表数据导出。然后在导出的过程中,该表一直有插入操作,最终导致了这种差异。 解决方法: 重建触发器中的序列,让序列的开始值为表主键最大值+1。
Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复。其实,熟悉了Oracle 体系结构之后,对于Oracle恢复就会有一个总体的概念。因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的 作用,因此只要了解了其作用,更利于了解与掌握Oralce数据库的备份与恢复。言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前 的那一刻,是无损恢复。而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等情形。本文主要描述基于用户管理的不完全恢复。
--对于重要对象,实施DDL拒绝,防止create,drop,truncate,alter等重要操作
Oracle数据库有4种触发器,分别是DML、替代触发器(INSTEAD OF触发器)、DDL和系统触发器,一般的应用系统中都使用到DML、替代触发器,而DDL和系统触发器是DBA管理数据库用得比较多。下图是Oracle触发器的分类图:
(列名 数据类型 [ default 默认值] [ 约束条件] [ , ......] )
Ora2pg 使用总结 Ora2pg 使用总结 1 1 Ora2pg特性 1 2 Ora2pg支持的导出对象 2 3 Ora2pg数据类型转换对照 2 4 Ora2pg 安装 3 4.1 安装需要的驱动包 3 4.2 下载并安装Oracle 客户端 3 4.3 安装 DBI 4 4.4 安装 DBD-Oracle客户端 4 4.4.1 在当前用户配置一下环境变量 4 4.4.2 安装DBD-Oracle 4 4.5 安装 Ora2pg 客户端 4 4.6 ora2pg 参数说明 5 5 Ora2pg 使用案
1 Ora2pg特性 1、导出整个数据库模式(表、视图、序列、索引),以及唯一性,主键、外键和检查约束。 2、导出用户和组的授权/权限。 3、导出筛选的表(通过制定表明)。 4、导出Oracle模式到一个PostgreSQL(7.3以后)模式中。 5、导出预定义函数、触发器、程序、包和包体。 6、导出范围和列表分区。 7、导出所有的数据或跟随一个WHERE子句。 8、充分支持Oracle BLOB对象作为PG的BYTEA。 9、导出Oracle视图作为PG表。 10、导出定义的Oracle用户格式。 11
最直观的做法,就是truncate表。首先truncate各个子表,但是当执行truncate主表的时候,提示错误,ORA-02266: unique/primary keys in table referenced by enabled foreign keys。
通常在当前控制文件丢失,或者当前的控制文件与需要恢复的控制文件不一致的情况下,我们需要重新创建一个控制文件或者使用 unsing backup controlfile方式来恢复控制文件。说简单点,只要是备份的控制文件与当前的控制文件不一致进行恢复数据库,就需要使用到 unsing backup controlfile方式,而一旦使用了该方式,则需使用resetlgos选项来打开数据库。
最近测试了使用datapump来迁移百G数据的场景,因为实际需要,需要把Unix下10gR2的库迁移到Linux下11gR2,所以这个过程相对来说牵制也较多。考虑了多种方案,最后权衡后决定使用datapump来迁移。 其实整个迁移的过程还算顺利,完整模拟了整个生产环境的迁移情况,datapump的全库导入还是比较方便省心,只要导出得当,导入基本不需要太多的检查 选项,导入的过程中的可操作选项也非常有限。如果数据库里存在大量的结构信息,而且关系错综复杂,使用datapump还是比较通用快捷。 datapump
领取专属 10元无门槛券
手把手带您无忧上云