- OCA/OCP認證考試指南全冊(第3版) Oracle Database 12c(1Z0-061,1Z0-062,1Z0-063) (計算機與信息)
- (美)John Watson等
- 2274字
- 2021-03-26 13:10:11
2.2 使用DBCA生成數據庫創建腳本
沒有理由不使用DBCA交互式創建數據庫,但在許多情況下,最好通過命令行創建數據庫。為什么?原因可能如下:
● 服務器可能沒有圖形功能。
● 更改控制功能可能需要測試過的腳本。
● 可能需要創建許多相同的數據庫。
● 不希望坐在屏幕前響應提示。
無論什么原因,如果有腳本,手工創建數據庫都很簡單。編寫腳本的最簡單方式是讓DBCA完成。
2.2.1 生成腳本
要生成腳本,可以啟動DBCA,進入對話框,選擇合適的選項。在步驟10,選擇對應的復選框,再選擇一個目錄。默認位置是ORACLE_BASE下面。在Windows上,數據庫orcl121的一般位置如下:
c:\app\oracle\admin\orcl121\scripts
在Linux上,一般位置如下:
/u01/app/oracle/admin/orcl121/scripts
無論什么平臺,腳本的結構都相同:以數據庫命名的外殼腳本(例如,對于Linux,是orcl121.sh;對于Windows,是orcl121.bat)。該腳本執行一些操作系統(OS)任務,再啟動SQL*Plus,以運行SQL腳本(稱為oracle121.sql)。SQL腳本完成數據庫創建的剩余工作。研究這些腳本和它們調用的腳本是有益的。
2.2.2 創建腳本
起點是外殼腳本??纯碙inux版本示例:
#! /bin/sh OLD_UMASK='umask' umask 0027 mkdir -p /u01/app/oracle/admin/orcl121/adump mkdir -p /u01/app/oracle/admin/orcl121/dpdump mkdir -p /u01/app/oracle/admin/orcl121/pfile mkdir -p /u01/app/oracle/audit mkdir -p /u01/app/oracle/cfgtoollogs/dbca/orcl121 mkdir -p /u01/app/oracle/fast_recovery_area mkdir -p /u01/app/oracle/fast_recovery_area/orcl121 mkdir -p /u01/app/oracle/oradata/orcl121 mkdir -p /u01/app/oracle/product/12.1.0/dbhome_1/dbs umask ${OLD_UMASK} ORACLE_SID=orcl121; export ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH; export PATH echo You should Add this entry in the /etc/oratab: orcl121:/u01/app/oracle/product/12.1.0/dbhome_1:Y /u01/app/oracle/product/12.1.0/dbhome_1/bin/sqlplus /nolog @/u01/app/oracle/admin/orcl121/scripts/orcl121.sql
這會通過DBCA對話框提供的、ORACLE_BASE和ORACLE_HOME環境變量的值,或者默認值,利用合適的訪問權限來創建幾個目錄。接著調用SQL *Plus 啟動SQL腳本oracle121.sql。Windows 上的變化是調用ORADIM實用程序,在運行實例的賬戶下創建Windows服務。
根據在DBCA對話框中選擇的選項,生成的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/12.1.0/dbhome_1/bin/orapwd file=/u01/app/oracle/ product/12.1.0/dbhome_1/dbs/orapworcl121 force=y extended=y @/u01/app/oracle/admin/orcl121/scripts/CreateDB.sql @/u01/app/oracle/admin/orcl121/scripts/CreateDBFiles.sql @/u01/app/oracle/admin/orcl121/scripts/CreateDBCatalog.sql @/u01/app/oracle/admin/orcl121/scripts/sampleSchema.sql @/u01/app/oracle/admin/orcl121/scripts/apex.sql @/u01/app/oracle/admin/orcl121/scripts/postDBCreation.sql @/u01/app/oracle/admin/orcl121/scripts/lockAccount.sql
ACCEPT命令提示輸入SYS和SYSTEM模式的密碼。接著,腳本調用一個主外殼程序,運行orapwd實用程序。這個實用程序用平臺特定的名稱創建外部密碼文件。在Linux上,它是$ORACLE_ HOME/dbs/orapw<DBNAME>(其中<DBNAME>是數據庫的名稱);在Windows上,它是% ORACLE_ HOME%\database\PWD<DBNAME>.ora。
下面是一組對其他SQL腳本的調用,從CreateDB.sql開始:
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/orcl121/scripts/CreateDB.log append startup nomount pfile="/u01/app/oracle/admin/orcl121/scripts/init.ora"; CREATE DATABASE "orcl121" MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE '/u01/app/oracle/oradata/orcl121/system01.dbf' SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl121/sysaux01.dbf' SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/app/oracle/oradata/orcl121/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u01/app/oracle/oradata/orcl121/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl121/redo01.log') SIZE 51200K, GROUP 2 ('/u01/app/oracle/oradata/orcl121/redo02.log') SIZE 51200K, GROUP 3 ('/u01/app/oracle/oradata/orcl121/redo03.log') SIZE 51200K USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword"; spool off
第二行使用提供的密碼用SYS用戶的身份進行連接。第5行使用參數文件init.ora以非裝載模式啟動數據庫。這個文件包含的參數是默認設置的,或者是在DBCA對話框中指定的。下一個命令(一直到文件尾)創建了數據庫。
提示:
記住模式:nomount命令表示“建立內存結構,啟動進程?!?/p>
CREATE DATABASE “oracle121”命令行的后面是一些限制的設置 ( 例如MAXDATAFILES=100表示這個數據庫限制為100個數據文件),之后是4個表空間的子句:
● SYSTEM表空間(存儲數據字典)在數據文件system01.dbf中,其大小為700MB。
● SYSAUX表空間(不與數據字典關聯、但關系緊密的對象)在數據文件sysaux01.dbf中,其大小為550MB。
● 默認的臨時表空間TEMP(用于臨時數據——會話需要的空間,僅持續較短時間)在臨時文件temp01.dbf中,其大小為20MB。撤消表空間UNDOTBS1(用于撤消段,是確保事務持續性所必須的)使用數據文件undotbs01.dbf,其大小為200MB。
接著指定數據庫和語言的字符集。在例子中指定了Unicode。LOGFILE部分指定,數據庫應有3個聯機日志文件組,每個組都包含一個50MB的文件(日志文件成員)。最后,設置SYS和SYSTEM的密碼。
這個數據庫創建目錄僅運行了幾分鐘。它只是創建了數據庫所需的最小結構,最重要的是創建了數據字典。然后,控制權返回給調用的SQL腳本,它(在本例中)啟動了更多的腳本。
● CreateDBFiles.sql創建了表空間USERS,用作默認的表空間,以存儲永久對象(如表)。
● CreateDBCatalog.sql調用一組腳本,根據數據字典和各種提供的PL/SQL包,生成需要的視圖。
● 接著幾個腳本(JServer.sql到apex.sql)生成在DBCA對話框中選擇的各個選項。
● postDBCreation.sql在創建后立即運行所有必要的操作,例如應用綁定的包,把pfile轉換為spfile。
● lockAccount.sql鎖定所有預先注冊的賬戶(有幾個例外),最后重新啟動數據庫。
根據DBCA對話框中的選項,生成的腳本及其內容互不相同。例如,如果第3步選擇從模板中創建數據庫,整個過程就簡單許多,因為數據庫不需要創建,大多數工作都通過調用RMAN Recovery Manager過程來完成,實際上是在模板中從一個備份中恢復數據庫。
2.2.3 初始化參數文件
要啟動數據庫實例,DBCA必須創建一個初始化參數文件。選擇創建數據庫或生成腳本的選項時,就會生成該文件。該文件在其他腳本所在的目錄下生成,在CreateDB.sql腳本的STARTUP命令下指定。
startup nomount pfile="/u01/app/oracle/admin/orcl121/scripts/init.ora";
下面是練習2-1的對話框生成的文件(為簡潔起見,刪除了注釋):
db_block_size=8192 open_cursors=300 db_domain="" db_name="orcl121" control_files=("/u01/app/oracle/oradata/orcl121/control01.ctl", "/u01/app/oracle/fast_recovery_area/orcl121/control02.ctl") db_recovery_file_dest="/u01/app/oracle/fast_recovery_area" db_recovery_file_dest_size=5061476352 compatible=12.0.0.0.0 diagnostic_dest=/u01/app/oracle processes=300 sga_target=503316480 audit_file_dest="/u01/app/oracle/admin/orcl121/adump" audit_trail=db remote_login_passwordfile=EXCLUSIVE dispatchers="(PROTOCOL=TCP) (SERVICE=orcl121XDB)" pga_aggregate_target=167772160 undo_tablespace=UNDOTBS1
所有這些參數都在后面的章節中討論。該文件在上百個參數中僅指定了16個,是運行典型數據庫所需的最少參數集。根據環境、規模和性能的要求,后面將添加更多的參數。
練習2-2 使用DBCA生成數據庫創建腳本
使用DBCA生成幾組數據庫創建腳本。盡量多重復幾次,每次都提供不同的數據庫名和SID,選擇不同的選項。下面是要執行的步驟:
(1) 啟動DBCA。響應提示,如下所示:
A.選擇Create Database單選按鈕。單擊Next按鈕。
B.選擇Advanced Mode 單選按鈕。如果選擇Create A Database With Default Configuration,就不會顯示生成腳本的提示。單擊Next按鈕。
C.選擇General Purpose Or Transaction Processing單選按鈕。單擊Next按鈕。
D.把Global Database Name和SID值都指定為gpdb。單擊Next按鈕。
E.取消選擇所有選項,單擊Next按鈕。
F.輸入密碼Oracle121。單擊Next按鈕。
G.在Storage Type下拉框中選擇File System,其他使用默認值。單擊Next按鈕。
H.使用所有默認值,單擊Next按鈕。
I.使用所有默認值,單擊Next按鈕。
J.取消選擇Create Database和Save As A Database Template復選框,選擇Generate Database Creation Scripts復選框。注意創建腳本的目錄。單擊Next按鈕。
K.這一步不需要任何輸入。
L.研究匯總。注意從模板中安裝,將包含上一練習提到的所有選項,還給不同的參數指定了值。單擊Finish按鈕。
M.生成腳本,單擊OK按鈕,再單擊Close按鈕。
(2) 研究腳本。
嘗試逆向工程創建過程。注意使用模板,使該過程簡單許多。比較這個練習和上個練習生成的腳本。
(3) 重復。
重復這個練習,使用不同的設置,熟悉DBCA對話框和它生成的腳本非常重要。
- 國家職業資格考試《職業道德》過關必做2000題(含歷年真題)
- 汽車駕照理論考試必備
- 社會工作實務(中級)2017年考點+精講
- 銀行業專業人員初級職業資格考試專用教材:個人理財(新大綱)
- 物業管理師《物業管理基本制度與政策》過關必做1200題(含歷年真題)
- 飯店服務與管理英語 餐飲服務與管理
- 2019年出版專業職業資格考試《出版專業理論與實務(初級)》復習全書【核心講義+歷年真題分章詳解】
- 2020年新疆維吾爾自治區社區工作者公開招聘考試《行政職業能力》專項題庫【真題精選+章節題庫+模擬試題】
- 輕松考取駕駛證
- OCP認證考試指南(1ZO-063) Oracle Database 12c高級管理
- 魅力絲路:探尋歐亞名校之旅
- 企業法律顧問《綜合法律知識》歷年真題與模擬試題詳解
- 公共營養師(國家職業資格四級)過關必做習題集(含歷年真題)
- 2020年山東省社區工作者公開招聘考試《行政職業能力》專項題庫【真題精選+章節題庫+模擬試題】
- 2020年青海省社區工作者公開招聘考試《行政職業能力》專項題庫【真題精選+章節題庫+模擬試題】