准备材料
下载以下文件并上传至服务器/opt目录,或者在服务器直接用curl、wget命令下载以下文件。
下载oracle19c的Linux rpm包
下载preinstall包
下载rlwrap
用于替换sqlplus命令行,因为sqlplus命令行不能使用左右移位和删除键盘。
在https://centos.pkgs.org/中搜索rlwrap的rpm包,根据自己的系统下载。
添加oracle用户
因为oracle数据库必须用oracle用户来操作,所以需要添加oracle用户
groupadd oinstall
groupadd dba
useradd oracle -g oinstall -G dba
id oracle
安装oracle
安装oracle的preinstall包
这里面包含了oracle的一些依赖。
注:我的安装包放在了/opt目录,所以安装包的路径为 /opt/xxxx,根据自己的路径修改
yum -y localinstall /opt/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
安装oracle
有点慢 2核4G花了六七分钟
注:我的安装包放在了/opt目录,所以安装包的路径为 /opt/xxxx,根据自己的路径修改
source ~/.bash_profile
# 不刷新会报错oracle用户对/opt/oracle没有权限
yum -y localinstall /opt/oracle-database-ee-19c-1.0-1.x86_64.rpm
修改oracle配置
修改CHARSET是为了节省点空间,让他只支持英文和中文
把CDB修改为false,表示不创建容器数据库
vim /etc/init.d/oracledb_ORCLCDB-19c
##########
注意这部分,以下是修改后的:
export ORACLE_VERSION=19c
export ORACLE_SID=ORCLCDB
export TEMPLATE_NAME=General_Purpose.dbc
export CHARSET=ZHS16GBK
export PDB_NAME=ORCLPDB1
export LISTENER_NAME=LISTENER
export NUMBER_OF_PDBS=1
export CREATE_AS_CDB=false
##########
添加hosts映射
有的服务器没有 ip–hostname 的映射关系,需要自己添加
# 查看hosts 如果有ip--hostname 的映射关系的话就不用加了
cat /etc/hosts
# 没有的话需要添加
# 根据个人机器补充,ip通过 ifconfig 命令可以查到,hostname通过命令 hostname 查到
vim /etc/hosts
192.168.xx.xx 你的hostname
# 重启
reboot
创建数据库
/etc/init.d/oracledb_ORCLCDB-19c configure
有点慢,2核4G花了我20分钟,建议后台执行,不然终端关了,电脑熄屏、没电关机了就又要重新执行
# 后台方式创建,将正确日志和错误日志重定向到当前目录的 my.log 文件里
nohup /etc/init.d/oracledb_ORCLCDB-19c configure >> /opt/my.log 2>&1 &
# 随时查看安装进度日志,直到出现"Database configuration completed successfully. The
# passwords were auto generated, you must change them by connecting to the
# database using 'sqlplus / as sysdba' as the oracle user",就是安装好了
cat /opt/my.log
新建环境变量
# 新建环境变量
vim /etc/profile.d/oracle19c.sh
# 追加以下内容
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin
export ORACLE_SID=ORCLCDB
登录oracle,创建用户
# 修改oracle用户密码,云服务建议修改为强密码,不然容易被攻击
passwd oracle
# 切换到oracle用户
su - oracle
# 连接oracle
sqlplus / as sysdba
# 创建用户,云服务建议修改为强密码,不然容易被攻击
create user 用户名 identified by 密码;
grant connect,resource,dba to 用户名;
解决sqlplus出现???
将Linux和oracle的字符集设为一致
# 切换用户
su - oracle
# 添加到环境变量
vim ~/.bash_profile
# 追加以下内容,根据查到的结果自己修改
export NLS_LANG=american_america.zhs16gbk
# 刷新环境变量
source ~/.bash_profile
# 重启reboot
su - root
reboot
# 开启监听
su - oracle
lsnrctl start
# 开启oracle实例
sqlplus / as sysdba
startup
使用navicat远程连接oracle
服务器安全组开放1521端口
打开navicat,选择连接oracle
SID可以通过以下命令查到
select value from v$parameter where name='instance_name';
安装rlwrap
sqlplus中打错sql命令时不能左右移位,不能删除,只能回车重新写,非常麻烦。
出错如下:>aa ^H^H^[[D^[[D^[[C^[[A
安装 readline
因为rlwrap依赖readline,所以安装rlwrap之前需要readline。
yum -y install readline
yum -y install readline-devel
安装rlwrap
注:我的安装包放在了/opt目录,所以安装包的路径为 /opt/xxxx,根据自己的路径修改
yum -y localinstall /opt/rlwrap-0.45.2-2.el7.x86_64.rpm
添加到环境变量
# 切换到oracle用户
su - oracle
# 编辑环境变量
vim ~/.bash_profile
# 追加以下内容
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
# 刷新环境变量
source ~/.bash_profile