这篇文章将为大家详细讲解有关怎样手工方式建立 ORACLE数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
通过dbca方式创建Oracle数据库是最常见的方法,除此之外如果对数据库的创建过程了解的话,亦可一步一步的通过命令行的方式完成数据库的创建。
现将在OEL4.8操作系统上手工创建Oracle数据库实例的方法记录在此,供参考。
1.手工建库前提条件
既然已经到了创建数据库实例的阶段,因此主机上的数据库软件需要事先创建完毕。
2.准备.bash_profile配置文件并确认环境变量
1)编辑.bash_profile文件
[oracle@secDB ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/sbin:/usr/local/bin
export PATH
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=secooler
export PATH=$ORACLE_HOME/bin:$PATH
需要设置的环境变量主要就是这三个:ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH
需要说明的是PATH变量的设置,需要将“$ORACLE_HOME/bin”写在“$PATH”之前,这样设置主要目的是:Oracle命令优先被选择。
2)使.bash_profile配置文件生效
[oracle@secDB ~]$ . ./.bash_profile
或
[oracle@secDB ~]$ source ./.bash_profile
3)确认ORACLE_SID等环境变量被正确设置
[oracle@secDB ~]$ env | grep -i sid
ORACLE_SID=secooler
[oracle@secDB ~]$ env | grep ORACLE_BASE
ORACLE_BASE=/u01/app/oracle
[oracle@secDB ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
3.在$ORACLE_BASE下创建所需的目录
1)创建四个转储目录
[oracle@secDB ~]$ cd $ORACLE_BASE
[oracle@secDB oracle]$ mkdir -p admin/secooler/adump
[oracle@secDB oracle]$ mkdir -p admin/secooler/bdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/cdump
[oracle@secDB oracle]$ mkdir -p admin/secooler/udump
2)创建存放数据文件、日志文件和控制文件的目录
[oracle@secDB oracle]$ mkdir -p oradata/secooler/dfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/lfile
[oracle@secDB oracle]$ mkdir -p oradata/secooler/cfile
3)创建备份介质存放的目录
[oracle@secDB oracle]$ mkdir -p rmanbak
4.生成密码文件
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
[oracle@secDB dbs]$ orapwd file=orapwsecooler password=change_on_install entries=10
5.创建所需的pfile和spfile
1)创建pfile文件并调整
我们根据Oracle安装软件$ORACLE_HOME/dbs目录下自带的init.ora来定制我们需要的pfile。
(1)进入到$ORACLE_HOME/dbs目录
[oracle@secDB ~]$ cd $ORACLE_HOME/dbs
(2)去掉默认init.ora文件中杂乱的内容,仅保留参数本身信息
[oracle@secDB dbs]$ cat init.ora |grep -v ^# |grep -v ^$ > initsecooler.ora
(3)调整initsecooler.ora参数内容
调整后的内容如下:
[oracle@secDB dbs]$ vi initsecooler.ora
db_name=secooler
db_files = 80 # SMALL
db_file_multiblock_read_count = 8 # SMALL
#db_block_buffers = 100 # SMALL
#shared_pool_size = 3500000 # SMALL
log_checkpoint_interval = 10000
processes = 50 # SMALL
parallel_max_servers = 5 # SMALL
log_buffer = 32768 # SMALL
max_dump_file_size = 10240 # limit trace file size to 5 Meg each
global_names = TRUE
#control_files = (ora_control1, ora_control2)
control_files = (/u01/app/oracle/oradata/secooler/cfile/ora_control1,/u01/app/oracle/oradata/secooler/cfile/ora_control2,/u01/app/oracle/oradata/secooler/cfile/control3)
sga_max_size=300M
sga_target=300M
~
~
较之系统自带的参数文件做了如下修改动作:
a.修改db_name参数为
b.注销掉参数db_block_buffers、shared_pool_size
c.修改controlfile参数
c.增加sga_max_size和sga_target参数,大小设置为300M。
2)创建spfile并调整
(1)使用sqlplus命令登陆创建spfile
[oracle@secDB dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:44:55 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create spfile from pfile;
(2)启动数据库到nomount状态,调整spfile参数
a.启动数据库到nomount状态
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
b.需要修改的spfile参数如下
SQL> alter system set undo_management=auto scope=spfile;
SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/secooler/dfile' scope=spfile;
SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/oradata/secooler/lfile' scope=spfile;
SQL> alter system set job_queue_processes =5 scope=spfile;
SQL> alter system set background_dump_dest='/u01/app/oracle/admin/secooler/bdump' scope=spfile;
SQL> alter system set core_dump_dest= '/u01/app/oracle/admin/secooler/cdump' scope=spfile;
SQL> alter system set user_dump_dest='/u01/app/oracle/admin/secooler/udump' scope=spfile;
SQL> alter system set audit_file_dest='/u01/app/oracle/admin/secooler/adump' scope=spfile;
c.停起数据库到nomount状态使spfile调整生效
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 96470416 bytes
Database Buffers 213909504 bytes
Redo Buffers 2973696 bytes
6.创建数据库
1)编写create database脚本
(1)获取create database的参考脚本
在Oracle文档中中有一个供参考的创建语句
(1)进入到Oracle官方文档的首页:http://www.oracle.com/pls/db102/homepage;
(2)点击“Books”;
(3)在列出来的参考书目中的找到第5本书“Administrator's Guide”,点击“HTML”进入;
(4)搜索关键字“create database statement”,位到“Step 7: Issue the CREATE DATABASE Statement”,点击进入便可以得到创建数据库的参考脚本;
2)调整参考脚本中的内容为我所用
(1)需要调整的内容
数据库名字
SYS和SYSTEM密码
路径名修改,注意一定要准确全面
表空间tbs_1后面给出具体数据文件信息
(2)调整后的脚本如下
CREATE DATABASE secooler
USER SYS IDENTIFIED BY change_on_install
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/secooler/lfile/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/secooler/lfile/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/secooler/lfile/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/secooler/dfile/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
3)使用上面的create database脚本创建数据库
脚本执行之后,此时数据库状态已经为OPEN状态。
SQL> select status from v$instance;
STATUS
------------
OPEN
4)设置数据文件和临时文件为自动扩展
(1)获得所有数据文件和临时文件信息
SQL> col name for a60
SQL> select file#,name from v$datafile union select file#,name from v$tempfile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u01/app/oracle/oradata/secooler/dfile/system01.dbf
1 /u01/app/oracle/oradata/secooler/dfile/temp01.dbf
2 /u01/app/oracle/oradata/secooler/dfile/undotbs01.dbf
3 /u01/app/oracle/oradata/secooler/dfile/sysaux01.dbf
4 /u01/app/oracle/oradata/secooler/dfile/tbs_1.dbf
(2)将其调整为自动扩展
SQL> alter database datafile 1 autoextend on;
SQL> alter database datafile 2 autoextend on;
SQL> alter database datafile 3 autoextend on;
SQL> alter database datafile 4 autoextend on;
SQL> alter database tempfile 1 autoextend on;
7.执行catalog.sql和catproc.sql脚本创建数据字典视图并配置
注意这两个脚本需要以SYSDBA身份来执行
[oracle@secDB ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 7 22:17:18 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/catalog.sql
大约需要5分钟
SQL> @?/rdbms/admin/catproc.sql
大约需要10分钟
8.小结
手工创建数据库相比dbca来说繁琐了很多,不过整个安装过程体现的是Oracle的运行原理,对于理解数据库细节来说有很大的裨益。
关于怎样手工方式建立 ORACLE数据库就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。