最近工作中用到了Oracle作为Intel测试的数据库,在装Oracle Linux和Oracle Database 11g R2折腾了很久,这篇文章就这两点对大家分享一些我安装过程中遇到的问题和注意点,RAC暂时还未配置,稍后找时间补上 ~~~
现在网上找一篇好的文章好难,往往要在一个话题或技术上找多方资源东拼西凑,互相借鉴才能达成目的,原因就是很多细节部分描述不清或者忽略,这样往往会给读者带来负效应,本文旨为读者呈现每一步的细节操作和异常处理,如有不足,请指正,谢谢!
友情提醒: 本文参照link较多,请细心并且耐心地进行每一步操作
Resource Link
Oracle Linux Installation
参考列表:
以下操作步骤基本是按上面两条link走的,有一些地方不一样或者是没必要的我会在下面详细讲解,我装的时候以link1为主线,然后参照link2的word文档进行,没有特殊标记的一般都是根据link1操作,大家也可以这样操作,可以少遇一些坑,节省一些时间~~~
注意点:
Base server这一步很关键
勾选Oracle Linux Server, Resilient Storage和 Scalable Filesystem Support(参照link2)
勾选Customize Now,这一步依然非常关键,只有勾选了才可以装一些Oracle Linux需要的套件
需要手动添加安装的套件(系统默认勾选的不要删掉,这边的操作只添加勾选):
Base System:Compatibility libraries、Legacy UNIX compatibility
Servers: System administration tools
Desktops: Desktop、Desktop Platform、Fonts、General Purpose Desktop、Graphical Administration Tools、Input Methods、X Window System
Development: Additional Development、Development Tools
Appilication: Internet Browser
安装应该是1390个包,装好直接reboot
这时候创建普通用户的时候,千万不要创建oracle用户,否则之后会有很多麻烦
Oracle Linux Configuration(important and complicated)
下面讲的主要是和两个文档不同的地方(依然以link1为主线):
1. selinux需要dsiable
2. /etc/sysctl.conf参照link2,kernel.shmmax = 536870912(这行参照link2)
3. /etc/security/limits.conf
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
4. oracle linux 6.5光盘下载包(我是通过yum安装,没有安装的大部分都是系统已经安装了,少部分是没必要安装)
需要安装:
ksh
libaio-devel.i686
libaio-devel.x86_64
libaio.i686
libstdc++.i686
libstdc++-4.4.7-18.el6.i686
compat-libstdc++-33.i686
不需要安装:
numactl-devel-2*x86_64*
由于我本地的是libstdc++-4.4.7-4.el6.x86_64,而安装的是libstdc++-4.4.7-18.el6.i686,版本不匹配会造成yum报错,而这个库作为众多库的依赖还不能删除,所以只能强行升级:yum install libstdc++-4.4.7-18.el6.i686,然后再安装i686文件
5. 路径、权限与环境变量配置
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart $ORACLE_HOME
stop_all.sh:
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut $ORACLE_HOME
setenv.sh:
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=tonydb.localdomain
export ORACLE_UNQNAME=sampledb
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=sampledb
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
~/.bash_profile最后一行追加:
. /home/oracle/scripts/setenv.sh
6. 安装FTP并上传zip文件(这一步有需求就执行,我是通过windows传输到linux上)
安装包在页面最上方Resource Link的第二个link,有两个zip包,都是需要的,这就是Oracle Database 11g R2的包,下面就开始安装数据库了,离成功也就不远了
Oracle Database 11g R2 Installation
1. 如果出现next button闪退的现象,进入preference里面调节屏幕分辨率即可
2. check时候报错,如果你在上面安装了那么就ignore吧,因为这些包都安装了,只不过版本比它check的高:
libaio-0.3.105
compat-libstdc++-33-3.2.3
libaio-devel-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
unixODBC-2.2.11
unixODBC-2.2.11
unixODBC-devel-2.2.11
unixODBC-devel-2.2.11
pdksh-5.2.14
Oracle Listener Configuration
最后test不成功也没关系,先保存设置进行下一步,这边把lsnrcetl起起来就可以了,先不要进入oracle命令行,需要等下一步创建了数据库再进行startup等操作
问题1:使用netmgr命令进入页面更改配置最后保存的时候报错Save Network Configuration entry failed
解决:点击detail可知具体错误原因,可以看到报错信息最后是permission denied,这是因为第一次你是用的root用户登录netmgr,所以造成tnsnames.ora权限是root用户权限,所以你更改配置信息失败,所以chown oracle:oinstall tnsnames.ora搞定
问题2:lsnrctl start失败报错permission denied
解决:问题和上面一样,只不过这次是listener.ora的权限不对,所以向上面的做法再做一次,这一点可以看出拍错很重要,要多看detail信息
创建数据库
dbca进入创建向导,填写正确的sid,sid不用填ORCL,就用同步生成的就好,不同的数据库可以拥有不同的sid,按照默认的配置不断地next就好
安装后的默认数据库为orcl,如需创建新的数据库
使用辅助工具(Linux UI mode)
root@oracledb: xhost local:oracledb
root@oracledb: su - oracle
oracle@oracledb: dbca
使用em管理WebUI
创建表空间
使用sqlplus
su - oracle (Windows下此步骤省略)
sqlplus / as sysdba
create tablespace test_space datafile '/opt/oracle/oradata/test_data.dbf' size 500M
使用em管理WebUI
创建用户
使用sqlplus
su - oracle (Windows下此步骤省略)
sqlplus / as sysdba
create user test identified by test default tablespace test_space;
使用em管理WebUI
授权用户权限
使用sqlplus
su - oracle (Windows下此步骤省略)
sqlplus / as sysdba
grant connect, resource to test;
使用em管理WebUI
授权DBA权限(RMAN需要dba权限来运行)
使用sqlplus
su - oracle (Windows下此步骤省略)
sqlplus / as sysdba
grant sysdba to test;
使用em管理WebUI
数据库启动/关闭
切换用户
root@oracledb: su - oracle
启动监听
lsnrctl start
启动实例
su - oracle (Windows下此步骤省略)
sqlplus /nolog
conn /as sysdba
startup
关闭实例
su - oracle (Windows下此步骤省略)
sqlplus /nolog
conn /as sysdba
shutdown immediate
exit
关闭监听
lsnrctl stop
归档日志模式启动/关闭
启动归档日志模式
sqlplus /as sysdba
shutdown immediate
startup mount
alter database archivelog
alter database open
关闭归档日志模式
sqlplus /as sysdba
shutdown immediate
startup mount
alter database noarchivelog
alter database open
所有相关参考:
作者: Tony
日期: 2017/06/26