oracle复制数据库文件,Oracle的数据库快速复制 (2)

本文详细指导如何在两台服务器间将callcenter数据库从A服务器复制到B服务器,包括打包、监听器配置、tnsnames文件调整和启动步骤,确保新服务器能同时运行callcenter和aaa数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总算回来了。今天讲述数据库快速复制第二章。

一:首先准备一台服务器A,里面安装了callcenter数据库

二:再准备第二台服务器B,里面安装了aaa数据库

三:目的,将A的callcenter数据库复制到服务器B去,使得服务器B启动oracle就可以启动callcenter数据库跟aaa数据库。

方法如下:

一:进入到数据库服务器A

[root@learnin9_callcenter oradata]# pwd

/var/oracle/app/oracle/oradata

[root@learnin9_callcenter oradata]# ls

callcenter

[root@learnin9_callcenter oradata]# tar cvzf oradata.callcenter.tar.gz ./callcenter            (将callcenter目录打包)

二:进入到数据库服务器A

[root@learnin9_callcenter admin]# pwd

/var/oracle/app/oracle/admin

[root@learnin9_callcenter admin]# ls

callcenter

[root@learnin9_callcenter oradata]# tar cvzf admin.callcenter.tar.gz ./callcenter            (将callcenter目录打包)

三:注意打包的文件所放的各自目录

将以上两个压缩的文件oradata.callcenter.tar.gz admin.callcenter.tar.gz SCP到数据库服务器B的各自目录。然后tar -xvzf 解压缩 (这些不再烦述)

四:修改oracle 8i的监听文件

[root@learnin9_callcenter admin]# pwd

/var/oracle/app/oracle/product/8.1.7/network/admin

[root@learnin9_callcenter admin]#vi listener.ora

# LISTENER.ORA Network Configuration File: /var/oracle/app/oracle/product/8.1.7/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

)

)

(DESCRIPTION =

(PROTOCOL_STACK =

(PRESENTATION = GIOP)

(SESSION = RAW)

)

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 2481))

)  )

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

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

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = callcenter)

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

(SID_NAME = callcenter)

)    (SID_DESC =

(GLOBAL_DBNAME = aaa)

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

(SID_NAME = aaa)

)

)

修改tnsnames文件属性,增加callcenter数据库监听配置

[root@learnin9_callcenter admin]#vi tnsnames.ora

CALLCENTER.LOCALDOMAIN =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = callcenter)

)

)

AAA.LOCALDOMAIN =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME = aaa)

)

)

INST1_HTTP.LOCALDOMAIN =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = SHARED)

(SERVICE_NAME = aaa)

(PRESENTATION = )

)

)

EXTPROC_CONNECTION_DATA.LOCALDOMAIN =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

五:修改完毕后,然后lsnrctl start,不过要注意先stop哦,然后再start

六:最为重要的一点要记住,启动这两个数据库之前,一定要先去这个目录看看文件

[root@learnin9_callcenter dbs]# pwd

/var/oracle/product/8.1.7/dbs

[root@learnin9_callcenter dbs]# ls

[root@learnin9_callcenter dbs]# ls -al

total 44

drwxr-xr-x    2 oracle   dba          4096 Apr 17 16:24 .

drwxr-xr-x   39 oracle   dba          4096 Apr 29  2003 ..

lrwxrwxrwx    1 oracle   dba            47 Jan  3 18:06 initBilling.ora -> /var/oracle/admin/aaa/pfile/initaaa.ora

-rw-r--r--    1 oracle   dba          9219 Oct 22  1999 initdw.ora

-rw-r--r--    1 oracle   dba          8385 Oct 22  1999 init.ora

lrwxrwxrwx    1 oracle   dba            47 Apr 17 15:51 initwebcall.ora -> /var/oracle/admin/callcenter/pfile/initwebcall.ora      (自己创建一个链接)

-rw-rw----    1 oracle   dba            24 Apr 17 14:42 lkaaa

-rw-rw----    1 oracle   dba            24 Apr 17 16:23 lkcallcenter (这个文件是oracle的callcenter启动后的产生的文件,相当于某个进程的pid文件,主要这个文件不要copy过来,否则会无法启动)

-rwSr-----    1 oracle   dba          1536 Apr 29  2003 orapwaaa

-rwSr-----    1 oracle   dba          1536 Apr 29  2003 orapwcallcenter  (callcenter的passwd文件,copy过来,如果不能用,可以先start force后修改passwd,产生一个passwd文件)

复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中。 在很多生产环境中,经常遇到一些大量得数据,这些数据只用作查询统计功能。例如:历史告警,历史性能指标,历史事件,等等。这种数据的特点是:只读不写,数据量相当大,一旦查询大结果集的数据时,对数据库的IO,内存缓存占用相当大,会严重影响同一个数据库的其他会话的操作,表现为整个数据库反应迟缓,业务功能不可用。采用复制技术后,将这些大型数据复制到另外一个数据库中,对这些大数据的查询统计操作放在另外的一台数据库服务器上进行,即使受影响,也只是影响局部的查询统计功能,其他正常的业务处理不受影响。 但是,使用复制技术的话,意味着一个系统中,至少存在两个数据库(集群的数据库也当成一个数据库),对应的应用程序也需要建立多个数据库连接,能够根据业务需要,访问不同的数据库ORACLE数据库自身提供有复制功能,只需要进行配置即可实现。 ORACLE提供有三种复制技术: 高级复制(Advanced Replication) 流复制(Streams Replication) 备库(Dataguard) 备库的方式,就是数据库数据库的备份方式,主要是解决容灾的,不讨论此话题。 流复制主要是利用ORACLE的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。可以复制到表,用户,数据库级别。 高级复制主要是基于触发器的原理来触发数据同步的,因此,高级复制无法实现用户,数据库级别的对象复制,只能做些表、索引和存储过程的复制。 如果出于容灾整个数据库的考虑,高级复制相当复杂,而且并不一定能做好,流复制的配置相对简单。流复制是后来产生的复制技术,是基于日志挖掘技术实现的,对数据库的影响较低。但在稳定性方面较差,实时性没有高级复制(因为高级复制是基于触发器的)。如果系统意外的话,流复制的恢复将会需要较长时间,特别是意外时间越长,恢复时间成倍增长。 下面使用相同的环境,分别对两种复制功能进行配置介绍,并进行性能压力测试比较。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值