1.2.10 数据文件及字典的创建
再来看CreateDBFiles.sql文件:
C:\Oracle\admin\eygle\scripts>type CreateDBFiles.sql
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool C:\oracle\admin\eygle\scripts\CreateDBFiles.log
CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE SIZE 5M AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER DATABASE DEFAULT TABLESPACE "USERS";
spool off
这个文件向数据库中追加了USERS表空间,并将该表空间设置为系统缺省的数据表空间,注意最后一句:
ALTER DATABASE DEFAULT TABLESPACE "USERS";
这是Oracle 10g增加的新特性,在Oracle 10g之前,如果创建用户不指定缺省的数据表空间,那么用户的缺省表空间会被指向系统表空间,增加了数据库缺省数据表空间后,如果不指定,那么创建用户的缺省数据表空间会被指向这里:
SQL> create user julia identified by eygle;
用户已创建。
SQL> select username,default_tablespace from dba_users
2 where username='JULIA';
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
JULIA USERS
作为一个数据库属性,这个信息也可以从字典表props$中查询得到:
SQL> select name,value$ from props$
2 where name='DEFAULT_PERMANENT_TABLESPACE';
NAME VALUE$
------------------------------ ------------------
DEFAULT_PERMANENT_TABLESPACE USERS
继续前面的讨论,接下来Oracle通过CreateDBCatalog.sql创建数据字典:
C:\Oracle\admin\eygle\scripts>cat CreateDBCatalog.sql
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool C:\oracle\admin\eygle\scripts\CreateDBCatalog.log
@C:\oracle\10.2.0\rdbms\admin\catalog.sql;
@C:\oracle\10.2.0\rdbms\admin\catblock.sql;
@C:\oracle\10.2.0\rdbms\admin\catproc.sql;
@C:\oracle\10.2.0\rdbms\admin\catoctk.sql;
@C:\oracle\10.2.0\rdbms\admin\owminst.plb;
connect "SYSTEM"/"&&systemPassword"
@C:\oracle\10.2.0\sqlplus\admin\pupbld.sql;
connect "SYSTEM"/"&&systemPassword"
set echo on
spool C:\oracle\admin\eygle\scripts\sqlPlusHelp.log
@C:\oracle\10.2.0\sqlplus\admin\help\hlpbld.sql helpus.sql;
spool off
spool off
这个文件依次调用Oracle的字典创建文件等。emRepository.sql文件是用于创建EM档案库的:
C:\Oracle\admin\eygle\scripts>type emRepository.sql
connect "SYS"/"&&sysPassword" as SYSDBA
set echo off
spool C:\oracle\admin\eygle\scripts\emRepository.log
@C:\oracle\10.2.0\sysman\admin\emdrep\sql\emreposcre C:\oracle\10.2.0 SYSMAN &&sysmanPassword TEMP ON;
WHENEVER SQLERROR CONTINUE;
spool off
最后一个执行的文件是postDBCreation.sql:
C:\Oracle\admin\eygle\scripts>cat postDBCreation.sql
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool C:\oracle\admin\eygle\scripts\postDBCreation.log
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
create spfile='C:\oracle\10.2.0\database\spfileeygle.ora'
FROM pfile='C:\oracle\admin\eygle\scripts\init.ora';
shutdown immediate;
connect "SYS"/"&&sysPassword" as SYSDBA
startup ;
alter user SYSMAN identified by "&&sysmanPassword" account unlock;
alter user DBSNMP identified by "&&dbsnmpPassword" account unlock;
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
execute utl_recomp.recomp_serial();
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
host C:\oracle\10.2.0\bin\emca.bat -config dbcontrol db -silent -DB_UNIQUE_NAME eygle
-PORT 1521 -EM_HOME C:\oracle\10.2.0 -LISTENER LISTENER -SERVICE_NAME eygle
-SYS_PWD &&sysPassword -SID eygle -ORACLE_HOME C:\oracle\10.2.0
-DBSNMP_PWD &&dbsnmpPassword -HOST gqgai -LISTENER_OH C:\oracle\10.2.0
-LOG_FILE C:\oracle\admin\eygle\scripts\emConfig.log -SYSMAN_PWD &&sysmanPassword;
spool C:\oracle\admin\eygle\scripts\postDBCreation.log
exit;
在创建过程中,需要经历以下几个步骤后,数据库的创建才算正式完成:
(1) Oracle首先通过参数文件创建了spfile文件;
(2) 解锁两个账号;
(3) 编译;
(4) 配置EM。






