在Solaris 10 ZFS上安装Oracle 9i

ZFS是SUN Solaris 10的下一代文件存储解决方案 , ZFS即Zettabyte File System , 也叫动态文件系统Dynamic File System, 是第一个128位文件系统 , 无限容量、自优化、数据永远保持一致,并且管理简单.
ZFS不仅支持基于文件系统方式的访问,也支持基于卷(裸设备)方式的访问,加上ZFS的不断完善和成熟,基本上可以取代传统的磁盘管理软件,如Solairs Volume Manager和Veritas Volume Manager.本文将介绍如何在Solaris 10 ZFS上安装Oracle 9i.
基本需求:
- 将Oracle程序文件安装在zfs文件系统上.
- 将数据库data file安装在zfs裸卷上.
step1. 创建pool和zfs文件系统及祼卷.
# zpool create ora_pool c0t4d0
# zfs create -V 210mora_pool/controlfile01_200m
# zfs create -V 210mora_pool/controlfile02_200m
# zfs create -V 210mora_pool/controlfile03_200m
# zfs create -V 4010m ora_pool/index01_4000m
# zfs create -V 410mora_pool/redo1_01_400m
# zfs create -V 410mora_pool/redo2_01_400m
# zfs create -V 410mora_pool/redo3_01_400m
# zfs create -V 810mora_pool/system_800m
# zfs create -V 1010m ora_pool/tools_1000m
# zfs create -V 4010m ora_pool/undotbs1_01_4000m
# zfs create -V 4010m ora_pool/users01_4000m
ZFS卷提供了类似于VxVM卷的路径名供引用:
/dev/zvol/[r]dsk//
# zfs create ora_pool/oracle
# zfs set mountpoint=/opt/oracle ora_pool/oracle
step2. 创建oracle用户及dba组 , 设置基本的环境变量.
# groupadd dba
# useradd -d /opt/oracle -g dba -s /bin/sh -m oracle
# passwd oracle
# ORACLE_BASE=/opt/oracle; export ORACLE_BASE
# ORACLE_HOME=$ORACLE_BASE/product/9.2; export ORACLE_HOME
# ORACLE_SID=ora9; export ORACLE_SID
# chown oracle:dba /dev/zvol/rdsk/ora_pool/*
# chmod 600 /dev/zvol/rdsk/ora_pool/*
step3. 基于项目管理方式 , 为oracle分配系统资源如最大共享内存、信号灯等.
# projadd -U oracle -p 1233 -c "oracle parameters setting" user.oracle
# projmod -a -K "project.max-shm-memory=(priv,17179869184,deny)" user.oracle (为物理内存的1/2 , 单位为字节)
# projmod -a -K "project.max-sem-ids=(priv,2000,deny)" user.oracle
# projmod -a -K "process.max-sem-nsems=(priv,2048,deny)" user.oracle
# projmod -a -K "project.max-shm-ids=(priv,256,deny)" user.oracle
step4. 安装Oracle程序(过程略).
step5. 利用脚本方式创建新数据库.
oracle> cat $ORACLE_BASE/admin/ora9/scripts/ora9.sh
#!/bin/sh
mkdir /opt/oracle/admin/ora9/bdump
mkdir /opt/oracle/admin/ora9/cdump
mkdir /opt/oracle/admin/ora9/create
mkdir /opt/oracle/admin/ora9/pfile
mkdir /opt/oracle/admin/ora9/udump
mkdir /opt/oracle/oradata/ora9
mkdir /opt/oracle/product/9.2/dbs
export ORACLE_SID ora9
【在Solaris 10 ZFS上安装Oracle 9i】export PATH=$PATH:/opt/oracle/product/9.2/bin/
echo Add this entry in the oratab: ora9:/opt/oracle/product/9.2:Y
orapwd file=/opt/oracle/product/9.2/dbs/orapwora9 passWord=change_on_install
sqlplus /nolog @/opt/oracle/admin/ora9/scripts/CreateDB.sql
sqlplus /nolog @/opt/oracle/admin/ora9/scripts/CreateDBFiles.sql
sqlplus /nolog @/opt/oracle/admin/ora9/scripts/CreateDBCatalog.sql
sqlplus /nolog @/opt/oracle/admin/ora9/scripts/postDBCreation.sql
oracle> cat $ORACLE_BASE/admin/ora9/scripts/CreateDB.sql
connect SYS/change_on_install as SYSDBA
set echo on
spool /opt/oracle/product/9.2/assistants/dbca/logs/CreateDB.log
startup nomount pfile="/opt/oracle/admin/ora9/scripts/init.ora";
CREATE DATABASE ora9
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/dev/zvol/rdsk/ora_pool/system_800m' SIZE 800M REUSE
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/zvol/rdsk/ora_pool/temp01_4000m' SIZE 4000M REUSE

推荐阅读