Oracle 12c实现手工建库而非CDB及CDB创建的方法
前言 相信大家应该都知道,对于Oracle数据库的创建,Oracle除了支持dbca(GUI界面),同时也支持手工方式创建数据库,即使用CREATE DATABASE语句创建数据库。使用此语句对使用DBCA的一个优点是可以从脚本内创建数据库。 在Oracle 12c版本中支持12c之前的非CDB数据库以及CDB容器数据库。因此创建方式略有不同。本文同时描述2种不同数据库的手工创建方法。下面话不多说了,来一起看看详细的介绍吧。 一、12c手工创建非CDB数据库 步骤1:指定实例标识符(SID)ORACLE_SID的环境变量用于该实例从稍后可能创建并同时在同一主机计算机上运行其他Oracle Database实例区分开来。 步骤2:确保设置所需的环境变量根据您的平台,在启动SQL * Plus之前(根据后续步骤的要求),您可能必须设置环境变量,或至少验证它们是否正确设置。如下查看当前已设定的环境变量,如果未设定,请使用export命令方式设定之。 步骤3:选择数据库管理员身份验证方法您必须进行身份验证并授予相应的系统权限才能创建数据库。 通常情况下,使用以下方式具有所需权限的管理员进行身份验证: 使用密码文件 具有操作系统认证(此演示中使用操作系统认证) 步骤4:创建初始化参数文件当Oracle实例启动时,它读取一个初始化参数文件。该文件可以是文本文件,可以使用文本编辑器或二进制文件进行创建和修改,该文件由数据库创建和动态修改。优选的二进制文件称为服务器参数文件。在此步骤中,您将创建一个文本初始化参数文件。在后面的步骤中,您可以从文本文件创建一个服务器参数文件。 $ vi $ORACLE_HOME/dbs/initnocdb.oraDB_NAME=nocdb 步骤5:(仅限Windows)创建实例在Windows平台上,连接到实例之前,必须手动创建它,如果它不存在。该ORADIM命令通过创建一个新的Windows服务创建一个Oracle数据库实例。 步骤6:连接到实例启动SQL * Plus并使用管理权限连接到Oracle数据库实例SYSDBA。 SQL*Plus: Release 12.1.0.1.0 Production on Wed May 31 10:44:41 2017Copyright (c) 1982,2013,Oracle. All rights reserved. Connected to an idle instance. SQL> 步骤7:创建服务器参数文件服务器参数文件使您可以使用该ALTER SYSTEM命令更改初始化参数,并在数据库关闭和启动时保留更改。您可以从编辑的文本初始化文件创建服务器参数文件。 create spfile from pfile='/app/oracle/ora12c/db_1/dbs/initnocdb.ora';步骤8:启动实例启动实例而不安装数据库。 startup nomount; ORACLE instance started.Total System Global Area 1068937216 bytes 步骤9:发出CREATE DATABASE语句要创建新数据库,请使用该 步骤10:创建其他表空间要使数据库起作用,必须为应用程序数据创建其他表空间。 CREATE TABLESPACE apps_tbs LOGGING DATAFILE '/app/oracle/ora12c/oradata/nocdb/apps01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;步骤11:运行脚本以构建数据字典视图运行构建数据字典视图,同义词和PL / SQL包所必需的脚本,并支持SQL * Plus的正常运行。 使用sysdba权限执行以下脚本 @?/rdbms/admin/catalog.sql --数据库字典,动态视图创建等 SQL> @?/rdbms/admin/catproc.sql --PL/SQL存过过程相关代码 SQL> @?/rdbms/admin/utlrp.sql --编译使用SYSTEM用户执行以下脚本 @?/sqlplus/admin/pupbld.sql --SQL*Plus相关--验证结果 NAME Multitenant Option OPEN_MODE CON_ID NOCDB Regular 12c Database: READ WRITE 0 步骤12 :(可选)运行脚本以安装其他选项(此处略)您可能需要运行其他脚本。您运行的脚本由您选择使用或安装的功能和选项决定。 步骤13:备份数据库对数据库(此处略)进行完整备份,以确保您有一套完整的文件,如果发生介质故障,可以从中恢复。 步骤14:(可选)启用自动实例启动(此处略)您可能希望将Oracle实例配置为在其主机重新启动时自动启动。 二、12c下手工创建CDB数据库 1、CDB创建相关说明使用 要创建CDB,CREATE DATABASE语句必须包含 以下为几个主要差异部分 1、CDB数据库创建时应指定 2、CDB数据库应指定根文件和种子文件的名称和位置 可以通过以下方式之一指定种子文件的名称和位置 使用 如 基于oracle文件托管方式(OMF) 使用 3、可以为PDB种子数据库制定不同的属性 根SYSTEM和SYSAUX表空间的数据文件的属性可能不适合种子。在这种情况下,您可以使用子句为种子的数据文件指定不同的属性tablespace_datafile。使用这些子句指定所有数据文件包含的属性SYSTEM和SYSAUX表空间中的种子。从根继承的值用于尚未提供其值的任何属性。 如下示例 --下面的seed部分使用了不同于上面root容器的配置,--如system数据文件此处大小为125M,而root容器中为352M --seed中开启了自动扩展,sysaux也同样使用了一些不同于root容器的属性 --对于在seed中未明确指定的属性,则继承root容器数据文件属性 SEED 2、创建cdb数据库详细步骤参考12c下手工创建非cdb数据库,以下部分省略每一步骤详细描述,后面列出差异 --创建相应目录$ mkdir -pv /app/oracle/ora12c/oradata/cdb1 $ mkdir -pv /app/oracle/ora12c/oradata/pdbseed --生成参数文件 DB_NAME=cdb1 --开始建库 SQL> create spfile from pfile='$ORACLE_HOME/dbs/initcdb1.ora'; SQL> startup nomount; SQL> CREATE DATABASE cdb1 --填充数据字典,如果是12cR2版本,则直接执行catcdb.sql代替以下脚本 SQL> @?/rdbms/admin/catalog.sql --数据库字典,动态视图创建等 --使用SYSTEM用户执行以下脚本 SQL> @?/sqlplus/admin/pupbld.sql #SQL*Plus相关 SQL> select 'Leshami' Author,'http://blog.csdn.net/leshami' Blog,2 '645746311' QQ from dual; AUTHOR BLOG QQ Leshami http://blog.csdn.net/leshami 645746311 --验证结果 NAME Multitenant Option OPEN_MODE CON_ID CDB1 Multitenant Option enabled READ WRITE 0 三、更多参考 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |