出于某些情况下的性能原因,例如 Amazon EC2,您可以访问更快、更便宜的存储设备,该设备在重新启动时会丢失所有数据,因此它被称为“临时”。
这个问题是关于在 Oracle 数据库的安装中利用这种类型的存储。其中分解为:
对表格和其上的其他对象的任何其他可能的考虑
TEMP 表空间是此优化的完美候选者,实际上对于 MS SQLServer 的等效项,网络上有用于执行此操作的方法。
让我们考虑一个数据仓库,作为参考用例,它有一个重复性作业,将许多 GB 的数据(来自 CSV 或数据泵)导入到暂存模式“STG”中,随后的 ETL 过程将结果保存在生产模式中。
这种工作负载将受益于对暂存模式的非常快速的读写访问,轻松容忍其数据的波动性。
小智 2
Oracle 不会在临时文件中记录检查点信息。因此,对于临时文件:
即使临时文件丢失,Oracle 也能够启动。您将在更改日志中收到一条消息,并且您应该重新创建临时文件。
没有对临时文件进行备份,因此可以安全地丢失它
如果临时文件驻留在临时存储上,则无需对临时文件的任何存储参数进行欺骗。
关于物理数据结构不是临时文件,将它们放在临时存储中是不安全的。即使您禁用了日志记录,Oracle 也会跟踪数据文件中的更改。禁用日志记录只会影响数据库的可恢复性、重做和整体性能。不允许您将数据文件放在临时存储上。打开缺少数据库的数据库(数据库不关心其数据的重要性)将会引发问题。
ORA-01116: error in opening database file %s
ORA-27041: unable to open file
ORA-01157: cannot identify/lock data file %s - see DBWR trace file
ORA-01119: error in creating database file '%s'
Run Code Online (Sandbox Code Playgroud)
并且您必须手动处理该问题。因此,必须避免将临时存储与普通数据文件一起使用。