CentOS 4.6安装ORACLE 10G

2008-08-21 | 10:48 am分类:工作日志, 数据库 | 标签: | 66 views

CentOS 4.6安装ORACLE 10G

1.安装相关软件包
yum install compat-gcc-32 compat-gcc-32-c++ compat-gcc-32-g77 compat-libf2c-32 compat-libstdc++-296 compat-libstdc++-33 compat-db compat-readline43 libXp libaio libaio-devel

2.创建组和用户
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
#检查结果
[root@localhost opt]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

3.创建安装Oracle所需要的目录
mkdir /db
#安放oracle软件
mkdir -p /opt/oracle
#存放oracle数据库文件
mkdir -p /db/oradata
chown -R oracle.oinstall /opt/oracle /db/oradata
chmod -R 755 /opt/oracle /db/oradata

4.配置Linux内核参数
编辑/etc/sysctl.conf,加入
================================
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
=======================================
一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。)
建议永久地增加 shmmax 设置。
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数);SEMMNS(系统信号量最大数);SEMOPM(每次semopm系统调用操作数); SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存,官方文档建议是内存的1/2,Shmmni 最小共享内存 4096KB.Shmall 所有内存大小

使配置生效
sysctl -p

5.为Oracle用户设置Shell限制
编辑/etc/security/limits.conf,加入
===================================
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
===================================
编辑/etc/pam.d/login,加入
===================================
session required /lib/security/pam_limits.so
session required pam_limits.so
===================================

6.设置Oracle用户的环境变量
su - oracle
编辑~/.bash_profile,加入
===================================
#Oracle settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=xuki
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=”AMERICAN_AMERICA.ZHS16GBK”
export LANG=en_US.UTF-8
export GDM_LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export LC=en_US.UTF-8
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
export CLASSPATH
===================================

退出oracle用户,重新回到root
exit

7.准备Oracle安装目录及文件
创建一个目录以存放Oracle 10g软件
mkdir /home/102g_db
chown -R oracle.oinstall /home/102g_db
chmod -R 775 /home/102g_db
将安装文件放到此目录
su - oracle
cd /home/102g_db
unzip 10201_database_linux32.zip

8.安装Oracle软件
su - oracle
vncserver
然后通过VNC Viewer连接到服务器,打开终端:
cd /home/102g_db/database/
./runInstaller
弹出Oracle安装窗口,选择
Advanced Installation=>Next
Next
Enterprise Edition=>Next
Next
Next
Install database Software only=>Next
Install

这里先只安装软件,后面再创建数据库。

9.建立数据库
在终端运行
dbca
在弹出的窗口中
Next
选择Create a Database=>Next
选择General Purpose=>Next
Global Database Name:xuki,SID:xuki=>Next
Next
输入密码=>next
选择File System=Next
Use Common Location For ALL Database Files:/db/oradata =>Next
Enable Archiving=>Edit Archive Mode Parameters 设置archive log存放目录为/db/oradata/xuki/archive =>Next
Sample Schemas=>Next
设置语言为ZHS16GBK,国别为China=>Next
Next
Finish=>OK
创建数据库

10.创建listener.ora
在终端运行
netca
在弹出的窗口中
在Oracle Net Configuration Assitant:Welcome选择Listener configuration =>Next
选择Add =>Next
保持默认Listener Name,=>Next
保持默认协议 =>Next
使用默认端口 =>Next
选择否, =>Next
=>Next
=>Finish
完成listener.ora创建。

为创建的listener.ora添加数据库:
在终端运行
dbca
在弹出的窗口中
Oracle Net Configuration=>local=>Listeners=>LISTENER=>Database Services=>Add Databae
Global Database Name: xuki
SID: xuki
File=>Save Network Configration.
File=>Exit

创建后的listener.ora内容如下:
[oracle@localhost ~]$ cat /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = xuki)
(ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
(SID_NAME = xuki)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

11.创建tnsnames.ora
在终端运行
netca
在弹出的窗口中
在Oracle Net Configuration Assitant:Welcome选择Local Net Service Name configuration =>Next
选择Add =>Next
Service Name:xuki =>Next
TCP =>Next
Host name:localhost.localdomain=>Next
Yes,perform a test =>Next
看是否测试OK,如测试OK进行下一步,否则需要back调整
=>Next
Net Service Name: xuki =>Next
No =>Next
=>Next
=>Finish

创建后的tnsnames.ora内容如下:
[oracle@localhost ~]$ cat /opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

XUKI =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xuki)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
这一步不是必需,创建tnsnames.ora主要是方便本机访问其它数据库服务器,在后面使用rman的catalog服务器的时候需要用到tnsnames.ora。

12.设置oracle开机自启动(如需要的话)
12.1 user root 下面修改:
vi /etc/oratab===================
xuki:/opt/oracle/product/10.2.0/db_1:Y
=============================
将N该为Y

12.2 user oracle 下面修改:
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cd $ORACLE_HOME/bin
[oracle@localhost bin]$ vi dbstart
找到 ORACLE_HOME_LISTNER 这行, 修改成:
ORACLE_HOME_LISTNER=/opt/oracle/product/10.2.0/db_1
或者直接修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME

测试运行 dbshut, dbstart 看能否启动oracle 服务及listener服务
[oracle@localhost bin]$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> exit;
[oracle@localhost bin]$ lsnrctl stop
[oracle@localhost bin]$ ps -efw|grep ora_
[oracle@localhost bin]$ lsnrctl status
[oracle@localhost bin]$ ps -efw | grep LISTEN | grep -v grep

[oracle@localhost bin]$ dbstart
[oracle@localhost bin]$ ps -efw|grep ora_
[oracle@localhost bin]$ lsnrctl status
[oracle@localhost bin]$ ps -efw | grep LISTEN | grep -v grep

[oracle@localhost bin]$ dbstop
[oracle@localhost bin]$ ps -efw|grep ora_
[oracle@localhost bin]$ lsnrctl status
[oracle@localhost bin]$ ps -efw | grep LISTEN | grep -v grep

在切换回 user root:
[root@localhost ~ ]# cd /etc/rc.d/init.d/

[root@localhost init.d]# vi oracle10
==================================================
#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases
# /etc/init.d/oracle10
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=xuki
export ORACLE_TERM=xterm
export THREADS_FLAGS=native
export PATH=/usr/sbin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=”AMERICAN_AMERICA.ZHS16GBK”
export LANG=en_US.UTF-8
export GDM_LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export LC=en_US.UTF-8
#export LD_ASSUME_KERNEL=2.6.9-42
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
export CLASSPATH

case “$1″ in
start)
su oracle -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
echo “OK”
;;
stop)
echo -n “Shutdown Oracle: ”
su oracle -c $ORACLE_HOME/bin/dbshut
su oracle -c “$ORACLE_HOME/bin/lsnrctl stop”
rm -f /var/lock/oracle
echo “OK”
;;
*)
echo “Usage: ‘basename $0′ start|stop”
exit 1
esac
exit 0
==================================================
chmod +x /etc/init.d/oracle10
chkconfig –add oracle10

好,现在可以重启一下服务器,测试是否能开机启动Oracle。

13.安装rlwrap
为了让sqlplus和rman支持历史回调功能,需要安装rlwrap.
root用户运行:
tar -xzvf rlwrap-0.30.tar.gz;cd rlwrap-0.30
./configure ;make;make install
su - oracle
编辑~/.bash_profile加入:

alias sqlplus=’rlwrap sqlplus’
alias rman=’rlwrap rman’

这是最基本的,可以根据自己习惯和需要增加适当的alias.

14.创建表空间及用户
[oracle@localhost ~]$sqlplus / as sysdba
SQL> create tablespace xuki_tbs datafile ‘/db/oradata/piaowu/xuki_tbs01.dbf’ size 256M;
SQL> create user xuki identified by xuki default tablespace xuki_tbs temporary tablespace temp;
SQL> grant connect,resource to xuki;

15.导入备份的数据库
将备份文件放入dumpin_dir(/home/oracle/bak)中,如果没有创建,按如下步骤创建
[oracle@localhost ~] mkdir -p /home/oracle/bak
[oracle@localhost ~] sqlplus / as sysdba
SQL> create directory dumpin_dir as ‘/home/oracle/bak’;
SQL> grant read,write on directory dumpin_dir to xuki;

确认目录是否已创建:
SQL> SELECT * FROM dba_directories ;

导入数据
[oracle@localhost ~] impdp directory=dumpin_dir dumpfile=xuki_tbs200808210400.dmp schemas=xuki

发表您的评论

您的名字: (*必填)
您的邮箱:(*不会被公布 ,必填)
您的网站: