Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3693193
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

分类: Oracle

2011-09-26 13:10:25

最近在64位 linux 上安装了一个oracle 10g数据库,最大的感受是:
 
1、所有问题都在网上能查到,离开互联网恐怕就完蛋了
2、安装前一定要看官方文档,切记!切记!否则如入地狱般
 
 
由于服务器配置是4C 16G内存,所以得安装64位操作系统才能充分使用硬件。
 
介质下载
需要64位linux,找了找redhat不能随便下了,看了看oracle的 unbreakable linux,可能是账号有问题,也下不了。没办法想起了CentOS 6,找了几个能下的网站,在客户那以5M/s的速度一会就下完了,真快。
地址  4G,CentOS 6安装介质一共有两个iso文件,但是安装oracle 10g没用到另一个,浪费了一张DVD。
 
oracle软件从官方地址直接下就行, 638M。10.2.0.4的patch需要从support上下载,坑爹的是比原安装介质大不少  1G
 
官方安装前检查文档,一定先看几遍!
Requirements For Installing Oracle10gR2 On RHEL 5_OEL 5 (x86_64) [ID 421308.1]
 
服务器型号是 浪潮机架式双路英信NF8560。
 
安装CentOS 6着实让人不省心,虽然安装步骤简易很多,难在最后安装类型和rpm包的选择,弄不好没KDE,开机后进入命令行界面,或者执行startx后没有任务条且没终端窗口,无法退出!有时不知道选中了哪几个包,进入的图形界面跟windows xp很像,但是图形界面不支持网卡,习惯图形的我没招了。太灵活的选择,让普通用户无所适从,这就是linux这么多年一直干不过windows的原因。
 
安装时选择中文界面方便。每回选的rpm包数都不一样,经过几番折腾终于能自动启动到图形界面了,上面熟悉的任务条,有管理工具、注销等下拉菜单,有终端就ok了。
 
为安装oracle 10g,检查并设置服务器环境
 
$ uname -a
Linux dbserver 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
 
[root@dbserver ~]# dmidecode|grep 'Product'
        Product Name: NF8560
        Product Name: NF8560
[root@dbserver ~]# lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 6.0 (Final)
Release:        6.0
Codename:       Final
[root@dbserver ~]# getconf LONG_BIT
64

[root@dbserver ~]# cat /proc/meminfo
MemTotal:       16318780 kB
MemFree:         2072120 kB
Buffers:           76556 kB
Cached:         12791640 kB
SwapCached:            0 kB
Active:          3002100 kB
Inactive:       10165604 kB
Active(anon):     802752 kB
Inactive(anon):  2071656 kB
Active(file):    2199348 kB
Inactive(file):  8093948 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      18563064 kB
SwapFree:       18562336 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:        299720 kB
Mapped:          2025564 kB
Shmem:           2574760 kB
Slab:             886836 kB
SReclaimable:     512008 kB
SUnreclaim:       374828 kB
KernelStack:        7440 kB
PageTables:        75272 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    26722452 kB
Committed_AS:   13524232 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      318936 kB
VmallocChunk:   34349587660 kB
HardwareCorrupted:     0 kB
AnonHugePages:     55296 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        5376 kB
DirectMap2M:     2082816 kB
DirectMap1G:    14680064 kB
cpu型号
[root@dbserver ~]# cat /proc/cpuinfo |grep name|cut -f2 -d:|uniq -c
     48  Intel(R) Xeon(R) CPU E7- 4807  @ 1.87GHz
 
修改网络配置
vi /etc/hosts
增加
192.168.1.2 dbserver
 
禁用防火墙
禁用selinux
 
网卡信息
[root@dbserver ~]# dmesg |grep -i eth
Intel(R) Gigabit Ethernet Network Driver - version 2.1.0-k2
igb 0000:02:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:02:00.0: eth0: (PCIe:2.5Gb/s:Width x1) 00:1b:21:af:cf:40
igb 0000:02:00.0: eth0: PBA No: fafa03-0d6
igb 0000:02:00.1: Intel(R) Gigabit Ethernet Network Connection
igb 0000:02:00.1: eth1: (PCIe:2.5Gb/s:Width x1) 00:1b:21:af:cf:41
igb 0000:02:00.1: eth1: PBA No: fafa03-0d6
igb 0000:06:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:06:00.0: eth2: (PCIe:2.5Gb/s:Width x4) 00:30:48:ff:93:2c
igb 0000:06:00.0: eth2: PBA No: ffffff-0ff
igb 0000:06:00.1: Intel(R) Gigabit Ethernet Network Connection
igb 0000:06:00.1: eth3: (PCIe:2.5Gb/s:Width x4) 00:30:48:ff:93:2d
igb 0000:06:00.1: eth3: PBA No: ffffff-0ff
igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
ADDRCONF(NETDEV_UP): eth1: link is not ready
ADDRCONF(NETDEV_UP): eth2: link is not ready
ADDRCONF(NETDEV_UP): eth3: link is not ready
eth0: no IPv6 routers present

[root@dbserver ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1B:21:AF:CF:40
          inet addr:192.168.1.2  Bcast:10.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:21ff:feaf:cf40/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:453718 errors:0 dropped:0 overruns:1 frame:0
          TX packets:155515 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:151155641 (144.1 MiB)  TX bytes:29829009 (28.4 MiB)
          Memory:faee0000-faf00000
eth1      Link encap:Ethernet  HWaddr 00:1B:21:AF:CF:41
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Memory:f9fe0000-fa000000
eth2      Link encap:Ethernet  HWaddr 00:30:48:FF:93:2C
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Memory:fafe0000-fb000000
eth3      Link encap:Ethernet  HWaddr 00:30:48:FF:93:2D
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Memory:faf60000-faf80000
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12250 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12250 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:736370 (719.1 KiB)  TX bytes:736370 (719.1 KiB)
 
操作系统信息
~]# cat /etc/issue
CentOS Linux release 6.0 (Final)
 
内存信息
[root@dbserver ~]# grep tal /proc/meminfo
MemTotal:       16318780 kB
SwapTotal:      18563064 kB
VmallocTotal:   34359738367 kB
HugePages_Total:       0
[root@dbserver ~]# free -mt
             total       used       free     shared    buffers     cached
Mem:         15936      13919       2016          0         75      12495
-/+ buffers/cache:       1348      14587
Swap:        18127          0      18127
Total:       34064      13920      20143
 
内核参数
[root@dbserver ~]# vi /etc/sysctl.conf
增加
kernel.shmall = 8388608
kernel.shmmax = 17179869184
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
 
修改系统限制
[root@dbserver ~]# vi /etc/security/limits.conf
增加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
 
[root@dbserver ~]# vi /etc/pam.d/login
增加
session    required pam_limits.so 
 
查看限制
[root@dbserver ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 127375
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
 
profile文件
[root@dbserver ~]# 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/bin
export PATH
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
#ulimit -u 16384 -n 65536
umask 022
 
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

[oracle@dbserver ~]$ date
2011年 09月 24日 星期六 11:49:52 CST
 

oracle用户登录,通过U盘将10g安装介质拷贝到/home/app下,解包

$ gzip -dc 10201_database_linux_x86_64.cpio.gz | cpio -idm

$ gunzip p6810189_10204_Linux-x86-64.zip

$ cd database

$./runInstaller –ignoreSysPrereqs

根据提示选择定制安装,然后通过系统检查后,选择只安装软件,在安装过程中可能会提示ins_emdb.mk编译错误:

忽略,继续安装。后面安装补丁10.2.0.4,编译时就不会再出现错误了,全部OK。

 

建库后调整:

  1. alter database datafile 1 resize 600m;
  2. alter database datafile 3 resize 400m; 
  3. alter database datafile 2 resize 4000m; 
  4. alter database tempfile 1 resize 4000m;
  5. alter tablespace undotbs1 add datafile '/app/oradata/orcl/undotbs02.dbf' size 4g;
  6. alter database datafile 4 autoextend off;

 

 

建库后,进行简单的测试,发现磁盘写性能相当强悍,由于是RAID10,添加undo文件时的top中看到写入速度能达到1000M/s!难道我看错了:

 
不过通过insert table t1 select * from t1; 测试填充数据时,速度也能达到200M/s:
比RAID5的40M/s 强多了。
 
为了定期备份数据库,增加了一个计划任务,定期执行expdb.sh脚本:

# backup database
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_OWNER=oracle
export ORACLE_SID=abc
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export time=`date +%Y%m%d`
find /bak -name a*.dmp -mtime +15 -exec rm {} \;
exp xxx/xxx file=/bak/a$time.dmp log=/bak/a$time.log
 
 
遇到的一些问题及解决办法
 
--------------------------------------------
简化并启用dbshut dbstart脚本
 
为了便于后期管理,调整dbstart、dbshut脚本,都在$ORACLE_HOME/bin 目录下
查找:
ORACLE_HOME_LISTNER
 
将其改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
 
修改/etc/oratab,将最后一行的N 改为Y
例如 orcl:/u01/product/10.2.0/db_1:Y
顺便说一句,dbstart里面有启动侦听的命令,无须再执行lsnrctl start了。

 
--------------------------------------------
调大sga后,启动时报错 ORA-27125:unable to create shared memory segment
1.确定安装oracle所使用的用户组
在oracle用户下执行命令id
可以看到oracle组dba  id 501
 
2.修改内核参数
echo 501 >/proc/sys/vm/hugetlb_shm_group
再启动不报错了。

将上述命令加入到启动中
vi /etc/rc.local

--------------------------------------------
安装过程出现报错
./oracle/product/10.2/ctx/lib/ins_ctx.mk'
glibc-devel需要32位的包,详细信息参考metalink文档ID 786995.1
需要注意,安装这个包后,要退出安装界面,而不要点CONTINUE,否则在ins_ctx.mk可以编译成功,虽然的包仍然会报错。

看看,还是rpm包的问题。
 
--------------------------------------------
关于telnet的中文乱码
    装了简体中文版的RHEL5,系统显示中文都没问题,但是telnet远程登录过来就有中文乱码。
上网搜索,很多人说修改/etc/profile ,或者/etc/sysconfig/i18n。众说纷纭,都试了,都不好使。要么系统下变乱码,要么telnet下变乱码,中文文件名更是乱码。

后来仔细思考,在系统配置上下工夫估计是错误的方向。难道是选用的telnet客户端不支持系统使用的编码?于是命令行下输入locale,查看系统编码,显示zh_CN.UTF-8。(如果
安装简体中文的RHEL5,则系统默认使用zh_CN.UTF-8编码。如果是英文,默认是zh_US.UTF-8编码。)
而之前选用的netterm根本不支持utf-8编码。(据说最新的netterm支持utf-8了,但是没找到破解的,汗。。。)
于是找其他的telnet客户端软件,后来找到了putty,那叫一个字,好!绿色免费又开源,好多人都用,相比收费的netterm,还支持UTF-8编码。
官网地址:,点击download可以下载。
putty使用方法:
1.打开putty.exe,主界面中输入Host Name(主机名)和Port(端口号),Connection type选择telnet。
2.如果远程主机使用utf-8编码,这里需要修改utf-8编码:
在软件界面的左边树形菜单中,选择Window下的Translation,在出现的下拉菜单Receive data assumed
to be in which charecter set中,选择UTF-8编码。
3.回到session界面,可以保存本次设置,以后登录时可以使用此设置。
4.单击open,即可telnet到远程主机。中文不乱码了。
 
还是putty好使啊
 
--------------------------------------------
ftp上来显示的时间与系统时间不一致,是因为默认情况下,vsftpd 是用GMT做为它的时间的,所以和系统的时间可能会不一致。修改也很简单:
# vi /etc/vsftpd/vsftpd.conf
在最后加入一行:
use_localtime=YES
存盘后,重启vsftpd:
# service vsftpd restart
 
--------------------------------------------
重建em 参考本博客或metalink文档ID278100.1
 
--------------------------------------------
缺少rpm包时,如果有条件上互联网可以执行
#yum install glibc
#yum install libXo.so.2
它会自己下载去找相关的rpm包,省心多了.
 
还可以:
yum install -y binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel libXp
--------------------------------------------

vsftp 服务设置问题
ftp 192.168.1.2时提示
500 OOPS: cannot change directory:/home/oracle,目录权限没有问题。最后找到一个解决办法:
# service vsftpd stop
# setsebool -P ftpd_disable_trans 1
# service vsftpd restart
 
如果出现:  Could not change active booleans: Invalid boolean 再执行:
# setsebool -P ftp_home_dir=1
当然还得再重启vsftp服务
# service vsftpd restart
 
--------------------------------------------
修复乱码问题(未验证)
如果启动 em( server ip_address:1158/em)出现乱码,那么按照以下方法修复
在网上下载zysong.ttf
(http://blogimg.chinaunix.net/blog/upfile2/090331105520.rar)字体文件,并将此文件解压放到 root的home目录下
修改java环境设置
cd $ORACLE_HOME/jdk/jre/lib
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat font.properties
 
cd $ORACLE_HOME/jre/1.4.2/lib
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat font.properties
 
复制新的字体文件
mkdir -p /usr/share/fonts/zh_CN/TrueType/
cp ~/zysong.ttf /usr/share/fonts/zh_CN/TrueType/
 
清空缓存
rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
提醒:以上修复乱码的方法从网上找的,未验证,我的解决方法是
$ export LANG=C
$ firefox
然后输入
 
阅读(7391) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~