设计磁盘子系统以支持数据库处理时,请考虑本节中的因素。
磁盘崩溃:如果有足够的资金和详尽的规划,您就可以构建一个即使在系统崩溃时也可以不间断持续运行或者能够数小时恢复的数据库。可以通过对部分或整个磁盘子系统使用某个级别的
RAID 来提供磁盘保护。一些更流行的 RAID 类型包括:RAID 1(也称为磁盘镜像),它使用数据镜像实现高级别的冗余。在 RAID
1 配置中,数据的两个副本保存在不同的磁盘上,这两个磁盘相互镜像。
RAID 5,它使用具有分布式奇偶性校验的块级别条带分割。RAID 5 将数据和奇偶性校验信息分割到三个或三个以上驱动器中。
数据库日志需要磁盘保护以便对最近的事务启用数据库恢复。您可以选择性地保护其他磁盘。如果保护这些磁盘,那么您可以消除数据恢复期间的停机时间。
考虑操作系统和调页空间磁盘。
另外,还要考虑包括一个或两个附加磁盘,以加快恢复速度并降低在磁盘出现故障后运行时存在的风险。
由于磁盘驱动器容量不断变大,因此下面列出的配置将导致磁盘容量过大,但会增大可用的磁盘数以提高 I/O 吞吐量。
下表提供了一些数据库大小示例:表 1. 数据库大小示例
要使用的磁盘数
绝对最小磁盘数
小型 RDBMS
小型且安全的 RDBMS
大型 RDBMS
操作系统
1 人
1 人
1 + 镜像
1 人
页面调度和 RDBMS 代码
使用上面的磁盘
1 人
1 + 镜像
1 人
RDBMS 数据
1 人
1 人
1 + 镜像
8
RDBMS 索引
1 人
1 人
1 + 镜像
6
RDBMS 临时空间
使用上面的磁盘
1 人
1 + 镜像
6
RDBMS 日志
1 + 镜像
1 + 镜像
1 + 镜像
2 人
数据库数据
12 GB
24 GB
48 GB
108+ GB
磁盘数
5
7
12
24
绝对最小磁盘数列指定用于 RDBMS 的最小磁盘数。在此列中,索引和临时空间是在一个磁盘上分配的。虽然这不是理想的安排,
但实际上却可能可行,这是因为数据库通常将索引用于事务或者将临时空间用于索引创建和对完整表扫描大型查询进行排序,但不会同时用于这两者。这不是建议用于数据库的最小的磁盘子系统,但其成本最低。
小型 RDBMS 列表示最小的磁盘子系统,虽然可能由于数据被放置在仅一个磁盘中而使 I/O 速率受到限制。将数据、索引和临时空间分割到这三个磁盘中可能有助于减少这些 I/O 速率限制。这种磁盘子系统安排不包括对数据库或其他磁盘的磁盘保护(除必需的日志磁盘保护以进行事务恢复以外)。
小型且安全的 RDBMS 列增加了完全磁盘保护,并且可以承受任何磁盘崩溃,而不会使数据库停机。
大型 RDBMS 列表示一个典型大小的数据库子系统。磁盘保护未包括在这些缩放大小中,但您可以增加磁盘保护以提高数据库的稳定性。