克隆linux服务器数据库,Oracle 数据库之克隆方法 (for Redhat Linux7.2,原创)

之所以写这篇文章,是为了让那些在linux上安装Oracle头痛不已的兄弟姐妹们。一次安装,多次克隆,而且可以跨平台克隆,也就是说在Reshat 7.2下克隆出来的Oracle,可以运行在AS3、Redhat9.0上

It's Very Easy

Let's go!

Oracle 8.1.7 for Linux系统,在安装上存在一切困难,尤其在Redhat7.2系统下安装的时候会出现很多意想不到的事情,譬如图形界面无法显示、xwin无法远程连接,在编译的过程中如果没有安装GCC,Glibc等等一些库文件,容易出现无法link的错误,而全部安装又会造成其他困难。因此在Oracle安装过程中总结出来了一些经验。介绍如下:

<1>:Oracle在一台服务器中安装成功后,可以作为种子系统,将其打成tar.gz包,并平滑转移到另外一台服务器上,经过测试没有问题;

Oracle 8.1.7 for Linux系统,在安装上存在一切困难,尤其在Redhat7.2系统下安装的时候会出现很多意想不到的事情,譬如图形界面无法显示、xwin无法远程连接,在编译的过程中如果没有安装GCC,Glibc等等一些库文件,容易出现无法link的错误,而全部安装又会造成其他困难。因此在Oracle安装过程中总结出来了一些经验。介绍如下:

<1>:Oracle在一台服务器中安装成功后,可以作为种子系统,将其打成tar.gz包,并平滑转移到另外一台服务器上,经过测试没有问题;

<2>: 另外一台没有事先安装oracle系统的服务器需要安装 JDK (java虚拟机),因为oracle一些jar文件需要java虚拟机来解释运行,假如没有jdk,即使转移安装好的oracle也会出现各种错误; (经过研究不需要JDK)

<3>:需要设置oracle用户的环境变量,在oracle系统用户登陆后,要读取 /home/oracle/.bash_proile的环境变量,如果没有这些变量,oracle一些程序无法找到或无法运行;

<4>:需要修改oracle的监听的Hostname,如果使用安装好的hostname,那么在使用oracle windows client远程连接数据库会出现无法远程连接数据库的问题;

<5>:oci8.so(php与oracle接口程序)仍然需要本地安装好gcc编译器,因为copy其他服务器的oci8.so文件,有可能不能正常连接运行。

<6>:用户登陆的启动oracle数据库,必须要用oracle用户来启动,如果用root用户来启动会造成安全隐患。

b):安装数据库步骤:

<1>:准备用户环境。

#groupadd dba

#groupadd oinstall

#useradd oracle -g oinstall -G dba

#passwd oracle

输入新用户的密码。

创建安装目录(以/var/oracle/为例)

#mkdir /var/oracle

#chown oracle.dba /var/oracle

#chmod 777 /var/oracle

<2>:设置Oracle用户的登陆环境变量,编辑 /home/oracle/.bash_profile文件,将下列参数加入到 /home/oracle/.bash_profile中;

. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh

export LD_ASSUME_KERNEL=2.2.5

export LDEMULATION=elf_i386_glibc21

export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/

export ORACLE_BASE=/var/oracle

export ORACLE_HOME=$ORACLE_BASE/product/8.1.7

export PATH=$PATH:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export ORACLE_SID=Billing

export ORACLE_TERM=vt100

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

umask 022

c):将OracleOk.tar.gz文件解压缩

获得已经安装好的OracleOk.tar.gz文件,将其解压缩到/var/oracle目录中,安装方式如下:

[voipack@bobyang root]# cd /var/oracle

[voipack@bobyang root]# tar –xvzf oracleOk.tar.gz

d):安装JDK

将jdk118_v3-glibc-2.1.3.tar.bz2 copy到/usr/local

[voipack@bobyang root]# cp jdk118_v3-glibc-2.1.3.tar.bz2 /usr/local/

[voipack@bobyang root]# bunzip2 -d jdk118_v3-glibc-2.1.3.tar.bz2

[voipack@bobyang root]# tar xvf jdk118_v3-glibc-2.1.3.tar

[voipack@bobyang root]#ln -s /usr/local/jdk118_v3 /usr/local/java

:修改 /var/oracle/product/8.1.7/network/admin下的listener.ora跟tnsnames.ora文件中的HOST名字。将Host的名称修改为本地服务器Host名称。

# Generated by Oracle configuration tools.

LISTENER =

(DEs criptION_LIST =

(DEs criptION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = Bobyang)(PORT = 1521))

)

)

(DEs criptION =

(PROTOCOL_STACK =

(PRESENTATION = GIOP)

(SESSION = RAW)

)

(ADDRESS = (PROTOCOL = TCP)(HOST = Bobyang)(PORT = 2481))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /var/oracle/product/8.1.7)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = Billing)

(ORACLE_HOME = /var/oracle/product/8.1.7)

(SID_NAME = Billing)

)

)

f):oracle系统启动

<1>:以oracle用户登陆到Linux系统

[oracle@bobyang oracle]$ sqlplus /nolog (本地连接数据库oracle)

SQL*Plus: Release 8.1.7.0.0 - Production on Fri May 23 14:56:21 2003

(c) Copyright 2000 Oracle Corporation. All rights reserved.

SQL>connect /as sysdba (以sysdba超级用户连接数据库)

Connected.

SQL> startup (启动oracle数据库)

ORACLE instance started.

Total System Global Area 72704160 bytes

Fixed Size 73888 bytes

Variable Size 55681024 bytes

Database Buffers 16777216 bytes

Redo Buffers 172032 bytes

Database mounted.

Database opened.

SQL>exit (退出oracle数据库)

Disconnected from Oracle8i Enterprise Edition Release 8.1.7.0.1 - Production

With the Partitioning option

JServer Release 8.1.7.0.1 - Production

[oracle@bobyang oracle]$ lsnrctl start (启动Oracle net8远程监听端口)

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 23-MAY-2003 14:59:35

(c) Copyright 1998 Oracle Corporation. All rights reserved.

Starting /var/oracle/product/8.1.7/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 8.1.7.0.0 - Production

System parameter file is /var/oracle/product/8.1.7/network/admin/listener.ora

Log messages written to /var/oracle/product/8.1.7/network/log/listener.log

Listening on: (DEs criptION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

Listening on: (DEs criptION=(ADDRESS=(PROTOCOL=tcp)(HOST=netbank)(PORT=1521)))

Listening on: (DEs criptION=(ADDRESS=(PROTOCOL=tcp)(HOST=netbank)(PORT=2481))(PROTOCOL_STACK=(PRESENTATION=GIOP)(SESSION=RAW)))

Connecting to (DEs criptION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))

STATUS of the LISTENER

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

Alias LISTENER

Version TNSLSNR for Linux: Version 8.1.7.0.0 - Production

Start Date 23-MAY-2003 14:59:35

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security OFF

SNMP OFF

Listener Parameter File /var/oracle/product/8.1.7/network/admin/listener.ora

Listener Log File /var/oracle/product/8.1.7/network/log/listener.log

Services Summary...

Billing has 1 service handler(s)

PLSExtProc has 1 service handler(s)

The command completed successfully

[voipack@boyang oracle]$ lsnrctl stop (关闭Oracle net8远程监听端口)

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 23-MAY-2003 14:59:31

(c) Copyright 1998 Oracle Corporation. All rights reserved.

Connecting to (DEs criptION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))

The command completed successfully

SQL> shutdown (关闭数据库)

Database closed.

Database dismounted.

ORACLE instance shut down

至此,Oracle克隆到另外一台服务器的安装完毕!够简单了吧。不需要图形界面,不需要GCC等众多软件。

编译oci8.so(PHP与Oracle接口程序)

<1>:需要将php-4.0.6.tar.gz原代码拷到目标机器,解包,到php-4.0.6目录下,运行如下:

[voipack@bobyang root]# ./configure (编译PHP前的配置)

[voipack@bobyang root]# make (开始编译PHP)

[voipack@bobyang root]# make install (安装php程序)

[voipack@bobyang root]# cd ext/oci8       (进入到oci8接口库)

[voipack@bobyang root]# phpize

[voipack@bobyang root]# aclocal (生成配置文件)

[voipack@bobyang root]# ./configure (Oci8接口配置)

[voipack@bobyang root]# make (编译Oci8)

[voipack@bobyang root]# make install (安装ori8接口程序,当前目录下的modules子目录下的oci8.so将被拷到/usr/lib/php4目录下)

<1>:同时需要将oci8.so在php.ini文件中去掉注释

;extension=mhash.so

;extension=mssql65.so

;extension=mssql70.so

;extension=mysql.so

;extension=oas.so

;extension=odbc.so

extension=oci8.so (将注释去掉)

;extension=oracle.so

;extension=pdf.so

extension=pgsql.so

;extension=sablot.so

;extension=swf.so

;extension=sybase_ct.so

;extension=zlib.so

<3>:重新启动Apache服务器

[voipack@bobyang root]# /etc/init.d/httpd restart

Stopping httpd: [ OK ]

Starting httpd: [ OK ]

注释:另外发现安装jdk根本没这个需要。我安装oracle8.1.7目前只是简化到了三个步骤:

一:设置oracle环境变量

二:解压缩克隆过来的oracle文件

三:修改listener.ora 跟 tnsnames.ora文件,修改host名称

不过不同的linux系统能否运行这种方式的oracle,我测试过可以保证,呵呵!如果你愿意这个项目的话,可以共同研究 :P

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值