Oracle 12c 手动创建非CDB数据库教程及步骤详解

更新时间:2024-04-27 21:05:51   人气:1722
在Oracle Database 12c中,手动创建一个非多租户容器数据库(Non-CDB)是一项基础且关键的任务。以下是详细的操作流程:

**一、环境准备与前提条件**

首先,请确保您已成功安装了 Oracle 12c 并配置好了相关环境变量,包括 ORACLE_HOME 和 PATH 等,并以具有足够权限的用户身份登录操作系统。

同时,确认系统磁盘空间充足用于存放即将新建的数据文件和控制文件;并检查 listener服务是否启动以及tnsnames.ora网络服务名参数文件设置正确无误。

**二、初始化参数文件生成**

1. 进入 `$ORACLE_HOME/bin` 目录下,执行以下命令来运行 `dbca` 工具进行模板参数文件的创建:

dbassist -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname <database_name> \
-sid <instance_sid> \
-responseFile NO_VALUE \
-initparams “memory_target=1024M”



这里的 `<database_name>` 是你想要设定的新建数据库名称,而 `<instance_sid>` 则是实例标识符。"memory_target" 参数仅为示例,您可以依据实际硬件资源情况调整初始内存大小。

此操作将自动生成响应文件及初步的 pfile (文本格式参数文件),默认保存路径为 `/home/oracle/dbs/`.

**三、编辑初始化参数文件**

找到刚刚由 DBCA 创建的基础pfile (`INIT<sid>.ORA`) ,对其进行必要的定制修改如数据文件存储位置、redo log组数量及其大小等核心参数。

例如,


*.control_files = ('/u01/app/oradata/<SID>/control01.ctl', '/u02/app/oradata/<SID>/control02.ctl')
*.data_file_path = '+DATA'
*.undo_tablespace='UNDOTBS1'
*.sga_max_size=768m
*.pga_aggregate_targets=192m
...


**四、手工完成数据库建立过程**

切换到oracle用户 (或有相应权限的其他账户),然后使用SQL*Plus工具连接至本地PFILE:

bash

sqlplus / as sysdba
startup nomount;
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql

CREATE DATABASE <DATABASE_NAME>
USER SYS IDENTIFIED BY password
PASSWORD file '<path_to_password_file>'
DATAFILE '.../system01.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED,
...; /* 其他相关的SYSTEM表空间以及其他tablespace定义 */

ALTER SYSTEM SET control_files='/your/path/control01.ctl','/another/path/control02.ctl';
...
ALTER PLUGGABLE DATABASE OPEN;

exit;

其中,“password_file”的内容应包含sys用户的密码哈希值,具体如何获取和处理请参照官方文档指导。

以上步骤完成后,即完成了基于Oracle 12c的手动搭建非CDB数据库的过程。接下来可以根据需要进一步完善数据库结构设计,比如添加更多 tablespaces 或者 users等后续管理工作。

请注意,在真实环境中部署时务必替换上述演示中的占位符为您自己的特定目录和文件名,同时也需遵循良好的安全实践原则对口令及其他敏感信息妥善管理。