1. 启动SQLPLUS,并用sys登陆到数据库。
#su - oracle
$>sqlplus / as sysdba
2. 查找数据库的UNDO表空间名,确定当前例程正在使用的UNDO表空间,及undo保留周期undo_retention为10800秒:
<!--StartFragment -->
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_tablespace string UNDOTBS1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 10800
undo_tablespace string UNDOTBS1
3. 确认UNDO表空间;
SQL> select name from v$tablespace;
NAME
------------------------------
UNDOTBS1
4. 检查数据库UNDO表空间占用空间情况以及数据文件存放位置;
select file_name, bytes / 1024 / 1024 / 1024
from dba_data_files
where tablespace_name like 'UNDOTBS%';
5. 查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。
select s.username, u.name
from v$transaction t, v$rollstat r, v$rollname u, v$session s
where s.taddr = t.addr
and t.xidusn = r.usn
and r.usn = u.usn
order by s.username;
查询结果为空的话就能删除。
6. 检查UNDO Segment状态;
select usn,xacts,rssize / 1024 / 1024 / 1024,hwmsize / 1024 / 1024 / 1024,shrinks
from v$rollstat
order by rssize;
USN XACTS RSSIZE/1024/1024/1024 HWMSIZE/1024/1024/1024 SHRINKS
800.000175476074218753.11521148681641700
300.000236511230468753.22954559326172632
000.000358581542968750.000358581542968750
100.002067565917968753.04867553710938920
1000.002067565917968750.648170471191406819
700.002311706542968753.94835662841797730
400.003044128417968752.00011444091797651
1100.006950378417968752.26921844482422740
900.007926940917968752.07530975341797773
600.007926940917968751.31906890869141775
200.008903503417968753.13677215576172699
501.968338012695313.99906921386719267
这还原表空间中还存在12个回滚的对象。
7. 创建新的UNDO表空间,并设置自动扩展参数;
create undo tablespace undotbs2 datafile '/u02/pnrdb/undotbs2_01.dbf' size 100m reuse autoextend on next 100m maxsize unlimited;
8. 切换UNDO表空间为新的UNDO表空间 , 动态更改spfile配置文件;
alter system set undo_tablespace=undotbs2 scope=both;
9.验证当前数据库的 UNDO表空间
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- --------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2
9. 等待原UNDO表空间所有UNDO SEGMENT OFFLINE;
select usn, xacts, status,rssize / 1024 / 1024,hwmsize / 1024 / 1024,shrinks
from v$rollstat
order by rssize;
select usn, xacts, status,rssize / 1024 / 1024,hwmsize / 1024 / 1024,shrinks
from v$rollstat
order by rssize;
select t.segment_name, t.tablespace_name, t.segment_id, t.status
from dba_rollback_segs t;
SEGMENT_NAME TABLESPACE_NAME SEGMENT_ID STATUS
_SYSSMU1$UNDOTBS11OFFLINE
_SYSSMU2$UNDOTBS12OFFLINE
_SYSSMU3$UNDOTBS13OFFLINE
_SYSSMU4$UNDOTBS14OFFLINE
_SYSSMU5$UNDOTBS15OFFLINE
_SYSSMU6$UNDOTBS16OFFLINE
_SYSSMU7$UNDOTBS17OFFLINE
_SYSSMU8$UNDOTBS18OFFLINE
_SYSSMU9$UNDOTBS19OFFLINE
_SYSSMU10$UNDOTBS110OFFLINE
_SYSSMU11$UNDOTBS111OFFLINE
_SYSSMU12$UNDOTBS112OFFLINE
_SYSSMU13$UNDOTBS113OFFLINE
_SYSSMU14$UNDOTBS114OFFLINE
_SYSSMU15$UNDOTBS115OFFLINE
_SYSSMU16$UNDOTBS116OFFLINE
_SYSSMU17$UNDOTBS117OFFLINE
_SYSSMU18$UNDOTBS118OFFLINE
_SYSSMU19$UNDOTBS119OFFLINE
_SYSSMU20$UNDOTBS120OFFLINE
_SYSSMU21$UNDOTBS121OFFLINE
_SYSSMU22$UNDOTBS122OFFLINE
_SYSSMU23$UNDOTBS123OFFLINE
_SYSSMU24$UNDOTBS124OFFLINE
_SYSSMU25$UNDOTBS125OFFLINE
_SYSSMU26$UNDOTBS126OFFLINE
_SYSSMU27$UNDOTBS127OFFLINE
_SYSSMU28$UNDOTBS128OFFLINE
_SYSSMU29$UNDOTBS129OFFLINE
_SYSSMU30$UNDOTBS130OFFLINE
_SYSSMU31$UNDOTBS131OFFLINE
_SYSSMU32$UNDOTBS132OFFLINE
_SYSSMU33$UNDOTBS133OFFLINE
_SYSSMU34$UNDOTBS134OFFLINE
_SYSSMU35$UNDOTBS135OFFLINE
上面对应的UNDOTBS1还原表空间所对应的回滚段均为OFFLINE
10.到$ORACLE_HOME/dbs/init$ORACLE_SID.ora如下内容是否发生变更:
#cat $ORACLE_HOME/dbs/initddptest.ora
……
*.undo_management=’AUTO’
*.undo_retention=10800
*.undo_tablespace=’UNDOTBS2’
……
如果没有发生变更请执行如下语句:
SQL> create pfile from spfile;
File created.
11. 删除原有的UNDO表空间;
drop tablespace undotbs1 including contents and datafiles;
12. os级别释放undo数据文件;
到root下执行
lsof |grep /u02/pnrdb/undotbs01.dbf
lsof |grep /u02/pnrdb/undotbs01.dbf |awk '{printf"kill -9 "$2"\n"}'
相关推荐
4. **替换损坏文件**:如果系统01.dbf或undotbs01.dbf损坏,需要使用备份的相应文件替换。其他表空间的数据文件也需要替换或恢复。 5. **还原数据文件**:使用RMAN(Recovery Manager)或其他工具,将备份的数据...
4. 在操作系统层面删除与旧表空间对应的物理数据文件,如示例中的undotbs01.dbf。 5. 检查新的表空间使用情况,可以使用SQL查询来查看各个表空间的使用率。 然而,仅仅清理一次表空间可能无法解决长期空间压力问题...
最后,我们把备份的 SYSTEM01.dbf 和 UNDOTBS01.DBF 文件复制回去,并查看 scott 用户的 test 表。 ### 14.3 实验 2:数据库是打开的,这时损坏的文件是用户的数据文件而不是 system 和 undo 文件 * 用 scott 用户...
根据提供的文件信息,本文将详细解释Oracle分区技术及其在解决UNDOTBS01.DBF文件过大问题中的应用方法,并进一步探讨Oracle分区的不同类型及其应用场景。 ### Oracle 分区概述 Oracle分区是一种将大表或索引分割成...
在2010年12月28日下午14时左右,江西联通物资管理系统的Oracle数据库遭遇了严重的故障——所依赖的磁盘发生损坏,导致部分文件丢失,其中包括关键的`UNDOTBS01.DBF`文件,使得数据库无法正常启动。由于该数据库未...
其中,data01 是表空间的名称,/oracle/oradata/db/DATA01.dbf 是数据文件的路径,SIZE 500M 是数据文件的初始大小,UNIFORM SIZE 128k 是指定的区尺寸。 二、建立 UNDO 表空间 UNDO 表空间是 Oracle 数据库中的一...
例如,在本例中,它将尝试恢复`system01.dbf`、`sysaux01.dbf`、`undotbs01.dbf`等文件。 4. **恢复数据库**:在数据文件被成功恢复之后,还需要进一步执行数据库恢复操作。这通常涉及使用`recover database`命令来...
例如,恢复SYSTEM01.dbf和UNDOTBS01.DBF文件后,执行`ALTER DATABASE OPEN`命令,然后查询scott用户的test表以验证数据是否完整。 实验第二部分涉及打开的数据库中用户数据文件的恢复。在这种情况下,我们首先在...
大文件表空间(Bigfile Tablespaces)用于存储单个大文件,创建方式如下: ```sql CREATE BIGFILE TABLESPACE bigtbs DATAFILE 'C:\o\bigtbs.dbf' SIZE 10G; ``` 撤销表空间(Undo Tablespaces)用于存储回滚信息...
file 'D:\ORACLE\ORADATA\DEMO\undotbs01.dbf', file 'D:\ORACLE\ORADATA\DEMO\example01.dbf', file 'D:\ORACLE\ORADATA\DEMO\xdb01.dbf', file 'D:\ORACLE\ORADATA\DEMO\indx01.dbf', file 'D:\ORACLE\...
在上面的示例中,有多个数据文件,位于`/u01/app/oracle/oradata/demo/`目录下,名称为`users01.dbf`、`undotbs01.dbf`、`sysaux01.dbf`、`system01.dbf`和`ivantable.dbf`等。 数据文件的存放位置可以通过参数`DB_...
最后,我们把备份的 SYSTEM01.dbf 和 UNDOTBS01.DBF 文件复制回去,然后可以打开数据库,查看 scott 用户的 test 表。 知识点 *physical backup*:物理备份是指将数据库的物理文件备份到安全的地方,以便在数据库...
在这个例子中,我们看到几个数据文件,如`test1.dbf`、`test2.dbf`、`test3.dbf`、`system01.dbf`、`sysaux01.dbf`、`undotbs01.dbf`和`users01.dbf`,它们分别对应不同的表空间。 2. **数据备份**: 在进行任何...
UNDO FILE '/u01/app/oracle/oradata/test/undotbs01.dbf' SIZE 100M LOGFILE GROUP 1 ('/u01/app/oracle/oradata/test/redo01a.log') SIZE 100M, GROUP 2 ('/u01/app/oracle/oradata/test/redo01b.log') SIZE ...
- 示例输出可能包括`system01.dbf`、`sysaux01.dbf`、`undotbs01.dbf`等文件。 2. **创建临时表空间文件:** - 在指定的位置创建新的临时表空间文件。例如,这里创建了三个临时表空间文件`tmp01grp01.dbf`、`tmp...
这行命令创建了一个名为"data01"的表空间,并指定了一个名为"DATA01.dbf"的数据文件,大小为500MB。`UNIFORM SIZE 128k`表示设置所有段的区(Extent)大小为128KB。如果不指定,区尺寸默认为64KB。 2. 建立UNDO表...
control_files='D:/oracle/product/10.2.0/oradata/test/control01.ctl','D:/oracle/product/10.2.0/oradata/test/control02.ctl','D:/oracle/product/10.2.0/oradata/test/control03.ctl' core_dump_dest='D:/...
- `D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF` - `D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF` - `D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF` - **控制文件**: - `D:\APP\ADMINISTRATOR\...