导言
好久没有更新博客了,主要是不知道写点什么好。那干脆做一些软件安装的教程吧。
本文主要是介绍centos 7 下安装oracle 11的过程,在看了很多网上教程,加上自己摸索总结出一些容易出错的点。在本文中进行展示
oracle 11g下载
网上的教程一般是先下载ios然后解压通过ssh上传什么的,这种办法也不是不可以,只是太慢了,我这里给大家推荐一种快捷的办法,直接在服务器上用wget下载,只要服务器网速好,很快就能把安装包下载好。
首先访问:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
找到对应的包,本次教程是11.2.0.1.0的安装,所以找到Linux x86-64
版本的下载地址
https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
一共两个卷 然后点击之后会同意条款,同意之后会提示登录oracle账号,如果之前你们从oracle下载过java jdk 那就可以使用那个账号登陆,如果没有可以直接注册一个。
注册或者登陆之后再回到那个页面点击下载这个时候浏览器会自动开始下载,但是别急,我们现在使用浏览器的开发者工具,打开网络面板,找一个oracle网页的html请求,把其中请求头中的cookies 复制出来
像这样:
然后我们使用wget来构造一个带cookies的请求1
wget --no-cookies --header "Cookie:s_fid=03CA6261D2D9521A-25568A66A7B3D73A; s_cc=true; ORA_WWW_MRKT=v:1~g:3769290A8D127500E050E60AD27F2320~t:NOT_FOUND~c:LP05; ORA_WWW_PERSONALIZE=v:1~i:NOT_FOUND~r:NOT_FOUND~g:APAC~l:zh-CN~cs:NOT_FOUND~cn:??????; ORASSO_AUTH_HINT=v1.0~20191018130524; ORA_UCM_INFO=3~3769290A8D127500E050E60AD27F2320~Zuoliang~Zhang~onlyxx@outlook.com; OAMAuthnCookie_edelivery.oracle.com:443=f5cc3fbcce63f859cbb1bfa04d3721abf645acb3%7EW%2BGVYBhwJckCVHYJnCYILorhEIWfRUtbRIk%2BubrMdLfaAp9rc29hvQOJbjkPYjvSpnLke7OgU3XNKyY1HfC7I893qrHBTU7qMQuFHlC4GlvwH1p%2FS0xyT%2F8GChoLIhoXn%2FHSGWOjqqCdxdqhVtOtVUU7TGJeLPNKsLEG4ilw6acJKS7gWVcmsGXsClHvA0KlNU%2BpYqTf8fe%2BGatJBuCaKktK6rLf0RDNUvWXafl7mImSYyGspMvNY6q0B%2FGh2oVUdtlwctFSf%2Fz6D6oTVLQukfydt4p04h7s0bFth8PjAeoU7R6Wtlz%2BucL3QBUe6YyzOHPpynEeRVjtONzzZP6gAGtPIhCaVCZpmlcA0pwqL9IMEbkU0TfQFb4qTKbEQg%2F8QZM4RZvnA1UhHn7MINjMVsvHkAm5K1r2wpHCzQWyHGQCW6A0t0PxhUDqyy1ORw7%2BMCQuUQNJoJNXZUUEr1YOS%2FJMGJhcgQDZaui%2B%2BuTLVs%2FyA2py2n4e5k%2BrJBf6cplBOKEXnqt%2F0MV4RbzlpmxLK%2BCVjfim%2FmVMsNTEwSEvBxs%3D; OAMAuthnHintCookie=1; ORA_WWW_MRKT=v:1~g:3769290A8D127500E050E60AD27F2320~t:NOT_FOUND~c:LP05; ORA_WWW_PERSONALIZE==?UTF-8?B?djoxfmk6......这里是复制出来的cookis" https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip 这里是下载地址根据到时候的实际情况而定
安装环境准备
下载好之后会得到2个zip的文件
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
解压1
2unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
复制到安装目录1
2
3[root@devops oracle]# ls database/
install readme.html response rpm runInstaller sshsetup stage welcome.html
[root@devops oracle]# mv database/ /tmp/
安装依赖
1 | // centos 7 没有相关安装包可用,可下载 pdksh 的 rpm 包 |
检查是否依赖安装完毕1
[root@devops oracle]# rpm -q 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 | grep "not installed"
都ok之后,创建oracle的用户和组
1 | [root@devops oracle]# groupadd oinstall |
优化系统内核参数
1 | [root@devops oracle]# vim /etc/pam.d/login |
创建 oracle 相关目录1
2
3
4
5
6
7
8[root@devops oracle]# mkdir /data/oracle
[root@devops oracle]# mkdir /data/oracle/product/11.2.0/dbhome_1 -p
[root@devops oracle]# mkdir /data/oracle/oraInventory -p
[oracle@devops ~]$ mkdir -p /data/oracle/oradata
[oracle@devops ~]$ mkdir -p /data/oracle/fast_recovery_area
[root@devops oracle]# chown -R oracle:oinstall /data/oracle/
[root@devops oracle]# chmod -R 775 /data/oracle/
配置 swap 空间
1 | [root@devops oracle]# dd if=/dev/zero of=/data/swap bs=1M count=8192 |
配置 oracle 用户环境变量
1 | [root@devops oracle]# su - oracle |
安装 oracle
1 | [root@devops oracle]# cp /tmp/database/response/dbca.rsp /home/oracle/ |
安装监听1
2
3[root@devops tmp]# su - oracle
[oracle@devops ~]$ netca /silent /responseFile /home/oracle/netca.rsp
//如果这里提示找不到 netca去看看 上面export ORACLE_HOME 这个路径的文件夹是不是没有文件,修改为正确的文件夹即可,如果按照教程来,创建的文件夹则不会
静默模式创建实例
1 | [oracle@devops ~]$ vim dbca.rsp |
测试安装
1 | [oracle@devops ~]$ sqlplus / as sysdba |
如果是阿里云服务器要想远程访问数据库记得打开 安全组的1521端口开放
配置远程连接
1 | [oracle@oracledb ~]$ sqlplus / as sysdba |
配置
Navicat远程连接Oracle
官方网站
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
下载 instantclient-basic,解压压缩文件
下载Navicat
http://pan.baidu.com/s/1c2GP9U4
打开Navicat,工具→选项
打开OCI界面,在右侧OCI library一栏中选择instantclient-basic解压目录下的oci.dll,然后点击确定
mac 的直接使用下面的连接方式即可
用户名使用刚激活的scott,密码为fpEeB07zuCqz,填完以上信息后点击连接测试
更新开机启动
安装之后发现服务器内存太小了,加了内存重启之后发现oracle没有自动启动,这里加一个开机启动的方法
首先到安装oracle之后的路径就是
/data/oracle/product/11.2.0/dbhome_1/
的bin
中修改dbstart的ORACLE_HOME_LISTNER
属性
修改为$ORACLE_HOME
原值为$11
2
3
4cd /data/oracle/product/11.2.0/dbhome_1/bin
vim dbstart
# First argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME修改另一个
dbshut
文件 将ORACLE_HOME_LISTNER
的值改成$ORACLE_HOME
1 | vim dbshut |
第三步修改
/etc/oratab
将最后的N
改成Y
1
2
3
4
5
6
7
8
9
10
11vi /etc/oratab
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
finance:/data/oracle/product/11.2.0/dbhome_1:Y新建开机启动脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52vi /etc/rc.d/init.d/oracle
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0设置执行权限
1 | chmod a+x /etc/init.d/oracle |
- 设置开机启动,运行oracle
1 | systemctl enable oracle |
好了,如果严格按照之前的安装来,在按照这个步骤应该就可以成功启动oracle了
注意启动的$ORACLE_HOME
要设置正确!!!