1、建立Oracle的相关用户和组
sudo groupadd oinstall
sudo groupadd dba
sudo mkdir -p /opt/oracle #目录修改为自己机器的实际目录,ORACLE_BASE
mkdir -p /opt/oracle/product/11.2.0 #ORACLE_HOME
sudo useradd -mg oinstall -G dba -s /bin/bash oracle #新建oracle用户
sudo usermod -g oinstall -G dba -s /bin/bash oracle #为存在的oracle用户赋予权限
sudo passwd oracle #设置oracle用户密码
sudo chown -R oracle:oinstall /opt/oracle
mkdir /opt/oradata
mkdir /opt/oraInventory
sudo chown oracle:oinstall /opt/oraInventory
sudo chown oracle:oinstall /opt/oradata
- 使用命令
id oracle
查看创建结果
2、Oracle需要依赖JDK,安装方法见搭建Linux项目环境(二)-安装JDK,JDK版本如下
3、安装Oracle所需要的依赖包(root用户)
# 先装32位依赖
# 切换源安装
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list
sudo apt update
sudo apt -y install lesstif2 lesstif2-dev libpthread-stubs0 libmotif4 lsb-cxx pdksh
# 把源换回来
rm -rf ia32-libs-raring.list
sudo apt update
# 继续安装其它依赖
sudo apt -y install automake autotools-dev binutils bzip2 elfutils expat gawk gcc gcc-multilib g++-multilib lib32ncurses5 lib32z1 ksh less lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 libelf-dev libltdl-dev libxm4 libodbcinstq4-1 libodbcinstq4-1:i386 libpth-dev libpthread-stubs0-dev libstdc++5 make openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc
4、配置环境,执行以下命令,并把参数暂存起来
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep aio-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_max
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep shmall
/sbin/sysctl -a | grep shmmax
/sbin/sysctl -a | grep shmmni
- 参数如下(如果是16.04版的可以直接复制):
fs.file-max = 397328
fs.aio-max-nr = 65536
net.ipv4.ip_local_port_range = 32768 60999
net.core.rmem_default = 212992
net.core.rmem_max = 212992
net.core.wmem_default = 212992
net.core.wmem_max = 212992
kernel.sem = 32000 1024000000 500 32000
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
-
使用命令
sudo vi /etc/sysctl.conf
修改sysctl.conf文件,文件末增加上面查询的参数,如下
-
使用命令
sysctl –p
更新内核参数
-
使用命令
sudo vi /etc/security/limits.conf
,在文件末添加对oracle用户的内核限制,如下
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
5、配置oracle的环境变量
- 使用命令
sudo vim /etc/profile
添加oracle环境变量,如下:
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64
- 使用命令
source /etc/profile
更新环境变量
6、欺骗oracle的安装程序设置(root用户执行)
mkdir /usr/lib64
ln -s /etc /etc/rc.d
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
echo 'Red Hat Linux release 5' > /etc/redhat-release
7、正式安装oracle
- 上传oracle安装包,然后解压oracle安装包,请不要在win下解压后复制,会出现权限问题,导致无法安装,解压命令如下:
cd /opt/oracle/
unzip ./linux.x64_11gR2_database_1of2.zip
unzip ./linux.x64_11gR2_database_2of2.zip
-
由于Oracle的安装程序是基于GUI的交互界面开发的,而Ubuntu Server默认没有安装桌面,所以要借助装有Desktop的机器进行安装,登录Ubuntu 14.04 Desktop版,使用命令
ssh -X oracle@[ubuntuServer的IP地址]
登录到server版,-X参数是必须的,必须直接使用oracle帐号而不能使用其他帐号登录后再切换到oracle帐号。如下
-
开始安装,使用
cd database
进入database目录,执行./runInstaller
,输入y,如下:
-
等待几分钟后弹出安装界面,填写email,去掉蓝色标记那个选项,然后next,√选I want to remain…,然后点“Continue”,如下:
-
打开Select Installation Option(选择安装选项)界面,在这里可以为当前安装指定所需要的安装和配置选项。这个界面提供了以下3种安装选项:
Create and configure a database(创建和配置数据库) 这个选项是默认的安装选项,它安装Oracle RAC二进制文件,并根据预先配置的模板创建一个数据库。这个选项对于初学者非常有用,因为Oracle为不同类型的工作量提供了不同模板,如用于OLTP和决策支持系统的不同模板。
Install database software only(仅安装数据库软件) 这个选项在集群中的所有服务器上安装Oracle RAC软件。数据库管理员大多使用这一选项,这样,在安装了Oracle RAC二进制文件之后,他们可以使用数据库配置助手来创建数据库,从而拥有更大的灵活性。
Upgrade an existing database(升级已有数据库) 这一选项对集群中的已有Oracle RAC数据库进行升级。
在这个界面上,选择Install database software only选项,成功后再另外通过dbca命令创建数据库
-
点“Next”进入“Node Selection”界面,提供2项选择:
Single instance database installation(单实例数据库安装) 这一选项允许仅在本地节点上安装单实例数据库软件。
Oracle Real Application Cluster database installation(Oracle RAC数据库安装) 这一选项允许在集群中的选定节点上选择和安装Oracle RAC二进制文件。
在这个界面上,选择Single instance database installation选项,如下:
-
点“Next”进入Select Product Languages界面,在这里选择安装语言(默认情况下选择英文)。可以从表中的可用列表内选择所需要的语言。
-
点“Next”进入Specify Installation Location界面,这里选标准版Standard Edition
-
点“Next”进入Specify Installation Location界面,选择ORACLE_BASE和ORACLE_HOME的位置。
-
点“Next”进入Create Inventory界面,选择上面建立的位置,如下
-
点“Next”进入Privileged Operating System Groups界面,从提供的值列表中选择数据库管理员和数据库操作员操作系统组。应当确保在这个界面上选择了正确的操作系统组,因为如果选择有误,就可能会干扰Oracle RAC数据库软件的运行。选择前面建立的用户组,如下
-
勾选“ignore All”后再继续
-
点“Finish”
-
等待安装
-
安装错误解决
# 安装到84%时会出现ins_ctx.mk的错误提示,直接按continue跳过,后面报的错,用oracle用户以下代码
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
sudo sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' /opt/oracle/product/11.2.0/dbhome_1/network/lib/env_network.mk
sudo sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' /opt/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
sudo sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' /opt/oracle/product/11.2.0/dbhome_1/bin/genorasdksh
sudo sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' /opt/oracle/product/11.2.0/dbhome_1/srvm/lib/ins_srvm.mk
- 用root用户执行图中的脚本,执行成功后点"OK"
- 安装成功
8、scott、system用户解锁
alert user scott account unlock;
alert user system account unlock;