1、Redhat6.8 64位系统
2、Oracle 12.1.0.2
1、安装操作系统、设置分区、配置网络、设置主机名:
2、使用centos的yum替换Redhat本身的yum,直接使用Redhat的yum安装依赖的包会报如下错误:
替换步骤:
(1)、删除Redhat自带的yum:
(2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取:
(3)、更改系统yum源:
cd /etc/yum.repos.d/
mv rhel-source.repo rhel-source.repo.bak
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo rhel-source.repo
编辑rhel-source.repo文件,将其中的$releasever全部替换为6
(4)、清除原有缓存、产生新的缓存
yum clean all
yum makecache
除了上述方法,还可以通过挂载系统安装镜像的方式使用Redhat的yum:
mkdir /rhel /iso
mount /rhel/rhel-server-6.8-x86_64-dvd.is /iso
修改/etc/fstab文件,添加如下内容使其开机自动挂载:
/root/rhel-server-6.8-x86_64-dvd.iso /iso iso9660 loop,defaults 0 0
删除/etc/yum.repos.d/目录下的文件,并创建yum.repo文件:
cd /etc/yum.repos.d/
rm -fr *
vim yum.repo
[rhel6.8]
name=rhel6.8
baseurl=file:///iso
gpgcheck=0
保存退出,再重新生成yum缓存:
yum clean all
yum makecache
3、安装依赖包:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp
4、关闭iptables、selinux:
service iptables stop
chkconfig iptables off
setenforce 0
编辑/etc/selinux/config,将SELINUX的值替换为disabled
5、添加组和用户,新建oracle目录,设置oracle相关环境变量
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle
su - oracle
mkdir -p /home/oracle/app/oracle/product/12.1.0/dbhome_1
mkdir /home/oracle/app/oraInventory
mkdir /home/oracle/app/oracle/oraData
chmod -R 775 /home/oracle/app/oracle
vim .bash_profile,添加如下内容:
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/dbhome_1
export ORACLE_SID=wind11
export NLS_LANG="american_america.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
6、更改系统配置
(1)、vi /etc/sysctl.conf,添加如下内容:
fs.aio-max-nr = 4194304
fs.file-max = 6815744
kernel.shmall = 16777216
kernel.shmmax = 68719476736
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 = 1048576
vm.swappiness =100
保存退出,运行sysctl -p使其立刻生效
(2)、修改用户限制,vi /etc/security/limits.conf,添加如下内容:
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 10240
(3)、vi /etc/pam.d/login,添加如下内容:
session required pam_limits.so
1、安装Oracle 12C
上传Oracle安装文件至/home/oracle目录中,使用oracle用户解压:
unzip linuxamd64_12102_database_1of2.zip -d /home/oracle
unzip linuxamd64_12102_database_2of2.zip -d /home/oracle
完成后/home/oracle中会多出一个database目录:
vim /home/oracle/database/response/db_install.rsp,做如下修改:
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/app/oraInventory
ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/dbhome_1
ORACLE_BASE=/home/oracle/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.BACKUPDBA_GROUP=oinstall
oracle.install.db.DGDBA_GROUP=oinstall
oracle.install.db.KMDBA_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=wind
oracle.install.db.config.starterdb.SID=wind
oracle.install.db.config.starterdb.memoryLimit=8192
oracle.install.db.config.starterdb.password.ALL=oracle
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
注意dba和oinstall需要小写,否则会报错:
[FATAL] [INS-35341] The installation user is not a member of the following groups: [DBA]
开始安装:
cd /home/oracle/database
./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp
等待一段时间,弹出以下内容则安装成功:
根据提示切换回root用户,运行上述两个脚本。
2、配置监听
进入database目录,开始配置监听:
netca -silent -responsefile /home/oracle/database/response/netca.rsp
UnsatisfiedLinkError exception loading native library: njni12
java.lang.UnsatisfiedLinkError: /home/oracle/app/oracle/product/12.1.0/dbhome_1/lib/libnjni12.so: libclntsh.so.12.1: cannot open shared object file: No such file or directory
或者:
UnsatisfiedLinkError exception loading native library: njni12
java.lang.UnsatisfiedLinkError: /home/oracle/app/oracle/product/12.1.0/dbhome_1/lib/libnjni12.so: libclntsh.so.12.1: cannot open shared object file: file too short
原因:下列包没有安装成功
elfutils-libelf
elfutils-libelf-devel
libaio
libaio-devel
解决方法:安装成功后运行$ORACLE_HOME/bin/relink all
查看监听状态:lsnrctl status
3、手动建立数据库实例
手动建立Oracle数据库实例需要用到$ORACLE_HOME/bin目录中的dbca命令,需要注意的是Oracle 12C引入了新特性:Container Database(CDB),读者可根据自身需求选择创建的数据库类型,CDB可通过/home/oracle/database/response/dbca.rsp模板创建,传统数据库(no-CDB)可根据$ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc模板创建。创建no-CDB实例需运行如下命令:
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname wind -sid wind -characterSet UTF8
创建CDB需要先对dbca.rsp文件做如下修改:
[CREATEDATABASE]
GDBNAME = "wind" #数据库的Global database name
SID = "wind" #数据库的实例名
DATAFILEDESTINATION =/home/oracle/app/oracle/oraData #数据文件存放目录
CHARACTERSET = "ZHS16GBK" #指定字符集
NATIONALCHARACTERSET= "AL16UTF16" #指定国家字符集
DATABASETYPE = "OLTP" #指定实例的类型
AUTOMATICMEMORYMANAGEMENT = "TRUE" #指定使用自动内存管理
TOTALMEMORY = "1000" #MB,指定使用内存的大小,值最好大一点,否则可能会安装失败
执行安装:
dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
两种安装的运行过程大致相同:
安装完成后,数据库实例已经创建成功并启动,可以通过sqlplus连接:
此时,可对数据库进行操作,如创建一个新用户并授权:
create user username identified by password;
grant create session,sysdba yo username;
也可使用navicat for oracle工具进行远程连接,但用第三方备份工具进行数据恢复时会报错:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
解决方法:在$ORACLE_HOME/network/admin/listener.ora文件中新添加一个静态监听
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_NAME = wind)
(ORACLE_HOME = /home/oracle/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = wind)
)
)
经过上述步骤后,数据库和监听器都已经安装启动成功,但都并未设置开机自启,一旦服务器reboot后还需要手动启动监听器和数据库实例,这无疑是麻烦的,因此需设置这二者开机自启。
(1)、修改/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/dbstart文件,将$ORACLE_HOME_LISTNER=$1的值修改为$ORACLE_HOME;
(2)、以root用户修改/etc/oratab文件,将实例对应的记录最后的N更改为Y
(3)、以root用户修改/etc/rc.d/rc.local文件,新增下列两个开机任务:
su oracle -lc "/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"
su oracle -lc "/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/dbstart"
修改完成后,以root用户运行reboot命令,待重启完成后,监听器和数据库实例都成功自启。