Debian jessie/sid上安装Oracle 12c

参考资料
http://gaiustech.wordpress.com/2013/06/26/howto-install-oracle-on-debian-wheezy/ (重要)

http://gaiustech.wordpress.com/2013/06/27/howto-install-oracle-12c-on-debian-wheezy/

http://www.debian-administration.org/articles/656

http://gemsofprogramming.wordpress.com/2013/09/19/installing-oracle-12c-on-ubuntu-12-04-64-bit-a-hard-journey-but-its-worth-it/ (重要)
http://gumpx.wordpress.com/tag/libnls12-a/ (重要)
https://community.oracle.com/thread/2558597 (重要)

0.0 安装文件下载

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-1959253.html

http://pan.baidu.com/wap/link?uk=1947011545&shareid=3172516112 (百度网盘)

按照物理内存的80%来创建的。调整优化参数。
#共享内存的页数,Linux共享内存页大小为4KB,8G内存设置为:8GB/4KB=8*1024*1024*1024/4KB=2097152
#kernel.shmall = 2097152
#128GB/4KB
kernel.shmall = 33554432
#最大共享内存,官方文档建议是内存的1/2,例如:8G内存则设置为:4*1024*1024*1024
#kernel.shmmax = 4294967296
#128G * 50%
kernel.shmmax = 68719476736

0.1 用Virutualbox安装Debian x64 tesing
安装基本系统,桌面系统和SSH

0.2 调整内核参数

kernel.shmmax=1073741824
kernel.shmall=262143

添加到/etc/sysctl.conf的最后,并执行

# sysctl -w kernel.shmmax=1073741824
# sysctl -w kernel.shmall=262143

0.3 准备依赖的库

# apt-get install libaio-dev sysstat unixodbc-dev libelf-dev unzip g++ zlib1g-dev libstdc++5

1.添加oracle用户

# groupadd dba
# useradd -d /home/oracle -m -c "Oracle Database" -g dba -s `which bash` oracle

2.准备数据库的安装目标位置
/opt/oracle
安装oracle软件时,所有的日志都会放在oraInventory这个目录下,默认情况下该目录会在$ORACLE_BASE/oraInventory (在 /etc/oraInst.loc 指定)
/opt/oraInventory
/oradata

# mkdir /opt/oracle
# mkdir /opt/oraInventory
# mkdir /oradata
# chown oracle:dba /opt/oracle /opt/oraInventory /oradata
# xhost +

3. 为兼容Redhat做一些符号链接, 因而oracle把一些二进制程序的路径写死了

# mkdir /usr/lib64
# ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
# ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
# ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib
# ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/

4. 切换到oracle用户,执行安装

# su - oracle

如果你的zip文件没有放到/home/oracle目录的,解压缩过程可以手动执行
$ for f in *.zip ; do unzip $f; done

$ cd database/
$ export DISPLAY=:0.0
$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.1.0
$ export PATH=$PATH:$ORACLE_HOME/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib64
$ ./runInstaller

在安装图形界面 选择
“install the database software only” 只安装数据库软件
“single instance database installation” 只安装单个数据库实例, 不搞什么集群,分布式,那些太高端了;-)
“Enterprise Edition” 企业版

4.1
如果你使用 zh_CN.UTF-8 的local,且 系统语言 选择了 汉语, 那么安装界面会乱码,那是因为 安装程序自带的JDK指定要一种 系统没有的字体, 不过我们可以用Debian的OpenJDK来代替

./runInstaller -jreLoc /usr/lib/jvm/java-1.7.0-openjdk-amd64/jre

4.2
另外一种解决乱码的方法
database/stage/Components/oracle.jdk/1.6.0.37.0/1/DataFile/ 下面有filegroup1.jar 这个文件
用”归档管理器”打开 filegroup1.jar, 在jdk/jre/lib/fonts 目录下创建fallback
然后将中文字体,比如 zysong.ttf(中易宋体) 或者 simsun.ttc(微软的宋体) 拖到jdk/jre/lib/fonts/fallback 这个目录
这样,当 找不到指定字体是,就fallback到zysong了

管理数据库的软件dbca也会乱码, 在安装后后,运行dbca前,也可以把字体 复制到 $ORACLE_HOME/jdk/jre/lib/fonts/fallback/ 这个目录

5. 解决安装过程中的问题
5.0 安装过程进行到80%多(所有文件复制完毕,并开始链接后), 报错

ins_precomp.mk
INFO: /usr/bin/ld: <ORACLE_HOME>/lib//libnls12.a(lxhlang.o): undefined reference to symbol ‘__tls_get_addr@@GLIBC_2.3′

这是因为oracle安装文件自带的 库文件太老了

需要删除 {ORACLE_HOME}/lib/stubs 这个目录 (对于我的设置,就是 /opt/oracle/product/12.1.0.1.0/lib/stubs

cd /opt/oracle/product/12.1.0.1.0/lib
rm -rf stubs

5.1 在图形安装界面 点击Retry继续, 再次报错

ins_rdbms.mk

libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close'
....
libons.so: could not read symbols: Invalid operation

修改 rdbms/lib/ins_rdbms.mk 的 883行 和 901 行

$(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS)
        $(SILENT)$(ECHO)
        $(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)"
        $(RMF) $@
        $(PLSHPROF_LINKLINE) -lons

....
 $(RMAN) : $(ALWAYS) $(RMAN_DEPS)
         $(SILENT)$(ECHO)
         $(SILENT)$(ECHO) " - Linking recovery manager (rman)"
         $(RMF) $@
         $(RMAN_LINKLINE) -lons

5.2 在图形节目 Retry, 第3次报错

ins_rdbms.mk
houzi.o: undefined reference to symbol 'ztcsh'

libnnz12.so: could not read symbols: Invalid operation

修改 ins_rdbms.mk 的 1067行

 $(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS)
         $(SILENT)$(ECHO)
         $(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility"
         $(RMF) $@
         $(TG4PWD_LINKLINE) -lnnz12

6. 执行最后的脚本

# ln -s /usr/bin/awk /bin/awk
# /opt/oraInventory/orainstRoot.sh 
# /opt/oracle/product/12.1.0.1.0/root.sh

7.启动DBCA
7.1修改一些系统配置

# vi /etc/sysctl.conf
# Oracle 12c entries
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
kernel.shmmax=1073741824


# sysctl -p


# vi /etc/security/limits.conf
#Oracle 12c
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

7.2 配置环境变量, 并以oracle用户启动 数据库管理程序dbca

$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.1.0
$ export PATH=$PATH:$ORACLE_HOME/bin
$ dbca

第1次启动有点慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值