天天看點

OCP認證考試指南(3):建立Oracle資料庫(2)

下面我們來學習怎麼在Linux環境下建立一個新資料庫。

一、Database Configuration Assistant(DBCA)建立資料庫

1、以Oracle使用者登入到Linux系統。

2、改下顯示編碼吧,要不然出現的提示框界面會和Oracle安裝時候一樣。改編碼指令:

?[Copy to clipboard] View Code BASH

$ LANG="en_US"      

3、由于先前我們已經把環境變量設定好了,是以在這直接敲指令。

?[Copy to clipboard] View Code BASH

$ dbca      

4、出現提示框界面,讓我們一步步來。(因為在Linxu環境下截不到圖,這裡用文字表達)

5、在提示框Select the operation you wish to perform内選中 Create a database。

6、在提示框Select a template 内選中Custom database。

7、将Global database name 和 SID 都指定為ocp(可以自己寫資料庫名和執行個體名)。

8、選中複選框Configure the database with enterprise manager 與 Use database control for database management,不要選中複選框Use grid control for database management,不要選中複選框Enable email notification 或 Enable daily backup。

9、選中複選框Use the same password for all accounts,同時輸入密碼。(這裡自己填吧)

10、選擇File System 作為存儲機制。

11、選擇Use file locations from template作為存放資料庫檔案的位置。

12、選中複選框Specify flash recovey area,不過不要選中複選框Enable archiving。

13、選中複選框Enterprise Manager Repository。在提示框Standard Database Components内取消所有複選框的選中狀态。

14、保留Memory、Sizing、Character Sets和Connection Mode的預設設定。

15、保留Database Storage的預設設定。

16、選中複選框Create database和Generate database creation scripts(這個路徑,有興趣可以記下來,等下用),取消複選框Save as a database template的選中狀态。

17、給出了建立執行個體和資料庫的詳細資訊,OK。

18、開始建立。

19、建立完成以後,我們要設定環境變量的SID。

?[Copy to clipboard] View Code BASH

$ export ORACLE_SID=ocp      

20、這時候建立資料庫過程完全完成。我們可以進行連接配接并查詢。

?[Copy to clipboard] View Code SQL

$ sqlplus
 
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Sep 18 00:26:52 2008
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
Enter user-name: / as sysdba
Connected to an idle instance.
 
SQL> select name,open_mode from v$database;
 
NAME      OPEN_MODE
--------- ----------
OCP       READ WRITE
           

二、利用腳本手動建立資料庫

在建立之前,先看下建庫的腳本吧。在哪?你問我?。。。。剛剛用DBCA建立資料庫的時候最後一步,不是有嗎,呵呵。

找到/ora01/db/oracle/admin/ocp/script 這個檔案夾,裡面就是資料庫的建立腳本。

init.ora:參數檔案。很多參數,隻說一句,要了解所有參數!

?[Copy to clipboard] View Code INI

###########################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
###########################################
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name=ocp
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=/ora01/db/oracle/admin/ocp/bdump
core_dump_dest=/ora01/db/oracle/admin/ocp/cdump
user_dump_dest=/ora01/db/oracle/admin/ocp/udump
 
###########################################
# File Configuration
###########################################
control_files=("/ora01/db/oracle/oradata/ocp/control01.ctl",
"/ora01/db/oracle/oradata/ocp/control02.ctl",
"/ora01/db/oracle/oradata/ocp/control03.ctl")
db_recovery_file_dest=/ora01/db/oracle/flash_recovery_area
db_recovery_file_dest_size=2147483648
 
###########################################
# Job Queues
###########################################
job_queue_processes=10
 
###########################################
# Miscellaneous
###########################################
compatible=10.2.0.1.0
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# SGA Memory
###########################################
sga_target=262144000
 
###########################################
# Security and Auditing
###########################################
audit_file_dest=/ora01/db/oracle/admin/ocp/adump
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=87031808
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1      

ocp.sql:初始化參數之後會調用這個腳本,請看下面腳本代碼最後會調用另外5個腳本。

?[Copy to clipboard] View Code BASH

set verify off
PROMPT specify a password for sys as parameter 1;
DEFINE sysPassword = &1
PROMPT specify a password for system as parameter 2;
DEFINE systemPassword = &2
PROMPT specify a password for sysman as parameter 3;
DEFINE sysmanPassword = &3
PROMPT specify a password for dbsnmp as parameter 4;
DEFINE dbsnmpPassword = &4
host /ora01/db/oracle/product/10.2.0/db/bin/orapwd
file=/ora01/db/oracle/product/10.2.0/db/dbs/orapwora
password=&&sysPassword force=y
@/ora01/db/oracle/admin/ocp/scripts/CreateDB.sql
@/ora01/db/oracle/admin/ocp/scripts/CreateDBFiles.sql
@/ora01/db/oracle/admin/ocp/scripts/CreateDBCatalog.sql
@/ora01/db/oracle/admin/ocp/scripts/emRepository.sql
@/ora01/db/oracle/admin/ocp/scripts/postDBCreation.sql      

CreateDB.sql:第一個腳本,首先使用用于密碼檔案身份驗證的文法來連接配接執行個體。接着,使用前面的參數檔案,通過執行startup nomount指令在内在中建構執行個體。完成後,該SQL檔案會建立一個資料庫,我們可以得到一個在記憶體中運作的執行個體與一個資料庫。

?[Copy to clipboard] View Code SQL

connect SYS/&&sysPassword as SYSDBA
set echo on
spool /ora01/db/oracle/admin/ocp/scripts/CreateDB.log
startup nomount pfile="/ora01/db/oracle/admin/ocp/scripts/init.ora";
CREATE DATABASE "ocp"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/ora01/db/oracle/oradata/ocp/system01.dbf'
SIZE 300M REUSE AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/ora01/db/oracle/oradata/ocp/sysaux01.dbf'
SIZE 120M REUSE AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/ora01/db/oracle/oradata/ocp/temp01.dbf'
SIZE 20M REUSE AUTOEXTEND ON NEXT  640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1"
DATAFILE '/ora01/db/oracle/oradata/ocp/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT  5120K M
AXSIZE UNLIMITED
CHARACTER SET WE8ISO8859P1
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/ora01/db/oracle/oradata/ocp/redo01.log') SIZE 51200K,
GROUP 2 ('/ora01/db/oracle/oradata/ocp/redo02.log') SIZE 51200K,
GROUP 3 ('/ora01/db/oracle/oradata/ocp/redo03.log') SIZE 51200K
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM
IDENTIFIED BY "&&systemPassword";
spool off
           
  • CreateDBfiles.sql:會建立一個表空間,這個表空間被用作為使用者資料的預設存儲位置。
  • CreateDBcatalog.sql:會生成資料字典視圖與補充的PL/SQL程式包。
  • emRepository.sql:會生成Enterprise Manager Database Control工具。
  • postDBcreation.sql:會進行整理工作。

OK,看完了腳本,我們就來動手用SQL腳本來建立我們自己的資料庫吧。