deepin安装Oracle 12c R2(详细)

图解在deepin系统下安装Oracle Database 12c Release 2数据库


写在前面

首先明确一点,在Linux下安装Oracle数据库事实上并不是一件容易的事情(Linux大牛除外),尤其是当你使用的Linux发行版不是Red Hat或者Centos这种服务器型的发行版的时候。网上大部分的教程都是针对Red HatCentos以及Ubuntu的,所以当我自己决定在deepin上安装Oracle的时候,我已经准备好踩坑了,而事实也证明了安装的过程确实是一波三折,OK,废话就不说了,直接进入主题。


安装前准备

下载你自己需要安装的Oracle版本,我这里选择的是Oracle Database 12c Release 2这个版本,有一点要注意的地方就是下载需要登录Oracle账户。
下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

下载完成后,我们需要校验一下文件是否损坏,切换到文件的下载目录,执行以下命令

1
2
// filename 为下载的文件名
cksum filename

cksum

对比Oracle官网提供的校验码,如果一致,那么说明文件没有损坏

oracle cksum


开始安装

在正式开始安装之前,请移步到Oracle官网查看数据库安装指南的相关信息,尤其是依赖部分。
文档地址: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/install-and-upgrade.html


解压文件

切换到文件的下载目录,将文件解压

unzip

执行mv database /opt/将解压后的文件拷贝到/opt/目录下,这里你可以根据你自己的需要拷贝到其他文件夹


创建用户

使用以下命令创建Oracle用户,并设置密码

1
2
3
4
5
6
7
8
9
groupadd dba
useradd -d /opt/oracle -m -c "Oracle Database" -g dba -G sudo -s `which bash` oracle
passwd oracle
## -d:参数是指定用户主目录
## -m:自动建立用户的登入目录
## -c:用户描述
## -g:指定用户所属的组
## -G:指定用户所属的附加组
## -s:指定用户登入后所使用的shell

add user


修改参数

编辑/etc/security/limits.conf文件,在文件的最后添加如下的配置(你可以根据你自己的需要进行配置)

1
2
3
4
5
6
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

编辑/etc/sysctl.conf文件,在文件的最后添加如下的配置(你可以根据你自己的需要进行调整)

1
2
3
4
5
6
7
8
9
10
11
fs.file-max=6815744
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.shmall=1073741824
kernel.shmmax=4398046511104
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500

args


安装依赖

依赖部分请务必安装完整,否则后面的安装会出现各种各样的问题,关于依赖请参考上面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

install


建立软连接

在终端中执行如下命令建立软连接

1
2
3
4
5
6
7
8
9
sudo mkdir /usr/lib64
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /etc /etc/rc.d
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/

link


运行安装程序

在终端中切换到Oracle用户,进入/opt/database目录下,为了避免安装界面出现乱码,执行export LANG=en_us,之后执行./runInstaller

1
2
3
4
5
su oracle
cd /opt/database
export LANG=en_us
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LC_ALL=C

在执行./runInstaller的时候,提示无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色

run

在终端中执行xdpyinfo命令查看显示器的颜色信息,发现没问题,所以问题不在这儿,通过百度发现,需要使用之前创建的oracle用户登录系统才能调用安装程序,所以切换oracle用户登录系统,注意不是在终端切换用户

xdpyinfo


图形化安装

使用oracle用户登录系统后,同样切换到/opt/database目录下,同样为了避免出现乱码,执行以下命令

1
2
3
export LANG=en_us
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LC_ALL=C

之后执行./runInstaller,成功调出安装界面

run

这里提示说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
2
3
4
5
6
apt-get install gcc-4.8 g++-4.8
cd /usr/bin
mv gcc gcc.script
mv g++ g++.script
ln -s gcc-4.8 gcc
ln -s g++-4.8 g++

之后选择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
2
mv g++.script g++
mv gcc.script gcc


配置环境变量

修改~/.bashrc文件,添加如下内容,注意这里要根据你自己的安装位置进行调整

1
2
3
4
export ORACLE_BASE=/opt/oracle/app/oracle  
export ORACLE_HOME=/opt/oracle/app/oracle/product/12.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl


测试安装

在保存完环境变量后,新开一个终端窗口,输入以下命令连接数据库:

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,文章到此就结束了,撒花~~~~

jump


如果您觉得我的文章对您有帮助,请随意赞赏,您的支持将鼓励我继续创作!
0%