图解在deepin系统下安装Oracle Database 12c Release 2数据库
写在前面
首先明确一点,在Linux下安装Oracle数据库事实上并不是一件容易的事情(Linux大牛除外),尤其是当你使用的Linux发行版不是Red Hat或者Centos这种服务器型的发行版的时候。网上大部分的教程都是针对Red Hat
、Centos
以及Ubuntu
的,所以当我自己决定在deepin
上安装Oracle
的时候,我已经准备好踩坑了,而事实也证明了安装的过程确实是一波三折,OK,废话就不说了,直接进入主题。
安装前准备
下载你自己需要安装的Oracle版本,我这里选择的是Oracle Database 12c Release 2
这个版本,有一点要注意的地方就是下载需要登录Oracle账户。
下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
下载完成后,我们需要校验一下文件是否损坏,切换到文件的下载目录,执行以下命令
1 | // filename 为下载的文件名 |
对比Oracle官网提供的校验码,如果一致,那么说明文件没有损坏
开始安装
在正式开始安装之前,请移步到Oracle官网查看数据库安装指南的相关信息,尤其是依赖部分。
文档地址: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/install-and-upgrade.html
解压文件
切换到文件的下载目录,将文件解压
执行mv database /opt/
将解压后的文件拷贝到/opt/
目录下,这里你可以根据你自己的需要拷贝到其他文件夹
创建用户
使用以下命令创建Oracle用户,并设置密码
1 | groupadd dba |
修改参数
编辑/etc/security/limits.conf
文件,在文件的最后添加如下的配置(你可以根据你自己的需要进行配置)
1 | oracle soft nofile 1024 |
编辑/etc/sysctl.conf
文件,在文件的最后添加如下的配置(你可以根据你自己的需要进行调整)
1 | fs.file-max=6815744 |
安装依赖
依赖部分请务必安装完整,否则后面的安装会出现各种各样的问题,关于依赖请参考上面Oracle官网的安装文档,注意:官网提供的依赖是 Red Hat 以及 Oracle Linux 的,仅供参考。在 deepin 中安装如下依赖(此部分依赖并不一定完整,需要根据你自己的电脑来调整)
1 | apt-get install libaio-dev sysstat unixodbc-dev libelf-dev unzip g++ zlib1g-dev ksh libstdc++5 binutil |
建立软连接
在终端中执行如下命令建立软连接
1 | sudo mkdir /usr/lib64 |
运行安装程序
在终端中切换到Oracle用户,进入/opt/database
目录下,为了避免安装界面出现乱码,执行export LANG=en_us
,之后执行./runInstaller
1 | su oracle |
在执行./runInstaller
的时候,提示无法使用命令/usr/bin/xdpyinfo
自动检查显示器颜色
在终端中执行xdpyinfo
命令查看显示器的颜色信息,发现没问题,所以问题不在这儿,通过百度发现,需要使用之前创建的oracle
用户登录系统才能调用安装程序,所以切换oracle
用户登录系统,注意不是在终端切换用户
图形化安装
使用oracle
用户登录系统后,同样切换到/opt/database
目录下,同样为了避免出现乱码,执行以下命令
1 | export LANG=en_us |
之后执行./runInstaller
,成功调出安装界面
这里提示说Oracle不支持当前的操作系统,问你是否继续,我们选择yes
继续
将接受安全更新和技术支持前的钩去掉
在弹出的警告框中选择yes
,继续安装
选择安装选项,选择创建并配置数据库,然后next
接下来选择系统类型,这里选择服务器类型,然后next
接下来选择数据库的安装选项,这里选择单实例数据库,然后next
接下来选择安装类型,这里选择高级安装,然后next
接下来选择数据库的版本,这里选择安装企业版,然后next
接下来指定安装目录,这里选择默认的即可,然后next
接下来创建inventory
目录,此目录用于存放数据库的一些相关信息,这里选择默认的即可,然后next
接下来选择配置类型,这里选择一般用途/事务处理,然后next
接下来指定数据的标识符,这里选择默认即可,然后next
接下来指定配置选项,内存方面默认即可,但是字符集要注意选择UTF-8
为了方便学习sql
语句,将example schemas
选项下的创建具有实例方案的数据库前的钩打上
接下来指定数据库的存储选项,这里也是选择默认即可,然后next
接下来指定管理选项,这里直接跳过,选择next
接下来指定数据恢复选项,这里也直接跳过,选择next
接下来指定数据库密码,为了方面,这里我将密码统一设置为oracleadmin
,这里的密码是不符合强度要求的,真实的生产环境是不可能设置成这样的,这里仅仅是为了方便个人学习使用而设置成这样。
设置完密码后,会提示密码不符合oracle的标准,问你是否继续,选择yes
继续即可
接下来配置授权的操作系统组,这里全部选择dba
,然后next
接下来检查安装的配置信息,检查无误后,选择install
开始安装
开始进行安装。。。
在安装到65%的时候报了一个错误Error in invoking target 'links proc gen_pcscfg procob' of makefile...
参考文章1: http://www.techienote.com/install-oracle-12c-on-ubuntu/
参考文章2: https://bbs.deepin.org/forum.php?mod=viewthread&tid=43149
出现这个问题,首先检查依赖有没有问题,如果依赖没有问题,再去尝试其他的解决办法,此处省略一万个字…网上有许多类似的问题的解决办法,这里我就不一一讲了,这里直接讲我是如何解决的,切换到root
用户,执行以下命令,注意此处针对的是deepin 15.2版本以上的系统。
1 | apt-get install gcc-4.8 g++-4.8 |
之后选择Retry
重新尝试,在弹窗中选择OK
继续安装
在安装到79%的时候,提示The installer has detected that current home is not registered in the central inventory on this system
,问你是否继续,这里选择yes
继续安装
然后在安装到92%的时候又报了个错误:[INS-20802] Oracle Net Configuration Assistant failed
,百度搜了一堆办法,但是最后我直接选择Ok
,之后点击Retry
重试,没问题,安装正常
胜利在望。。。
bingo…安装完成,点击close
关闭安装界面
安装完成后,将gcc,g++的版本改回默认,切换到/usr/bin/
目录下,执行以下命令:
1 | mv g++.script g++ |
配置环境变量
修改~/.bashrc
文件,添加如下内容,注意这里要根据你自己的安装位置进行调整
1 | export ORACLE_BASE=/opt/oracle/app/oracle |
测试安装
在保存完环境变量后,新开一个终端窗口,输入以下命令连接数据库:
1 | sqlplus "/as sysdba" |
oracle用户下,连接数据库没有问题,接下来使用原来的账户登录系统,再次执行以下命令连接数据库:
1 | sqlplus "/as sysdba" |
bingo…测试没问题,至此,Oracle Database 12c Release 2已经在deepin上安装成功了。
关于连接
电脑关机之后,Oracle数据库会被关闭,所以在下次连接数据库之前,需要启动监听服务并且启动数据库,具体做法如就是,打开终端,执行lsnrctl start
启动监听服务,然后,使用sqlplus "/as sysdba"
切换到SQL>
模式,执行startup
启动数据库。
总结
总的来说,这一次安装Oracle数据库几乎花费了我一整天的时间,期间因为学校晚上12点断网,所以在安装的过程中遇到问题(在安装到65%出错的时候恰好已经过了12点)的时候没法上网查找,不得不留到第二天继续安装,中间我都没关电脑,再加上写这篇文章,也花费了不少的时间,不过最终能够安装成功也算有所收收获,毕竟在安装的过程中自己也学到了不少东西,包括linux上的各种配置以及命令的使用。OK,文章到此就结束了,撒花~~~~