最近工作中用到了
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. 路径、权限与环境变量配置
这一步参照: Automating Database Startup and Shutdown on Linux
附上脚本和~/.bash_profile
:start_all.sh
:
#!/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
参照: Oracle Database 11g Release 2 Installation on RHEL/CentOS 6.x/5.x/4.x,以这个link
的步骤为主,link1
和link2
为辅
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
参照: Oracle Listener
最后
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