昨天有个需求,需要用命令行建一个RAC。先Google了一些文章,最好参照了下面这篇。
Create RAC database using DBCA silent mode,感谢此文作者,写得非常简洁。
我的环境是19c, 2节点RAC。然后遇到了一系列错误。
第一个错误,Disk Group不存在:
[FATAL] [DBT-06002] Selected disk group (XXXX) is not found.ACTION: Specify a disk group that is accessible from the system.
正好,主机上还有其它数据库,查询一下:
SQL> select name from v$asm_diskgroup;NAME------------------------------DATAC1RECOC1
然后改成以下:
-diskGroupName +DATAC1/{DB_UNIQUE_NAME}/ \
第2个错误,FRA地址无效,可以绕过问题或指定FRA位置,我用了后者。
[WARNING] [DBT-06303] Unable to check if location (FRA/db0623/) is on ACFS.[FATAL] [DBT-06007] The specified location (FRA Location) is invalid.CAUSE: The specified location is not found on the system or is detected to be a file.
直接去掉以下行:
-recoveryAreaDestination FRA \
或者改为:
-recoveryAreaDestination +$FRA \
第3个错误,4G以上不能AMM管理以及字符集问题:
[FATAL] [DBT-11211] The Automatic Memory Management option is not allowed when the total physical memory is greater than 4GB.CAUSE: The current total physical memory is 754GB.[FATAL] [DBT-11152] National character set specified (AL32UTF8) is invalid.
直接删除以下行:
-nationalCharacterSet AL32UTF8 \-automaticMemoryManagement true \
最终命令如下,会自动创建一个PDB orclpdb1。其中node01和node02是两个RAC节点的主机名,通过hostname命令获取。
export DBPWD='ABcd123_#'export DGNAME=DATAC1export FRA=RECOC1export DBNAME=db0623export NODE1=node01export NODE2=node02dbca -silent \-createDatabase \-databaseConfigType RAC \-templateName General_Purpose.dbc \-gdbName $DBNAME \-sid $DBNAME \-SysPassword $DBPWD \-SystemPassword $DBPWD \-emConfiguration NONE \-redoLogFileSize 2048 \-storageType ASM \-asmSysPassword $DBPWD \-diskGroupName +$DGNAME/{DB_UNIQUE_NAME}/ \-recoveryAreaDestination +$FRA \-totalMemory 10240 \-databaseType MULTIPURPOSE \-nodelist ${NODE1},${NODE2} \-createAsContainerDatabase true \-numberOfPDBs 1 \-pdbName orclpdb1 \-pdbAdminPassword $DBPWD
日志如下,18分钟还是蛮快的:
Prepare for db operation7% completeCopying database files27% completeCreating and starting Oracle instance28% complete31% complete35% complete37% complete40% completeCreating cluster database views41% complete53% completeCompleting Database Creation57% complete59% complete60% completeCreating Pluggable Databases64% complete80% completeExecuting Post Configuration Actions100% completeDatabase creation complete. For details check the logfiles at:/u01/app/oracle/cfgtoollogs/dbca/db0623.Database Information:Global Database Name:db0623System Identifier(SID) Prefix:db0623Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db0623/db06231.log" for further details.real 18m8.020suser 0m57.199ssys0m14.027s$ echo $?0
另外两次也是18分钟左右,比较一致:
real 18m36.844suser 0m57.905ssys0m14.577sreal 18m34.217suser 0m56.531ssys0m14.336s
访问:
$ export ORACLE_SID=db06231$ sqlplus / as sysdbaSQL> select count(*) from gv$instance;COUNT(*)----------2SQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 ORCLPDB1 READ WRITE NO
删除,此时数据库是打开状态:
dbca -silent -deleteDatabase -sourceDB db0623
输出:
$ dbca -silent -deleteDatabase -sourceDB db0623Enter SYS user password:[WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed.Prepare for db operation32% completeConnecting to database39% complete42% complete45% complete48% complete52% complete55% complete58% complete65% completeUpdating network configuration files68% completeDeleting instances and datafiles77% complete87% complete97% complete100% completeDatabase deletion completed.Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db0623/db06230.log" for further details.
最后,附上一个帮助:
$ dbca -createDatabase -help-createDatabase - Command to Create a database.-responseFile | (-gdbName,-templateName)-responseFile - <Fully qualified path for a response file>-gdbName <Global database name>-templateName <Specify an existing template in default location or the complete template path for DB Creation or provide a new template name for template creation>[-useWalletForDBCredentials <true | false> Specify true to load database credentials from wallet]-dbCredentialsWalletLocation <Path of the directory containing the wallet files>[-dbCredentialsWalletPassword <Password to open wallet with auto login disabled>][-characterSet <Character set for the database>][-dvConfiguration <true | false> Specify true to configure and enable database vault.]-dvUserName <Specify database vault owner user name>-dvUserPassword <Specify database vault owner password>[-dvAccountManagerPassword <Specify database vault account manager password>][-dvAccountManagerName <Specify separate database vault account manager>][-datafileDestination <Destination directory for all database files>][-datafileJarLocation <For database creation, pass the absolute path of the datafile backup and for template creation, pass the directory to place the datafile backup>][-runCVUChecks <Specify "true" in order to run Cluster Verification Utility checks periodically for RAC databases.>][-sid <Database system identifier>][-redoLogFileSize <Size of each redo log file in MB>][-registerWithDirService <true | false>]-dirServiceUserName <User name for directory service>[-databaseCN <Database common name>][-dirServiceCertificatePath <Path to the certificate file to use when configuring SSL between database and directory service>][-dirServicePassword <Password for directory service>][-dirServiceUser <SamAccountName in case of configuring Active Directory>][-ldapDirectoryAccessType <PASSWORD | SSL>][-useSYSAuthForLDAPAccess <true | false>][-walletPassword <Password for database wallet>][-systemPassword <SYSTEM user password>][-nodelist <Node names separated by comma for the database>][-oracleHomeUserPassword <Specify Oracle Home User Password>][-sysPassword <SYS user password>][-enableArchive <true | false> Specify true to enable archive>][-archiveLogMode <AUTO|MANUAL , the default is Automatic archiving>][-archiveLogDest <Specify archive log destinations separated by comma. If archive log destination is not specified, fast recovery area location will be used for archive log files.>][-memoryMgmtType <AUTO|AUTO_SGA|CUSTOM_SGA>][-variables <Comma separated list of name=value pairs of location variables>][-listeners <A comma separated list of listeners that the database can be configured with>][-olsConfiguration <true | false> Specify true to configure and enable Oracle Label Security.][-configureWithOID This flag configures Oracle Label Security with OID.][-createAsContainerDatabase <true | false>][-pdbName <Pluggable database name>][-numberOfPDBs <Number of pluggable databases to be created, default is 0>][-pdbStorageMAXSizeInMB <value>][-pdbStorageMAXTempSizeInMB <value>][-useLocalUndoForPDBs <true | false> Specify false to disable local undo tablespace for PDBs.][-pdbAdminPassword <PDB Administrator user Password, required only while creating new PDB>][-pdbOptions <A comma separated list of name:value pairs with database options to enable/disable. For example JSERVER:true,DV:false>][-recoveryAreaDestination <Destination directory for all recovery files. Specify "NONE" for disabling Fast Recovery Area>][-recoveryAreaSize <Fast Recovery Area Size in MB>][-createListener <Create a new listener to register your database. Specify in format, LISTENER_NAME:PORT>][-useOMF <true | false> Specify true to use Oracle-Managed Files.][-memoryPercentage | -totalMemory][-memoryPercentage <Percentage of physical memory for oracle database>][-totalMemory <Memory allocated for Oracle in MB>][-dbOptions <A comma separated list of name:value pairs with database options to enable/disable. For example JSERVER:true,DV:false>][-sampleSchema <true | false>][-variablesFile <File name of the name=value pairs for location variables in the template>][-customScripts <A comma separated list of SQL scripts which needs to be run post db creation.The scripts are run in order they are listed>][-databaseType <MULTIPURPOSE | DATA_WAREHOUSING | OLTP>][-oracleHomeUserName <Specify Oracle Home User Name>][-initParams <Comma separated list of name=value pairs>][-initParamsEscapeChar <Specify escape character for comma when a specific initParam has multiple values.If the escape character is not specified backslash is the default escape character>][-policyManaged | -adminManaged][-policyManaged <Policy managed database, default option is Admin managed database>]-serverPoolName <Specify the single server pool name in case of create server pool or comma separated list in case of existing server pools>[-pqPoolName <value>][-createServerPool <Create a new server pool, which will be used by the database>][-pqPoolName <value>][-forceServerPoolCreation <To create server pool by force when adequate free servers are not available. This may affect the database which is already in running mode>][-pqCardinality <value>][-cardinality <Specify the cardinality of the new server pool that is to be created, default is the number of qualified nodes>][-adminManaged <Admin managed database, this is default option>][-nationalCharacterSet <National character set for the database>][-storageType < FS | ASM >]-datafileDestination <Destination directory for all database files>[-asmsnmpPassword <ASMSNMP password for ASM monitoring>][-databaseConfigType <SINGLE | RAC | RACONENODE>][-RACOneNodeServiceName <Service name for the service to be created for RAC One Node database. This option is mandatory when the databaseConfigType is RACONENODE>][-emConfiguration <DBEXPRESS | CENTRAL | BOTH | NONE>][-dbsnmpPassword <DBSNMP user password>][-emPassword <EM Admin user password>][-emUser <EM Admin username to add or modify targets>][-emExpressPort <EM database express port number. Generally used during createDatabase>][-omsHost <EM management server host name>][-omsPort <EM management server port number>][-emExpressPortAsGlobalPort <value>]
如果觉得《dbca 命令行静默方式创建Oracle RAC》对你有帮助,请点赞、收藏,并留下你的观点哦!