dbca静默模式创建数据库

DBCA使用静默模式创建数据库

基本信息
数据库版本: oracle 11.2.0.4
操作系统版本: rh linux 7.5
在配置数据库时,我们没有用户界面,vnc没有安装,使用dbca静默模式创建数据库
dbca -silent …

在此处,使用模板文件,创建传统OLTP数据库

模板文件的位置:
$ORACLE_HOME//assistants/dbca/templates
Data_Warehouse.dbc
example01.dfb
example.dmp
General_Purpose.dbc
New_Database.dbt
Seed_Database.ctl
Seed_Database.dfb

关于模板的说明 :
Data Warehouse 数据仓库
Transaction Processing 事务处理
General Purpose 一般用途

使用General_Purpose.dbc模板文件创建数据库
查看General_Purpose.dbc文件的内容,通过分析可以看到我们需要在命令行传入的参数

cat General_Purpose.dbc
[oracle@waimao2 templates]$ cat General_Purpose.dbc 
<?xml version = '1.0'?>
<DatabaseTemplate name="General_Purpose" description=" " version="11.2.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="false"/>
      <option name="JSERVER" value="true"/>
      <option name="SPATIAL" value="true"/>
      <option name="IMEDIA" value="true"/>
      <option name="XDB_PROTOCOLS" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="ORACLE_TEXT" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false"/>
      <option name="CWMLITE" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="EM_REPOSITORY" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="true"/>
      <option name="OWB" value="true"/>
      <option name="DV" value="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value=""/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="11.2.0.4.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="processes" value="150"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="db_recovery_file_dest" value="{ORACLE_BASE}/fast_recovery_area"/>
         <initParam name="audit_trail" value="db"/>
         <initParam name="memory_target" value="250" unit="MB"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="300"/>
         <initParam name="db_recovery_file_dest_size" value="" unit="MB"/>
      </InitParams>
      <MiscParams>
         <databaseType>MULTIPURPOSE</databaseType>
         <maxUserConn>20</maxUserConn>
         <percentageMemTOSGA>40</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <archiveLogMode>false</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <DataFiles>
         <Location>{ORACLE_HOME}/assistants/dbca/templates/Seed_Database.dfb</Location>
         <SourceDBName>seeddata</SourceDBName>
         <Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="740" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf</Name>
         <Name id="2" Tablespace="SYSAUX" Contents="PERMANENT" Size="470" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf</Name>
         <Name id="3" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf</Name>
         <Name id="4" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf</Name>
      </DataFiles>
      <TempFiles>
         <Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf</Name>
      </TempFiles>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="KB">51200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>

可以看到我们在配置文件dbc模板中需要传入的参数有:
ORACLE_BASE
DB_UNIQUE_NAME
SID
这三个变量中ORACLE_BASE和SID是可以通过配置环境变量来取得
而DB_UNIQUE_NAME是可以通过dbca命令行来传入

查看dbca命令帮助
通过分析帮助信息来组织我们的dbca 命令行来实现创建数据库

dbca -help


[oracle@waimao2 templates]$ dbca -help
dbca  [-silent | -progressOnly | -customCreate] {<command> <options> }  | { [<command> [options] ] -responseFile  <response file > } [-continueOnNonFatalErrors <true | false>]
有关详细信息, 请参阅手册。
可以输入以下命令之一:

通过指定以下参数创建数据库:
        -createDatabase
                -templateName <默认位置或完整模板路径中现有模板的名称>
                [-cloneTemplate]
                -gdbName <全局数据库名>
                [-sid <数据库系统标识符>]
                [-sysPassword <SYS 用户口令>]
                [-systemPassword <SYSTEM 用户口令>]
                [-emConfiguration <CENTRAL|LOCAL|ALL|NONE>
                        -dbsnmpPassword <DBSNMP 用户口令>
                        -sysmanPassword <SYSMAN 用户口令>
                        [-hostUserName <EM 备份作业的主机用户名>
                         -hostUserPassword <EM 备份作业的主机用户口令>
                         -backupSchedule <使用 hh:mm 格式的每日备份计划>]
                        [-centralAgent <Enterprise Manager 中央代理主目录>]]
                [-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>
                [-datafileDestination <所有数据库文件的目标目录> |  -datafileNames <含有诸如控制文件, 表空间, 重做日志文件数据库对象以及按 name=value 格式与这些对象相对应的裸设备文件名映射的 spfile 的文本文件。>]
                [-redoLogFileSize <每个重做日志文件的大小 (MB)>]
                [-recoveryAreaDestination <所有恢复文件的目标目录>]
                [-datafileJarLocation  <数据文件 jar 的位置, 只用于克隆数据库的创建>]
                [-storageType < FS | ASM > 
                        [-asmsnmpPassword     <用于 ASM 监视的 ASMSNMP 口令>]
                         -diskGroupName   <数据库区磁盘组名>
                         -recoveryGroupName       <恢复区磁盘组名>
                [-characterSet <数据库的字符集>]
                [-nationalCharacterSet  <数据库的国家字符集>]
                [-registerWithDirService <true | false> 
                        -dirServiceUserName    <目录服务的用户名>
                        -dirServicePassword    <目录服务的口令>
                        -walletPassword    <数据库 Wallet 的口令>]
                [-listeners  <监听程序列表, 该列表用于配置具有如下对象的数据库>]
                [-variablesFile   <用于模板中成对变量和值的文件名>]]
                [-variables  <以逗号分隔的 name=value 对列表>]
                [-initParams <以逗号分隔的 name=value 对列表>]
                [-sampleSchema  <true | false> ]
                [-memoryPercentage <用于 Oracle 的物理内存百分比>]
                [-automaticMemoryManagement ]
                [-totalMemory <为 Oracle 分配的内存 (MB)>]
                [-databaseType <MULTIPURPOSE|DATA_WAREHOUSING|OLTP>]]

通过指定以下参数来配置数据库:
        -configureDatabase
                -sourceDB    <源数据库 sid>
                [-sysDBAUserName     <用户名 (具有 SYSDBA 权限)>
                 -sysDBAPassword     <sysDBAUserName 用户名的口令>]
                [-registerWithDirService|-unregisterWithDirService|-regenerateDBPassword <true | false> 
                        -dirServiceUserName    <目录服务的用户名>
                        -dirServicePassword    <目录服务的口令>
                        -walletPassword    <数据库 Wallet 的口令>]
                [-disableSecurityConfiguration <ALL|AUDIT|PASSWORD_PROFILE|NONE>
                [-enableSecurityConfiguration <true|false>
                [-emConfiguration <CENTRAL|LOCAL|ALL|NONE>
                        -dbsnmpPassword <DBSNMP 用户口令>
                        -sysmanPassword <SYSMAN 用户口令>
                        [-hostUserName <EM 备份作业的主机用户名>
                         -hostUserPassword <EM 备份作业的主机用户口令>
                         -backupSchedule <使用 hh:mm 格式的每日备份计划>]
                        [-centralAgent <Enterprise Manager 中央代理主目录>]]


通过指定以下参数使用现有数据库创建模板:
        -createTemplateFromDB
                -sourceDB    <服务采用 <host>:<port>:<sid> 格式>
                -templateName      <新的模板名>
                -sysDBAUserName     <用户名 (具有 SYSDBA 权限)>
                -sysDBAPassword     <sysDBAUserName 用户名的口令>
                [-maintainFileLocations <true | false>]


通过指定以下参数使用现有数据库创建克隆模板:
        -createCloneTemplate
                -sourceSID    <源数据库 sid>
                -templateName      <新的模板名>
                [-sysDBAUserName     <用户名 (具有 SYSDBA 权限)>
                 -sysDBAPassword     <sysDBAUserName 用户名的口令>]
                [-maintainFileLocations <true | false>]
                [-datafileJarLocation       <存放压缩格式数据文件的目录>]

通过指定以下参数生成脚本以创建数据库:
        -generateScripts
                -templateName <默认位置或完整模板路径中现有模板的名称>
                -gdbName <全局数据库名>
                [-scriptDest       <所有脚本文件的目标位置>]

通过指定以下参数删除数据库:
        -deleteDatabase
                -sourceDB    <源数据库 sid>
                [-sysDBAUserName     <用户名 (具有 SYSDBA 权限)>
                 -sysDBAPassword     <sysDBAUserName 用户名的口令>]
通过指定以下选项来查询帮助: -h | -help

创建数据库

通过分析dbca -help后,我们组织命令行创建数据库:

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName TEST -sysPassword password123 -systemPassword password123 -emConfiguration NONE  -characterSet ZHS16GBK -nationalCharacterSet UTF8  -sampleSchema true -databaseType OLTP  -totalMemory 20480 -redoLogFileSize 100
清除失败的步骤
5% 已完成
复制数据库文件
7% 已完成
9% 已完成
41% 已完成
正在创建并启动 Oracle 实例
43% 已完成
48% 已完成
53% 已完成
58% 已完成
59% 已完成
62% 已完成
64% 已完成
正在进行数据库创建
68% 已完成
71% 已完成
75% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/app/oracle/cfgtoollogs/dbca/TEST/TEST0.log"。

创建数据库 :TEST
数据库类型:OLTP
sys/system密码:password123
EM: NONE
数据库字符集:ZHS16GBK
国家字符集,也就是NLS_NCHAR_CHARACTERSET:UTF8
配置内存:memory_target为20GB
每个redo log大小: 100M

创建过程的日志文件 :
[oracle@waimao2 TEST]$ vi /app/oracle/cfgtoollogs/dbca/TEST/TEST0.log
清除失败的步骤
DBCA_PROGRESS : 5%
复制数据库文件
DBCA_PROGRESS : 7%
DBCA_PROGRESS : 9%
DBCA_PROGRESS : 41%
正在创建并启动 Oracle 实例
DBCA_PROGRESS : 43%
DBCA_PROGRESS : 48%
DBCA_PROGRESS : 53%
DBCA_PROGRESS : 58%
DBCA_PROGRESS : 59%
DBCA_PROGRESS : 62%
DBCA_PROGRESS : 64%
正在进行数据库创建
DBCA_PROGRESS : 68%
DBCA_PROGRESS : 71%
DBCA_PROGRESS : 75%
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
 /app/oracle/cfgtoollogs/dbca/TEST。
数据库信息:
全局数据库名:TEST
系统标识符 (SID):TEST

查看操作系统的信息:

/app/oracle/oradata/TEST
[oracle@waimao2 TEST]$ ls 
control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf
example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

数据库信息:

export ORACLE_SID=TEST
sqlplus / as sysdba
SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
TEST      READ WRITE

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/app/oracle/oradata/TEST/system01.dbf
/app/oracle/oradata/TEST/sysaux01.dbf
/app/oracle/oradata/TEST/undotbs01.dbf
/app/oracle/oradata/TEST/users01.dbf
/app/oracle/oradata/TEST/example01.dbf

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 16G
sga_target                           big integer 16G   SGA的大小
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 4G   PGA的大小 
SQL> show parameter memo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0
shared_memory_address                integer     0
SQL> 
SQL> show parameter process

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
cell_offload_processing              boolean     TRUE
db_writer_processes                  integer     6
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     150   连接最大进程的数量,根据需要修改
processor_group_name                 string
SQL> show parameter session

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
session_cached_cursors               integer     50
session_max_open_files               integer     10
sessions                             integer     288  会话数,根据需要修改
shared_server_sessions               integer
SQL> show parameter dispa  

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=TESTXD
                                                 B)
max_dispatchers                      integer
SQL> 
SQL> show parameter server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fal_server                           string
gcs_server_processes                 integer     0
max_shared_servers                   integer
parallel_max_servers                 integer     120
parallel_min_servers                 integer     0
parallel_server                      boolean     FALSE
parallel_server_instances            integer     1
parallel_servers_target              integer     768
rdbms_server_dn                      string
sec_return_server_release_banner     boolean     FALSE
shared_server_sessions               integer

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_servers                       integer     1
smtp_out_server                      string
SQL> 

SQL> show parameter shared   --会话的连接模式,shared_server为1,则使用专有连接模式

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
max_shared_servers                   integer
shared_memory_address                integer     0
shared_pool_reserved_size            big integer 104018739
shared_pool_size                     big integer 0
shared_server_sessions               integer
shared_servers                       integer     1
SQL> 

归档模式:
SQL> archive log list
Database log mode              No Archive Mode   根据需要进行开启
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     2
Current log sequence           4

闪回区的大小 : 根据需要修改
SQL> show parameter recovery

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /app/oracle/fast_recovery_area
db_recovery_file_dest_size           big integer 4632M
recovery_parallelism  


使用dbca -silent删除刚刚创建的数据库:

dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName sys -sysDBAPassword  password123

dbca -silent -deleteDatabase -sourceDB TEST -sysDBAUserName sys -sysDBAPassword  password123
正在连接到数据库
4% 已完成
9% 已完成
14% 已完成
19% 已完成
23% 已完成
28% 已完成
47% 已完成
正在更新网络配置文件
48% 已完成
52% 已完成
正在删除实例和数据文件
76% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/app/oracle/cfgtoollogs/dbca/TEST.log"。

下面是摘抄自网络的一些dbca命令,以做备忘记录:

https://www.cnblogs.com/zfox2017/p/7802871.html

通过模板来创建数据库
[oracle@jyrac1 ~]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL

以silent方式来删除数据库
[oracle@jyrac1 ~]$ dbca -silent -deleteDatabase -sourceDB ora11g -sysDBAUserName sys -sysDBAPassword zzh_2046

使用现有数据库jycs来创建模板
[oracle@jyrac1 ~]$ dbca -silent -createTemplateFromDB -sourceDB jycs -templateName jycstemplate -sysDBAUserName sys -sysDBAPassword zzh_2046

使用现有数据库jycs创建带数据文件的模板
[oracle@jyrac1 ~]$ dbca -silent -createCloneTemplate -sourceDB jycs -templateName jycsCloneTemplate -sysDBAUserName sys -sysDBAPassword zzh_2046 -datafileJarLocation /u01/app/oracle/11.2.0/db/assistants/dbca/templates

利用带数据文件的模板jycsCloneTemplate生成克隆数据库
[oracle@jyrac1 ~]$ dbca -silent -createDatabase -templateName jycsCloneTemplate.dbc -gdbName test -sid test -datafileJarLocation /u01/app/oracle/11.2.0/db/assistants/dbca/templates -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK

利用不带数据文件的模板生成新的数据库
[oracle@jyrac1 ~]$ dbca -silent -createDatabase -templateName New_Database.dbt -gdbname jytest -sid jytest -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK

使用response文件创建数据库

待后续整理

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值