服务器基础信息
腾讯云 CentOS7.2 64位
root登录系统查看一下版本信息
CentOS Linux release 7.2.1511 (Core)
在安全组中将ORACLE默认通讯端口 TCP 1521放通
1.安装前准备
首先,请先以root账号登入作一些前置设定作业。
输入密码后进入root账户
本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。
准备ORACLE 安装文件:
Linux.x64_11gR2_database_1of2.zip
Linux.x64_11gR2_database_2of2.zip
我建议安装文件可以通过SFTP传输或者在官网下载方法很多。
①SFTP文件传输…
这个速度比较慢并且还不能中断续传…
②可以使用wget命令下载
wget是一个linux从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.
所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。
.具体使用方法参照:
③CentOS安装图形界面VNC远程桌面使用web浏览器进行下载
图形界面安装下载具体方法 另一篇博客来介绍。
1.1操作系统准备
查看主机名
# hostname
查看ip地址
# ifconfig
修改hosts文件,然后添加现在主机的IP地址+主机名,wq保存。
# vi /etc/hosts
#vi /etc/sysconfig/network
加入内容 HOSTNAME=主机名
1.2关闭、防火墙
关闭selinux
#vi /etc/selinux/config
设置SELINUX=disabled
防火墙临时关闭命令:
#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
输入后可以看到群组的情况:
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/
$ ./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
下面出现运行出现 swap为0,最小为150MB不满足安装需求。
运行free查看一下
$ free -m
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空间
将目的文件设置为swap分区文件
# mkswap /var/swap
挂载swap
# swapon /var/swap
再次free -m查看ok
配置永久生效开机自动挂载
# vim /etc/fstab
加入如下内容并保存
/var/swap swap swap defaults 0 0
回过头继续执行安装命令
$ ./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
中文参照:
参照说明 再打开一个终端窗口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
创建监听没有成功 如出现上述错误
解决:一般是 host名称与本机不对应导致检查1.1操作步骤是否正确
再次运行
$ netca /silent /responseFile /opt/oracle/database/response/netca.rsp
执行成功如下图:
成功运行后,在/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保存退出就好了
5.2下面我们开启监听:
$ lsnrctl start
然后通过netstat命令可以查看1521端口正在监听如下图(再新建立一个连接使用root权限查看)
# netstat -tnulp | grep 1521
6.添加数据库实例
6.1修改dbca.rsp建立数据库实例(就是解压安装文件目录下的)
$ vim /opt/oracle/database/response/dbca.rsp
再本次安装中设置了下列的参数:可以根据自己情况进行设置(配置文件有说明)
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密码一闪而过,再次输入密码回车,这时就开始建库了。
完成(上述输入密码的步骤有可能直接略过)
建库后进行实例进程检查:
$ ps -ef | grep ora_ | grep -v grep
查看监听状态:
$ lsnrctl status
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
修改/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 如图
编辑rc.local
使其在Linux启动时候自动开启oracle服务,root下编辑rc.local
# vim /etc/rc.d/rc.local
在最下面加入下内容
su - oracle -lc dbstart
su - oracle -lc lsnrctl start
测试:
输入命令dbshut和dbstart测试
Oracle监听停止,进程消失。
$ dbshut
$ lsnrctl status
$ ps -ef |grep ora_ |grep -v grep
Oracle 监听启动,进程启动。
$ dbstart
$ lsnrctl status
$ ps -ef |grep ora_ |grep -v grep
6.4登录查看实例状态:
$ sqlplus / as sysdba
错误:
解决:
使用下列命令来查看 SID是否正确
$ echo $ORACLE_HOME
$ echo $ORACLE_SID //用此命令修改现在的SID看自己设的什么
$ env |grep ORACLE //或者使用此命令
$ export ORACLE_SID=orcl //用此命令来修改当前的SID
继续执行下列SQL语句
SQL> select status from v$instance;
错误:
出现上述错误 实例不可用 一般情况是 几个SID设置的不匹配导致实例没有正常运行。
尝试启动实例
SQL> startup
错误:
解决:
该问题一般是认为sid设置混乱造成,oracle安装过程中有几个地方都设置sid和数据库名称之类的,很容易记错。
出现以下提示,按照网上来说是 在oracle9i、10g、11g最近几个版本中,数据库默认使用spfile启动数据库。
上述路径 spfile配置文件外损坏造成的需要找到备份,进行还原 spfile配置文件,但是我们的数据实例刚刚建立还没有使用一般不会损坏配置文件的。
我们浏览到上述路径查看一下目录下的文件 发现spfile文件后面的SID是 大写的ORCL
而我们的却是 小写 orcl 如下图
果断将当前实例SID修改 成大写:
$ export ORACLE_SID=ORCL
然后 登录继续
$ sqlplus / as sysdba
SQL> startup
看到实例已经成功启动了
继续
SQL> select status from v$instance;
看到执行成功的查询结果。到这里我们实例已经建立成功了。
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命令 确认 可以连接上。如果连接不上确认本机网络,及云服务器是否允许开放了对应端口的访问权。
确认Windows安装Oracle 数据库访问 客户端 instantclient,并配置好TNS连接字符串文件 tnsnames.ora 中的 HOST PORT SERVICE_NAME设置正确
由于数据库IP地址是公网所以打了码
如图:
打开相关 数据库访问操作软件
如 PL/SQL Developer
输入用户名sys和密码
连接成功随便查询一个表ok没有问题。
可以使用sql语句进行添加表空间角色正常使用即可。
至此对腾讯云CentOS系统Oracle数据库的安装配置圆满结束。
by MH8888 2019/07