oracle回滚段和回滚表空间
昨晚因为做了一个大批量的删除,用的 delete 。大约用了 6 个小时,导致了回滚段自动扩展到将近 30 个 G 。(以后记着,做大批量删除的时候,一定要用脚本实现,分批量提交事务。那样就不会占用太多的 UNDO 表空间了!) 从网上搜了一个普遍的方法,更换新的
昨晚因为做了一个大批量的删除,用的delete。大约用了6个小时,导致了回滚段自动扩展到将近30个G。(以后记着,做大批量删除的时候,一定要用脚本实现,分批量提交事务。那样就不会占用太多的UNDO表空间了!)
从网上搜了一个普遍的方法,更换新的UNDO表空间,然后删除原来的UNDO表空间,释放出磁盘容量。
具体方法如下:(参考网上的资料)
1、查询回滚段信息:状态为ONLINE,当前UNDO表空间为undotbs1
SQL>select segment_name, owner, tablespace_name, status from dba_rollback_segs;
SEGMENT_NAME OWNER TABLESPACE_NAME STATUS
------------------------------ ------ ------------------------------ ----------------
SYSTEM SYS SYSTEM ONLINE
_SYSSMU1$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU2$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU3$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU4$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU5$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU6$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU7$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU8$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU9$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU10$ PUBLIC UNDOTBS1 ONLINE
11 rows selected.
2、创建一个新的回滚段:
SQL>CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'd:/oracle/oradata/oradev/UNDOTBS2.dbf' SIZE 50M
注:UNDOTBS2为新建回滚段名称,可自拟。'd:/oracle/oradata/oradev/UNDOTBS2.dbf' 是表空间数据文件地址,可根据情况设定。
3、切换回滚段:
SQL> alter system set undo_tablespace=undotbs2 scope=both;
这样系统默认UNDO表空间就是新建的undotbs2了。
4、重启数据库后,即可删除原来的回滚段,这样就能释放磁盘空间了。
SQL>drop rollback segment undotbs1;
SQL>drop tablespace undotbs1 including contents and datafiles;
5、对回滚段的大小,可以根据情况进行调整,也可以改为自动扩展。
下面是网友提供的一个小技巧:
调小了回滚段后,在imp导入数据时,提示回滚段无法扩展的错误。
解决方法:在imp时,加入参数 commit=y,直接提交,避免占用大回滚段。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

在 Oracle 中查看实例名的方法有三种:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通过操作系统的任务管理器、Oracle Enterprise Manager 或检查环境变量 (Linux 上的 ORACLE_SID)。

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。

Oracle 安装失败的卸载方法:关闭 Oracle 服务,删除 Oracle 程序文件和注册表项,卸载 Oracle 环境变量,重新启动计算机。若卸载失败,可使用 Oracle 通用卸载工具手动卸载。

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

Oracle 无效数字错误可能由数据类型不匹配、数字溢出、数据转换错误或数据损坏引起。排查步骤包括检查数据类型、检测数字溢出、检查数据转换、排查数据损坏,并探索其他可能的解决方案,如配置 NLS_NUMERIC_CHARACTERS 参数和启用数据验证日志记录。

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

在 Oracle 中创建用户需遵循以下步骤:使用 CREATE USER 语句创建新用户。使用 GRANT 语句授予必要权限。可选:使用 RESOURCE 语句设置配额。配置其他选项,如默认角色和临时表空间。
