首页 > 数据库 > Oracle > Oralce 10g 使用DBCA创建数据库
一、规划数据库
二、建库前需要确认的问题(创建后不可修改)
三、建库的几种方法
四、查看数据库是否已经创建
[oracle@robinson isqlplus]$ more /etc/oratab
[oracle@robinson isqlplus]$ ls $ORACLE_BASE/admin
Test
[oracle@robinson isqlplus]$ ls /u01/app/oracle/oradata/Test
control01.ctl
control02.ctl
五、使用DBCA创建数据库
六、查看相关信息
--1.查看操作系统中的模板数据库文件所在的位置
[oracle@robinson admin]$ ll /u01/app/oracle/10g/assistants/dbca/templates
total 112120
-rw-r----- 1 oracle
oinstall
-rw-r----- 1 oracle
oinstall
-rw-r----- 1 oracle
oinstall
-r-xr-xr-x 1 oracle
oinstall
-r-xr-xr-x 1 oracle oinstall 93569024
Jul
-rw-r----- 1 oracle
oinstall
-r-xr-xr-x 1 oracle
oinstall
-r-xr-xr-x 1 oracle oinstall 13017088
Jul
--2.查看创建数据库期间保存的脚本文件位置及脚本文件
[oracle@robinson scripts]$ pwd
/u01/app/oracle/admin/Test/scripts
[oracle@robinson scripts]$ ls
CloneRmanRestore.sql
Test.sh
Test.sql
--刚刚创建的被保存为Test.sh和Test.sql,下次可以直接运行Test.sh即可完成建库
[oracle@robinson scripts]$ cat Test.sh
#!/bin/sh
--建立相关文件目录
mkdir -p /u01/app/oracle/10g/cfgtoollogs/dbca/Test
mkdir -p /u01/app/oracle/10g/dbs
mkdir -p /u01/app/oracle/admin/Test/adump
mkdir -p /u01/app/oracle/admin/Test/bdump
mkdir -p /u01/app/oracle/admin/Test/cdump
mkdir -p /u01/app/oracle/admin/Test/dpdump
mkdir -p /u01/app/oracle/admin/Test/pfile
mkdir -p /u01/app/oracle/admin/Test/udump
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/oradata/Test
--设置Oracle_SID
ORACLE_SID=Test; export ORACLE_SID
--修改oratab文件
echo You should Add this entry in the /etc/oratab: Test:/u01/app/oracle/10g:Y
--使用nolog登陆并执行Test.sql
/u01/app/oracle/10g/bin/sqlplus /nolog @/u01/app/oracle/admin/Test/scripts/Test.sql
-------------------------------------------------------------------------------------
--查看Test.sql
[oracle@robinson scripts]$ more Test.sql
--设定密码
set verify off
PROMPT specify a password for sys as parameter 1;
DEFINE sysPassword = &1
PROMPT specify a password for system as parameter 2;
DEFINE systemPassword = &2
PROMPT specify a password for sysman as parameter 3;
DEFINE sysmanPassword = &3
PROMPT specify a password for dbsnmp as parameter 4;
DEFINE dbsnmpPassword = &4
--使用orapwd命令生成密码文件
host /u01/app/oracle/10g/bin/orapwd file=/u01/app/oracle/10g/dbs/orapwTest password=&&sysPassword force=y
--执行下列脚本
@/u01/app/oracle/admin/Test/scripts/CloneRmanRestore.sql
@/u01/app/oracle/admin/Test/scripts/cloneDBCreation.sql
@/u01/app/oracle/admin/Test/scripts/postScripts.sql
@/u01/app/oracle/admin/Test/scripts/postDBCreation.sql
@/u01/app/oracle/admin/Test/scripts/customScripts.sql
------------------------------------------------------------------------------------------
--查看CloneRmanRestore.sql
[oracle@robinson scripts]$ cat CloneRmanRestore.sql
--使用sys帐户登陆
connect "SYS"/"&&sysPassword" as SYSDBA
set echo ON
--输入日志文件
spool /u01/app/oracle/admin/Test/scripts/CloneRmanRestore.LOG
--使用静态参数文件启动数据库
startup nomount pfile="/u01/app/oracle/admin/Test/scripts/init.ora";
@/u01/app/oracle/admin/Test/scripts/rmanRestoreDatafiles.sql;
------------------------------------------------------------------------------------------
--查看rmanRestoreDatafiles.sql
[oracle@robinson scripts]$ cat rmanRestoreDatafiles.sql
--从rman备份文件中恢复创建数据库所必须的基本数据文件
set echo off;
set serveroutput on;
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual;
variable devicename varchar2(255);
declare
omfname varchar2(512) := NULL;
/
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual;
--------------------------------------------------------------------------------------------
--查看cloneDBCreation.sql
[oracle@robinson scripts]$ cat cloneDBCreation.sql
--使用sys帐户登陆
connect "SYS"/"&&sysPassword" as SYSDBA
set echo ON
--输出日志文件
spool /u01/app/oracle/admin/Test/scripts/cloneDBCreation.LOG
--创建数据文件、控制文件、日志文件等
Create controlfile reuse set database "Test"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
Datafile
'/u01/app/oracle/oradata/Test/system01.dbf',
'/u01/app/oracle/oradata/Test/undotbs01.dbf',
'/u01/app/oracle/oradata/Test/sysaux01.dbf',
'/u01/app/oracle/oradata/Test/users01.dbf'
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/Test/redo01.log') SIZE 51200K,
GROUP 2 ('/u01/app/oracle/oradata/Test/redo02.log') SIZE 51200K,
GROUP 3 ('/u01/app/oracle/oradata/Test/redo03.log') SIZE 51200K RESETLOGS;
exec dbms_backup_restore.zerodbid(0);
shutdown immediate;
--使用参数文件initTestTemp.ora启动数据库到nomount状态并修改数据文件、控制文件、日志文件等
startup nomount pfile="/u01/app/oracle/admin/Test/scripts/initTestTemp.ora";
Create controlfile reuse set database "Test"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
Datafile
'/u01/app/oracle/oradata/Test/system01.dbf',
'/u01/app/oracle/oradata/Test/undotbs01.dbf',
'/u01/app/oracle/oradata/Test/sysaux01.dbf',
'/u01/app/oracle/oradata/Test/users01.dbf'
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/Test/redo01.log') SIZE 51200K,
GROUP 2 ('/u01/app/oracle/oradata/Test/redo02.log') SIZE 51200K,
GROUP 3 ('/u01/app/oracle/oradata/Test/redo03.log') SIZE 51200K RESETLOGS;
alter system enable restricted session;
alter database "Test" open resetlogs;
alter database rename global_name to "Test";
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/Test/temp01.dbf' SIZE 20480K REUSE AUTOEXTEND
select tablespace_name from dba_tablespaces where tablespace_name='USERS';
alter system disable restricted session;
connect "SYS"/"&&sysPassword" as SYSDBA
@/u01/app/oracle/10g/demo/schema/mkplug.sql &&sysPassword change_on_install change_on_install change_on_install
connect "SYS"/"&&sysPassword" as SYSDBA
shutdown immediate;
startup pfile="/u01/app/oracle/admin/Test/scripts/initTestTemp.ora";
alter system enable restricted session;
select sid, program, serial#, username from v$session;
alter database character set INTERNAL_CONVERT AL32UTF8;
alter database national character set INTERNAL_CONVERT AL16UTF16;
alter user sys identified by "&&sysPassword";
alter user system identified by "&&systemPassword";
alter system disable restricted session;
------------------------------------------------------------------------------------------
--查看postScripts.sql
[oracle@robinson scripts]$ cat postScripts.sql
--该脚本主要是导入样本数据
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/Test/scripts/postScripts.LOG
--执行dbmssml.sql脚本及过程
@/u01/app/oracle/10g/rdbms/admin/dbmssml.sql;
execute dbms_datapump_utl.replace_default_dir;
commit;
connect "SYS"/"&&sysPassword" as SYSDBA
alter session set current_schema=ORDSYS;
--执行ordlib.sql脚本及过程
@/u01/app/oracle/10g/ord/im/admin/ordlib.sql;
alter session set current_schema=SYS;
connect "SYS"/"&&sysPassword" as SYSDBA
connect "SYS"/"&&sysPassword" as SYSDBA
execute dbms_swrf_internal.cleanup_database(cleanup_local => FALSE);
commit;
spool OFF
---------------------------------------------------------------------------------------
--查看postDBCreation.sql
[oracle@robinson scripts]$ cat postDBCreation.sql
--该脚本主要生成spfile及验证帐户信息,配置OEM
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/Test/scripts/postDBCreation.log
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
--为Test数据库生成spfile
create spfile='/u01/app/oracle/10g/dbs/spfileTest.ora' FROM pfile='/u01/app/oracle/admin/Test/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;
--下面是配置OEM
host /u01/app/oracle/10g/bin/emca -config dbcontrol db -silent -DB_UNIQUE_NAME
spool /u01/app/oracle/admin/Test/scripts/postDBCreation.LOG
------------------------------------------------------------------------------------------
--查看customScripts.sql
[oracle@robinson scripts]$ cat customScripts.sql
set echo on
spool /u01/app/oracle/admin/Test/scripts/customScripts.log
spool off
--创建完毕后,缺省的情况下,刚刚创建的实例已经启动
[oracle@robinson scripts]$ ps -ef |grep Test
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
--总结:由此可见,创建Oralce Database的工作量可见一般,绝非SQL server 的一个Create database命令那么简单。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22757044/viewspace-1117453/ ,如需转载,请注明出处,否则将追究法律责任。