Chinaunix首页 | 论坛 | 博客
  • 博客访问: 572471
  • 博文数量: 107
  • 博客积分: 4406
  • 博客等级: 上校
  • 技术积分: 1279
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-07 16:20
文章分类

全部博文(107)

文章存档

2014年(4)

2012年(4)

2011年(16)

2010年(7)

2009年(7)

2008年(11)

2007年(49)

2006年(9)

分类: Oracle

2010-09-10 13:11:59

Red Hat AS4 AS5 下ORACLE10gR2的安装及配置

注意:可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。
但不提供支持,且该许可不允许用于生产目的。

资源需要:
至少1024 MB物理内存
1024-2048 需1.5倍的交互空间
2048-8192 需1倍的交互空间
8192-     需0.75倍的交互空间
至少400 MB /tmp 临时目录空间
oracle软件需要1.5 GB 到 3.5 GB 磁盘空间
默认数据库需要1.2 GB

查看系统资源相关语句:
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -h /tmp
df -h

安装前的检查和准备工作:
  禁用selinux和iptables
  chkconfig --level 2345 pcmcia off
  chkconfig --level 2345 kudzu off
  chkconfig --level 2345 isdn off
  chkconfig --level 2345 sendmail off
  chkconfig --level 2345 rhnsd off
  chkconfig --level 2345 cups off
  chkconfig --level 2345 cups-config-daemon off
  chkconfig --level 2345 cpuspeed off
  chkconfig --level 2345 gpm off
  chkconfig --level 2345 apmd off
  chkconfig --level 2345 lm_sensors off
  chkconfig --level 2345 mdmonitor off
  chkconfig --level 2345 nfs off
  chkconfig --level 2345 nfslock off
  chkconfig --level 2345 iiim  off
  chkconfig --level 2345 canna off
  chkconfig --level 2345 portmap off
 
 
 [linux as 5]
 chkconfig --level 2345 rhnsd off
 chkconfig --level 2345 isdn off
 chkconfig --level 2345 avahi-daemon off
 chkconfig --level 2345 avahi-dnsconfd off
 chkconfig --level 2345 bluetooth off
 chkconfig --level 2345 cpuspeed off
 chkconfig --level 2345 hidd off
 chkconfig --level 2345 ip6tables off
 chkconfig --level 2345 mcstrans off
 chkconfig --level 2345 pcscd off
 chkconfig --level 2345 gpm off
 chkconfig --level 2345 xinetd off
 chkconfig --level 2345 portmap off
 chkconfig --level 2345 yum-updatesd  off
 chkconfig --level 2345 restorecond   off
 chkconfig --level 2345 setroubleshoot   off
 chkconfig --level 2345 yum-updatesd   off
 chkconfig --level 2345 libvirtd off
 chkconfig --level 2345 xendomains off
 chkconfig --level 2345 xend off
 chkconfig --level 2345 iptables off
 chkconfig --level 2345 sendmail off
 chkconfig --level 2345 cups off

软件要求
其他所需程序包的版本(或更高版本):
    gcc-3.2.3-2
    make-3.79
    binutils-2.11
    openmotif-2.2.2-16
    setarch-1.3-1
    compat-gcc-34-c++-3.4.6-4
    compat-gcc-34-3.4.6-4
    compat-libstdc++-7.3-2.96.122
    compat-libstdc++-devel-7.3-2.96.122
    compat-db-4.0.14.5
要查看系统上安装了这些程序包的哪些版本,运行以下命令:
 rpm -qa |egrep "gcc|make|binutils|openmotif|setarch|compat-db|compat-gcc|compat-glibc|compat-libstdc++|libXp|libaio"
 
 install the following packages:
# From RedHat AS5 Disk 1
cd /media/cdrom/Server
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
cd /
eject

# From RedHat AS5 Disk 2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1* (一定要装!)
cd /
eject

 

# From RedHat AS5 Disk 3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
cd /
eject

rpm -Uvh libaio-0.3.102-1.i386.rpm

vi /etc/redhat-release
replacing the current release information:
 Red Hat Enterprise Linux Server release 5 (Tikanga)
 with the following: redhat-4
安装完成后复原


配置XDMCP服务
1)        对于XDM服务配置
修改服务运行级别为“5”
打开/etc/inittab文件,配置服务初始化运行级别为“5”,如下:
id:5:initdefault:
2)        配置XDMCP服务自启动
For GDM:
打开/etc/gdm/custom.conf文件,查找[xdmcp]选项,并设置“Enable”值为“1”,如下:
[xdmcp]
Enable=1
For KDM:
打开/usr/share/config/kdm/Xaccess文件,并删除下述内容前面的“#”
修改前:
#* #any host can get a login window ==>
修改后:
* #any host can get a login window
打开/usr/share/config/kdm/kdmrc文件,查找[xdmcp]选项,并设置“Enable”值为“true”,如下:
[xdmcp]
Enable=true
3)配置防火墙,增加端口(177/UDP)端口到防火墙
4)至此,已经完成XDMCP服务的配置,之后重器服务器,启动XDMCP服务。
5)下载并安装客户端(Xmanager 2.xx)并在客户机上运行Xmanager,输入所需要管理的服务器的IP地址、用户名及密码,即可对服务器进行远程管理。

vnc server配置
1。使用root用户启动系统的vncserver服务;
#service vncserver start
2。然后切换到登陆用户下面,我这里假设要使用oracle系统帐户进行远程登陆
#su - oracle
3。使用oracle用户输入以下命令:
$vncserver
如果是第一次运行,则系统会出现提示信息,提示你输入密码,这是通过终端进行登陆时需要输入的;
另外,还有一个数字信息,这个也是需要在终端登陆时输入的,即冒号后面跟着的一个数字,如:1  ,:2等等,需要记住;
4。在windows客户端使用vncviewer,输入如下:xxx.xxx.xxx.xxx:1 或者xxx.xxx.xxx.xxx:2等,后面的数字需要和服务器端的对应才行;xxx是你服务器的ip地址了;
[linux as 5]

 

创建数据库安装的准备工作:
1,创建user/group;
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody

2,建立oracle安装文件夹(sample);
mkdir -p /opt/oracle/10gapp /opt/oracle/oradata /opt/oracle/oraInventory

chown -R oracle.oinstall  /opt/oracle
chmod 755 -R /opt/oracle

2, 配置环境变量;
要使用 Oracle 产品,应该或必须设置几个环境变量。
如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。
ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。
对于数据库服务器,建议设置以下环境变量:
使用root用户:
 
vi /home/oracle/.bash_profile
以下是配置文件的内容
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/10.2.0.1
ORACLE_SID=ge01
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH     
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
LANG=AMERICAN_AMERICA.ZHS16GBK
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID  TNS_ADMIN NLS_LANG LANG LD_LIBRARY_PATH CLASSPATH


4, 设置系统参数;
 Oracle 数据库 10g 需要以下所示的内核参数设置。
  Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,
shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。所以一般来说,1-4G 的物理内存,可以直接设置shmmax 为最大物理内存即可,4G以上的机器
需要将shmmax设置足够大,以便使整个ORACLE内存分配在一个共享内存段内
例如:8G的机器可以设为6442450944
如果是64Bit 的Linux 操作系统,shmmax 设置为大于SGA_MAX_SIZE 即可。
注意:缺省的SGA为内存的40%,加上PGA必须小于Shmmax。SHMMAX 设置不足可能会导致以下问题:ORA-27123:unable to attach to shared memory segment!

  shmall 参数是控制共享内存页数 。Linux 共享内存页大小为4KB, 共享内
存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需
要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304 (页),

另外,在32位平台上SGA最大只能扩展到1.7G,如果需要支持更大的内存,就需要降低mapped_base,重新Link Oracle软件.
操作如下:
cd $ORACLE_HOME/rdbms/lib
cp ksms.s ksms.s.bak ( if u have a ksms.s file)
genksms -s 0x12000000 > ksms.s
make -f ins_rdbms.mk ksms.o
make -f ins_rdbms.mk ioracle
此处先备份ksms.s文件,如果编译过程中出现错误,保证操作可以被恢复:
恢复步骤大致如下:
cd $ORACLE_HOME/rdbms/lib
cp ksms.s.bak ksms.s (if u have backup ksms.s file)
genksms > ksms.s
make -f ins_rdbms.mk ksms.o
make -f ins_rdbms.mk ioracle


使用root用户:
 修改vi /etc/sysctl.conf, 添加:
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
vm.panic_on_oom = 1

修改后运行 /sbin/sysctl -p 命令使得内核改变立即生效;


B) 设置oracle对文件的要求:
编辑文件:vi /etc/security/limits.conf 加入以下语句:
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536

编辑文件:vi /etc/pam.d/login 加入以下语句(可能应该加在最后一条规则之前):

session    required     /lib/security/pam_limits.so

设置oraInst.loc文件(内容不正确将会安装时有java错误):
[root@enterprice64 ~]#vi /etc/oraInst.loc 
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
[root@enterprice64 ~]#chown oracle.oinstall /etc/oraInst.loc
确保/etc/oraInst.loc中包含上面的信息,且Oracle包含访问权限。

5.解压缩Oracle10G的安装文件 :
 使用Oracle用户登陆:
su - oracle
在/home/oracle 上传和解压缩10201_database_linux32.zip:
unzip 10201_database_linux32

 

6.开始安装oracle


L i n u x 命令行环境下安装(也可以在图形界面下安装)

使用Oracle用户登陆:
su - oracle
根据希望安装的数据库版本类型选择Silent安装模式的response_file文件的类似,比如:enterprise.rsp、standard.rsp还是custom.rsp。
这里选择enterpise.rsp类型,安装盘中的database/response目录下对应的response文件拷贝出来,根据文件里面的提示对输入值进行修改。
比如这个例子中对如下的参数进行设置:
UNIX_GROUP_NAME="oinstall"
FROM_LOCATION="/home/oracle/database/stage/products.xml"
ORACLE_BASE="/opt/oracle"
ORACLE_HOME="/opt/oracle/10.2.0.1"
ORACLE_HOME_NAME="OraDbHome1"
SHOW_INSTALL_PROGRESS_PAGE= true
SHOW_END_OF_INSTALL_MSGS= true
COMPONENT_LANGUAGES={"zh_CN"}
s_nameForDBAGrp= "dba"
s_nameForOPERGrp="dba"
INSTALL_TYPE="EE"
n_configurationOption=3
RESTART_SYSTEM=false
RESTART_REMOTE_SYSTEM=false

注意,所有的字符串需要放在双引号中,注意大小写。数字和布尔变量直接写就可以。
由于这里没有选择建立数据库而只安装软件,因此没有设置数据库相关的配置参数。

[oracle@enterprice64 data]$ chmod 700 enterprise.rsp
面可以开始SILENT安装了:
注意,响应文件需要使用绝对路径。
cd /home/oracle/database
[oracle@enterprice64 database]$ ./runInstaller -silent -responseFile /home/oracle/enterprise.rsp

用root执行如下脚本:
/opt/oracle/10.2.0.1/root.sh
不过这里Oracle存在一个bug,在root.sh脚本中,自动将OUI_SILENT参数设置为TRUE,而后的检查中,
如果发现这个值为TRUE,那么这个脚本运行会自动退出了。这里需要手工将其修改为false,
最后使用root执行一下$ORACLE_HOME/root.sh脚本就可以了。

根据提示按 Enter 就可以了。
这样就在字符下成功安装了。

通过SILENT模式安装数据库之后,下面继续使用SILENT模式进行数据库的建立,
仍然是拷贝安装目录下的/home/oracle/database/response/dbca.rsp到安装目录,并进行编辑,

根据数据库建立方式的不同编辑不同的数据库库选项。
比如在本次安装过程中设置了下列参数:
RESPONSEFILE_VERSION = "10.0.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "ge01"
SID = "ge01"
TEMPLATENAME = "New_Database.dbt"
SYSPASSWORD = "georacle"
SYSTEMPASSWORD = "georacle"
DATAFILEDESTINATION ="/opt/oracle/oradata/"
RECOVERYAREADESTINATION="/opt/oracle/flash_recovery_area"
STORAGETYPE=FS
CHARACTERSET = "ZHS16GBK"
MEMORYPERCENTAGE = "40"
SCRIPTDESTINATION ="/opt/oracle/admin/ora10g/scripts"
EMCONFIGURATION=”LOCAL”
SYSMANPASSWORD = "georacle"
DBSNMPPASSWORD = "georacle"


下面就可以开始SILENT模式的数据库创建了:
[oracle@enterprice64 database]$ dbca -silent -responseFile /home/oracle/dbca.rsp


最后可以利用netca来SILENT方式设置网络部分,同样的方法设置netca.rsp:
RESPONSEFILE_VERSION="11.1"
CREATE_TYPE= "CUSTOM"
SHOW_GUI=false
LOG_FILE=""/opt/oracle/10.2.0.1/network/tools/log/netca.log""
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
设置的参数包括上面的部分,然后就可以使用netca启动silent配置:
[oracle@enterprice64 database]$ netca /silent /responsefile  /home/oracle/netca.rsp

----------------------------------------------------------------

 

(一)图形界面开始安装:
1.以oracle用户登录X-WINDOWS系统,进行Oracle的安装(远程安装需打开XDM):

[ linux 5}
export DISPLAY=
cd /opt/database (或者你解压缩安装程序包的目录)
./runInstaller 或者./runInstaller   -ignoreSysPrereqs
过一会儿就会出现Oracle的X安装界面

注意:
1、选择advance install
2、数据库home设置为/opt/oracle/10.2.0.1
3、数据库全局名称设置为ge01
4、数据库字符集选Simplified Chinese ZHS16GBK

2.其他用默认设置!
注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装。


6, 关于数据库删除重新安装的问题:
静默卸载Oracle数据库ge01
dbca -silent -deleteDatabase -sourceDB    [-sysDBAUserName     -sysDBAPassword ]
例如:dbca -silent -deleteDatabase -sourceDB ge01 -sysDBAUserName sys -sysDBAPassword georacle

静默卸载Oracle数据库软件
 
执行以下命令静默卸载Oracle数据库软件
./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={$ORACLE_HOME}" -responseFile ~/enterprise.rsp

手工删除方法:
1 . 去除 /usr/local/bin 目录 下的 coraenv dbhome oraenv
2 . 去除 /etc/oratab , /etc/oracle
3 . 去掉安装 目录 /opt/oracle 目录下的 product admin oradata oralnventor 目录 。
# userdel -r oracle
# groupdel dba oinstall
rm -rf /tmp/ora*
rm -rf /opt/oracle/*
rm -rf /opt/ORCLfmap
rm -f /etc/ora*
rm -f /usr/local/bin/oraenv
rm -f /usr/local/bin/coraenv
rm -f /usr/local/bin/dbhome

 

7、登陆并启动数据库的操作。
su - oracle
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> startup; 启动数据库
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

SQL> shutdown immediate ;关闭数据库 (OR "dbshut" command)
Database closed.
Database dismounted.
ORACLE instance shut down.

8, dbstart脚本修改
数据库创建完成后,修改vi /etc/oratab,把ge01:/opt/oracle/10.2.0.1:N那一行最后的N改成Y,

修改vi /opt/oracle/10.2.0.1/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/10.2.0.1
然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/10.2.0.1/dbs/initge01.ora
重新执行dbstart就可以了。

可以执行dbshut 停止ORACLE

vi /etc/rc.local 加入下面一行 起动ORACLE ON system boot
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"

5. 为了root方便管理,可以写一个启动脚本
vi /etc/init.d/ora10g
 
#!/bin/bash
#
# chkconfig: 2345 91 19
# description: starts the oracle listener and instance

status() {
    pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'`
    if [ "X$pid" = "X" ]
    then
        echo "oracle10g is not running."
        exit 1
    else
        echo "oracle10g is running."
        exit 0
    fi
}

case "$1" in
    start)
        #startup the listener and instance
        echo -n "oracle begin to startup: "
        su - oracle -c "lsnrctl start"
        su - oracle -c dbstart
        echo "oracle10g started"
        ;;
    stop)
        # stop listener, apache and database
        echo -n "oracle begin to shutdown:"
        su - oracle -c "lsnrctl stop"
        su - oracle -c dbshut
        echo "oracle10g shutdowned"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    'status')
        status
        ;;
     *)
        echo "Usage: ora10g [start|stop|reload|restart]"
        exit 1
esac
exit 0

存为ora10g后,然后
chmod a+x /etc/init.d/ora10g
即可在以后以root身份运行/etc/rc.d/init.d/ora10g start |stop 来管oracle的启动和停止了。
如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:
chkconfig --level 35 ora10g on
 

8. oracle database异机备份脚本
su - oracle
mkdir /home/oracle/dbbackup
(1) vi user.sql 
DROP USER gedb CASCADE;
CREATE USER gedb  IDENTIFIED BY gegedb;
GRANT UNLIMITED TABLESPACE TO gedb;
GRANT CONNECT TO gedb;
GRANT RESOURCE TO gedb;
GRANT DBA TO gedb;
exit
 
vi /home/oracle/dbbackup/backupdb.sh
#!/bin/bash
#As oracle user, chmod 744 /home/oracle/dbbackup/backupdb.sh
#crontab -e 35 1 * * * /home/oracle/dbbackup/backupdb.sh >/dev/null 2>&1
: modify local database's home directory
is remote database ip address

export ORACLE_HOME=/opt/oracle/10.2.0.1
export PATH=$ORACLE_HOME/bin:$PATH:
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
export LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_SID=ge01

dmpfile=gedb_`date +%F`.dmp
logfile=gedb_`date +%F`.log
restoredblog=restoredb_`date +%F`.log
WORK_DIR=~/dbbackup

cd $WORK_DIR
exp file=$dmpfile log=$logfile  owner=gedb
if [ 0 -eq "$?" ]
     then
         sqlplus / as sysdba @user.sql 
         imp USERID=gedb/gegedb file=$dmpfile log=./$restoredblog fromuser=gedb  touser=gedb
         find  ./*.dmp -type f -mtime +7 -exec rm {} \;
         find  ./*.log -type f -mtime +30 -exec rm {} \;
         exit 0
      else
         echo "backup error,quit!" > $logfile
         exit 1
fi
 
  (2)更改脚本权限:
     chown oracle.oinstall backupdb.sh
     chmod 744 backupdb.sh   
    
 
 (3)以oracle user role
    crontab -e
    30 0 * * * /home/oracle/dbbackup/backupdb.sh >/dev/null 2>&1
 
10. 按照平台使用要求设置oracle
alter tablespace users  add datafile    '/opt/oracle/oradata/ge01/users02.dbf' size 100M  autoextend on next 10M;
 
alter tablespace users  add datafile '/opt/oracle/oradata/ge01/users03.dbf' size 100M  autoextend on next 10M;

alter system set open_cursors = 500 scope=spfile;
alter system set processes=500 scope=spfile;
alter system set sessions=500 scope=spfile;
alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ; (ONLY FOR 10.2.0.1.0 )

重启生效
SQL> shutdown immediate
SQL> startup
检查总连接数:
show parameter processes
show parameter sessions  


11.BUG FIX

(1)10.2.0.1版本在win32平台上的bugORA-27300解决办法:
ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997
ORA-27301: OS 故障消息: 重叠 I/O 操作在进行中。
ORA-27302: 错误发生在: skgpspawn


(1)打patch number 5639232
(2)降低SGA
sqlplus / as sysdba
alter system set processes=300 scope=spfile;
alter system set sessions=300 scope=spfile;
shutdonw immediate
startup
在操作系统的boot.ini文件中增加'/3G',。
【boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /noexecute=optout /fastdetect /3GB
重启系统


(2)10201上一个严重的BUG
环境 10201,AIX53
但据ORACLE解释,在任何操作系统版本都有此问题。

现象:监听器启动后,隔一段时间(长短不定),就会出现无法
连接: 若是用10201版本的SQLPLUS,则会出现 NO LISTENER。
9207 版本的SQLPLUS,则会出现:没反应,HANG住。

原因:10201 版本上的一个BUG:4518443。其会自动创建一个子
监听器,当出现此情况时,监听器将会挂起。
/opt/oracle/product/10g/network/log/listener.log有如下语句:
WARNING: Subscription for node down event still pending

检查是否真因为此BUG造成此现象:
$ ps -ef | grep tnslsnr
ora10g 8909 1 0 Sep 15 ? 902:44 /u05/10GHOME/DBHOME/bin/tnslsnr sales -inherit
ora10g 22685 8909 0 14:19:23 ? 0:00 /u05/10GHOME/DBHOME/bin/tnslsnr sales –inherit
正常情况只有一个监听器,而此BUG则会出现两个监听器。

解决方法:
打补丁4518443
或者在listener.ora 文件里加入:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF
其中, 是数据库的监听器的名称。如:
默认情况下,监听器名为:LISTENER 。则语句就是:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF
同时:
cd $ORACLE_HOME/opmn/conf
mv ons.config ons.config.orig
重启监听程序:
lsnrctl stop
lncrctl start

 

(4)10.2.0.1的bug: PMON failed to acquire latch, see PMON dump
To implement the solution, execute the following steps::


1. In $ORACLE_HOME/network/admin/listener.ora, of the database where the Metadata Repository is to be loaded, add the line:
INBOUND_CONNECT_TIMEOUT_LISTENER = 0


2. In the Oracle Server 10g sqlnet.ora, add the line:
SQLNET.INBOUND_CONNECT_TIMEOUT = 0


3. Stop and restart the database and the listener for the changes to take effect


13 修改主机名要改下面两个文件.否则dbca会报错误.
vi /etc/sysconfig/network:
hostname=rh4nod1
vi etc/hosts   
127.0.0.1       rh4nod1 localhost.localdomain   localhost

14.修改Oracle10g数据库字符集
SQL> connect sys/oracle as sysdba
SQL> startup mount
SQL> alter session set sql_trace=true;

Session altered.

SQL> alter system enable restricted session;

System altered.

SQL> alter system set job_queue_processes=0;

System altered.

SQL> alter system set aq_tm_processes=0;

System altered.

SQL> alter database open;

Database altered.

SQL> set linesize 120;
SQL> alter database character set zhs16gbk;
alter database character set zhs16gbk
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE

Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
SQL> select name,value$ from props$ where name like '%NLS%';

NLS_CHARACTERSET
ZHS16GBK


10g EM乱码之快速解决
[oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib
[oracle@danaly lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1
font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun

[oracle@danaly lib]$ cd $ORACLE_HOME/jre/1.4.2/lib/
[oracle@danaly lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat font.properties.zh_CN.Redhat2.1
font.properties.zh_CN.Sun font.properties.zh_CN_UTF8.Sun

我们只要用合适的中文字符集文件替换缺省文件即可,我选择使用font.properties.zh_CN.Redhat来替换缺省字体定义文件:

[oracle@danaly lib]$ cp font.properties.zh_CN.Redhat font.properties

替换之后需要清理一下Cache,重启EM即可.

Cache路径通常位于:

$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs

清除所有gif文件即可.然后重新启动EM

阅读(1370) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~