Oracle 11g 安装指南
安装环境
0. 系统设置
chkconfig NetworkManager off
chkconfig iptables off
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
echo "192.168.1.2 asp" >> /etc/hosts
# 重启
reboot
getenforce
# 查看为 Disabled
chkconfig NetworkManager off
chkconfig iptables off
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
echo "192.168.1.2 asp" >> /etc/hosts
# 重启
reboot
getenforce
# 查看为 Disabled
1. 创建安装用户组, 用户
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper -d /home/oracle oracle
passwd oracle
# 输入密码
# new unix password: oracle
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper -d /home/oracle oracle
passwd oracle
# 输入密码
# new unix password: oracle
2. 创建文件夹, 并设置权限
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u02/arch
mkdir -p /u02/software
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chmod -R 775 /u01
chmod -R 775 /u02
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u02/arch
mkdir -p /u02/software
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chmod -R 775 /u01
chmod -R 775 /u02
3. 设置oracle用户环境变量
cat > /home/oracle/.bash_profile <<"EOF"
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin:.
EOF
cat > /home/oracle/.bash_profile <<"EOF"
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin:.
EOF
4. 系统参数配置, 文件数和安全设置
# 系统参数配置
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
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 = 1048586
EOF
/sbin/sysctl -p
#文件数和安全设置
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF
cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
# 系统参数配置
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
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 = 1048586
EOF
/sbin/sysctl -p
#文件数和安全设置
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF
cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
4. 上传安装包 并解压
上传
p10098816_112020_linux-x86-64_1of7.zip
p10098816_112020_linux-x86-64_2of7.zip
到/u02/software
# 解压
cd /u02/software
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
# 解压
cd /u02/software
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
5. 从安装光盘配置yum源, 安装依赖
- 连接安装光盘
mount /dev/cdrom /mnt
mkdir /opt/redhat6
cp -rp /mnt/* /opt/redhat6
cat > /etc/yum.repos.d/base.repo <<EOF
[redhat]
name=redhat
baseurl=file:///opt/redhat6
enabled=1
gpgcheck=0
EOF
yum clean all
yum makecache
# 安装依赖
yum -y install binutils* compat-libstdc++* elfutils-libelf-* gcc* glibc-* glibc-devel-* glibc-headers * ksh * libaio * libgcc-* libstdc++-* make-* numactl-devel-* sysstat-*
# 确认未安装的依赖
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel | grep "not"
# 如果有缺少,手动安装缺少的依赖
# yum install -y ...
mount /dev/cdrom /mnt
mkdir /opt/redhat6
cp -rp /mnt/* /opt/redhat6
cat > /etc/yum.repos.d/base.repo <<EOF
[redhat]
name=redhat
baseurl=file:///opt/redhat6
enabled=1
gpgcheck=0
EOF
yum clean all
yum makecache
# 安装依赖
yum -y install binutils* compat-libstdc++* elfutils-libelf-* gcc* glibc-* glibc-devel-* glibc-headers * ksh * libaio * libgcc-* libstdc++-* make-* numactl-devel-* sysstat-*
# 确认未安装的依赖
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel | grep "not"
# 如果有缺少,手动安装缺少的依赖
# yum install -y ...
7. 登录oracle用户, 进入图形化界面安装
安装oracle
cd /u02/software/database; ./runInstaller
cd /u02/software/database; ./runInstaller

安装完成以后根据提示以root运行两个脚本
su -
# 输入root密码
/u01/app/oraInventory/orainstRoot.sh
echo | /u01/app/oracle/product/11.2.0/db_1/root.sh
su -
# 输入root密码
/u01/app/oraInventory/orainstRoot.sh
echo | /u01/app/oracle/product/11.2.0/db_1/root.sh

创建数据库
运行
dbca
dbca
# 添加 sid
echo "export ORACLE_SID=asp" >> /home/oracle/.bash_profile
source /home/oracle/.bash_profile
# 添加 sid
echo "export ORACLE_SID=asp" >> /home/oracle/.bash_profile
source /home/oracle/.bash_profile
创建监听器
netca
netca
7. 数据库配置
# 运行
sqlplus / as sysdba
# 运行
sqlplus / as sysdba
## 密码有效期设置为无限制
SQL> alter profile default limit password_life_time unlimited;
## 错误密码尝试次数设置为无限制
SQL> alter profile default limit failed_login_attempts unlimited;
## 关闭审计
SQL> alter system set audit_trail =false scope=spfile;
## 忽略大小写
SQL> alter system set sec_case_sensitive_logon=false scope=spfile;
## 增加临时表空间容量
SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/asp/temp02.dbf' size 5G autoextend on;
## 增加UNDO表空间容量
SQL> alter tablespace undotbs1 add datafile '/u01/app/oracle/oradata/asp/undotbs02.dbf' size 5G autoextend on;
## 修改redo配置
# 新建临时 logfile
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/asp/redo4_a.log') size 100M;
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/asp/redo5_a.log') size 100M;
# 运行 switch ,并查看, 直到 group 4 状态为 CURRENT
# ====
SQL> alter system switch logfile;
SQL> select * from v$log;
# ====
# 删除 group 1,2,3
SQL> alter system checkpoint;
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
# 添加 group 1, 2, 3 size=100M
SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/asp/redo1_a.log') size 100M;
SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/asp/redo2_a.log') size 100M;
SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/asp/redo3_a.log') size 100M;
# 切到 group 1, 删除 group 4,5
SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 4;
SQL> alter database drop logfile group 5;
## 修改归档日志目录
SQL> alter system set log_archive_dest_1='location=/u02/arch' scope=both;
SQL> alter system set log_archive_format='log_%t_%s_%r.arch' scope=spfile;
# 添加 ctl文件
## 关闭数据库
SQL> shutdown immediate;
## 以nomount启动
SQL> startup nomount;
## 修改文件, 复制文件
SQL> !cp /u01/app/oracle/oradata/asp/control01.ctl /u01/app/oracle/oradata/asp/control03.ctl
SQL> alter system set control_files = '/u01/app/oracle/oradata/asp/control01.ctl','/u01/app/oracle/oradata/asp/control02.ctl','/u01/app/oracle/oradata/asp/control03.ctl' scope=spfile;
# 启动 archive log
SQL> alter database mount;
SQL> alter database archivelog;
## 查看 archive log
SQL> archive log list;
## 重启数据库
SQL> shutdown immediate;
SQL> startup;
## 密码有效期设置为无限制
SQL> alter profile default limit password_life_time unlimited;
## 错误密码尝试次数设置为无限制
SQL> alter profile default limit failed_login_attempts unlimited;
## 关闭审计
SQL> alter system set audit_trail =false scope=spfile;
## 忽略大小写
SQL> alter system set sec_case_sensitive_logon=false scope=spfile;
## 增加临时表空间容量
SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/asp/temp02.dbf' size 5G autoextend on;
## 增加UNDO表空间容量
SQL> alter tablespace undotbs1 add datafile '/u01/app/oracle/oradata/asp/undotbs02.dbf' size 5G autoextend on;
## 修改redo配置
# 新建临时 logfile
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/asp/redo4_a.log') size 100M;
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/asp/redo5_a.log') size 100M;
# 运行 switch ,并查看, 直到 group 4 状态为 CURRENT
# ====
SQL> alter system switch logfile;
SQL> select * from v$log;
# ====
# 删除 group 1,2,3
SQL> alter system checkpoint;
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
# 添加 group 1, 2, 3 size=100M
SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/asp/redo1_a.log') size 100M;
SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/asp/redo2_a.log') size 100M;
SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/asp/redo3_a.log') size 100M;
# 切到 group 1, 删除 group 4,5
SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 4;
SQL> alter database drop logfile group 5;
## 修改归档日志目录
SQL> alter system set log_archive_dest_1='location=/u02/arch' scope=both;
SQL> alter system set log_archive_format='log_%t_%s_%r.arch' scope=spfile;
# 添加 ctl文件
## 关闭数据库
SQL> shutdown immediate;
## 以nomount启动
SQL> startup nomount;
## 修改文件, 复制文件
SQL> !cp /u01/app/oracle/oradata/asp/control01.ctl /u01/app/oracle/oradata/asp/control03.ctl
SQL> alter system set control_files = '/u01/app/oracle/oradata/asp/control01.ctl','/u01/app/oracle/oradata/asp/control02.ctl','/u01/app/oracle/oradata/asp/control03.ctl' scope=spfile;
# 启动 archive log
SQL> alter database mount;
SQL> alter database archivelog;
## 查看 archive log
SQL> archive log list;
## 重启数据库
SQL> shutdown immediate;
SQL> startup;

