티스토리 뷰
generateScripts는 데이터베이스를 생성하는 데 사용할 수 있는 스크립트를 생성하는 명령이다. 사용할 수 있는 인수는 다음과 같다.
[oracle@enp0s3 templates]$ dbca -silent -generateScripts
[INS-04008] 명령행에서 부적합한 조합의 인수가 전달되었습니다. -generateScripts 인수에 대해 하나 이상의 필수 종속 인수가 전달되지 않았습니다.
-generateScripts - 데이터베이스를 생성하는 데 사용할 수 있는 스크립트를 생성하는 명령입니다.
-gdbName <전역 데이터베이스 이름>
-templateName <DB 생성을 위해 기본 위치 또는 전체 템플리트 경로의 기존 템플리트를 지정하거나 템플리트 생성을 위해 새 템플리트 이름을 입력하십시오.>
[-useWalletForDBCredentials <true | false> 전자 지갑에서 데이터베이스 인증서를 로드하려면 true를 지정하십시오.]
-dbCredentialsWalletLocation <전자 지갑 파일이 포함된 디렉토리의 경로>
[-dbCredentialsWalletPassword <자동 로그인이 사용 안함으로 설정된 전자 지갑을 열기 위한 비밀번호>]
[-characterSet <데이터베이스의 문자 집합>]
[-dvConfiguration <true | false> Database Vault를 구성하고 사용으로 설정하려면 true를 지정합니다.]
-dvUserName <Database Vault 소유자 사용자 이름 지정>
-dvUserPassword <Database Vault 소유자 비밀번호 지정>
[-dvAccountManagerPassword <Database Vault 계정 관리자 비밀번호 지정>]
[-dvAccountManagerName <별도의 Database Vault 계정 관리자 지정>]
[-scriptDest <모든 스크립트 파일에 대한 대상>]
[-datafileDestination <모든 데이터베이스 파일에 대한 대상 디렉토리>]
[-datafileJarLocation <데이터베이스 생성 시 데이터 파일 백업의 절대 경로 전달, 템플리트 생성 시 압축 형식으로 데이터 파일을 저장할 디렉토리 전달>]
[-runCVUChecks <RAC 데이터베이스에서 클러스터 확인 유틸리티 검사를 정기적으로 실행하려면 "true"를 지정하십시오.>]
[-sid <데이터베이스 시스템 식별자>]
[-redoLogFileSize <각 리두 로그 파일의 크기(MB)>]
[-registerWithDirService <true | false>]
-dirServiceUserName <디렉토리 서비스에 대한 사용자 이름>
[-databaseCN <데이터베이스 공통 이름>]
[-dirServiceCertificatePath <데이터베이스와 디렉토리 서비스 간에 SSL을 구성할 때 사용할 인증서 파일의 경로>]
[-dirServicePassword <디렉토리 서비스에 대한 비밀번호>]
[-dirServiceUser <Active Directory 구성의 경우 SamAccountName>]
[-ldapDirectoryAccessType <PASSWORD | SSL>]
[-useSYSAuthForLDAPAccess <true | false>]
[-walletPassword <데이터베이스 전자 지갑에 대한 비밀번호>]
[-systemPassword <SYSTEM 사용자 비밀번호>]
[-nodelist <콤마로 구분된 데이터베이스 노드 이름>]
[-sysPassword <SYS 사용자 비밀번호>]
[-enableArchive <true | false> 아카이브를 사용으로 설정하려면 true를 지정합니다.]
[-archiveLogMode <AUTO|MANUAL, 기본값은 자동 아카이브입니다.>]
[-archiveLogDest <콤마로 구분된 아카이브 로그 대상을 지정하십시오. 아카이브 로그 대상이 지정되지 않은 경우 아카이브 로그 파일에 빠른 복구 영역 위치가 사용됩니다.>]
[-memoryMgmtType <AUTO|AUTO_SGA|CUSTOM_SGA>]
[-responseFile - <응답 파일의 전체 경로>]
[-variables <위치 변수에 대한 콤마로 구분된 이름=값 쌍 목록>]
[-listeners <데이터베이스를 구성할 때 사용할 수 있는 리스너의 콤마로 구분된 목록>]
[-olsConfiguration <true | false> Oracle Label Security를 구성하고 사용으로 설정하려면 true를 지정합니다.]
[-configureWithOID 이 플래그는 OID와 함께 Oracle Label Security를 구성합니다.]
[-createAsContainerDatabase <true | false>]
[-pdbName <플러그인할 수 있는 데이터베이스 이름>]
[-numberOfPDBs <생성될 플러그인할 수 있는 데이터베이스 수입니다. 기본값은 0입니다.>]
[-pdbStorageMAXSizeInMB <value>]
[-pdbStorageMAXTempSizeInMB <value>]
[-useLocalUndoForPDBs <true | false> PDB에 대한 로컬 실행 취소 테이블스페이스를 사용 안함으로 설정하려면 false를 지정합니다.]
[-pdbAdminPassword <PDB 관리자 사용자 비밀번호로, 새 PDB를 생성할 때만 필요합니다.>]
[-pdbOptions <사용/사용 안함으로 설정할 데이터베이스 옵션과 함께 콤마로 구분된 이름:값 쌍 목록입니다. 예: JSERVER:true,DV:false>]
[-recoveryAreaDestination <모든 복구 파일의 대상 디렉토리입니다. 빠른 복구 영역을 사용 안함으로 설정하려면 "NONE"을 지정하십시오.>]
[-recoveryAreaSize <빠른 복구 영역 크기(MB)>]
[-createListener <데이터베이스를 등록할 새 리스너를 생성하십시오. LISTENER_NAME:PORT 형식으로 지정하십시오.>]
[-useOMF <true | false> Oracle-Managed Files를 사용하려면 true를 지정하십시오.]
[-memoryPercentage | -totalMemory]
[-memoryPercentage <Oracle 데이터베이스의 물리적 메모리 백분율>]
[-totalMemory <Oracle에 대해 할당된 메모리(MB)>]
[-sampleSchema <true | false>]
[-variablesFile <템플리트의 위치 변수에 대한 이름=값 쌍의 파일 이름>]
[-customScripts <DB 생성 이후 실행해야 할 콤마로 구분된 SQL 스크립트 목록입니다. 스크립트는 나열된 순서대로 실행됩니다.>]
[-databaseType <MULTIPURPOSE | DATA_WAREHOUSING | OLTP>]
[-initParams <콤마로 구분된 이름=값 쌍 목록>]
[-initParamsEscapeChar <특정 initParam에 값이 여러 개인 경우 콤마에 대한 이스케이프 문자를 지정합니다. 이스케이프 문자를 지정하지 않으면 백슬래시가 기본 이스케이프 문자로 사용됩니다.>]
[-policyManaged | -adminManaged]
[-policyManaged <정책 관리 데이터베이스로. 기본 옵션은 관리자 관리 데이터베이스입니다.>]
-serverPoolName <서버 풀 생성의 경우 단일 서버 풀 이름을 지정하고, 기존 서버 풀의 경우 콤마로 구분된 목록을 지정하십시오.>
[-pqPoolName <value>]
[-createServerPool <데이터베이스에서 사용할 새 서버 풀을 생성합니다.>]
[-pqPoolName <value>]
[-forceServerPoolCreation <사용 가능한 적절한 서버가 없는 경우 강제로 서버 풀을 생성합니다. 이로 인해 이미 실행 모드인 데이터베이스가 영향을 받을 수 있습니다.>]
[-pqCardinality <value>]
[-cardinality <생성될 새 서버 풀의 기수를 지정합니다. 기본값은 정규화 노드 수입니다.>]
[-adminManaged <관리자 관리 데이터베이스로. 기본 옵션입니다.>]
[-nationalCharacterSet <데이터베이스의 국가별 문자 집합>]
[-storageType < FS | ASM >]
-datafileDestination <모든 데이터베이스 파일에 대한 대상 디렉토리>
[-asmsnmpPassword <ASM 모니터링을 위한 ASMSNMP 비밀번호>]
[-databaseConfigType <SINGLE | RAC | RACONENODE>]
[-RACOneNodeServiceName <RAC One Node 데이터베이스에 대해 생성할 서비스의 서비스 이름입니다. 이 옵션은 databaseConfigType이 RACONENODE인 경우 필수입니다.>]
[-emConfiguration <DBEXPRESS | CENTRAL | BOTH | NONE>]
[-dbsnmpPassword <DBSNMP 사용자 비밀번호>]
[-emPassword <EM 관리 사용자 비밀번호>]
[-emUser <대상을 추가하거나 수정하기 위한 EM 관리 사용자 이름>]
[-emExpressPort <EM Database Express 포트 번호로, 일반적으로 createDatabase 중 사용됩니다.>]
[-omsHost <EM 관리 서버 호스트 이름>]
[-omsPort <EM 관리 서버 포트 번호>]
[-emExpressPortAsGlobalPort <value>]
위 커맨드에서 -gdbName 옵션은 (새로) 생성할 SID명을 입력한다. 그리고 -templateName은 시스템에 이미 존재하는 템플릿을 (사용을 위해) 입력한다. 예시를 위해 지금 사용할 템플릿은 다음과 같이 구성했다.
<DatabaseTemplate name="My New Template" description=" " version="19.0.0.0.0">
<CommonAttributes>
<option name="OMS" value="true" includeInPDBs="true"/>
<option name="JSERVER" value="true" includeInPDBs="true"/>
<option name="SPATIAL" value="true" includeInPDBs="true"/>
<option name="IMEDIA" value="true" includeInPDBs="true"/>
<option name="ORACLE_TEXT" value="true" includeInPDBs="true">
<tablespace id="SYSAUX"/>
</option>
<option name="SAMPLE_SCHEMA" value="false" includeInPDBs="false"/>
<option name="CWMLITE" value="true" includeInPDBs="true">
<tablespace id="SYSAUX"/>
</option>
<option name="APEX" value="false" includeInPDBs="false"/>
<option name="DV" value="true" includeInPDBs="true">
<tablespace id="SYSAUX"/>
</option>
</CommonAttributes>
<Variables/>
<CustomScripts Execute="false"/>
<InitParamAttributes>
<InitParams>
<initParam name="db_name" value=""/>
<initParam name="db_domain" 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="19.0.0"/>
<initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
<initParam name="processes" value="300"/>
<initParam name="undo_tablespace" value="UNDOTBS1"/>
<initParam name="control_files" value="("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl")"/>
<initParam name="diagnostic_dest" value="/u01/app/oracle"/>
<initParam name="audit_trail" value="DB"/>
<initParam name="memory_target" value="1207959552"/>
<initParam name="nls_territory" value="KOREA"/>
<initParam name="db_block_size" value="8192"/>
<initParam name="open_cursors" value="300"/>
<initParam name="nls_language" value="AMERICAN"/>
</InitParams>
<MiscParams>
<customSGA>false</customSGA>
<characterSet>AL32UTF8</characterSet>
<nationalCharacterSet>AL16UTF16</nationalCharacterSet>
<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>
<ControlfileAttributes id="Controlfile">
<maxDatafiles>100</maxDatafiles>
<maxLogfiles>16</maxLogfiles>
<maxLogMembers>3</maxLogMembers>
<maxLogHistory>292</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>
<DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf" con_id="0">
<tablespace>SYSAUX</tablespace>
<temporary>false</temporary>
<online>true</online>
<status>0</status>
<size unit="MB">520</size>
<reuse>true</reuse>
<autoExtend>true</autoExtend>
<increment unit="KB">10240</increment>
<maxSize unit="MB">32767</maxSize>
</DatafileAttributes>
<DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf" con_id="0">
<tablespace>SYSTEM</tablespace>
<temporary>false</temporary>
<online>true</online>
<status>0</status>
<size unit="MB">900</size>
<reuse>true</reuse>
<autoExtend>true</autoExtend>
<increment unit="KB">10240</increment>
<maxSize unit="MB">32767</maxSize>
</DatafileAttributes>
<DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf" con_id="0">
<tablespace>TEMP</tablespace>
<temporary>true</temporary>
<online>true</online>
<status>0</status>
<size unit="MB">32</size>
<reuse>true</reuse>
<autoExtend>true</autoExtend>
<increment unit="KB">640</increment>
<maxSize unit="MB">32767</maxSize>
</DatafileAttributes>
<DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf" con_id="0">
<tablespace>UNDOTBS1</tablespace>
<temporary>false</temporary>
<online>true</online>
<status>0</status>
<size unit="MB">335</size>
<reuse>true</reuse>
<autoExtend>true</autoExtend>
<increment unit="KB">5120</increment>
<maxSize unit="MB">32767</maxSize>
</DatafileAttributes>
<DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf" con_id="0">
<tablespace>USERS</tablespace>
<temporary>false</temporary>
<online>true</online>
<status>0</status>
<size unit="MB">5</size>
<reuse>true</reuse>
<autoExtend>true</autoExtend>
<increment unit="KB">1280</increment>
<maxSize unit="MB">32767</maxSize>
</DatafileAttributes>
<TablespaceAttributes id="SYSAUX" con_id="0">
<temporary>false</temporary>
<defaultTemp>false</defaultTemp>
<undo>false</undo>
<local>true</local>
<blockSize>8192</blockSize>
<allocation>1</allocation>
<uniAllocSize unit="KB">-1</uniAllocSize>
<initSize unit="KB">64</initSize>
<increment unit="KB">0</increment>
<incrementPercent>0</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>2147483645</maxExtends>
<minExtendsSize unit="KB">64</minExtendsSize>
<logging>true</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<autoSegmentMgmt>true</autoSegmentMgmt>
<bigfile>false</bigfile>
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf"/>
</datafilesList>
</TablespaceAttributes>
<TablespaceAttributes id="SYSTEM" con_id="0">
<temporary>false</temporary>
<defaultTemp>false</defaultTemp>
<undo>false</undo>
<local>true</local>
<blockSize>8192</blockSize>
<allocation>1</allocation>
<uniAllocSize unit="KB">-1</uniAllocSize>
<initSize unit="KB">64</initSize>
<increment unit="KB">0</increment>
<incrementPercent>0</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>2147483645</maxExtends>
<minExtendsSize unit="KB">64</minExtendsSize>
<logging>true</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<autoSegmentMgmt>false</autoSegmentMgmt>
<bigfile>false</bigfile>
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf"/>
</datafilesList>
</TablespaceAttributes>
<TablespaceAttributes id="TEMP" con_id="0">
<temporary>true</temporary>
<defaultTemp>true</defaultTemp>
<undo>false</undo>
<local>true</local>
<blockSize>8192</blockSize>
<allocation>2</allocation>
<uniAllocSize unit="KB">1024</uniAllocSize>
<initSize unit="KB">1024</initSize>
<increment unit="KB">1024</increment>
<incrementPercent>0</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>-1</maxExtends>
<minExtendsSize unit="KB">1024</minExtendsSize>
<logging>false</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<autoSegmentMgmt>false</autoSegmentMgmt>
<bigfile>false</bigfile>
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf"/>
</datafilesList>
</TablespaceAttributes>
<TablespaceAttributes id="UNDOTBS1" con_id="0">
<temporary>false</temporary>
<defaultTemp>false</defaultTemp>
<undo>true</undo>
<local>true</local>
<blockSize>8192</blockSize>
<allocation>1</allocation>
<uniAllocSize unit="KB">-1</uniAllocSize>
<initSize unit="KB">64</initSize>
<increment unit="KB">0</increment>
<incrementPercent>0</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>2147483645</maxExtends>
<minExtendsSize unit="KB">64</minExtendsSize>
<logging>true</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<autoSegmentMgmt>false</autoSegmentMgmt>
<bigfile>false</bigfile>
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf"/>
</datafilesList>
</TablespaceAttributes>
<TablespaceAttributes id="USERS" con_id="0">
<temporary>false</temporary>
<defaultTemp>false</defaultTemp>
<undo>false</undo>
<local>true</local>
<blockSize>8192</blockSize>
<allocation>1</allocation>
<uniAllocSize unit="KB">-1</uniAllocSize>
<initSize unit="KB">64</initSize>
<increment unit="KB">0</increment>
<incrementPercent>0</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>2147483645</maxExtends>
<minExtendsSize unit="KB">64</minExtendsSize>
<logging>true</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<autoSegmentMgmt>true</autoSegmentMgmt>
<bigfile>false</bigfile>
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf"/>
</datafilesList>
</TablespaceAttributes>
<RedoLogGroupAttributes id="1">
<reuse>false</reuse>
<fileSize unit="KB">204800</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">204800</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">204800</fileSize>
<Thread>1</Thread>
<member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
</RedoLogGroupAttributes>
</StorageAttributes>
</DatabaseTemplate>
그 후 다음과 같은 명령으로 스크립트를 생성했는데, 이 때 /dev/shm 볼륨에 여유 공간이 없으면 자동 메모리 관리 옵션을 적용할 수 없어 스크립트 생성이 되지 않아 주의가 필요하다.
[oracle@enp0s3 templates]$ dbca -silent -generateScripts -gdbName orcl -templateName My_New_Template.dbt
DB 작업 준비
4% 완료
Oracle 인스턴스 생성 및 시작 중
5% 완료
8% 완료
데이터베이스 파일 생성 중
12% 완료
데이터 딕셔너리 뷰 생성 중
13% 완료
15% 완료
17% 완료
18% 완료
20% 완료
23% 완료
Oracle JVM
29% 완료
35% 완료
40% 완료
42% 완료
Oracle Text
43% 완료
45% 완료
46% 완료
Oracle Multimedia
58% 완료
Oracle OLAP
62% 완료
Oracle Spatial
69% 완료
Oracle Label Security
77% 완료
Oracle Database Vault
85% 완료
데이터베이스 생성 완료 중
86% 완료
87% 완료
88% 완료
사후 구성 작업 실행 중
100% 완료
스크립트 "/u01/app/oracle/admin/orcl/scripts" 생성을 성공했습니다.
자세한 내용은 로그 파일 "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl4.log"을(를) 참조하십시오.
스크립트 생성 결과로 데이터베이스를 생성하는 데 필요한 스크립트와 .sql 파일이 생성되는데 목록은 다음과 같다.
[oracle@enp0s3 templates]$ ls -la /u01/app/oracle/admin/orcl/scripts
합계 68
drwxr-x---. 2 oracle oinstall 4096 11월 18 11:21 .
drwxr-x---. 3 oracle oinstall 21 11월 18 11:21 ..
-rw-r-----. 1 oracle oinstall 1243 11월 18 11:21 CreateDB.sql
-rw-r-----. 1 oracle oinstall 824 11월 18 11:21 CreateDBCatalog.sql
-rw-r-----. 1 oracle oinstall 412 11월 18 11:21 CreateDBFiles.sql
-rw-r-----. 1 oracle oinstall 504 11월 18 11:21 JServer.sql
-rw-r-----. 1 oracle oinstall 556 11월 18 11:21 context.sql
-rw-r-----. 1 oracle oinstall 211 11월 18 11:21 cwmlite.sql
-rw-r-----. 1 oracle oinstall 325 11월 18 11:21 datavault.sql
-rw-r-----. 1 oracle oinstall 1799 11월 18 11:21 init.ora
-rw-r-----. 1 oracle oinstall 206 11월 18 11:21 interMedia.sql
-rw-r-----. 1 oracle oinstall 208 11월 18 11:21 labelSecurity.sql
-rw-r-----. 1 oracle oinstall 831 11월 18 11:21 lockAccount.sql
-rwxr-xr-x. 1 oracle oinstall 735 11월 18 11:21 orcl.sh
-rwxr-xr-x. 1 oracle oinstall 949 11월 18 11:21 orcl.sql
-rw-r-----. 1 oracle oinstall 215 11월 18 11:21 ordinst.sql
-rw-r-----. 1 oracle oinstall 721 11월 18 11:21 postDBCreation.sql
-rw-r-----. 1 oracle oinstall 199 11월 18 11:21 spatial.sql
아래는 그 중 orcl.sh 파일 내용이다.
#!/bin/sh
OLD_UMASK=`umask`
umask 0027
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/app/oracle/admin/orcl/dpdump
mkdir -p /u01/app/oracle/admin/orcl/pfile
mkdir -p /u01/app/oracle/audit
mkdir -p /u01/app/oracle/cfgtoollogs/dbca/orcl
mkdir -p /u01/app/oracle/oradata/ORCL
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1/dbs
umask ${OLD_UMASK}
PERL5LIB=$ORACLE_HOME/rdbms/admin:$PERL5LIB; export PERL5LIB
ORACLE_SID=orcl; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH; export PATH
echo /etc/oratab에 추가해야 할 항목: orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
/u01/app/oracle/product/19.0.0/dbhome_1/bin/sqlplus /nolog @/u01/app/oracle/admin/orcl/scripts/orcl.sql
아래는 그 중 orcl.sql 파일 내용이다.
set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host /u01/app/oracle/product/19.0.0/dbhome_1/bin/orapwd file=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapworcl force=y format=12
@/u01/app/oracle/admin/orcl/scripts/CreateDB.sql
@/u01/app/oracle/admin/orcl/scripts/CreateDBFiles.sql
@/u01/app/oracle/admin/orcl/scripts/CreateDBCatalog.sql
@/u01/app/oracle/admin/orcl/scripts/JServer.sql
@/u01/app/oracle/admin/orcl/scripts/context.sql
@/u01/app/oracle/admin/orcl/scripts/ordinst.sql
@/u01/app/oracle/admin/orcl/scripts/interMedia.sql
@/u01/app/oracle/admin/orcl/scripts/cwmlite.sql
@/u01/app/oracle/admin/orcl/scripts/spatial.sql
@/u01/app/oracle/admin/orcl/scripts/labelSecurity.sql
@/u01/app/oracle/admin/orcl/scripts/datavault.sql
@/u01/app/oracle/admin/orcl/scripts/lockAccount.sql
@/u01/app/oracle/admin/orcl/scripts/postDBCreation.sql
그래서 $ ./orcl.sh라 이름 붙인 스크립트를 실행하면 필수 디렉토리를 생성하고 orcl.sql을 실행한다. 그리고 orcl.sql은 다시 CreateDB.sql을 포함한 여러 sql 스크립트를 실행하여 데이터베이스를 생성한다. 이 때 커맨드 라인에 생성과 관련된 수많은 프롬프트가 출력되고, 생성이 완료된 후 동일한 디렉토리에 각각의 sql 스크립트에 대한 로그 파일이 생성되어 출력되었던 내용을 확인할 수 있게 된다.
다음은 CreateDB.sql 파일 내용이다.
SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /u01/app/oracle/admin/orcl/scripts/CreateDB.log append
startup nomount pfile="/u01/app/oracle/admin/orcl/scripts/init.ora";
CREATE DATABASE "orcl"
MAXINSTANCES 8
MAXLOGHISTORY 292
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u01/app/oracle/oradata/ORCL/system01.dbf' SIZE 900M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE 32767M
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/ORCL/sysaux01.dbf' SIZE 520M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE 32767M
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/app/oracle/oradata/ORCL/temp01.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE 32767M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u01/app/oracle/oradata/ORCL/undotbs01.dbf' SIZE 335M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE 32767M
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/ORCL/redo01.log') SIZE 200M,
GROUP 2 ('/u01/app/oracle/oradata/ORCL/redo02.log') SIZE 200M,
GROUP 3 ('/u01/app/oracle/oradata/ORCL/redo03.log') SIZE 200M
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off
여기 파라미터 파일인 pfile에 대한 부분이 있는데, 해당 파일인 init.ora 내용은 다음과 같다.
##############################################################################
# Copyright (c) 1991, 2013 by Oracle Corporation
##############################################################################
###########################################
# NLS
###########################################
nls_language="AMERICAN"
nls_territory="KOREA"
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"
###########################################
# Miscellaneous
###########################################
compatible=19.0.0
diagnostic_dest=/u01/app/oracle
memory_target=1207959552
###########################################
# Database Identification
###########################################
db_name="orcl"
###########################################
# Security and Auditing
###########################################
audit_file_dest="/u01/app/oracle/admin/orcl/adump"
audit_trail=DB
remote_login_passwordfile=EXCLUSIVE
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1
###########################################
# Cache and I/O
###########################################
db_block_size=8192
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# File Configuration
###########################################
control_files=("/u01/app/oracle/oradata/ORCL/control01.ctl", "/u01/app/oracle/oradata/ORCL/control02.ctl")
###########################################
# Processes and Sessions
###########################################
processes=300