1、如果是新装的系统,没有安装过Oracle的话,请忽略以下步骤,直接从第二步开始。
[oracle@oracle ~]$ sqlplus / as sysdba
SQL>shutdown abort
[oracle@oracle ~]$ su - root
[root@oracle ~]$ cd /u01/oracle
[root@oracle oracle]$ rm -rf *
[root@oracle oracle]$ cd /usr/local/bin
[root@oracle bin]$ rm -rf *
[root@oracle etc]$ cd /etc
[root@oracle etc]$ rm -rf ora*
[root@oracle ~]# userdel -r oracle
[root@oracle ~]# groupdel oinstall
[root@oracle ~]# groupdel dba
2、修改Redhat Linux的版本号:
修改前
[root@localhost /]# cat /etc/redhat-release
CentOS release 6.4 (Final)
修改后
[root@localhost /]# cat /etc/redhat-release
CentOS release 4.0 (Final)
3、检查服务器空间
内存至少512M 交换分区至少1G
oracle软件安装位置1.3G
数据库安装位置至少1G
/tmp要有足够400M的剩余
如果这些目录都是隶属于根文件系统 那根需要有3G空闲才能安装 (1.3+1+0.4)
上述都属于最小要求 这是远远不够后期运行添加数据使用的.
并且随着后期运行oracle自身产生的文件会逐渐增大 请保留足够的空间需求
[root@localhost /]# df -lh
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda5 34G 8.2G 24G 26% /
tmpfs 4.0G 68K 4.0G 1% /dev/shm
/dev/sda1 194M 32M 152M 18% /boot
/dev/sda2 7.7G 911M 6.5G 13% /home
[root@localhost /]# grep -E 'MemTotal|SwapTotal' /proc/meminfo
MemTotal: 8185928 kB
SwapTotal: 8191992 kB
4、解决软件依赖包
(红帽配置本地yum源: https://www.cnblogs.com/lippen/p/10521123.html)
yum -y install libXtst-devel.x86_64 libXtst-devel.i686 libstdc++-devel.i686 kernel-headers glibc-devel.i686 glibc-devel.x86_64 gnome-icon-theme dmz-cursor-themes sgml-common libaio.i686 libaio.x86_64 libaio-devel.x86_64 libaio-devel.i686 ncurses-devel.x86_64 ncurses-devel.i686 elfutils-libelf-devel.x86_64 elfutils-libelf-devel.i686 compat-gcc-34 compat-gcc-34-c++ libXxf86misc.i686 libXxf86vm.i686 libXt.i686 libXt.x86_64 libXmu.x86_64 libXmu.i686 mpfr cpp xorg-x11-xauth compat-gcc-34-c++ libdaemon avahi avahi-glib shared-mime-info libIDL-devel.i686 libIDL-devel.x86_64 ORBit2-devel.i686 ORBit2-devel.x86_64 GConf2-devel.i686 GConf2-devel.x86_64 gnome-vfs2-devel.i686 gnome-vfs2-devel.x86_64 libbonobo-devel.i686 libbonobo-devel.x86_64 libtool-ltdl.i686 libtool-ltdl.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64 gtk2-engines.i686 gtk2-engines.x86_64 libmcpp mcpp xorg-x11-server-utils libXv-devel.i686 libXv-devel.x86_64 ConsoleKit-x11 xorg-x11-xinit libXp-devel.i686 libXp-devel.x86_64 libXxf86dga libdmx xorg-x11-utils compat-db43.i686 compat-db43.x86_64 ppl.i686 ppl.x86_64 cloog-ppl.i686 cloog-ppl.x86_64 gcc gcc-c++ compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 compat-db.i686 compat-db.x86_64 gnome-themes system-icon-theme system-gnome-theme readline-devel.i686 readline-devel.x86_64 libgnome-devel.i686 libgnome-devel.x86_64 binutils-devel.i686 binutils-devel.x86_64 elfutils-devel.i686 elfutils-devel.x86_64 numactl-devel.i686 numactl-devel.x86_64 sysstat libaio compat-libstdc++ libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel pdksh compat-libstdc++* setarch
以上安装命令提示没有pdksh这个包,手动下载pdksh安装上。(setarch这个包在Redhat5.0叫setarch,在Redhat6.0中叫 util-linux-ng)
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
yum -y install libXp
yum -y install libXp.i686
yum -y install libXt.i686
yum -y install libXtst.i686
(红帽如果安装不上可在最后加上参数 yum -y install libXtst.i686 --setopt=protected_multilib=false)
5、解析主机
将你的主机名跟IP地址在本地hosts文件中做个解析,这里我的主机名为oracle,IP地址是192.168.10.191
[root@localhost /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.191 oracle
6、操作系统资源限制
将如下内容添加到/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
vm.hugetlb_shm_group = 501
7、加载参数
[root@localhost /]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
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
vm.hugetlb_shm_group = 501
每个参数的意思详解:
kernel.shmall
Total amount of shared memory available (bytes or pages)
kernel.shmmax
Maximum size of shared memory segment (bytes)
建议大于等于SGA
kernel.shmmni
Maximum number of shared memory segments system-wide
kernel.shmall*kernel.shmmni = 能够分配的内存大小
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
SEMMSL Maximum number of semaphores per set
每个信号对象集的最大信号对象数;
SEMMNS Maximum number of semaphores system-wide
系统范围内最大信号对象数;
SEMOPM
每个信号对象支持的最大操作数;
SEMMNI Maximum number of semaphore identifiers
系统范围内最大信号对象集数。
其中 SEMMNS的值等于 SEMMSL*SEMMNI
fs.file-max
系统中所允许的文件句柄最大数目。
net.ipv4.ip_local_port_range
应用程序可使用的IPv4端口范围。
net.core.rmem_default
套接字接收缓冲区大小的缺省值
net.core.rmem_max
套接字接收缓冲区大小的最大值
net.core.wmem_default
套接字发送缓冲区大小的缺省值
net.core.wmem_max
套接字发送缓冲区大小的最大值
8、建立oracle用户和组。建议指定GID和UID方式(尤其集群环境)
[root@dba ~]# groupadd -g 54321 oinstall
[root@dba ~]# groupadd -g 54322 dba
[root@dba ~]# useradd -u 54321 -g oinstall -G dba oracle
[root@dba ~]# passwd oracle
或者
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
修改密码:
# passwd oracle
9、建立oracle软件安装文件目录
[root@dba ~]# mkdir -p /u01/oracle
[root@dba ~]# chown -R oracle:oinstall /u01/
10、 修改 limits.conf 配置文件. 此文件用于设置系统资源限制.
# vi /etc/security/limits.conf
在文件末尾加上以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
11、 编辑 /etc/pam.d/login 文件:
# vi /etc/pam.d/login
在文件末尾加上以下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so
12、创建oraInst.loc
# vi /etc/oraInst.loc
inventory_loc=/u01/oracle/oraInventory
inst_group=oinstall
更改属组及权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
13、 修改 /etc/profile 限制其他用户使用:
# vim /etc/profile
在文件末尾加入以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
14、 配置Oracle用户环境变量:
# vi /home/oracle/.bash_profile
在文件末尾加入以下内容:
#Oracle Settings
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_BASE=/u01/oracle ;
export ORACLE_HOME=/u01/oracle/ora10g/product/10.2.0/db_1;
export ORACLE_SID=orcl10g;
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;
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
环境变量详解:
ORACLE_BASE oracle产品基目录
ORACLE_HOME 数据库产品目录、通常情况下HOME目录是BASE的子目录 ORACLE_HOME=$ORACLE_BASE/ora10g
ORACLE_SID 操作系统和oracle实例关联的纽带
PATH 将安装后的oracle命令追加到执行搜索路径
LD_LIBRARY_PATH 动态库的位置
15、 使配置生效:
# source /home/oracle/.bash_profile
16、将dba组id加入到文件中
[root@oracle ~]# echo 501 > /proc/sys/vm/hugetlb_shm_group
或者将如下内容添加到/etc/sysctl.conf 文件底端
vm.hugetlb_shm_group = 501
[root@localhost oracle]# id oracle
uid=500(oracle) gid=500(oinstall) 组=500(oinstall),501(dba)
16、解压安装包、编辑配置文件,安装
root@oracle ~] # su - oracle
[oracle@oracle oeacle] $ cpio -idmv < 10201_database_linux_x86_64.cpio.gz |
[oracle@oracle oeacle] $ cd /u01/oracle/database/response
[oracle@oracle response] $ cp enterprise.rsp ../
[oracle@oracle response] $ cd ..
[oracle@oracle database] $ vi enterprise.rsp
把enterprise.rsp 拷贝到/u01/oracle目录下
UNIX_GROUP_NAME="oinstall" #安装的组
ORACLE_HOME="/u01/oracle/ora10g/product/10.2.0/db_1"
ORACLE_HOME_NAME="OraDbHome1" #根据提示 唯一的名字
COMPONENT_LANGUAGES={"en","zh_CN"}
INSTALL_TYPE="EE"
s_nameForDBAGrp=dba
s_nameForOPERGrp=oinstall
n_configurationOption=3
[oracle@oracle database]$./runInstaller -silent -ignoreSysPrereqs -responsefile /u01/oracle/database/enterprise.rsp
17、安装网络监听器
vi ./response/netca.rsp
(1) 以oracle登陆
(2) 没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。
(3) 编辑Oracle安装目录里response子目录下的应答文件 netca.rsp, 修改以下项目:
INSTALL_TYPE=""CUSTOM"" 安装的类型,这里我使用默认值
LISTENER_NUMBER=1 监听器数量,这里我使用默认值
LISTENER_NAMES={"LISTENER"} 监听器的名称列表,这里我使用默认值
LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表,这里我使用默认值
LISTENER_START=""LISTENER"" 监听器启动的名称,这里我使用默认值
(4) 然后运行
$ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>
这里我输入的命令为:
$ORACLE_HOME/bin/netca /silent /responseFile /u01/oracle/database/response/netca.rsp
18、修改dbstart
(1) 以oracle身份登录
(2) 打开 $ORACLE_HOME/bin/dbstart,将
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
否则网络监听器可能无法自动启动。
19、启动监听
[oracle@oracle admin]$ lsnrctl start
20、安装数据库实例
vi ./response/dbca.rsp
OPERATION_TYPE = "createDatabase"
GDBNAME = "oracle10g"
SID = "orcl10g"
TEMPLATENAME = "General_Purpose.dbc" 如不设置会出现“静默DBCA创建数据库时遭遇模板不存在问题”
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "ZHS16GBK"
运行以下命令安装实例
$ORACLE_HOME/bin/dbca -silent -responseFile /u01/oracle/database/response/dbca.rsp -cloneTemplate
21、oracle基本操作
强制关掉 shutdown abort
链接数据库 sqlplus / as sysdba
开启 startup
创建用户 create user xxx identified by xxx ;
授权 grant resource,connect to xxx;
监听配置
/u01/oracle/ora10g/product/10.2.0/db_1/bin/netca /silent /responseFile /u01/oracle/database/response/netca.rsp
sqlplus / as sysdba
startup