首页
Linux教程
Linux资讯
Linux入门
Linux运维
Linux系统
Linux服务器
Linux安全
Linux问答
SHELL
树莓派
正则
linux命令
安装
Linux监控
运维自动化
Ansible
Piwik
CentOS
Deepin
Ubuntu
Debian
FreeBSD
Nginx
Apache
openresty
Tengine
宝塔
SSH
页面位置:
Linuxboy
>
Linux教程
>
正文
Oracle重建表 Oracle rename
Oracle 重建表(rename)注意事项总结
文章由LinuxBoy分享于2019-03-31 12:03:59
热评(613)
Oracle 重建表(rename)注意事项总结
一、概述
前一段时间,有一个DBA朋友在完成重建表(rename)工作后,第二天早上业务无法正常运行,出现数据无法插入的限制和错误,后来分析才发现,错误的原因是使用rename方式重建表以后,其它引用这个表的外键约束指向没有重新定义到这个重建的新表中,从而导致这些表在插入新数据时,违反数据完整性约束,导致数据无法正常插入。影响了业务大概有1个多小时,真是一次血淋淋的教训啊。
使用rename方式重建表是我们日常DBA维护工作中经常使用的一种方法,因为CTAS+rename这种配合方式,非常实用和高效。很多DBA朋友应该也都是用过rename方式重建表,而且重建完成以后也都一切正常,没有引起过问题。但是
,我想说的是,使用rename重建表后,具体需要完成哪些扫尾工作你真的清楚吗??
这篇文章主要就是归纳当我们使用rename方式重建表后,需要进行哪些扫尾工作,如果你还不是很清楚,一定要仔细阅读这篇文章,同时在以后的重建表工作中矫正过来,否则,问题迟早有一天会降临到你的身边!
二、重建表的方式
这里先不谈其它,仅仅
说一下重建表的方法。如下
1、为了确保所有表字段、字段类型、长度完全一样,我一般不建议使用CTAS方式来重建表。
2、一般我都是使用下面两种方法中的一个,来抽取表的定义
select dbms_metadata.get_ddl('TABLE',upper('&i_table_name'),upper('&i_owner')) from dual;
使用PL/SQL developer类似这样的工具,来查看表定义语句
3、重新建一张_old类型的表(根据上面的抽取的表定义),然后使用insert /*+ append */ xx select xxx 方式完成数据的转换
4、最后使用rename方式倒换这两张表的名字
三、重建表注意事项
索引重建:
这里最关键的是,重建后索引的名字是否必须和以前的一样,如果需要一样,则必须将当前使用的索引名字先rename,否则创建的时候会出现索引名字已经存在的错误,如下:
select
相关内容
Oracle rename数据文件的两种方法
今日最新
推荐文章:
Oracle rename数据文件的两种方法
评论暂时关闭
最新Linux教程教程
Oracle 重建表(rename)注意事项总结
MySQL的自动化安装部署
[Oracle] Golden Gate - 概念和机制
[NOSQL] Redis介绍
[Oracle] ROWNUM和分页
CentOS 6.4下编译安装MySQL 5.6.16
Linux头条
Oracle Database Partition 技术
grep命令输出显示高亮字
新Linux内核耗电量显著增加
操作系统中Linux配置大量IP地址轻
如何用好VoIP:通过VoIP实现的一些
Linux下快速安装部署远程连接软
评论暂时关闭