Linux命令行安装Oracle19c教程和踩坑经验

安装

  1. 下载 从 需要的版本,本次安装是在Linux上使用yum安装,因此下载的是RPM。另外,需要说明的是,Oracle加了锁的下载需要登录用户才能安装,而用户是可以免费注册的,这里不做过多说明。
  2. 安装
# 创建oracle用户组
[root@QingYun oracle19]# groupadd oracle
# 创建oracle用户
[root@QingYun oracle19]# useradd -g oracle -G oracle oracle
# rpm安装oracle
[root@QingYun oracle19]# rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm

使用上述rpm,不出意外的话,应该会报错如下:

[root@QingYun oracle19]# rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm
warning: oracle-database-ee-19c-1.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
	oracle-database-preinstall-19c is needed by oracle-database-ee-19c-1.0-1.x86_64

意思是:oracle-database-ee-19c-1.0-1.x86_64.rpm依赖的oracle-database-preinstall-19c没有安装。 解决这个错误,需要从 下载rpm依赖包oracle-database-preinstall-19c安装即可。

[root@QingYun oracle19]# rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
warning: oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
error: Failed dependencies:
	bind-utils is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	compat-libcap1 is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	compat-libstdc++-33 is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	ksh is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	libaio-devel is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	nfs-utils is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	psmisc is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	smartmontools is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	xorg-x11-utils is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64
	xorg-x11-xauth is needed by oracle-database-preinstall-19c-1.0-1.el7.x86_64

可以看到,安装oracle-database-preinstall-19c时也有很多依赖的包,依次进行安装即可。 这里也罗列了我之前下载安装的一些列依赖rpm,有点多,耐心安装即可:

[root@QingYun oracle19]# ls
bind-libs-9.9.4-74.el7_6.2.x86_64.rpm
bind-license-9.9.4-74.el7_6.2.noarch.rpm
bind-utils-9.9.4-74.el7_6.2.x86_64.rpm
compat-libcap1-1.10-7.el7.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
GeoIP-1.5.0-14.el7.x86_64.rpm
geoipupdate-2.5.0-1.el7.x86_64.rpm
glibc-2.17-322.0.1.el7_9.x86_64.rpm
glibc-common-2.17-322.0.1.el7_9.x86_64.rpm
ksh-20120801-144.0.1.el7_9.x86_64.rpm
libaio-devel-0.3.109-13.el7.x86_64.rpm
libdmx-1.1.3-3.el7.x86_64.rpm
libXmu-1.1.2-2.el7.x86_64.rpm
libXt-1.1.5-3.el7.x86_64.rpm
libXtst-1.2.3-1.el7.x86_64.rpm
libXv-1.0.11-1.el7.x86_64.rpm
libXxf86dga-1.1.4-2.1.el7.x86_64.rpm
libXxf86misc-1.0.3-7.1.el7.x86_64.rpm
mailx-12.5-19.el7.x86_64.rpm
nfs-utils-1.3.0-0.68.0.1.el7.x86_64.rpm
oracle-database-ee-19c-1.0-1.x86_64.rpm
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
psmisc-22.20-17.el7.x86_64.rpm
quota-4.01-19.el7.x86_64.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
smartmontools-7.0-2.el7.x86_64.rpm
xorg-x11-utils-7.5-23.el7.x86_64.rpm
xorg-x11-xauth-1.0.9-1.el7.x86_64.rpm

踩坑

1. su oracle 报错

问题解决:

2.乱码

安装好之后,使用sqlplus登录之后,可以看到SQL界面的显示都是???,这个实际上是中文显示乱码 解决这个问题,直接修改数据库字符集为英文

SQL> conn /as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter system set aq_tm_processes=0;
SQL> alter database open;
# 设置成中文
SQL> alter database character set internal_use ZHS16GBK;
# 设置成英文
SQL> alter database character set internal_use AL32UTF8;
SQL> alter system set nls_language = AMERICAN scope = spfile;
SQL> alter system set nls_territory = AMERICA scope = spfile;
SQL> shutdown immediate;
SQL> startup;
经验分享 程序员 微信小程序 职场和发展