天天看点

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脚本来创建我们自己的数据库吧。