数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

RedHatas4下ORACLE10g的安装及配置


发布日期:2019年06月28日
 
RedHatas4下ORACLE10g的安装及配置

Red Hat as 下ORACLEg的安装及配置

注意可以从 OTN 下载 Oracle 数据库 gOracle 提供了一个免费的开发和测试许可

但不提供支持且该许可不允许用于生产目的

资源需要

至少 MB物理内存

倍的交互空间

倍的交互空间

- 需倍的交互空间

至少 MB /tmp 临时目录空间

oracle软件需要 GB 到 GB 磁盘空间

默认数据库需要 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 pcmcia off

chkconfig level kudzu off

chkconfig level isdn off

chkconfig level sendmail off

chkconfig level rhnsd off

chkconfig level cups off

chkconfig level cupsconfigdaemon off

chkconfig level cpuspeed off

chkconfig level gpm off

chkconfig level apmd off

chkconfig level lm_sensors off

chkconfig level mdmonitor off

chkconfig level nfs off

chkconfig level nfslock off

chkconfig level iiim off

chkconfig level canna off

chkconfig level portmap off

rpm Uvh libaioirpm

[linux as ]

chkconfig level rhnsd off

chkconfig level isdn off

chkconfig level avahidaemon off

chkconfig level avahidnsconfd off

chkconfig level bluetooth off

chkconfig level cpuspeed off

chkconfig level hidd off

chkconfig level iptables off

chkconfig level mcstrans off

chkconfig level pcscd off

chkconfig level netfs off

chkconfig level yumupdatesd off

chkconfig level restorecond off

chkconfig level setroubleshoot off

chkconfig level yumupdatesd off

chkconfig level libvirtd off

chkconfig level xendomains off

chkconfig level xend off

chkconfig level iptables off

chkconfig level sendmail off

chkconfig level cups off

install the following packages:

# From RedHat AS Disk

cd /media/cdrom/Server

rpm Uvh setarch*

rpm Uvh make*

rpm Uvh glibc*

rpm Uvh libaio*

cd /

eject

# From RedHat AS Disk

cd /media/cdrom/Server

rpm Uvh compatlibstdc++*

rpm Uvh compatgcc*

rpm Uvh compatgccc++*

rpm Uvh gcc*

rpm Uvh libXp* (一定要装!)

cd /

eject

# From RedHat AS Disk

cd /media/cdrom/Server

rpm Uvh openmotif*

rpm Uvh compatdb*

cd /

eject

vi /etc/redhatrelease

replacing the current release information:

Red Hat Enterprise Linux Server release (Tikanga)

with the following: redhat

安装完成后复原

配置XDMCP服务

) 对于XDM服务配置

修改服务运行级别为

打开/etc/inittab文件配置服务初始化运行级别为如下

id::initdefault:

) 配置XDMCP服务自启动

For GDM:

打开/etc/gdm/nf文件查找[xdmcp]选项并设置Enable值为如下

[xdmcp]

Enable=

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

)配置防火墙增加端口(/UDP)端口到防火墙

)至此已经完成XDMCP服务的配置之后重器服务器启动XDMCP服务

)下载并安装客户端(Xmanager xx)并在客户机上运行Xmanager输入所需要管理的服务器的IP地址用户名及密码即可对服务器进行远程管理

vnc server配置

使用root用户启动系统的vncserver服务

#service vncserver start

然后切换到登陆用户下面我这里假设要使用oracle系统帐户进行远程登陆

#su oracle

使用oracle用户输入以下命令

$vncserver

如果是第一次运行则系统会出现提示信息提示你输入密码这是通过终端进行登陆时需要输入的

另外还有一个数字信息这个也是需要在终端登陆时输入的即冒号后面跟着的一个数字 等等需要记住

在windows客户端使用vncviewer输入如下xxxxxxxxxxxx: 或者xxxxxxxxxxxx:后面的数字需要和服务器端的对应才行xxx是你服务器的ip地址了

[linux as ]

软件要求

其他所需程序包的版本(或更高版本)

gcc

make

binutils

openmotif

glibc

要查看系统上安装了这些程序包的哪些版本运行以下命令

rpm q gcc make binutils openmotif glibc setarch

p__linuxzip 在运行 runInstaller 之前打

rpm ivh compatoraclerhelirpm (p__linuxzip)

(不打PATH也可以)

安装 libaioirpm 和libaiodevelirpm

在Red Hat Enterprise Linux 介质的第三张 CD

以 root 用户身份运行以下命令

rpm ivh /mnt/cdrom/RedHat/RPMS/ libaioirpm

创建数据库安装的准备工作:

创建user/group

groupadd dba

groupadd oinstall

useradd oracle g oinstall G dba

passwd oracle

如果nobody用户不存在(id nobody命令查看)则创建

useradd nobody

建立oracle安装文件夹(sample)

mkdir p /opt/oracle/ /opt/oracle/oradata /opt/oracle/archivelog

chown R oracleoinstall /opt/oracle

chmod R /opt/oracle

配置环境变量

要使用 Oracle 产品应该或必须设置几个环境变量

如果您在同一服务器上安装了多个 Oracle 产品或数据库则 ORACLE_HOMEORACLE_SID 和 PATH 变量可能会更改

ORACLE_BASE 变量不应更改并可以在需要时在您的登录配置文件中设置它Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量

对于数据库服务器建议设置以下环境变量

使用root用户:

vi /home/oracle/bash_profile

以下是配置文件的内容

ORACLE_BASE=/opt/oracle

ORACLE_HOME=/opt/oracle/

ORACLE_SID=ge

PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

TNS_ADMIN=$ORACLE_HOME/network/admin

NLS_LANG=AMERICAN_AMERICAZHSGBK

LANG=AMERICAN_AMERICAZHSGBK

export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID TNS_ADMIN NLS_LANG LANG

设置系统参数

Oracle 数据库 g 需要以下所示的内核参数设置

一般情况下可以设置最大共享内存为物理内存的一半如果物理内存是 G则可以设置最大共享内存为

如上如物理内存是 G则可以设置最大共享内存为 * * = 以此类推在redhat上最大共享内存不建议超过

***=

切换到root用户:

su root

修改vi /etc/nf 添加

kernelshmmax =

kernelshmmni =

kernelshmall =

kernelsem =

fsfilemax =

netipvip_local_port_range =

rermem_default=

rermem_max=

rewmem_default=

rewmem_max=

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

B) 设置oracle对文件的要求

编辑文件vi /etc/security/nf 加入以下语句

oracle soft nproc

oracle hard nproc

oracle soft nofile

oracle hard nofile

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

session required /lib/security/pam_limitsso

设置oraInstloc文件

[root@enterprice ~]#vi /etc/oraInstloc

inventory_loc=/opt/oracle/oraInventory

inst_group=oinstall

[root@enterprice ~]#chown oracleoinstall /etc/oraInstloc

确保/etc/oraInstloc中包含上面的信息且Oracle包含访问权限

解压缩OracleG的安装文件

使用Oracle用户登陆:

su oracle

在/home/oracle 上传和解压缩_database_linuxzip:

unzip _database_linux

开始安装oracle

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

使用Oracle用户登陆:

su oracle

根据希望安装的数据库版本类型选择Silent安装模式的response_file文件的类似比如enterpriserspstandardrsp还是customrsp

这里选择enterpisersp类型安装盘中的database/response目录下对应的response文件拷贝出来根据文件里面的提示对输入值进行修改

比如这个例子中对如下的参数进行设置

UNIX_GROUP_NAME=oinstall

FROM_LOCATION=/home/oracle/database/stage/productsxml

ORACLE_BASE=/opt/oracle

ORACLE_HOME=/opt/oracle/

ORACLE_HOME_NAME=OraDbHome

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=

RESTART_SYSTEM=false

RESTART_REMOTE_SYSTEM=false

注意所有的字符串需要放在双引号中注意大小写数字和布尔变量直接写就可以

由于这里没有选择建立数据库而只安装软件因此没有设置数据库相关的配置参数

[oracle@enterprice data]$ chmod enterprisersp

面可以开始SILENT安装了

注意响应文件需要使用绝对路径

cd /home/oracle/database

[oracle@enterprice database]$ /runInstaller silent responseFile /home/oracle/enterprisersp

用root执行如下脚本

/opt/oracle//oraInventory/orainstRootsh

/opt/oracle//rootsh

不过这里Oracle存在一个bug在rootsh脚本中自动将OUI_SILENT参数设置为TRUE而后的检查中

如果发现这个值为TRUE那么这个脚本运行会自动退出了这里需要手工将其修改为false

最后使用root执行一下$ORACLE_HOME/rootsh脚本就可以了

根据提示按 Enter 就可以了

这样就在字符下成功安装了

通过SILENT模式安装数据库之后下面继续使用SILENT模式进行数据库的建立

仍然是拷贝安装目录下的/home/oracle/database/response/dbcarsp到安装目录并进行编译

根据数据库建立方式的不同编辑不同的数据库库选项

比如在本次安装过程中设置了下列参数

RESPONSEFILE_VERSION =

OPERATION_TYPE = createDatabase

GDBNAME = ge

SID = ge

TEMPLATENAME = New_Databasedbt

SYSPASSWORD = georacle

SYSTEMPASSWORD = georacle

DATAFILEDESTINATION =/opt/oracle/oradata/

RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area

STORAGETYPE=FS

CHARACTERSET = ZHSGBK

MEMORYPERCENTAGE =

SCRIPTDESTINATION =/opt/oracle/admin/orag/scripts

EMCONFIGURATION=LOCAL

SYSMANPASSWORD = georacle

DBSNMPPASSWORD = georacle

其中最后项不是必须的这个的目的是在建立数据库的同时生成脚本

下面就可以开始SILENT模式的数据库创建了

[oracle@enterprice database]$ dbca silent responseFile /home/oracle/dbcarsp

用root执行如下脚本

/opt/oracle//oraInventory/orainstRootsh

最后可以利用netca来SILENT方式设置网络部分同样的方法设置netcarsp

RESPONSEFILE_VERSION=

CREATE_TYPE= CUSTOM

SHOW_GUI=false

LOG_FILE=/opt/oracle//network/tools/log/netcalog

INSTALLED_COMPONENTS={servernetjavavm}

INSTALL_TYPE=typical

LISTENER_NUMBER=

LISTENER_NAMES={LISTENER}

LISTENER_PROTOCOLS={TCP;}

LISTENER_START=LISTENER

NAMING_METHODS={TNSNAMESONAMESHOSTNAME}

设置的参数包括上面的部分然后就可以使用netca启动silent配置

[oracle@enterprice database]$ netca /silent /responsefile /home/oracle/netcarsp

静默卸载Oracle数据库ge

dbca silent deleteDatabase sourceDB <source database sid> [sysDBAUserName <user name with SYSDBA privileges> sysDBAPassword <password for sysDBAUserName user name>]

例如dbca silent deleteDatabase sourceDB ge sysDBAUserName sys sysDBAPassword georacle

静默卸载Oracle数据库软件

执行以下命令静默卸载Oracle数据库软件

$/runInstaller silent deinstall removeallfiles removeAllPatches REMOVE_HOMES={$ORACLE_HOME} responseFile ~/enterprisersp

(一)图形界面开始安装

以oracle用户登录XWINDOWS系统进行Oracle的安装(远程安装需打开XDM)

[ linux }

export DISPLAY=

cd /opt/database (或者你解压缩安装程序包的目录)

/runInstaller 或者/runInstaller ignoreSysPrereqs

过一会儿就会出现Oracle的X安装界面

注意

选择advance install

数据库home设置为/opt/oracle/

数据库全局名称设置为ge

数据库字符集选Simplified Chinese ZHSGBK

其他用默认设置!

注意安装过程中会提示以root用户登陆执行一些脚本 执行后再按ok按钮继续安装

登陆并启动数据库的操作

su oracle

[oracle@oracle oracle]$ lsnrctl start

[oracle@oracle oracle]$ sqlplus /nolog

SQL*Plus: Release Production on Sat Mar ::

Copyright (c) Oracle Corporation All rights reserved

SQL> connect / as sysdba

Connected

SQL> startup; 启动数据库

ORACLE instance started

Total System Global Area bytes

Fixed Size bytes

Variable Size bytes

Database Buffers bytes

Redo Buffers bytes

Database mounted

Database opened

SQL> shutdown immediate ;关闭数据库 (OR dbshut command)

Database closed

Database dismounted

ORACLE instance shut down

dbstart脚本修改

数据库创建完成后修改vi /etc/oratab把ge:/opt/oracle/:N那一行最后的N改成Y

修改vi /opt/oracle//bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/

然后执行dbstart启动数据库数据库可能无法启动报告Cant find init file …的错误需要复制一个初始化文件:

cp /opt/oracle/admin/ge/pfile/initora* /opt/oracle//dbs/initgeora

重新执行dbstart就可以了

可以执行dbshut 停止ORACLE

vi /etc/rclocal 加入下面一行 起动ORACLE ON system boot

su oracle c lsnrctl start

su oracle c dbstart

为了root方便管理可以写一个启动脚本

vi /etc/initd/orag

#!/bin/bash

#

# chkconfig:

# description: starts the oracle listener and instance

status() {

pid=`ps ef | grep ora_pmon | grep v grep | awk {print $}`

if [ X$pid = X ]

then

echo oracleg is not running

exit

else

echo oracleg is running

exit

fi

}

case $ in

start)

#startup the listener and instance

echo n oracle begin to startup:

su oracle c lsnrctl start

su oracle c dbstart

echo oracleg started

;;

stop)

# stop listener apache and database

echo n oracle begin to shutdown:

su oracle c lsnrctl stop

su oracle c dbshut

echo oracleg shutdowned

;;

reload|restart)

$ stop

$ start

;;

status)

status

;;

*)

echo Usage: orag [start|stop|reload|restart]

exit

esac

exit

存为orag后然后

chmod a+x /etc/initd/orag

即可在以后以root身份运行/etc/rcd/initd/orag start |stop 来管oracle的启动和停止了

如果要将这个脚本加入到系统中使其可开机运行那么要运行以下命令

chkconfig level orag on

关于数据库删除重新安装的问题:

去除 /usr/local/bin 目录 下的 coraenv dbhome oraenv

去除 /etc/oratab /etc/oracle

去掉安装 目录 /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

修改Oracleg数据库字符集

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=;

System altered

SQL> alter system set aq_tm_processes=;

System altered

SQL> alter database open;

Database altered

SQL> set linesize ;

SQL> alter database character set zhsgbk;

alter database character set zhsgbk

*

ERROR at line :

ORA: new character set must be a superset of old character set

SQL> ALTER DATABASE character set INTERNAL_USE zhsgbk; # 使用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 namevalue$ from props$ where name like %NLS%;

NLS_CHARACTERSET

ZHSGBK

oracle database异机备份脚本

su oracle

mkdir /home/oracle/dbbackup

()vi /home/oracle/dbbackup/bachupdbsh

#!/bin/bash

#As oracle user chmod /home/oracle/dbbackup/DBbackuprecoversh

#crontab e * * * /home/oracle/dbbackup/DBbackuprecoversh >/dev/null >&

#@tip: modify local databases home directory

#@tip <ip> is remote database ip address

export ORACLE_HOME=/opt/oracle/

export PATH=$ORACLE_HOME/bin:$PATH:

export NLS_LANG=AMERICAN_AMERICAzhsgbk

export LANG=AMERICAN_AMERICAZHSGBK

export ORACLE_SID=ge

dmpfile=gedb_`date +%F`dmp

logfile=gedb_`date +%F`log

restoredblog=restoredb_`date +%F`log

WORK_DIR=~/dbbackup

cd $WORK_DIR

exp USERID=gedb/gegedb@<ip>/ge file=$dmpfile log=$logfile owner=gedb

if [ eq $? ]

then

sqlplus / as sysdba @usersql

imp USERID=gedb/gegedb file=$dmpfile log=/$restoredblog fromuser=gedb touser=gedb

find /*dmp type f mtime + exec rm {} \;

find /*log type f mtime + exec rm {} \;

exit

else

echo backup errorquit! > $logfile

exit

fi

#@tip ip地址修改为要备份的oracle的主机地址

exp USERID=gedb/gedb@/ge file=$dmpfile log=$logfile owner=gedb direct=y

()更改脚本权限

chown oracleoinstall backupdbsh

chmod backupdbsh

()以oracle user role

crontab e

* * * /home/oracle/dbbackup/backupdbsh

restore oracle backup

() 先创建gedb用户和授权

su oracle

sqlplus / as sysdba @createUsersql

()imp USERID=gedb/gegedb file=dmp fromuser=gedb touser=gedb

如果要第二次IMP操作要先删除用户gedb再新建用户gedb这样imp才不会出错

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;

oracle优化

SQL> alter system set _kgl_large_heap_warning_threshold= scope=spfile ; (ONLY FOR

SQL> shutdown immediate

SQL> startup

BUG FIX

()g EM乱码之快速解决

[oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib

[oracle@danaly lib]$ ls font*zh_CN*

fontpropertieszh_CNRedhat fontpropertieszh_CNRedhat

fontpropertieszh_CNSun fontpropertieszh_CN_UTFSun

[oracle@danaly lib]$ cd $ORACLE_HOME/jre//lib/

[oracle@danaly lib]$ ls font*zh_CN*

fontpropertieszh_CNRedhat fontpropertieszh_CNRedhat

fontpropertieszh_CNSun fontpropertieszh_CN_UTFSun

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

[oracle@danaly lib]$ cp fontpropertieszh_CNRedhat fontproperties

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

Cache路径通常位于:

$ORACLE_HOME/ocj/jee/ocj_applications/applications/em/em/cabo/images/cache/zhs

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

()上一个严重的BUG

环境 AIX

但据ORACLE解释在任何操作系统版本都有此问题

现象监听器启动后隔一段时间(长短不定)就会出现无法

连接 若是用版本的SQLPLUS则会出现 NO LISTENER

版本的SQLPLUS则会出现没反应HANG住

原因 版本上的一个BUG其会自动创建一个子

监听器当出现此情况时监听器将会挂起

/opt/oracle/product/g/network/log/listenerlog有如下语句:

WARNING: Subscription for node down event still pending

检查是否真因为此BUG造成此现象

$ ps ef | grep tnslsnr

orag Sep ? : /u/GHOME/DBHOME/bin/tnslsnr sales inherit

orag :: ? : /u/GHOME/DBHOME/bin/tnslsnr sales –inherit

正常情况只有一个监听器而此BUG则会出现两个监听器

解决方法

打补丁

或者在listenerora 文件里加入

SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF

其中<listener_name> 是数据库的监听器的名称

默认情况下监听器名为LISTENER 则语句就是

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

同时

cd $ORACLE_HOME/opmn/conf

mv nfig nfigorig

重启监听程序:

lsnrctl stop

lncrctl start

               

上一篇:oracle扩展表空间

下一篇:数据库基础:了解最常见的13个数据库术语