系统环境
服务器 | IP地址 | 系统 | 硬盘 | 内存 |
---|
Primary Oracle | 192.168.100.218 | Oracle-Linux-R6-U9 | 20G + 100G | 4G |
Standby Oracle | 192.168.100.219 | Oracle-Linux-R6-U9 | 20G + 100G | 4G |
1.配置上传镜像,配置本地yum源
1.1把镜像挂载在/mnt/点下
mount /dev/cdrom /mnt && mount -a
1.2确定挂载生效
df -h
1.3配置本地yum源
mv /etc/yum.repos.d/public-yum-ol6.repo /etc/yum.repos.d/public-yum-ol6.repo.bak
cat >> /etc/yum.repos.d/yum.repo <<EOF
[Oracle]
name=Oracle 11g
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
yum clean all && yum makecache
2.挂载磁盘
2.1查看服务器硬盘
lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 4G 0 part [SWAP]
sda3 8:3 0 15G 0 part /
sdb 8:16 0 100G 0 disk
sr0 11:0 1 3.8G 0 rom
loop1 7:1 0 3.8G 1 loop /mnt/cdrom
2.2磁盘分区
fdisk /dev/sdb
依次输入: n:新增分区 p:作为主分区 1:分区编号 回车默认 回车默认 w:保存写入
2.3格式化分区
mkfs -t ext4 /dev/sdb1
2.4创建需要挂载的目录并挂载
mkdir /u01 && mount /dev/sdb1 /u01
2.5永久挂载
echo "/dev/sdb1 /u01 ext4 defaults 0 0" >> /etc/fstab
3.创建用户配置环境
3.1创建用户和组
groupadd -g 5001 oinstall &&groupadd -g 5002 dba
groupadd -g 5003 oper && useradd -u 61001 -g oinstall -G dba,oper oracle
passwd oracle
3.2创建目录及授权
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir /u01/app/oraInventory && mkdir /u01/{oradata,backup,archive}
#1:软件目录 #2:配置清单 #3:数据目录 #4:备份目录 #5:归档日志目录
chown -R oracle:oinstall /u01/app && chown -R oracle:dba /u01/oradata
chown -R oracle:dba /u01/backup && chown -R oracle:dba /u01/archive
chmod -R 775 /u01/app && chmod -R 775 /u01/oradata && chmod -R 775 /u01/backup
3.3安装依赖包
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel ksh numactl-devel
3.4修改主机名
echo "192.168.100.219 Standby" >> /etc/hosts
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=Standby
#重启主机
reboot
3.5修改资源限制参数 (vi /etc/security/limits.conf)
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 1024
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 3145728
oracle soft memlock 3145728
EOF
#soft nproc 软进程数:超过会报警
#hard nproc 硬进程数:超过会报错
#soft nofile 一个进程能打开文件的次数
#soft stack 堆栈
#hard memlock 内存锁 (计算:实际内存*0.8*1024*1024)
3.6控制给用户分配的资源
echo "session required pam_limits.so " >> /etc/pam.d/login
3.7修改内核参数(vi /etc/sysctl.conf)
cat >> /vi /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.panic_on_oops = 1
vm.nr_hugepages = 1200
kernel.shmmax = 2147483648
kernel.shmall = 524288
kernel.shmmni = 4096
EOF
#kernel.shmmax:单个共享内存最大值
=SGA = Oracle*系统内存(4G)*0.8*0.8 (4*0.8*0.8)=2*1024*1024*1024
#kernel.shmall:控制共享内存页数
=kernel.shmmax / PAGESIZE (命令获取:getconf PAGESIZE)
#kernel.shmmni:内存段最大数量
=(命令获取:getconf PAGESIZE)
#vm.nr_hugepages:大页
=SGA/2M + 200 (2G/2M+200)=
sysctl -p
#刷新内核参数
3.8修改环境变量(vi /etc/profile文件)
cat >> /etc/profile << EOF
#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
3.9关闭防火墙
service iptables stop
vi /etc/selinux/config
将:SELINUX=enabled 改为:SELINUX=disabled
3.10设置oracle用户环境变量
vim .bash_profile
alias ls="ls -FA"
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_PATH=/u01/app/common/oracle/sql
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
PATH=$PATH:$ORACLE_HOME/oracm/bin:$ORACLE_HOME/OPatch
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/ctx/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
export TMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
alias sql="sqlplus / as sysdba"
alias al='vi $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log'
alias alt='tail -f $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log'
export SQLPATH=~/admin/sql:/$ORACLE_HOME/sqlplus/admin
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
#刷新环境变量
source /home/oracle/.bash_profile
4.安装Oracle
4.1解压安装安装包
unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
4.2配置静默安装
vim /opt/database/response/db_install.rsp #打开静默安装文件
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=Primary
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
DECLINE_SECURITY_UPDATES=true
#选择安装类型:安装数据库软件并建库
#指定操作系统主机名,通过hostname命令获得
#指定oracle inventory目录的所有者,通常会是oinstall
#指定产品清单oracle inventory目录的路径
#指定数据库语言,可以选择多个,用逗号隔开
#设置ORALCE_HOME的路径
#设置ORALCE_BASE的路径
#选择Oracle安装数据库软件的版本(企业版,标准版,标准版1)
#是否自定义Oracle的组件,选择false,则会使用默认的组件
#指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
#指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
#设置语言格式
4.3执行安装
./runInstaller -silent -force -responseFile /opt/database/response/db_install.rsp -ignorePrereq
出现下面内容成功
#Root scripts to run
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
使用root用户执行下面脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
4.5配置监听
netca /silent /responsefile /u01/backup/soft/database/response/netca.rsp
4.6 创建数据库实例
执行
dbca -silent -GDBNAME orcl -SID orcl -SYSPASSWORD oracle -SYSTEMPASSWORD oracle -DATAFILEDESTINATION /u01/oradata -CHARACTERSET ZHS16GBK -TOTALMEMORY 300 -responseFile /u01/app/oracle/product/11.2.0/db_1/assistants/dbca/dbca.rsp
或者编辑配置文件执行下面这段语句:
dbca -silent -responseFile /u01/app/oracle/product/11.2.0/db_1/assistants/dbca/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0" -- 响应文件版本
OPERATION_TYPE = "createDatabase" -- 响应文件操作类型
[CREATEDATABASE] -- 操作类型对应选项标签
GDBNAME = "orcl" -- 全局数据库名(Global Name)
SID = "orcl" -- 数据库实例名(SID)
TEMPLATENAME = "General_Purpose.dbc" -- 引用的模板
SYSPASSWORD = "oracle" -- SYS用户密码
SYSTEMPASSWORD = "oracle" -- SYSTEM用户密码
DATAFILEDESTINATION = /u01/oradata -- 指定数据文件路径
CHARACTERSET = "ZHS16GBK" -- 指定字符集
TOTALMEMORY = "300" -- 指定分配内存大小(MEMORY_TARGET),单位为MB
SAMPLESCHEMA = false -- 是否创建示例SCHEMA
出现以下进度代表成功
Copying database files
1% complete
3% complete
11% complete
18% complete
37% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
4.7启动监听启动数据库
启动监听
lsnrctl stat
启动数据库
startup