1准备
CentOS-6.5-x86_64-bin-DVD1
linux_11gR2_database_1of2
linux_11gR2_database_2of2
VMware Workstation 10.0.2
SSH Secure Shell Client
instantclient_11_2
plsqldev1005
2安装虚拟机及CentOS
(1)安装VMware Workstation
(2)安装CentOS,主机命名为:oracledb
(3)磁盘需要大于30G(经验值)
(4)内存必须大于1G(官方要求)
(5)操作系统swap分区大于2G(如果物理内存小于2G,则需要设置,设置值为物理内存的1-2倍,如果物理内存大于2G,则无需设置。)
(6)虚拟机网络连接方式:桥接模式(B)直接连接物理网络
(7)安装完成后设置虚拟机网络(ipv4)为固定IP地址(system-config-network)
(8)进行网络测试OK,则操作系统环境准备完毕
(9)安装虚拟机时一定要选择:先创建虚拟机后安装操作系统
(10)为了安装Oracle,故选择安装类型为:桌面版本。
(11)安装SSH Secure Shell Client并连接主机
3Oracle安装前准备
『特殊说明』:
(1)以下步骤中的命令太长的可通过:SSH Secure Shell Client 直接复制进行
(2)vi基本命令:i--编辑状态 退出编辑并保存时先按ESC键,再按符合“:wq”或者":x"即可
(3)注意每个步骤时的当前用户,是root还是oracle
step-1#修改主机名
[root@oracledb ~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network
[root@oracledb ~]# hostname oracledb
step-2#添加主机名与IP对应记录
[root@oracledb ~]# vi /etc/hosts
192.168.1.8 oracledb
step-3#关闭防火墙Selinux
[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]# setenforce 0
step-4#安装依赖包
1 检查依赖包
[root@oracledb ~]rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel
2网络OK时通过yum安装
[root@oracledb ~]#
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf \
elfutils-libelf-devel glibc glibc-common glibc-devel \
libaio libaio-devel libgcc libstdc++ libstdc++-devel \
unixODBC unixODBC-devel
3网络不OK时,在系统光盘中找到rpm包,通过rpm安装
[root@oracledb ~]rpm -ivh gcc.rpm
『特殊说明』:
(1)pdksh-5.2.14-37.el5.x86_64.rpm :此安装包yum源中没有,但必须,可通过其他方式下载后手工安装;
(2)虽然安装了依赖包,在安装Oracle过程时依然会校验出未安装以上某个包,则需要通过:rpm -qa gcc(校验未通过的包名) 一个个都检查核实。
(3)pdksh,已经成一个老包了,用ksh就可以,安装时会校验,但忽略就可以。
step-5#修改内核参数
[root@oracledb ~]# vi/etc/sysctl.conf #末尾添加如下
[plain] view plain copy
- net.ipv4.ip_local_port_range= 9000 65500
- fs.aio-max-nr = 1048576
- fs.file-max = 6815744
- kernel.shmall = 10523004
- kernel.shmmax = 6465333657
- kernel.shmmni = 4096
- kernel.sem = 250 32000 100 128
- net.core.rmem_default=262144
- net.core.wmem_default=262144
- net.core.rmem_max=4194304
- net.core.wmem_max=1048576
# 参考如下注释(同上)
net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1 fs.file-max = 6815744 #设置最大打开文件数 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024 kernel.shmmax = 2147483648 #最大共享内存的段大小 kernel.shmmni = 4096 #整个系统共享内存端的最大数 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围 net.core.rmem_default = 262144 net.core.rmem_max= 4194304 net.core.wmem_default= 262144 net.core.wmem_max= 1048576
[root@oracledb ~]# sysctl -p (备注:用于输出配置后的结果,如果有错误会提示)
step-6#修改系统资源限制(打开进程数和文件数)
[root@oracledb ~]# vi/etc/security/limits.conf #末尾添加如下
[plain] view plain copy
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- grid soft nproc 2047
- grid hard nproc 16384
- grid soft nofile 1024
- grid hard nofile 65536
[root@oracledb ~]# vi /etc/pam.d/login
session required pam_namespace.so #下面添加一条pam_limits.so
session required /lib64/security/pam_limits.so
session required /lib/security/pam_limits.so
session required pam_limits.so
step-7#创建用户和组
[root@oracledb ~]# groupadd oinstall
[root@oracledb ~]# groupadd dba
[root@oracledb ~]# groupadd oper
[root@oracledb ~]# useradd -u600 -g oinstall oracle
[root@oracledb ~]# usermod -G dba,oper oracle
[root@oracledb ~]# id oracle
[root@oracledb ~]# passwd oracle
# 参照如下注释
[root@localhost sonny]# groupadd oinstall #创建用户组oinstall [root@localhost sonny]# groupadd dba #创建用户组dba [root@localhost sonny]# useradd -g oinstall -g dba -m oracle #创建oracle用户,并加入到oinstall和dba用户组 [root@localhost sonny]# passwd oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
step-8#创建安装目录并赋权
[root@oracledb ~]# mkdir /u01
[root@oracledb ~]# mkdir /u02
[root@oracledb ~]# chown -R oracle:oinstall /u01
[root@oracledb ~]# chown -R oracle:oinstall /u02
[root@oracledb ~]# su oracle
[root@oracledb ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1
[root@oracledb ~]# mkdir -p /u02/oradata
[root@oracledb ~]# mkdir -p /u02/oradata/oracledb #oracledb为你数据库实例名
step-9#设置oracle环境变量(使用oracle帐号登录桌面,并开启terminal窗口文件最后最后加入如下环境变量的设置行)
[oracle@oracledb ~]# vi /home/oracle/.bash_profile
[plain] view plain copy
- ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
- ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
- LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
- ORACLE_SID=oracledb; export ORACLE_SID
- ORA_NLS33=$ORACLE_HOME/nls/admin/data; export ORA_NLS33
- NLS_LANG=american_america.zhs16gbk;export NLS_LANG
- PATH=$ORACLE_HOME/bin:$PATH; export PATH
[oracle@oracledb ~]# source /home/oracle/.bash_profile(使配置立即生效)
[oracle@oracledb ~]# env(检查环境变量设置是否OK)
对oracle用户设置限制,提高软件运行性能(红色为添加部分)
[sonny@localhost /]$ su root Password: [root@localhost /]# vi /etc/security/limits.conf [root@localhost /]# cat /etc/security/limits.conf # /etc/security/limits.conf # #This file sets the resource limits for the users logged in via PAM. #It does not affect resource limits of the system services. # #Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. #That means for example that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. # #Each line describes a limit for a user in the form: # #<domain> <type> <item> <value> # #Where: #<domain> can be: # - a user name # - a group name, with @group syntax # - the wildcard *, for default entry # - the wildcard %, can be also used with %group syntax, # for maxlogin limit # #<type> can have the two values: # - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits # #<item> can be one of the following: # - core - limits the core file size (KB) # - data - max data size (KB) # - fsize - maximum filesize (KB) # - memlock - max locked-in-memory address space (KB) # - nofile - max number of open file descriptors # - rss - max resident set size (KB) # - stack - max stack size (KB) # - cpu - max CPU time (MIN) # - nproc - max number of processes # - as - address space limit (KB) # - maxlogins - max number of logins for this user # - maxsyslogins - max number of logins on the system # - priority - the priority to run user process with # - locks - max number of file locks the user can hold # - sigpending - max number of pending signals # - msgqueue - max memory used by POSIX message queues (bytes) # - nice - max nice priority allowed to raise to values: [-20, 19] # - rtprio - max realtime priority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 # End of file [root@localhost /]#
配置用户的环境变量(红色部分为添加代码)
[root@localhost /]# vi /home/oracle/.bash_profile [root@localhost /]# cat /home/oracle/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH export ORACLE_BASE=/data/oracle #oracle数据库安装目录 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径 export ORACLE_SID=orcl #oracle启动数据库实例名 export ORACLE_TERM=xterm #xterm窗口模式安装 export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量 export LANG=C #防止安装过程出现乱码 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题 [root@localhost /]#
使上述配置立即生效:
[oracle@localhost /]$ su root Password: [root@localhost /]# source /home/oracle/.bash_profile [root@localhost /]#
step-10#上传安装文件
(1)使用oracle账号登录:SSH Secure File Transfer Client
(2)上传安装包到:/home/oracle/Downloads 目录
step-11#解压oracle安装文件(进入:/home/oracle/Downloads目录)
[oracle@oracledb~]# unzip -o -d /home/oracle/Downloadslinuxamd64_12c_database_1of2.zip
[oracle@oracledb~]# unzip -o -d /home/oracle/Downloadslinuxamd64_12c_database_2of2.zip
4安装Oracle
[root@oracledb ~]# xhost +
[root@oracledb ~]# su oracle
[oracle@oracledb ~] cd /home/oracle/Downloads/database
[oracle@oracledb ~]# ./runInstaller
说明:接下来就会弹出安装界面,然后根据网上的图文并茂文章安装。
5变更
开始下载的是:linuxamd64_12c 安装时出现莫名错误,所以变更为:linux.x64_11gR2 为了完整卸载Oracle,使用了官网提供的:Oracle De-install Utility
6问题及解答
(1)修改 linux 内核文件 sysctl -P 报错
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解决方法如下:
[root@oracledb ~]# modprobe bridge
[root@oracledb ~]# lsmod|grep bridge
(2)安装系统时swap分区创建过小,动态调整。所以在安装操作系统的时候设置好swap分区及分配好大小即可
方法:用文件作为Swap分区,操作如下
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
2.格式化为交换分区文件:
# mkswap /root/swapfile #建立swap的文件系统
3.启用交换分区文件:
# swapon /root/swapfile #启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0
(3)yum安装源中找不到一个包,结果换了yum源也找不到,白费力气
修改yum源的方法有两种,很多朋友喜欢修改yum.repos.d这个文件进行更改,deepvps感觉这个方法不是太好,以下这个方法就方便多了。
在CentOS系统中,可以直接通过yum来安装组件,但系统默认的yum源速度往往不尽人意,都连接海外的,为了在国内达到快速安装的目的,就要需要修改yum源,可以使用
http://mirrors.163.com/ http://mirrors.sohu.com 这2个国内源。
执行以下命令就可以了
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.163.com/.help/CentOS-Base-163.repo或wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
运行yum makecache生成缓存
4控制台页面部分按钮上的文字是乱码解决办法(如登录界面的:登录按钮)
解决办法:
em的乱码是由Java引起的,em的按钮是由java生成的图,oracle 11g使用的是jdk1.5,jdk1.5以后有了一个简便方法来解决这个问题。
在Oracle服务器上的操作需以Oracle用户进行操作,步骤如下:
1. 从windows中获取字体文件simsun.ttc
2. 在目录$ORACLE_HOME/jdk/jre/lib/fonts中创建文件夹fallback
command: mkdir fallback
3. 将字体文件simsun.ttc拷贝到刚刚创建好的fallback目录下,并重新命名为simsun.ttf(由于windows字体具有版权,所以不能用于商用)
command:
mv simsun.ttc simsun.ttf
chmod 755 simsun.ttf
4. 清理一下em的缓存
command: rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
5. 停止并重启dbconsole
command:
emctl stop dbconsole
emctl start dbconsole
再去浏览器中重新刷新一下em,发现按钮已经不再是乱码了
5:1521 1158两个端口未打开导致其他机器访问不到web控制端和连接不到oracle
参考:http://blog.csdn.net/jemlee2002/article/details/7042991
6: kdump启动失败
在桌面环境下,直接停用kdump
7常用操作方法及命令(给linux新手)
(1)在图形界面还可以在多个界面中进行切换:在X-window图形操作界面中按“Alt+Ctrl+功能键Fn n=1~6 ”就可以进入Console字符操作界面。
按“Alt+Ctrl+F7”即可回到刚才的X-window中
(2)
rm -f 删除文件
rm -rf 删除文件夹
(3)
cp /u01/app/oracle/product/11.2.0/db_1/jdk/jre/lib/fonts/a.txt /home/oracle/ (从什么位置复制文件到什么位置)
8Oracle操作管理
(1)启动数据库
[oracle@oracledb~]sqlplus /nolog
SQL> connect system/system as sysdba
SQL> startup
(2)启动监听
[oracle@oracledb~]lsnrctl start
(3)启动管理平台
[oracle@oracledb~]emctl start dbconsole
【特殊说明】
(1)关闭服务器时最好手动停止掉oracle
(2)为了使服务器资源占用小,oracle启动后服务器直接切到命令行下。如果运行稳定后,则直接修改操作系统默认启动到命令行
(1)停止数据库
[oracle@oracledb~]sqlplus /nolog
SQL> connect system/system as sysdba
SQL> shutdown
(2)停止监听
[oracle@oracledb~]lsnrctl stop
(3)停止管理平台
[oracle@oracledb~]emctl stop dbconsole
9 PLSQL安装配置(参考文章,我是一次搞定)
1,先到Oracle网站下载Instant Client :http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html根据你的操作系统
选择不同的Instant Client版本下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2
我的下载路径(http://download.oracle.com/otn/nt/instantclient/112030/instantclient-basic-nt-11.2.0.3.0.zip)
2.在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容:
MWDB=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MWDB)
)
)
第一个MWDB:表示定义远程服务器的在本地主机名
第二个MWDB:远程数据库实例名
3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin
4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
如果不清楚远程数据库的ORACLE 语言,可以ssh或者telnet到远程机器,在命令界面输入,用命令行连接到数据库。
select * from nls_instance_parameters;
查看NLS_LANGUAGE 的值
NLS_LANGUAGE
NLS_TERRITORY
5、下载并安装PL.SQL.Developer配置应用
配置tools->preferences->connection
Oracle Home D:/instantclient_11_2
OCI library D:/instantclient_11_2/oci.dll
6、关闭PL/SQL Developer,重起Developer.
主机名就会出现在PL/SQL Developer的列表里,输入用户名密码,就可以登录远程oracle 11g数据库了
<完>