1 安装centos6.3 桌面操作系统(oracle安装需要x server )
2 使用root帐号登录linxu系统:并且满足下列条件必须已安装x server
2.1 打开 x terminal
2.2 如果是远程安装,则在要安装的机器上输入 以下命令来允许 远程操作端可以使用本地的x server图形界面
$ xhost fully_qualified_remote_host_name
2.3 同时如果是远程安装,使用ssh 或者rlogin 或者 telnet 来远程连接 比如:
$ telnet fully_qualified_remote_host_name
2.4 如果不是root帐号登录,使用sudo 命令把用户变成root权限
需要配置/etc/sudoers 文件 username ALL=NOPASSWD:/bin/sh 或者username ALL=NOPASSWD:ALL
$ sudo sh
password:
#
3 检查硬件需求
3.1 内存最小1g,最好2g以上。 虚拟内存对应内存关系
vailable RAM Swap Space Required
Between 1 GB and 2 GB 1.5 times the size of the RAM
Between 2 GB and 16 GB Equal to the size of the RAM
More than 16 GB 16 GB
检查内存使用情况命令:
# grep MemTotal /proc/meminfo
检查虚拟内存
# grep SwapTotal /proc/meminfo
查看内存使用情况
# free
检查系统cpu 是32位的还是64位的必须和 安装软件匹配
# uname -m
3.2 硬盘空间
/tmp 需要有1g 检查命令
# df -h /tmp
检查安装软件需要的空间:
# df -h
oracle需要的空间,不够的话清理 或者扩大硬盘
Installation Type Requirement for Software Files (GB)
Enterprise Edition 4.35
Standard Edition 4.22
Installation Type Requirement for Data Files (GB)
Enterprise Edition 1.7
Standard Edition 1.5
4 安装oracle所需软件包支持 检查
4.1 检查oracle 所支持的操作系统()
# cat /proc/version
使用linux版本必须匹配oracle 所支持的。不然装不上,比如11g只支持到 redhat enterprise linux6
4.2 Kernel linux内核检查
# uname -r
显示:2.6.32-279.el6.x86_64
4.3 所需软件包检查(64位的即可) :检查命令 libgcc ,gcc
# rpm -aq | grep 软件包名
没有安装的话 用 # rpm -ivh 软件包名
如果联网可以用yum安装 # yum install 软件包名 第一次可能会有的警告:
Total download size: 17 k
Installed size: 29 k
Is this ok [y/N]: y
Downloading Packages:
compat-libcap1-1.10-1.x86_64.rpm | 17 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]:
The following or later version of packages for Oracle Linux 6, and Red Hat
Enterprise Linux 6 must be installed:
binutils-2.20.51.0.2-5.11.el6 (x86_64) 默认已安装
compat-libcap1-1.10-1 (x86_64) yum install compat-libcap1
compat-libstdc++-33-3.2.3-69.el6 (x86_64) [root@localhost ~]# yum install compat-libstdc++-33
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64) yum install gcc
gcc-c++-4.4.4-13.el6 (x86_64) yum install gcc-c++
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh yum install ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64) yum install libaio-devel
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
4.4 安装oracle driver驱动
On Oracle Linux 6 and Red Hat Enterprise Linux 6:
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_64) or later yum install unixODBC-devel
unixODBC-2.2.14-11.el6 (x86_64) or later yum install unixODBC
unixODBC-devel-2.2.14-11.el6.i686 or later
5 添加 Required Operating System Groups and Users
# /usr/sbin/groupadd oinstall //初始用户组
# /usr/sbin/groupadd dba //次要用户组
# grep oinstall /etc/group 检查有没有添加成功
# /usr/sbin/useradd -g oinstall -G dba oracle
# id oracle 检查有没有添加成功
# passwd oracle //设置oracle账户的密码
6.1 linux内核参数 检查是否符合oracle安装需求(参考oracle安装文档)
semmsl, semmns,semopm, and semmni # /sbin/sysctl -a | grep sem
shmall, shmmax, and shmmni # /sbin/sysctl -a | grep shm
file-max # /sbin/sysctl -a | grep file-max
ip_local_port_range # /sbin/sysctl -a | grep ip_local_port_range
rmem_default # /sbin/sysctl -a | grep rmem_default
rmem_max # /sbin/sysctl -a | grep rmem_max
wmem_default # /sbin/sysctl -a | grep wmem_default
wmem_max # /sbin/sysctl -a | grep wmem_max
因为本机是centos6.3 检查只有3个是符合要求的,其他都必须修改具体添加如下:
vim /etc/sysctl.conf
# add by 2012-12-10
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 536870912
#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 = 1048576
# add by 2012-12-10
运行下面命令使内核参数修改 起作用
# /sbin/sysctl -p
6.2 查看并检查oracle安装用户 可以使用的的资源分配,不足的修改/etc/security/limits.conf 文件
[root@localhost Packages]# su - oracle
[oracle@localhost ~]$ ulimit -Sn
1024
[oracle@localhost ~]$ ulimit -Hn
4096
[oracle@localhost ~]$ ulimit -Su
1024
[oracle@localhost ~]$ ulimit -Hu
14835
[oracle@localhost ~]$ ulimit -Ss
10240
[oracle@localhost ~]$ ulimit -Hs
unlimited
su - //使用root帐号修改
vim /etc/security/limits.conf
编辑添加
# add by 2012-12-10
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
# add by 2012-12-10
7 创建oracle 安装目录 和data 目录 //The Oracle base directory must have 3 GB of free disk space, or 4 GB of free disk space
if you choose not to create a separate Oracle data file directory.
[root@localhost ]# mkdir -p /u01/app/
[root@localhost ]# chown -R oracle:oinstall /u01/app
[root@localhost ]# chmod -R 775 /u01/app
8 配置oracle用户环境,修改完成后重启机器,或是当前帐号的当前目录下用命令source .bash_profile 来立即启用。
8.1 设置文件创建默认权限umask为022(centos6.3 默认就是不用修改)
# umask 022
//Set the default file mode creation mask (umask) to 022 in the shell startup file.
8.2 配置图形界面操作权限 echo $DISPLAY查看是否是:0.0 (表示本地有调用图形界面程序权限)没有的话配置环境变量export DISPLAY=IP:0.0
root 设置DISPLAY 一次,xhost +,切换用户后echo $DISPLAY 看是否有值,没有,再在当前用户设置(root用户退到最外面的shell操作)
xhost +localhost
//$ xhost fully_qualified_remote_host_name
8.3 切换到oracle 用户安装, 配置 oracle 用户环境变量
su - oracle
echo $SHELL
echo $DISPLAY
//环境变量配置文件
$ ../.bash_profile
如果是远程安装则执行$ export DISPLAY=local_host:0.0 命令让远程ip可以有执行x server权限
8.4 确保/tmp 目录 有1G 的 空间,如果没有则新建一个文件目录在环境变量里面配置成TMP
df -h /tmp //查询/tmp磁盘空间 是否有1G
创建一个tmp文件目录
sudo mkdir /mount_point/tmp
$ sudo chmod a+wr /mount_point/tmp
# exit
环境变量配置 .bash_profile
$ TMP=/mount_point/tmp
$ TMPDIR=/mount_point/tmp
$ export TMP TMPDIR
8.5 配置oracle 环境变量使用oracle用户 编辑 .bash_profile
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=orcl //sid
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 //后面的oracle自动启动脚本,批处理命令方便运行
NLS_LANG=AMERICAN_AMERICA.AL32UTF8 //EXP 导出命令可能用到,客户端连接字符集设置
PATH=$PATH:$HOME/bin
export ORACLE_BASE ORACLE_SID ORACLE_HOME NLS_LANG PATH
上面的ORACLE_BASE根目录是上面早先创建的,解压后的安装文件database和等回要安装的oracle都是/u01/app下面的子目录
等回安装的时候都指定到这里,ORACLE_SID 是数据库名最好不要超过5个字符
8.6 删除变量操作:
$ unset ORACLE_HOME
$ unset TNS_ADMIN
8.7 ksh 相关配置sqlplus会用到 使用root用户通过 vi 编辑 vim /etc/profile
su -
vim /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
8.8 使用root用户编辑 /etc/pam.d/login
要使 /etc/security/limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
查看 /etc/pam.d/login 文件中有:/lib/security/pam_limits.so
vi /etc/pam.d/login
64位系统为lib64/security/pam_limits.so
32位系统为/lib/security/pam_limits.so
session required /lib64/security/pam_limits.so
#session required /lib/security/pam_limits.so
#session required pam_limits.so
上面的步骤做完最好重启一下,有些变量要重启才有作用
9 解压 安装包 开始安装 cksum linux.x64_11gR2_database_1of2.zip
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 | ||
linux.x64_11gR2_database_1of2.zip(1,239,269,270 bytes) (cksum - 3152418844) | ||
linux.x64_11gR2_database_2of2.zip(1,111,416,131 bytes) (cksum - 3669256139) |
unzip linux.x64_11gR2_database_1of2.zip &>unzip1.log
unzip linux.x64_11gR2_database_2of2.zip &>unzip2.log
unzip p8670579_112010_LINUX.zip //oracle 补丁先解压后面可能要用到 不一定,本人没有用到
mv database /u01/app
mv 8570579 /u01/app
cd /u01/app
chown -R oracle:oinstall database/
chown -R oracle:oinstall 8570579/
10 切换到su - oracle 用户
su - oracle
cd /u01/app/database
#此处注意,由于是英文安装环境,需要LANG的支持,否则中文乱码。
xhost +localhost
export LANG=en_US 中文的是zh_CN.UTF-8
./runInstaller 执行安装(oracle用户,非root)
安装过程中bad CRC错误参照网上解决办法,重新解压oracle安装包
中间会有提示用root用户执行2个 sh 文件。照做./root
su - root
cd /u01/app/oracle/product/11.2.0/dbhome_1
sh root.sh
cd /u01/app/oraInventory
sh orainstRoot.sh
安装完以后可以oracle默认是启动的。可以用sqlplus测下或者http://localhost:1158/em
Linux下的Oracle在安装结束后是处于运行状态的。重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务
打开vi .bash_profile并编辑添加下列环境变量方便 shell调用命令
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
11、启动连接数据库
11.1
以oracle用户下,执行下面的命令
进入sqlplus
$ sqlplus /nolog
以sysdba的身份连接到数据库,并启动Oracle数据库引擎
SQL> conn /as sysdba 如果没有修改vi etc/oratab配置文件orcl:/u01/app/oracle/product/10.2.0/db_1:N N改成Y
最后的N或者Y表示是否允许dbstart来启动数据库,如果为N则实例不能通过dbstart启动,表现为sqlplus连接实例时显示Connected to an idle instance.如果为Y则实例可以通过dbstart启动,sqlplus连接后数据库即为open状态。
SQL> startup
退出sqlplus,运行Listener
SQL> exit
$ lsnrctl start
$ lsnrctl status
$ lsnrctl stop
$ lsnrctl reload
停止数据库的指令如下:
SQL> shutdown immediate
11、2 如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:
$ emctl start dbconsole //$ emctl stop dbconsole
这样就可以通过https://localhost:1158/em 来访问EM控制台了。
11、3 配置监听 和 服务
$ netca //配置监听 已有监听可以不用修改
$ netmgr //配置database 服务名servicename
这里注意图形界面工具左边的listeners 里面要配置2项:
1、host 为ip不能为host名字不然局域网可能不能连接: 192.168.1.125
2、上面的下拉框还需配置database service,配置监听哪个实例, 数据库给客户端访问的服务名。
工具生成的结果:vi /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.125)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
下面的文件为客户端访问服务端配置这里可以使用netmgr 配置service name
vi /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
11.4、关闭防火墙iptables -vnL 可以看到防火墙的策略
etc/init.d/iptables stop //停止防火墙服务 ,开机后会恢复
chkconfig iptables off/on //永久关闭
11.5、oracle自动启动配置
11.5.1、 修改/etc/oratab文件
[root@oracle ~]#vim /etc/oratab //不改这个oracle数据库不会启动
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y(N改为Y)
11.5.2、修改$ORACLE_HOME/BIN/dbstart和$ORACLE_HOME/BIN/dbshut
[root@oracle ~]#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart //自动启动监听哪个数据库
[root@oracle ~]#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME ($1改为$ORACLE_HOME)
这样,以后就可以在启动监听之后直接使用dbstart和dbshut命令来启动和关闭数据了
11.5.3、以root用户建立/etc/rc.d/init.d/oradb脚本文件
#!/bin/bash
# chkconfig: 2345 90 10
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=$PATH:$ORACLE_HOME/bin
ORCL_OWN="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 -- start, stop, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oradb
su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/subsys/oradb
echo "OK"
;;
reload|restart)
$0 stop
$1 start
;;
*)
echo "Usage: 'basename $0' start|stop|restart|reload"
exit 1
esac
exit 0
添加其它用户的执行权限,并添加到开机启动服务
# chmod 755 /etc/rc.d/init.d/oradb
# chkconfig --add oradb
//服务重启chkconfig oradb on/off 永久
# service oradb stop
# service oradb start
导出数据的时候会有异常:exp:00091 应该是客户端的字符集和源数据库字符集设置的不一样
重新设置环境变量.bash_profile
echo $NLS_LANG
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[oracle@win ~]$ exp dev01/dev01@192.168.1.200_dev01_1521 file=/u01/app/temp20121220.dmp owner=dev01