2.1 数据库创建模板
使用模板创建数据库通常速度都会很快,原因就在于数据文件是从种子数据库中恢复出来的,而不需要通过SQL语句创建文件及字典对象等信息,图2-2展示了创建过程的第一个步骤,是“复制数据库文件”而不是“创建数据文件”。
图2-2 复制数据库文件
这里通过脚本说明一下通过模板创建数据库和定制数据库的不同。创建名为eygle的数据库实例,首先eygle.sql脚本记录如下内容:
set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host D:\Oracle\11.2.0\bin\orapwd.exe file=D:\Oracle\11.2.0\database\PWDeygle.ora force=y
@D:\Oracle\admin\eygle\scripts_template\CloneRmanRestore.sql
@D:\Oracle\admin\eygle\scripts_template\cloneDBCreation.sql
@D:\Oracle\admin\eygle\scripts_template\postScripts.sql
@D:\Oracle\admin\eygle\scripts_template\lockAccount.sql
@D:\Oracle\admin\eygle\scripts_template\postDBCreation.sql
在不同平台和版本上,这个过程是完全类似的,以下是Linux平台上12c版本的创建脚本:
host /u01/app/oracle/product/12.01.24/dbhome_1/bin/orapwd
file=/u01/app/oracle/product/12.01.24/dbhome_1/dbs/orapwEYGLE force=y extended=y
@/u01/app/oracle/admin/EYGLE/scripts/CloneRmanRestore.sql
@/u01/app/oracle/admin/EYGLE/scripts/cloneDBCreation.sql
@/u01/app/oracle/admin/EYGLE/scripts/plugDatabase.sql
@/u01/app/oracle/admin/EYGLE/scripts/postScripts.sql
@/u01/app/oracle/admin/EYGLE/scripts/postDBCreation.sql
@/u01/app/oracle/admin/EYGLE/scripts/lockAccount.sql
整个过程中,首先调用的脚本是CloneRmanRestore.sql,该脚本中记录如下内容:
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool D:\Oracle\admin\eygle\scripts_template\CloneRmanRestore.log append
startup nomount pfile="D:\Oracle\admin\eygle\scripts_template\init.ora";
@D:\Oracle\admin\eygle\scripts_template\rmanRestoreDatafiles.sql;
spool off
这个脚本首先启动实例到NOMOUNT模式,然后调用rmanRestoreDatafiles.sql来恢复数据文件。