在树莓派上安装oracle11g,Linux安装Oracle 11g

一开始网上找的静默安装搞不定,最后还是用vnc用图形界面装完的。

演示使用的Linux发行版是CentOS 7。

查看安装状态:

rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC.i686 unixODBC-devel

全部安装:

yum install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC.i686 unixODBC-devel

yum install java-1.8.0-openjdk.x86_64

版本自己确定,不过Oracle 11g自带的JDK是1.5的,所以最好不要超过1.8。

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle

创建Oracle的用户和用户组,Oracle安装强制不能使用root用户安装。

mkdir -p /home/data/database

mkdir -p /home/data/oracle

mkdir -p /home/data/oraInventory

mkdir -p /home/data/oracle/product/11.2.0/db_1

上面目录分别表示:安装文件、数据库安装主目录、数据库安装记录、数据库目录。

如果没有安装unzip命令需要安装:

yum install zip unzip

解压:

unzip linux.x64_11gR2_database_1of2.zip -d /home/data/database/

unzip linux.x64_11gR2_database_2of2.zip -d /home/data/database/

配置文件追加参数,不是替换所有配置。

vi /etc/sysctl.conf:

kernel.shmmax = 8589934592

kernel.shmall = 4294967296

kernel.shmmni = 4096

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

修改后执行:sysctl -p

注:

上面的kernel.shmmax这个参数一定要注意大小必须要小于等于/dev/shm挂载的大小,可以使用df -h查看。否者启动Oracle时会提示:ORA-00845: MEMORY_TARGET not supported on this system。

如果出现上面的错误可以执行:mount -o remount,size=8G /dev/shm来修改/dev/shm大小。

vi /etc/security/limits.conf:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

vi /etc/pam.d/login:

session required /lib64/security/pam_limits.so

session required pam_limits.so

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

修改Oracle用户环境变量(可以忽略)vi /home/oracle/.bash_profile:

export ORACLE_BASE=/home/data/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export ORACLE_TERM=xterm

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export PATH=$PATH:$ORACLE_HOME/bin:/usr/sbin:$PATH

修改目录权限:

chown -R oracle:oinstall /home/data/

按照如下设置:

1391da473081910ca9645269c3db4ed3.png

如果没有XManager(这个软件是收费的),可以选择Xming替代,但是下面要选择第二个选项(X DISPLAY)。

yum install xhost tigervnc tigervnc-server

然后执行:

vncserver

输入密码,不用记住,后面也不会用到。

然后执行:

export DISPLAY=:1

xhost +

至于上面:1,这个数字怎么来的,你具体可以看一下启动vncserver时候的控制台输出内容,一般执行一次vncserver后就不会需要再次执行了。

现在我们切换到Oracle用户开始安装:

su oracle

./runInstaller

如果提示:Exception in thread "main" java.lang.NoClassDefFoundError

重新执行上面vncserver和后面的命令。

如果提示:xhost: unable to open display ":1"

表示没有启动vncserver。

如果root执行xclock可以打开时钟,但是切换到Oracle提示:Error: Can't open display: localhost:10.0

可以在root下面执行:ssh -AY oracle@localhost,然后执行后面的命令。

如果出现乱码

执行export LANG=C,修改为英文进行安装。

如果是本地会很快,如果是远程可能会非常慢,而且中断了就GG,重来。

安装过程:

bb057de9d2ef31cb758dc60b98a6442d.png

0a345841271ac7ffce026ce1bfb928bf.png

f8e72f6258f5fbe4ac9afeb5a0d38609.png

d108b411b01b4639d56259ee22fa6579.png

014500bd05a897b778fd026b74327493.png

5f66184781b426783abe6e378dd6f318.png

2cd0bb775633be893550070d55122392.png

3f6870d45116d275658f5599194aea21.png

如果上面的依赖包都安装了,下面的提示应该是依赖包的版本太高导致出现下面缺少依赖的问题,选择忽略。

14203ab66727cb356f71acb39f884931.png

4ce37410ca58e908190048474e235488.png

0053d4a6188d197521f83dde7ab967f5.png

使用root用户执行后面的语句:

b87b2da26d7c41ca834ffbdfeb72fdc7.png

b74ee6f79de742a2e13a82556cd7e340.png

如果提示错误:

INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

collect2: error: ld returned 1 exit status

INFO: make: *** [ctxhx] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target 'install' of makefile '/home/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/home/data/oraInventory/logs/installActions2018-06-22_04-41-52PM.log' for details.

Exception Severity: 1

执行下面命令:

yum install libstdc++*

当然还是不行,最后我在其他机器上面考了一个libstdc++.so.5.0.7,放到/usr/lib64里面就OK了。

然后提示:

INFO: make[1]: Leaving directory `/home/data/oracle/product/11.2.0/db_1/sysman/lib'

INFO: make[1]: *** [/home/data/oracle/product/11.2.0/db_1/sysman/lib/emdctl] Error 1

make: *** [emdctl] Error 2

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target 'agent nmhs' of makefile '/home/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/home/data/oraInventory/logs/installActions2018-06-22_05-18-11PM.log' for details.

Exception Severity: 1

修改ins_emagent.mk,将$(MK_EMAGENT_NMECTL)改为$(MK_EMAGENT_NMECTL) -lnnz11。

安装完成。

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName acgist -sid acgist -responseFile NO_VALUE -characterSet AL32UTF8 -sysPassword oracle -systemPassword oracle

使用之前先设置Oracle的环境变量:. .bash_profile。

上面命令执行后等待大概两分钟左右就完成创建了。

登陆数据库:sqlplus

输入账号sys as sysdba和密码oracle

如果提示:Connected to an idle instance.

输入命令:startup

如果提示:LRM-00109: could not open parameter file '/home/data/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

进入目录$ORACLE_BASE/admin/${SID}/pfile,也就是:/home/data/oracle/admin/acgist/pfile,目录下面有一个文件init.ora.*,拷贝为上面提示不存在的文件:

cp init.ora.* /home/data/oracle/product/11.2.0/db_1/dbs/initorcl.ora

再次执行:startup

可能提示:ORA-00845: MEMORY_TARGET not supported on this system,请参考上面。

如果提示:ORA-01102: cannot mount database in EXCLUSIVE mode,其实重启一下会有奇效。

重启后再次执行startup:

Total System Global Area 768294912 bytes

Fixed Size 2217304 bytes

Variable Size 452987560 bytes

Database Buffers 310378496 bytes

Redo Buffers 2711552 bytes

Database mounted.

Database opened.

OK,数据库启动完成。

这是我们访问数据库会提示:ORA-12541:TNS:no listener,所以我们需要创建一个数据库监听来提供数据库访问。

创建命令:

netca -silent -responsefile /home/data/database/database/response/netca.rsp

提示:

完成对命令行参数进行语法分析。

Oracle Net Services 配置:

完成概要文件配置。

Oracle Net 监听程序启动:

正在运行监听程序控制:

/home/data/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER

监听程序控制完成。

监听程序已成功启动。

监听程序配置完成。

成功完成 Oracle Net Services 配置。退出代码是0

成功后可以使用命令:lsnrctl status查看监听状态。

然后就可以连接数据库了。

这里我们需要注意:

如果使用SID连接,那么SID的值是环境变量里面ORACLE_SID的值:orcl

如果使用服务名连接,那么服务名是gdbName的值:acgist

如果没有创建用户情况下,可以使用system进行登陆。

或者创建新用户,下面是创建和授权命令:

create user test identified by test;

grant connect, resource to test;

然后就可以使用test进行登陆了。

这里有几个概念:数据库名、实例名、服务名、ORACLE_SID。

查看配置文件/home/data/oracle/product/11.2.0/db_1/dbs/initorcl.ora里面的db_name。

或者进入sqlplus使用以下命令进行查询:

select name from v$database;

show parameter db

进入sqlplus使用以下命令查询:

select instance_name from v$instance;

show parameter instance

或者使用查看监听状态。

进入sqlplus使用以下命令查询:

select name, value from v$parameter where name = 'service_names';

show parameter service_name

一般和实例名一样,并不是创建时的SID。

完成,感觉Oracle还是挺复杂的,工作主要还是使用MySQL数据库。😀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值