gpt4 book ai didi

backup - 进行物理备份时是否可以忽略某些表空间

转载 作者:行者123 更新时间:2023-12-01 14:38:38 25 4
gpt4 key购买 nike

我们有一个Shell脚本,可以对oracle数据库执行物理备份(tar +所有数据库文件的压缩)。最近,我们创建了一个表空间,其中包含我们不需要备份其内容的表。

是否可以忽略与该表空间相关的数据文件并进行有效备份?

PS:我们不想使用RMAN。

最佳答案

我在这里以注解开头:这不是规范模式。通常,我们使用RMAN备份数据库中的所有数据文件。照这样说...

是的,可能可以通过带有数据文件的备份从备份中还原和恢复数据库。但是,恢复将需要在还原数据库时删除表空间。

对于删除包含单个数据文件的表空间的简单情况:首先还原数据库文件,然后:

 STARTUP NOMOUNT;

ALTER DATABASE MOUNT ;

ALTER DATABASE DATAFILE '<complete_path_to_datafile>' OFFLINE DROP ;

ALTER DATABASE OPEN ;

DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS ;

然后,继续数据库恢复(RECOVER DATABASE;)

显然,您在DROP TABLESPACE命令中提供的tablespace_name将与被删除的数据文件相关。

显然,这不适用于SYSTEM表空间。而且我也不敢在UNDO,SYSAUX,USERS等其他表空间上尝试此操作。删除和添加TEMPORARY TABLESPACES的语法也不同。

我不知道带有“DROP TABLESPACE ... INCLUDING CONTENTS”的任何“陷阱”,但是考虑到其他表空间中的对象可能会受到影响。 (考虑到删除的表空间可能具有其他表空间中的表的索引,对外键约束的影响,对存储过程的影响等。)

不用说,在生产中依赖此技术之前,您需要在测试环境中测试这种类型的还原过程。

如果不进行测试,使用RMAN备份所有数据文件将为您提供更好的服务。

注意:自Oracle 8(可能是Oracle 7.3)以来(我不得不滚动自己的热备份脚本时),我还没有做过类似的事情。自从我们开始使用RMAN以来,我不需要测试任何类似的东西。

注意:可能需要在ALTER DATABASE OPEN之前运行RECOVER DATABASE。我认为您可能会收到有关“数据文件需要更多恢复”的异常警告,就像在表空间处于BEGIN BACKUP模式下启动数据库时一样。

关于backup - 进行物理备份时是否可以忽略某些表空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com