oracle过程创建时间,深入解析Oracle数据库创建过程

28883355_201305161036191.jpg

安装前准备:

1.操作系统:red hat enterprise linux 5.4(此安装适用于oracle linux版本,本人已通过验证)

数据库版本:oracle 10g 10.2.0.1

内存:1024MB

cpu:1个

虚拟机:vmware workstation 9.0.0

(以上安装在虚拟机上完成,与实际生产环境略有不同。)

2.配置linux操作系统环境,符合oracle软件的安装要求,这个是基础配置,这里要非常仔细才能不出现异常问题。

3.安装步骤:

vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648(根据实际的物理内存大小分配)

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

sysctl -p 是配置生效

vi /etc/security/limits.conf

oracle              soft    nproc(进程的最大数目)   2047

oracle              hard    nproc   16384

oracle              soft    nofile(打开文件的最大数目)  1024

oracle              hard    nofile  65536

官方推荐的设置,此设置已经够用了,无需变动。提高 Linux 系统对oracle软件的性能优势,增加 oracle 用户的 shell 的限制。

vi /etc/pam.d/login  添加

session    required     /lib/security/pam_limits.so

session    required     pam_limits.so(添加pam模块认证,优化用户连接认证)

创建oracle用户和组

# groupadd oinstall

# groupadd dba

# useradd -g oinstall -G dba oracle

# passwd oracle

# id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

# mkdir -p /u01/app/oracle

# chown -R oracle:oinstall /u01

# chmod -R 775 /u01

设置oracle用户的环境变量

在oracle用户下vi .bash_profile

export TMPDIR=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/db_1

export ORACLE_SID=nndb

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022

使配置生效: . ./.bash_profile或者source .bash_profile

此设置也是官方推荐的基础变量,在此基础上可以添加其他变量看用户是否有偏好的设置而定,如有需要可以自己设置。

在这里已经满足oracle软件所需的环境变量了。

4.安装oracle 10g R2软件

oracle用户解压和root用户都行

unzip 10201_database_linux32.zip

cd database目录

./runInstaller.sh(oracle用户执行)这一步,大家可以再vnc或者Xmanager第三方图形工具界面安装,看个人嗜好了。。弹出安装图形界面后,就一步一步下一步,只要path正确就行,安装途中不

选择安装db create。选择only install software。

生成密码文件:在$ORACLE_HOME/dbs/下命令行生成orapwd file=orapwnndb.ora password=oracle entries=30

由于我们是手工创建数据库,那么我们可以按照自己的分配方式去将日志文件、数据文件、控制文件等一些文件进行放置,但是需要创建相应的目录,以便管理,比如我创建以下目录

mkdir –p $ORACLE_BASE/oradata/cfile      控制文件

mkdir –p $ORACLE_BASE/oradata/dfile      数据文件

mkdir –p $ORACLE_BASE/oradata/lfile       重做日志

mkdir –p $ORACLE_BASE/admin/nndb/adump    审计信息

mkdir –p $ORACLE_BASE/admin/nndb/cdump    一般是用来日志应用程序的

mkdir –p $ORACLE_BASE/admin/nndb/udump    前台手动trace的

mkdir –p $ORACLE_BASE/admin/nndb/bdump    后台进程trace 和alert log

当然上面的文件路径,是根据个人习惯或者管理情况所自己建立的。

生成参数文件pfile,修改初始化参数文件

参数文件在$ORACLE_HOME/dbs下init.ora模板文件,由它生成我们需要的参数文件,通过以下命令:

more init.ora|grep -v ^$ |grep -v ^# > initnndb.ora(导出的文件名格式为initSID.ora)

vi initnndb.ora

db_name = nndb

db_block_size = 8192

pga_aggregate_target = 30M

db_cache_size = 80M

shared_pool_size = 60M

parallel_threads_per_cpu = 4

optimizer_mode = choose

star_transformation_enabled = true

db_file_multiblock_read_count = 16

query_rewrite_enabled = true

query_rewrite_integrity = trusted

background_dump_dest = $ORACLE_BASE/admin/nndb/bdump

user_dump_dest = $ORACLE_BASE/admin/nndb/udump

core_dump_dest = $ORACLE_BASE/admin/nndb/cdump

control_files = $ORACLE_BASE/oradata/cfile/control01.ctl

undo_management = auto

undo_tablespace = rtbs

配置完成后,sqlplus下开启实例startup nomount。后我们必须要在生成一份动态参数文件spfile,sql命令行下create spfile from pfile。

接下来就是我们建库的准备了,我们不用dbca图形界面,为了更好的学习oracle软件的物理结构,我们用手工建库

写一个sql脚本。Create DataBase例句,可以在ORACLE官方手册中找到,直接查询关键字:creating an oracle database,该文档下的Step7:Issue the CREATE DATABASE Statement,就能找到例句了

CREATE DATABASE nndb

USER SYS IDENTIFIED BY oracle

USER SYSTEM IDENTIFIED BY oracle

LOGFILE GROUP 1 ('/u01/app/oracle/oradata/lfile/redo01.log') SIZE 100M,

GROUP 2 ('/u01/app/oracle/oradata/lfile/redo02.log') SIZE 100M,

GROUP 3 ('/u01/app/oracle/oradata/lfile/redo03.log') SIZE 100M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '/u01/app/oracle/oradata/dfile/system01.dbf' SIZE 500M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '/u01/app/oracle/oradata/dfile/sysaux01.dbf' SIZE 500M REUSE

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/u01/app/oracle/oradata/dfile/temp01.dbf'

SIZE 100M REUSE

UNDO TABLESPACE rtbs

DATAFILE '/u01/app/oracle/oradata/dfile/rtbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

其实,这些个命令行的内容和控制文件的内容相符。大家可以理解数据库的物理结构组成部分核心的东西有哪些了!!!!!完成后,我们的实例才是由nomount到open的过程实现了,数据库可以正常使用。

执行catalog.sql创建数据库所需要使用的数据字典和相关存储过程

SQL>@?/rdbms/admin/catalog.sql

执行catproc.sql创建各种PL/SQL块的声明,包括过程、函数、数据类型、常量定义、并不是实际的代码:

SQL>@?/rdbms/admin/catproc.sql(这个时间会比较长,耐心等就可以啦!)

做到这里,手工创建数据库就基本OK了,下面就是在该数据库上进行相关操作

数据库验证:

查看数据库的状态:select status from v$instance; 数据库实例的状态

desc v$tablespace; 表空间的排序

select name from v$datafile; 数据文件查看

做一个全库备份,利用rman工具:

run{

allocate channel d1 type disk;

backup full database format '/u01/app/oracle/rmanbak/full_bk1_%u%p%s.rmn'

include current controlfile;

sql 'alter system archive log current';

backup archivelog all format '/u01/app/oracle/rmanbak/arch_bk1_%u%p%s.rmn'

delete all input;

release channel d1;

}

最后我们就完整的做完手工建库啦!!手工建库对于dba来说手工建库是很有必要的,它帮我们深刻的认识到了oracle在创建数据库都需要什么来完成工作的,物理架构了然于胸啊!

The End--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值