Rhy*_*yuk 2 schema oracle database-design tablespaces
我是一名程序员,被我自己命名为 Wilson 的排球扔到了 DBA/系统管理员岛。我正在努力在这里生存。
我应该为应用程序创建一个数据库。之前运行它的服务器有一个非常相似的应用程序的数据库。我对 Oracle 了解不多,所以我重用了 ZFS 文件系统,并保留了它们的创建方式(因为老实说,我不知道它们为什么这样创建,但我很确定这是有充分理由的) .
app/oradata_smart_ora1 858M 12.2G 858M /oradata/SMART/ora1
app/oradata_smart_ora2 7.18M 18.0G 7.18M /oradata/SMART/ora2
app/oradata_smart_ora3 7.18M 36.0G 7.18M /oradata/SMART/ora3
app/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4
app/oradata_smart_redo1 400M 2.61G 400M /oradata/SMART/redo1
app/oradata_smart_redo2 200M 2.80G 200M /oradata/SMART/redo2
app/oradata_smart_redo3 200M 2.80G 200M /oradata/SMART/redo3
Run Code Online (Sandbox Code Playgroud)
因为我重用了文件系统,所以我创建了我的数据库并将控制文件放在旧数据库文件所在的相同位置(/oradata/SMART/ora1、/oradata/SMART/ora2、/oradata/SMART/ora3)。像 MySQL 一样思考我app/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4
专门创建的用于将数据库存储在那里的工作。
数据库启动和安装没有问题。现在是我被困的地方。我读过这个,这个,这个,这个,这个等等,但我仍然有疑问。
请注意,该服务器将在其整个生命周期内管理数百万/数十亿条记录。
对于所有这些问题,我真的很抱歉,但我真的很想在遵循 Oracle 最佳实践的同时正确地做到这一点。如果您需要更多信息来回答您的问题,请告诉我。
您错过了一个可以了解 Oracle 概览的地方:概念指南。它涵盖了所有主要主题(包括备份和恢复,这非常重要并且不会出现在您发布的链接列表中)。
下一步是什么?创建模式或表空间?
两个都!它们是正交的。用户是访问您的数据库的逻辑实体。表空间是一个存储概念。一个用户可以访问多个表空间,一个表空间可以存储来自多个模式的数据。您需要两者,并且需要向您创建的用户授予对适当表空间的访问权限。(有关用户和架构之间的区别,请参见例如此处。)
表空间数据文件是存储表中实际数据的地方?
是的,您数据库的所有数据和索引都存储在表空间中。主要的存储结构有:
(系统表空间是一个普通的表空间,除了您不应该在其中存储任何内容 - 将其视为 Oracle 内部和常规使用的禁区。)
此外,您应该非常注意您的重做日志文件,这是“数据库恢复的最重要结构”。它们是“热的”(大量写入)并且应该在它们自己的磁盘/LUN 上。
需要多少[表空间/数据文件]?
只要你需要。这里没有一般规则。数据文件的数量取决于您需要存储的数据量、操作系统限制、Oracle 数据文件大小限制、您的存储(硬盘/卷)限制、备份/恢复注意事项(例如,只有一个庞大的 Bigfile 数据文件可能不是最好的主意),...
您如何构建表空间也取决于您。在您的表空间中为每个“应用程序”设置一个表空间可能是一个很好的入门方法。如果需要,您始终可以稍后创建更多表空间(但请记住,将对象从一个表空间移动到另一个表空间可能很耗时,并且可能需要停机或非常复杂的操作)。
默认还是临时?
两个都!您需要空间来持久存储数据,还需要一些临时存储空间用于数据库操作。
我需要多少空间?
介于几兆字节和几 TB 之间的任何地方 - 只有您在这里才能知道。要估计表所需的空间,请创建一个具有相同结构的表,用一些示例数据填充它(应该或多或少地代表您将在其中存储的内容)并测量空间使用情况。然后外推。不要忘记包含所需的空间索引(和物化视图)!
自动扩展?
我会说是的,使用自动扩展功能,但要设置限制。您可能不应该让 Oracle 尝试自动扩展超过文件系统上的实际可用空间。并监控空间使用情况。(请记住,数据文件扩展的成本相对较高。不要将自动扩展大小设置得太小。)
对于 ZFS,Oracle 有一份您可能感兴趣的白皮书:为 Oracle 数据库配置 ZFS (270k PDF)。