我的Oracle DB中的Undo表空间占用180 DB。我没有任何进程需要这么大的空间。DB有一个未知的问题,它指责撤销表的大小在一段时间内增加了;在反弹RDS实例之后,它已经得到了纠正。现在的问题是如何减小还原表空间的大小。我已经设法使用以下命令创建了一个新的还原表
creat undo tablespace UNDO_T2;
但未能告知oracle使用新的撤销表空间。以下是我的查询及其错误:
alter system set undo_tablespace = UNDO_T2;
Error report:
SQL Error: ORA-02065: illegal option for
我们在两个不同的服务器上有Oracle11gR1 RAC两个实例,新的撤销表空间UNDOTBS20140508创建了30G,我想删除旧的UNDOTBSX02,我做了以下工作:
CREATE UNDO TABLESPACE UNDOTBS20140508 DATAFILE '+DATA/....../UNDOTBS20140508' SIZE 20G;
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS20140508;
DROP TABLESPACE UNDOTBSX02 INCLUDING CONTENTS AND DATAFILES;
当
我正在运行一个大型查询(600万条记录),其中有很多与其他表的内部连接,但当我尝试在CSV上导出查询结果时,我得到了以下结果。我在谷歌上搜索了一段时间,但没有得到任何结果。
ORA-01555: snapshot too old: rollback segment number 69 with name
"_SYSSMU69_2356811035$" too small
ORA-0263: "snapshot too old: rollback segment number %s with name \"%s\" too small"
*Cau
我正在尝试将数据从table1插入到一个现有的表中,比如table2。table1有3,000万条记录。使用下面的命令插入数据。在一段时间后得到给定的错误。
insert into TABLE2 (select * from TABLE1)
Error at Command Line:31 Column:0
Error report:
SQL Error: ORA-30036: unable to extend segment by 8 in undo tablespace 'UND_TBS'
30036. 00000 - "unable to extend segm
我使用IMPDP和"network_link“在一次传递中执行导出/导入。
它可以正常运行,直到我得到这个错误。
ORA-39171:工作经历了一个可恢复的等待。 ORA-30036:无法在撤消表空间'UNDOTBS1‘中扩展8段
以下是撤销表空间的数据文件:
oracle@ORA3> select bytes/1024/1024/1024, maxbytes/1024/1024/1024
from dba_data_files
where tablespace_name like '%UNDO%';
我最近在RAC环境中将oracle数据库从11.2.0.1升级到11.2.0.4。安装成功,我检查了两个实例的日志。由于可撤销的表空间,直到Ora 30036产生之前,服务都很好。我在spfile上得到了关注
*undo_retention =108000
node11.undo_tablespace='UNDOTBS1'
node12.undo_tablespace='UNDOTBS2'
我有以下长时间运行的查询
1. EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS()
2. #This query is for AWR a
我有两张桌子
test_table:
id data_text
1 *some text*
undo_test_table:
id data_text modification_date
。
CREATE TRIGGER undo_trigger BEFORE UPDATE
ON test_table
FOR EACH ROW
INSERT INTO undo_test_table SELECT *,NOW() AS modification_date
FROM test_table
WHERE id = NEW.id
我尝试的是,如果修改了第一个表上的一个列,则触
我跟随文献资料将OracleXE 10.2数据库升级到OracleXE 11.2。导出成功,没有任何问题,但导入(在另一台具有XE 11的机器上)失败。日志文件显示Oracle试图将文件放在不存在的路径中,还有一些路径仍然引用XE 10:
;;;
Import: Release 11.2.0.2.0 - Production on Vr Mrt 20 13:26:58 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
;;;
Connected to: Oracle Dat
直到最近,我有一张桌子一直工作得很好。我有一个程序和这个表交互--步骤是.
删除所有记录加载所有记录
最近,记录的数量似乎已经开始重载我们的SQL实例,当我尝试运行delete命令时,我得到.
ORA-30036: unable to extend segment by 128 in undo tablespace 'name'
我试过使用截断,但我没有权限。有没有一种不用撤销表空间就可以删除的方法?这与SQL有关,但我也希望它能够与JDBC连接一起工作。
几周前,我在我的数据库中遇到了撤销问题。现在它总是满的,系统要求增加一些空间。我已经添加了另一个32 in的自动可扩展文件,现在它是32+32+32,但是在几天内,情况再次出现。以前,我只是调整保留,以消除"ORA-01555:快照太老“
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
我不明白为什么在特定的工作表中禁用了Application.CommandBars("Standard").Controls("&Undo")。
我还尝试使用以下命令显式地启用它:
Application.CommandBars("Standard").Controls("&Undo").Enabled = True
但是仍然没有结果:
Dim lastAction As String
If Application.CommandBars("Standard").Controls("&
我有一个存储的proc,它执行一个非常大的更新。有时作业由于错误ORA-30036 Unable to extend segment by 8 in undo tablespace 'undotbs2'而失败
但几个小时后,我们重新安排了工作,并成功地完成了。
我检查并发现undotbs2已经将AUTOEXTENSIBLE设置为YES,大小为3GB,因此我想撤销表空间已经有相当大的大小,并且已经打开了自动空间管理。
我的问题是,为什么在我们重新运行它之后,它会成功地完成呢?是因为同时使用undotbs2的其他事务吗?对于此错误,Oracle提到“另一种选择是等待活动事务提交”,
我越来越担心ibdata1的大尺寸,即使在innodb上使用每个表的文件时也不会缩小。
将撤销日志文件移出外部似乎是合乎逻辑的,但这个过程似乎相当复杂:
http://dev.mysql.com/doc/refman/5.6/en/tablespace-splitting-undo.html
有人有在现场服务器上完成此操作的亲身体验吗?
如果mysql已经安装并运行,这一行听起来似乎是不可能的:
this feature can only be enabled when initializing a MySQL instance
现在太迟了?
我的数据库设置是在CentOS上使用带有2-3个节点的NDB集群。在尝试测试性能时,我尝试将大约700万条记录(约2GB大小)存储到其中一个表中。在大约200 K时,它失败了,通知:
ERROR 1114 (HY000): The table 'my_request' is full
这些是LOGFILE组和TABLESPACE:
CREATE LOGFILE GROUP lg_1
ADD UNDOFILE 'undo_1.log'
ENGINE NDBCLUSTER;
ALTER LOGFILE GROUP lg_1
ADD UNDO
我想要创建一个触发器,它将记录从可主程序复制到卸载堆栈,然后在可维护表中删除它,并且Undo堆栈表将执行5条记录空间的堆栈,并且该触发器执行推送操作。
这是我的扳机
CREATE TRIGGER undo_op
BEFORE DELETE ON maintable FOR EACH ROW
BEGIN
当解堆栈未满时
IF (SELECT COUNT(*) FROM (SELECT * FROM undostack)u)<5 THEN
INSERT INTO undostack VALUES(((SELECT COUNT(*) FROM undostack)+1),
(SELECT id