服务器基础信息

腾讯云 CentOS7.2 64位

CentOS 图形登录 centos进入图形化界面_Linux


root登录系统查看一下版本信息

CentOS Linux release 7.2.1511 (Core)

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_02


在安全组中将ORACLE默认通讯端口 TCP 1521放通

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_03


1.安装前准备

首先,请先以root账号登入作一些前置设定作业。

输入密码后进入root账户

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

准备ORACLE 安装文件:
Linux.x64_11gR2_database_1of2.zip
Linux.x64_11gR2_database_2of2.zip

我建议安装文件可以通过SFTP传输或者在官网下载方法很多。

CentOS 图形登录 centos进入图形化界面_Linux_04


①SFTP文件传输…

这个速度比较慢并且还不能中断续传…

②可以使用wget命令下载

wget是一个linux从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.

所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

.具体使用方法参照:

③CentOS安装图形界面VNC远程桌面使用web浏览器进行下载
图形界面安装下载具体方法 另一篇博客来介绍。

1.1操作系统准备

查看主机名

# hostname

CentOS 图形登录 centos进入图形化界面_CentOS_05

查看ip地址

# ifconfig

CentOS 图形登录 centos进入图形化界面_CentOS_06

修改hosts文件,然后添加现在主机的IP地址+主机名,wq保存。

# vi /etc/hosts

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_07

#vi /etc/sysconfig/network

加入内容 HOSTNAME=主机名

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_08

1.2关闭、防火墙

关闭selinux

#vi /etc/selinux/config

设置SELINUX=disabled

CentOS 图形登录 centos进入图形化界面_Linux_09

防火墙临时关闭命令:

#setenforce 0
#service iptables stop

2.安装依赖包

(依赖包有离线版)

yum -y install gcc
yum -y install gcc-c++
yum -y install make
yum -y install binutils
yum -y install compat-libstdc++-33
yum -y install elfutils-libelf
yum -y install elfutils-libelf-devel
yum -y install elfutils-libelf-devel-static
yum -y install glibc
yum -y install glibc-common
yum -y install glibc-devel
yum -y install ksh
yum -y install libaio
yum -y install libaio-devel
yum -y install libgcc
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install numactl-devel
yum -y install sysstat
yum -y install unixODBC
yum -y install unixODBC-devel
yum -y install pdksh
yum -y install kernel-headers
yum -y install pcre-devel
yum -y install readline*
yum -y install rlwrap

3.创建安装用户、组、目录

#groupadd oinstall
#groupadd dba
#useradd -g oinstall -G dba oracle
#passwd oracle
#id oracle

输入后可以看到群组的情况:

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_10

3.1创建软件安装目录

#mkdir -p /opt/oracle //$ORACLE_BASE
#mkdir -p /opt/oracle/product/112010/db_1 //$ORACLE_HOME
#mkdir /opt/oracle/oradata //存放数据库目录
#mkdir /opt/oracle/inventory
#mkdir /opt/oracle/flash_recovery_area
#chown -R oracle:oinstall /opt/oracle
#chmod -R 775 /opt/oracle //设置权限

3.2 将oracle使用者加入到sudo群组中

#vi /etc/sudoers

输入上面的命令后,打开sudoers文件进行编辑,找到
root ALL=(ALL) ALL

这行,并且在底下再加入以下内容:(按esc退出insert插入模式,按下i进入编辑模式)

oracle ALL=(ALL) ALL

保存退出:wq!

3.3 配置系统环境

3.3.1修改内核参数
# vi /etc/sysctl.conf

修改、添加以下内容(不能小于下面的数值,灰色已存在的不能比这个小)如果没有的话就加入进去

kernel.shmall = 2097152
 kernel.shmmax = 1073741824
fs.aio-max-nr = 1048576
 fs.file-max = 6815744
 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

修改完毕后,启用配置

# sysctl -p
3.3.2修改用户限制文件
# vi /etc/security/limits.conf

行末添加以下内容:

oracle         soft      nproc      2047
 oracle         hard     nproc      16384
 oracle         soft       nofile       1024
 oracle         hard      nofile       65536
 oracle         soft       stack       10240
3.3.3关联设置
#vi /etc/pam.d/login

行末添加以下内容:

session required /lib64/security/pam_limits.so
session required pam_limits.so

3.3.4修改/etc/profile
#vi /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

在root用户下,使用命令source profile使环境变量生效

# source /etc/profile
3.3.5 修改用户环境变量
# vi /home/oracle/.bash_profile

在最底下加入以下内容:

# For Oracle
export  ORACLE_BASE=/opt/oracle;
export  ORACLE_HOME=/opt/oracle/product/112010/db_1  
export  ORACLE_SID=orcl;
export  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

使环境变量生效 如果报错检查上述内容是否输入正确。

# source /home/oracle/.bash_profile

4.正式安装 oracle数据库

4.1解压oracle安装文件

Oracle 11g安装包:将安装包上传至服务器/opt/oracle/ 下面,这两个包属于oracle用户

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

安装包解压命令(使用oracle用户解压 )

$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip

解压完成后/opt/oracle下会生成database目录

4.2编辑oracle数据库安装应答文件

1、/opt/oracle/database/response(解压后的文件中)下有有db_install.rsp、dbca.rsp和netca.rsp三个应答文件.

db_install 是数据库安装文件。
dbca.rsp 是建立数据库实例和。
netca.rsp 是监听配置安装文件。

下面修改数据库安装文件。

在oracle用户编辑时如果提示只读不能保存时,需要root权限修改一下文件所有者,可以通过chown命令进行修改。
同时修改用户和组, chown 所有者,所属组 文件\目录名。

chown oracle /opt/oracle/database/response/dbca.rsp
chown oracle /opt/oracle/database/response/netca.rsp
chown oracle /opt/oracle/database/response/db_install.rsp

编辑db_install.rsp配置文件

$ vi /opt/oracle/database/response/db_install.rsp

修改以下内容

oracle.install.option=INSTALL_DB_SWONLY  //29行 安装类型
ORACLE_HOSTNAME=VM_0_9_centos //37 行 主机名称
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/opt/oracle/inventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN //78 行 选择语言
ORACLE_HOME=/opt/oracle/product/112010/db_1 //83 行 oracle_home
ORACLE_BASE=/opt/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本
oracle.install.db.DBA_GROUP=dba //142行dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl//165行globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行SID
oracle.install.db.config.starterdb.memoryLimit=800 //200行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新

4.3安装

使用oracle用户安装(注意命令su - oracle和 su oracle意义是不一样的不能缺少中间的 “-”)

# su - oracle

进入刚才解压的database目录

$ cd /opt/oracle/database/

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_11

$ ./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq

下面出现运行出现 swap为0,最小为150MB不满足安装需求。

运行free查看一下

$ free -m

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_12


total = 0 说明没有启用swap,腾讯云服务器默认没有开启swap。

既然系统内存1G 那交换空间就2G,swap设置为 系统内存的两倍就可以。

创建 2G空间swap文件

# dd if=/dev/zero of=/var/swap bs=1024 count=2048000

if 表示infile,of表示outfile,bs=1024代表增加的模块大小,count=2048000代表2048000个模块,也就是2G空间

CentOS 图形登录 centos进入图形化界面_Oracle数据库_13


将目的文件设置为swap分区文件

# mkswap /var/swap

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_14

挂载swap

# swapon /var/swap

CentOS 图形登录 centos进入图形化界面_CentOS_15


再次free -m查看ok

CentOS 图形登录 centos进入图形化界面_Linux_16


配置永久生效开机自动挂载

# vim /etc/fstab

加入如下内容并保存

/var/swap swap swap defaults 0 0

CentOS 图形登录 centos进入图形化界面_CentOS_17


回过头继续执行安装命令

$ ./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq

下面就是等待阶段大约可能需要 10分钟。

安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。

可以在以下位置找到本次安装会话的日志:

/optoracle/oraInventory/logs/installActions2015-06-08_04-00-25PM.log

可以使用命令查看日志:后面的地址应该以你的安装过程中的提示为准

#tail -100f /optoracle/oraInventory/logs/installActions2015-06-08_04-00-25PM.log

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_18

中文参照:

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_19

参照说明 再打开一个终端窗口ROOT权限登入 进行操作运行上述两个脚本。

# /opt/oracle/inventory/orainstRoot.sh
# /opt/oracle/product/112010/db_1/root.sh

Oracle11g的安装就到此结束!


5.配置监听

5.1 netca(oracle net configuration assistance)配置

检查oracle安装目录下的netca.rsp应答文件配置信息

目录地址 /opt/oracle/database/response/netca.rsp

# vi /opt/oracle/database/response/netca.rsp

主要查看以下参数配置:

INSTALL_TYPE="“custom”" //安装的类型
LISTENER_NUMBER=1 //监听器数量
LISTENER_NAMES={“LISTENER”}  //监听器的名称列表
LISTENER_PROTOCOLS={“TCP;1521”}  //监听器使用的通讯协议列表
LISTENER_START="“LISTENER”" //监听器启动的名称

检查完毕后,执行命令:

$ netca /silent /responseFile /opt/oracle/database/response/netca.rsp

CentOS 图形登录 centos进入图形化界面_Oracle数据库_20


创建监听没有成功 如出现上述错误

解决:一般是 host名称与本机不对应导致检查1.1操作步骤是否正确

再次运行

$ netca /silent /responseFile /opt/oracle/database/response/netca.rsp

执行成功如下图:

CentOS 图形登录 centos进入图形化界面_Linux_21

成功运行后,在/opt/oracle/product/112010/network/admin/中生成listener.ora和sqlnet.ora

执行netca的时候已经生成了listener监听了,所以我们修改下面文件:

$ vi $ORACLE_HOME/network/admin/listener.ora

将HOST 改成当前主机使用的网卡IP地址

这里把localhost 改成172.0.0.1或者本机ip保存退出就好了

CentOS 图形登录 centos进入图形化界面_Linux_22

5.2下面我们开启监听:

$ lsnrctl start

CentOS 图形登录 centos进入图形化界面_CentOS_23


然后通过netstat命令可以查看1521端口正在监听如下图(再新建立一个连接使用root权限查看)

# netstat -tnulp | grep 1521

CentOS 图形登录 centos进入图形化界面_CentOS_24


6.添加数据库实例

6.1修改dbca.rsp建立数据库实例(就是解压安装文件目录下的)
$ vim /opt/oracle/database/response/dbca.rsp

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_25


再本次安装中设置了下列的参数:可以根据自己情况进行设置(配置文件有说明)

RESPONSEFILE_VERSION =“11.2.0”  //不能更改
OPERATION_TYPE =“createDatabase”
GDBNAME =“orcl” //数据库的名字
SID =“ORCL” //对应的实例名字
TEMPLATENAME =“General_Purpose.dbc” //建库用的模板文件
SYSPASSWORD =“asd123”  //SYS管理员密码
SYSTEMPASSWORD =“asd123” //SYSTEM管理员密码
SYSMANPASSWORD= “asd123”
DBSNMPPASSWORD= “asd123”
DATAFILEDESTINATION =/opt/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area //恢复数据存放目录
CHARACTERSET =“ZHS16GBK”  //字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY =“1638” //1638MB,物理内存2G*80%。

配置好后就可以进行下面的建立实例了。

6.2 建立

$ dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp

正确执行后会进行建库,需要等待一会 下图为建库完成的提示
这里界面可能会出现闪动,可以等全部东西都不见了,是要输入SYS密码,一闪而过。

然后输入完毕按下回车,又看见SYSTEM密码一闪而过,再次输入密码回车,这时就开始建库了。

完成(上述输入密码的步骤有可能直接略过)

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_26

建库后进行实例进程检查:

$ ps -ef | grep ora_ | grep -v grep

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_27

查看监听状态:

$ lsnrctl status

CentOS 图形登录 centos进入图形化界面_Oracle数据库_28

6.3设置开机自启动

修改dbstart和dbshut脚本:
修改文件/opt/oracle/product/112010/db_1/bin/dbstart

$ vi /opt/oracle/product/112010/db_1/bin/dbstart

将ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

CentOS 图形登录 centos进入图形化界面_CentOS_29


修改/opt/oracle/product/112010/db_1/bin/dbshut

$ vi /opt/oracle/product/112010/db_1/bin/dbshut

将ORACLE_HOME_LISTNER=$1 修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

再编辑oratab文件

$vi /etc/oratab

将orcl:/data/oracle/product/112010:N中最后的N改为Y,成为

orcl:/data/oracle/product/112010:Y 如图

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_30


编辑rc.local

使其在Linux启动时候自动开启oracle服务,root下编辑rc.local

# vim /etc/rc.d/rc.local

在最下面加入下内容

su - oracle -lc dbstart

su - oracle -lc lsnrctl start

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_31


测试:

输入命令dbshut和dbstart测试

Oracle监听停止,进程消失。

$ dbshut
$ lsnrctl status
$ ps -ef |grep ora_ |grep -v grep

CentOS 图形登录 centos进入图形化界面_Oracle数据库_32


Oracle 监听启动,进程启动。

$ dbstart 
$ lsnrctl status
$ ps -ef |grep ora_ |grep -v grep

CentOS 图形登录 centos进入图形化界面_Linux_33

6.4登录查看实例状态:

$ sqlplus / as sysdba

错误:

CentOS 图形登录 centos进入图形化界面_CentOS 图形登录_34

解决:

使用下列命令来查看 SID是否正确

$ echo $ORACLE_HOME
$ echo $ORACLE_SID 		 //用此命令修改现在的SID看自己设的什么
$ env |grep ORACLE  	 //或者使用此命令
  
$ export ORACLE_SID=orcl //用此命令来修改当前的SID

继续执行下列SQL语句

SQL> select status from v$instance;

错误:

CentOS 图形登录 centos进入图形化界面_CentOS_35

出现上述错误 实例不可用 一般情况是 几个SID设置的不匹配导致实例没有正常运行。

尝试启动实例

SQL> startup

错误:

CentOS 图形登录 centos进入图形化界面_Linux_36

解决:

该问题一般是认为sid设置混乱造成,oracle安装过程中有几个地方都设置sid和数据库名称之类的,很容易记错。

出现以下提示,按照网上来说是 在oracle9i、10g、11g最近几个版本中,数据库默认使用spfile启动数据库。

上述路径 spfile配置文件外损坏造成的需要找到备份,进行还原 spfile配置文件,但是我们的数据实例刚刚建立还没有使用一般不会损坏配置文件的。

我们浏览到上述路径查看一下目录下的文件 发现spfile文件后面的SID是 大写的ORCL

CentOS 图形登录 centos进入图形化界面_Oracle数据库_37


而我们的却是 小写 orcl 如下图

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_38

果断将当前实例SID修改 成大写:

$ export ORACLE_SID=ORCL

CentOS 图形登录 centos进入图形化界面_Oracle数据库_39

然后 登录继续

$ sqlplus / as sysdba
SQL> startup

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_40


看到实例已经成功启动了

继续

SQL> select status from v$instance;

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_41


看到执行成功的查询结果。到这里我们实例已经建立成功了。

SID错误解决总结下面几个步骤

-----------------------关闭实例和oracle服务-----------------------

SQL> shutdownSQL> quit$ dbshut

-----------------------查询当前设置的SID--------------------------

$ echo $ORACLE_SID

或者

$ env |grep ORACLE

-----------------------修改当前实例SID------------------------------

$export ORACLE_SID=ORCL

-----------------------启动oracle服务和实例-----------------------

$ dbstart

重新:$ sqlplus / as sysdba

SQL> startup

收尾

6.5完成之后,我们需要将selinux打开(不开也可以)
#vi /etc/selinux/config

将之前的disabled 改成enforcing 然后就可以了。

6.6检查listener.ora

/opt/oracle/product/112010/db_1/network/admin/listener.ora

如果在安装监听过程中出现什么问题,可以将这个文件删除,然后重新执行netca步骤

里面的内容应该是这样的

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /opt/oracle/product/112010/db_1)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.9)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /opt/oracle

7.Oracle卸载

1.停止监听服务(oracle用户登录)

[oracle@tsp-rls-dbserver ~]$ lsnrctl stop

2.停止数据库

[oracle@tsp-rls-dbserver ~]$ sqlplus / as sysdba

SQL>shutdown

3.删除oracle安装路径(root用户登录)

[root@tsp-rls-dbserver deps]# rm -rf /opt/oracle/product

[root@tsp-rls-dbserver deps]# rm -rf /opt/oracle/inventory

……安装前创建的和安装后生成的都删掉(oracle解压文件database不要误删)

4.删除系统路径文件(root用户登录)

[root@tsp-rls-dbserver deps]# rm -rf /usr/local/bin/dbhome

[root@tsp-rls-dbserver deps]# rm -rf /usr/local/bin/oraenv

[root@tsp-rls-dbserver deps]# rm -rf /usr/local/bin/coraenv

5.删除数据库实例表(root用户登录)

[root@tsp-rls-dbserver deps]# rm -rf /etc/oratab

6.删除数据库实例lock文件(root用户登录)

[root@tsp-rls-dbserver deps]# rm -rf /etc/oraInst.loc

7.删除oracle用户及用户组(root用户登录)重装oracle的话就不用删了

[root@tsp-rls-dbserver deps]# userdel -r oracle

[root@tsp-rls-dbserver deps]# groupdel oinstall

[root@tsp-rls-dbserver deps]# groupdel dba



其他操作

开启oracle服务:

$dbstart
$lsnrctl start
$sqlplus / as sysdba
SQL>startup

关闭oracle服务:

$dbshut
$lsnrctl stop
$sqlplus / as sysdba
SQL>shutdown


远程访问数据库

例子:windows端访问

执行telnet命令 确认 可以连接上。如果连接不上确认本机网络,及云服务器是否允许开放了对应端口的访问权。

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_42

确认Windows安装Oracle 数据库访问 客户端 instantclient,并配置好TNS连接字符串文件 tnsnames.ora 中的 HOST PORT SERVICE_NAME设置正确

由于数据库IP地址是公网所以打了码

如图:

CentOS 图形登录 centos进入图形化界面_Oracle数据库_43

打开相关 数据库访问操作软件
如 PL/SQL Developer

输入用户名sys和密码

CentOS 图形登录 centos进入图形化界面_腾讯云服务器_44

连接成功随便查询一个表ok没有问题。

CentOS 图形登录 centos进入图形化界面_CentOS_45

可以使用sql语句进行添加表空间角色正常使用即可。

至此对腾讯云CentOS系统Oracle数据库的安装配置圆满结束。

by MH8888 2019/07