Oracle 11gR2 For Centos6.3
数据库安装文档
Rockey Hoo
2013-6-26
目录
安装环境 1
Linux软件包选择 1
设置host文件 1
同步时钟 1
设置内核参数 2
设置Limit参数 2
关闭selinux 2
安装软件包 2
创建用户组 3
创建文件路径并赋权 3
设置Oracle用户环境变量 3
上传文件解压安装 4
配置监听和启动数据库 10
Oracle设置自启动 14
创建表空间和数据库 16
安装环境
软件版本信息及账户
VMware8.0
安装centos时,启动eth0老是出错,后来更改了eth0的网卡地址,使eth0启动失败。
Centos6.3
root|rockey/rockey
oracle/oracle
Oracle 11g r2
sys|system|sysman/Qwer1234
scott/tiger
hs/123
Linux软件包选择
在安装Linux操作系统的时候注意选择以下软件包
Software Package
* GNOME Desktop Environment
* Editors
* Graphical Internet
* Text-based Internet
* Development Libraries
* Development Tools
* Server Configuration Tools
* Administration Tools
* Base
* System Tools
* X Window System
设置host文件
修改文件/etc/hosts,增加一条,如下所示(主要hostname 与/etc/sysconfig/network中的hostname一致)
<IP ADDRESS> <Full-qualified-machine-name> <Machine-name>
Example:
127.0.0.1 localhost.localdomain oradb
同步时钟
yum -y install ntp
ntpdate time.nist.gov
#以下下为计划任务-每过2小时同步一次时间
echo "* */2 * * * /sbin/ntpdate time.nist.gov" >> /etc/crontab
设置内核参数
修改文件/etc/sysctl.conf,增加下列条目,如下所示, 设置完成后运行/sbin/sysctl –p 使之生效
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
设置Limit参数
修改文件/etc/security/limits.conf,增加下列条目,如下所示:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
关闭selinux
修改文件/etc/selinux/config,增加下列条目,如下所示:
SELINUX=disabled
安装软件包
下列软件包在安装光盘的server目录下面,[注:32位和64位最好都安装]
rpm -Uvh binutils-2.* --nodeps --force //忽略依赖关系,强制安装
rpm -Uvh compat-libstdc++-33*
rpm -Uvh compat-libstdc++-33*.i386.rpm
rpm -Uvh elfutils-libelf*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh glibc-2.* --nodeps --force //忽略依赖关系,强制安装
rpm -Uvh glibc-common-2.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh glibc-headers-2.*
rpm -Uvh ksh*
rpm -Uvh libaio-0.* --nodeps --force //忽略依赖关系,强制安装
rpm -Uvh libaio-devel-0.*
rpm -Uvh libgomp-4.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh make-3.*
rpm -Uvh sysstat-7.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
rpm -Uvh numactl-devel-2*
Or 直接运行以下
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers
创建用户组
使用下列命令,创建用户和用户组
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
useradd -g oinstall -G dba,oper,asmadmin oracle
passwd oracle #oracle
创建文件路径并赋权
使用下列命令,创建文件安装路径,并授权
mkdir -p /oracle/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /oracle
chmod –R 775 /oracle #cd /
设置Oracle用户环境变量
使用Oracle用户登录,然后vi .bash_profile,增加如下行,执行source .bash_profile让环境变量生效
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
上传文件解压安装
使用ftp软件上传数据库安装文件,然后解压,登录oracle用户进行安装
#上传oracle安装文件到/data/software目录下,并解压
cd /data/software
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
xhost + #(这里使用root用户执行,一定要执行以下2步,如果没有执行,将无法启动图形安装界面有些系统执行会乱码。可以使用英文版安装[LANG=en_US]否则会出现乱
xhost + localhost #(这里有些系统干部支持)
su - oralce
cd /data/software/database
./runInsaller
在SecureCRT连接ssh到服务器安装时提示:
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB。 实际为 32529 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 8015 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色
>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<
未通过某些要求检查。必须先满足这些 要求,
然后才能继续安装,
是否继续? (y/n) [n] y
需要登录到操作系统图形界面,打开终端运行
./runInsaller
Exception in thread "main" java.lang.NoClassDefFoundError
Oracle的安装界面都是小方块,看不到其他的字符
先使用命令
export LANG=en将环境临时换成英文或export LANG=C切换成中文,然后再安装。这个环境变量的修改只是临时的,重启后或者使用oracle用户登录时会自己换回来的。
密码:Qwer1234
提示Failed的软件包都已经有安装但版本稍有不同,选择忽略后继续安装:
查看oracle字符集
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
SIMPLIFIED CHINESE_CHINA.UTF8
查看linux系统字符集
[root@ora ~]# env |grep LANG
LANG=zh_CN.UTF-8
GDM_LANG=zh_CN.UTF-8
定义linux系统字符集
[root@ora ~]# export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8'
定义oracle环境字符集
[root@ora ~]# su – oracle
[oracle@ora ~]$ export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8'
[oracle@ora ~]$ !sql
查看结果
SQL> select * from database_properties;
配置监听和启动数据库
1,$ netca #配置监听和网络服务
2,设置防火墙
3,启动监听 lsnrctl start
#第一次启动时,失败了,原因是listener.ora中hostname写的不对,后来改成了127.0.0.1
4,(这一步创建orcl了,可以跳过此步骤)使用dbca创建数据库
5,启动实例 dbstart/dbshut
若要实现开机自启动,必须/etc/oratab 存在
[root@localhost /]# find / -name "oratab"
/oracle/app/oracle/product/11.2.0/db_1/install/oratab
[root@localhost /]# cd /oracle/app/oracle/product/11.2.0/db_1/install/
[root@localhost install]# cp oratab /etc
6, 也可以手工启动
[oracle@dbOracle9i ~]$lsnrctl stop ----------关闭监听
[oracle@dbOracle9i ~]$ sqlplus / as sysdba" ------sqlplus
SQL> shutdown immediate; -------关闭数据库实例
SQL> startup; -------重启数据库
SQL> exit -------退出sqlplus
[oracle@dbOracle9i ~]$ lsnrctl start ---------打开监听
7,查看数据库
-- 查看表空间
Select name from v$datafile;
-- 查看所有用户
Select * from all_users;
--查看当前用户所拥有的权限
select * from user_sys_privs;
-- 查询用户所拥有的表
Desc all_tables;
select owner,table_name from all_tables where owner='SCOTT';
-- 解锁scott
alter user scott account unlock;
8,启动EM
-- 启动em
emctl start dbconsole 启动
emctl stop dbconsole 停止
$ emctl start dbconsole
OC4J Configuration issue. /oracle/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_oradb.localdomain_orcl not found.
修改hosts 与主机名一致
重建em
-- 删除
$ emca -repos drop
SEVERE: Listener is not up or database service is not registered with it.
修改主机名重启后,问题任然存在
#修改/oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
(SID_NAME = ORCL)
)
)
最终还是通过netca重新监听,解决问题。
$ emca -config dbcontrol db -repos create (中间出现了一个问题,sysman用户不存在,只有配置em后才有这个用户)
$ netstat -ntpl |grep 1158
https://localhost.localdomain:1158/em
1.Oracle启动时发生如下错误:
解决 方法:
1、查看环境变量.bash_profile文件如下,查看oracle 实例名
[oracle@wpj ~]$ vi ~/.bash_profile
export ORACLE_SID=orcl
2、修改 listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
(SID_NAME = orcl)
http://wangpj.iteye.com/blog/1685554
Oracle设置自启动
使用下列命令,创建开机自启动
1、Redhat init简介:
Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从1到6,具有不同的功能。这些级别在/etc/inittab(其他发行版这个文件位置不同)中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。
文件以S开头,代表start(启动),后面的数字是启动顺序;文件以K开头,代表kill(结束),同样,后面的数字代表结束顺序。例如:/etc/rc3.d/S55sshd表示它与运行级别3有关,55就是它的启动顺序;/etc/rc3.d/K15nginx表示它与运行级别3有关,15就是它的关闭顺序。
init.d
这个目录中存放了一些服务启动脚本,系统安装时的多个rpm包,这些脚本在执行时可以用来启动,停止和重启这些服务。
rcx.d(x为0~6)
这个目录是启动级别的执行程序链接目录,里面的文件都是指向init.d目录中文件的一些软连接。
2、修改dbstart和dbshut启动关闭脚本,使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器):
# vim /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
找到下面的代码,在实际脚本代码的前面
# First argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$1
# 将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
echo "Usage: $0 ORACLE_HOME"
else
LOG=$ORACLE_HOME_LISTNER/listener.log
同样也修改dbshut脚本:
# vim /u01/app/oracle/product/11.2.0/db_1/bin/dbshut
# The this to bring down Oracle Net Listener
ORACLE_HOME_LISTNER=$1
# 将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener"
echo "Usage: $0 ORACLE_HOME"
else
LOG=$ORACLE_HOME_LISTNER/listener.log
3、新建Oracle服务启动脚本:
# vim /etc/init.d/oracle
新建一个以oracle命名的文件(也可以命名为oracle11g等,自己喜欢啥名改啥名。),并将以下脚本代码复制到文件里(里面的oracle目录路径根据自己的实际安装路径修改):
#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup and em
su - $ORA_OWNR c “$ORACLE_HOME/bin/dbstart &”
su - $ORA_OWNR c “$ORACLE_HOME/bin/lsnrctl start”
su - $ORA_OWNR c “$ORACLE_HOME/bin/emctl start dbconsole”
touch /var/lock/subsys/oracle
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown and em
su - $ORA_OWNR c “$ORACLE_HOME/bin/dbshut &”
su - $ORA_OWNR c “$ORACLE_HOME/bin/lsnrctl stop”
su - $ORA_OWNR c “$ORACLE_HOME/bin/emctl stop dbonsole”
rm -f /var/lock/subsys/oracle
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
保存退出!
4、赋予启动脚本执行权限并链接好:
# chmod 755 /etc/init.d/oracle
需要在关机或重启之前停止数据库,做如下操作
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle
# ln -s /etc/init.d/oracle /etc/rc6.d/S01oracle
5、把oracle启动脚本添加到系统服务里并设置自启动:
# chkconfig --add oracle
# chkconfig --level 345 oracle on
6.修改oratab
修改/etc/oratab
[root@localhost etc]# vi oratab
orcl:/oracle/app/oracle/product/11.2.0/db_1:Y
sh oracle start
reboot重启系统看看效果吧
创建表空间和数据库
Linux下创建用户,数据库和表空间
1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)
2、以sysdba方式来打开sqlplus,命令如下: sqlplus "/as sysdba"
3、查看我们常规将用户表空间放置位置:执行如下sql:
select name from v$datafile;
上边的sql一般就将你的用户表空间文件位置查出来了。
4、创建用户表空间:
CREATE TABLESPACE hs_data_file01 DATAFILE '/oracle/app/oracle/oradata/orcl/hs_data_file01.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
5、创建用户,指定密码和上边创建的用户表空间
CREATE USER hs IDENTIFIED BY hs123 DEFAULT TABLESPACE hs_data_file01;
6、赋予权限
grant connect,resource to hs;
grant unlimited tablespace to hs;
grant create database link to hs;
grant select any sequence,create materialized view to hs;
经过以上操作,我们就可以使用hs/123登录指定的实例,创建我们自己的表