Oracle 数据库:我可以删除错误创建的数据文件吗?

发布于 2024-10-21 13:40:48 字数 192 浏览 1 评论 0原文

我需要删除一个错误创建的数据文件,数据库是Oracle 10g R2。我可以执行以下操作吗?

alter tablespace abc drop datafile '/abc.dbf'

数据文件abc.dbf处于离线(需要恢复)状态且为0字节。既然已经下线了,我想是不能这样掉线的,那么你有什么建议呢?

I need to get rid off a data file which created mistakenly, the db is Oracle 10g R2. May I do the following?

alter tablespace abc drop datafile '/abc.dbf'

The data file abc.dbf is in offline (needs recovery) state and 0 byte. Since it is offlined, I think it can't be dropped this way, so what's your suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2024-10-28 13:40:48

我会尝试先将其恢复在线,然后再删除。

alter database abc datafile '/abc.dbf' online;

您将收到一个 ORA 错误,指出该文件需要恢复,请执行

recover datafile '/abc.dbf';

以下操作:将其联机并删除它,然后

alter tablespace abc drop datafile '/abc.dbf';

如果这对您不起作用,请执行以下任一操作:

  • 导出感兴趣的表空间对象,删除整个表空间,再次创建它并导入导出的文件
  • 创建一个新的表空间,复制对象,重新创建索引并删除旧的表空间

注意:如果您要删除表空间,请不要忘记还指定删除其中的数据文件。

drop tablespace abc including contents and datafiles;

I would try to bring it back online first, then drop.

alter database abc datafile '/abc.dbf' online;

you'll get an ORA error saying that the file needs recovery, do that

recover datafile '/abc.dbf';

bring it online and drop it then

alter tablespace abc drop datafile '/abc.dbf';

If that doesn't work for you, do either of:

  • export tablespace objects of interest, drop the whole tablespace, create it again and import the exported file
  • create a new tablespace, copy objects, recreate indexes and drop the old tablespace

Note: if you go with dropping the tablespace, don't forget to also specify to drop the datafiles with it.

drop tablespace abc including contents and datafiles;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文