作为 Oracle 数据库,创建数据库需要准备几个操作系统文件和其一起工作。不管它有多少数据文件或有多少实例访问它,您只需要创建一次数据库。您可以创建一个数据库来擦除现有数据库中的信息,并创建一个具有相同名称和物理结构的新数据库。
数据库创建计划
需要通过研究和仔细的规划来作为创建数据库的准备。
下表列出一些建议的行动:
行为 | 附加信息 |
---|---|
规划数据库表和索引,并估计它们所需的空间量。 | “Oracle Database Structure and Storage” “Schema Objects” |
规划数据库将包含的底层操作系统文件的布局。适当的文件分布可以通过在文件访问期间分布 I/O 来极大地提高数据库性能。在安装 Oracle 软件和创建数据库时,可以采用多种方式分布I/O。例如,可以将重做日志文件放在单独的磁盘上或使用条带化。您可以放置数据文件以减少争用。您还可以控制数据密度(数据块的行数)。如果您创建了快速恢复区域,Oracle 建议您将其放置在与数据文件不同的存储设备上。 为了大大简化这个规划任务,可以考虑使用 Oracle Managed Files 和 Automatic Storage Management 来创建和管理组成数据库存储的操作系统文件。 |
《Using Oracle Managed Files》 《Oracle Automatic Storage Management Administrator’s Guide》 《Oracle Database Performance Tuning Guide》 Oracle 操作系统相关的文档,包括相应的 Oracle 数据库安装指南。 |
选择全局数据库名称,这是数据库在网络结构中的名称和位置。通过设置 DB_NAME 和 DB_DOMAIN 初始化参数来创建全局数据库名。 | “Determining the Global Database Name” |
熟悉初始化参数文件中包含的初始化参数。熟悉服务器参数文件的概念和操作。服务器参数文件允许您在服务器端磁盘文件中持久地存储和管理初始化参数。 | “About Initialization Parameters and Initialization Parameter Files” “What Is a Server Parameter File?” 《Oracle Database Reference》 |
选择数据库字符集。 所有字符数据,包括数据字典中的数据,都存储在数据库字符集中。在创建数据库时指定数据库字符集。 |
《Oracle Database Globalization Support Guide》 |
考虑您的数据库必须支持哪些时区。 Oracle 数据库使用两个时区文件中的一个作为有效时区的来源。默认的时区文件是 timezlrg_11.dat。timezone_11.dat 比较小的时区文件包含更多的时区。 |
“Specifying the Database Time Zone File” |
选择标准数据库块大小。这是在数据库创建时由 DB_BLOCK_SIZE 初始化参数指定的,在数据库创建后不能更改。 SYSTEM 表空间和大多数其他表空间使用标准块大小。此外,在创建表空间时,最多可以指定 4 个非标准块大小。 |
“Specifying Database Block Sizes” |
如果计划将在线重做日志文件存储在 4K 字节扇区大小的磁盘上,请确定是否必须手动指定重做日志块大小。 | “Planning the Block Size of Redo Log Files” |
确定 SYSAUX 表空间的适当初始大小。 | “About the SYSAUX Tablespace” |
计划为非 SYSTEM 用户使用默认表空间,以防止无意中将数据库对象保存在 SYSTEM 表空间中。 | “Creating a Default Permanent Tablespace” |
计划使用 undo 表空间来管理您的 undo 数据。 | Managing Undo |
考虑是否要为数据库配置只读 Oracle Home 目录还是读写 Oracle Home 目录。 | About Configuring an Oracle Home in Read-Only Mode |
制定备份和恢复策略以保护数据库不发生故障。通过多路复用保护控制文件,选择合适的备份模式,管理在线重做日志和归档重做日志文件是很重要的。 | Managing the Redo Log Managing Archived Redo Log Files Managing Control Files 《Oracle Database Backup and Recovery User’s Guide》 |
熟悉启动和关闭实例、安装和打开数据库的原则和选项。 | “Starting Up and Shutting Down” |
关于选择字符集
为数据库选择正确的字符集是很重要的。Oracle 推荐使用 AL32UTF8 作为数据库字符集。
AL32UTF8 是 Oracle 对 Unicode 标准的 UTF-8 编码的名称。Unicode 标准是一种通用字符集,支持世界上大多数的语言。Unicode 标准的使用对于任何多语言技术都是必不可少的,包括数据库处理。
创建数据库并积累生产数据后,更改数据库字符集是一项耗时且复杂的工程。因此,在安装时选择正确的字符集是非常重要的。即使数据库目前不存储多语言数据,但期望在几年内存储多语言数据,选择 AL32UTF8 作为数据库字符集通常是唯一好的决定。Unicode 的通用性和灵活性通常超过了与之相关的一些额外成本,比如与单字节字符集相比,文本处理稍微慢一些,与非 Unicode 字符集相比,非 ascii 文本需要更高的存储空间。
如果您不想使用 AL32UTF8,而且您的选择不受厂商要求的限制,那么 Oracle 建议您使用数据库中列出的推荐字符集之一。推荐的字符集是根据现代客户端操作系统的要求选择的。Oracle Universal Installer (OUI) 只提供推荐列表,而 DBCA (Database Configuration Assistant) 必须单独使用,以选择不推荐的字符集。此外,DBCA 中的默认数据库创建配置只允许选择推荐的字符集。您必须使用 DBCA 的高级配置模式或 CREATE DATABASE 语句来选择一个不推荐的字符集。
如果在 OUI 或 DBCA 安装模式中没有选择字符集,则使用 AL32UTF8 作为数据库字符集,除非选择了具有另一个字符集的自定义数据库模板。
关于配置 Oracle Home 目录只读模式
从 Oracle Database 18c 开始,您可以通过部署一个只读的 Oracle Home 作为软件映像来简化软件在多个数据库服务器上的补丁和大规模部署。
一个只读的 Oracle Home (ORACLE_HOME
)阻止在 Oracle Home 目录中创建和修改文件。要将 Oracle Home 配置为只读模式,首先使用 software-only 部署方式安装 Oracle 数据库软件,然后在创建监听器和数据库之前将其配置为只读 Oracle Home。
传统的读写 Oracle Home 目录包含特定于实例的文件,因此如果要对它们进行打补丁,就必须分别对它们进行打补丁。但是,当 Oracle Home 目录为只读时,实例特定的文件将单独存储在 Oracle Base 目录(ORACLE_BASE
)中,而不是 Oracle Home 目录中。由于这种配置,您可以使用只读 Oracle Home 目录作为软件映像,您可以在多个数据库服务器之间共享该映像,因为它只存储静态文件。这个选项简化了打补丁和大规模部署,因为当您想要将补丁分发到多个数据库服务器时,您只需要更新一个 Oracle Home 映像。
除了传统的 ORACLE_BASE
和 ORACLE_HOME
目录外,只读的 Oracle Home 目录中还存在以下其他目录:
ORACLE_BASE_HOME
:这是ORACLE_BASE
目录下的一个子目录。该目录包含特定于用户的文件、特定于实例的文件和日志文件。ORACLE_BASE_CONFIG
:该目录与ORACLE_BASE
目录相同。该目录包含特定于实例的动态文件,例如配置文件。
创建数据库的前提条件
要确保成功创建 Oracle 数据库,请检查数据库的先决条件。
在创建新数据库之前,需要满足以下前提条件:
-
已安装 Oracle 软件。这包括设置操作系统特有的各种环境变量,并为软件和数据库文件建立目录结构。
-
需要有足够的内存启动 Oracle 数据库实例。
-
运行 Oracle 数据库的计算机上,规划的数据库需要有足够的磁盘存储空间。
所有这些都在《Oracle Database Installation Guide》中针对您的操作系统进行了讨论。如果您使用 Oracle Universal Installer,它将指导您完成安装,并在设置环境变量、建立目录结构和授权方面提供帮助。