카테고리 없음

[오라클] 사일런트 모드로 스크립트 생성

Dong538 2021. 11. 25. 15:07

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="(&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="/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