dbca 命令行静默方式创建Oracle RAC

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dbca 命令行静默方式创建Oracle RAC相关的知识,希望对你有一定的参考价值。

昨天有个需求,需要用命令行建一个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
------------------------------
DATAC1
RECOC1

然后改成以下:

-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=DATAC1
export FRA=RECOC1
export DBNAME=db0623
export NODE1=node01
export NODE2=node02

dbca -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 operation
7% complete
Copying database files
27% complete
Creating and starting Oracle instance
28% complete
31% complete
35% complete
37% complete
40% complete
Creating cluster database views
41% complete
53% complete
Completing Database Creation
57% complete
59% complete
60% complete
Creating Pluggable Databases
64% complete
80% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/db0623.
Database Information:
Global Database Name:db0623
System Identifier(SID) Prefix:db0623
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db0623/db06231.log" for further details.

real    18m8.020s
user    0m57.199s
sys     0m14.027s

$ echo $?
0

另外两次也是18分钟左右,比较一致:

real    18m36.844s
user    0m57.905s
sys     0m14.577s

real    18m34.217s
user    0m56.531s
sys     0m14.336s

访问:

$ export ORACLE_SID=db06231
$ sqlplus / as sysdba
SQL> select count(*) from gv$instance;

  COUNT(*)
----------
         2

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB1                       READ WRITE NO

删除,此时数据库是打开状态:

dbca -silent -deleteDatabase -sourceDB db0623

输出:

$ dbca -silent -deleteDatabase -sourceDB db0623
Enter 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 operation
32% complete
Connecting to database
39% complete
42% complete
45% complete
48% complete
52% complete
55% complete
58% complete
65% complete
Updating network configuration files
68% complete
Deleting instances and datafiles
77% complete
87% complete
97% complete
100% complete
Database 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的主要内容,如果未能解决你的问题,请参考以下文章

DBCA静默方式创建数据库实例

oracle 11g rac dbca建库时提示创建监听

Linux:oracle11.2.0dbca静默建库

RAC DBCA 找不到共享磁盘

11G ORACLE RAC DBCA 无法识别asm磁盘组

oracle RAC 创库,停启库,删除库