前几天,老大让我玩玩数据库,俺就没有认真玩过这个东西.老大说别担心,有我.结果第二天消失了……根据十分可靠的消息说:陪同某美工同志去广东出差了.好吧,我承认在这一刻,我幼小的心灵受到了沉重的打击.好在javaeye中有牛人,根据他的步骤我完成了一个简单的数据库同步复制.这样,我就整理下下.
我使用的oracle版本是10g,使用了pl/sql developer作为数据库的管理开发工具.
当然,首先必须确定数据库具备高级复制功能.通常的方法是使用sys以sysdba登陆数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能,否则不支持.
这时,我们新建两个数据库IBM和ORA.同时我们假设IBM数据库的IP为10.85.131.50,ORA数据库的IP为10.85.131.57.主站点为IBM,在这里,主站点是主要配置复制工作的站点.
依据大众考虑,用sys或者system登陆IBM数据库,创建一个复制管理员repadmin(网上都取这个狗血名字,我也就不免这个俗了)
另外创建一个用户,这里就叫huawei,称之为应用用户.
创建一个表空间,叫HUAWEI.
上述是我们高复制同步数据的先决条件.
接下来,我们开始——复制开始~!
创建用户语句
CREATE USER HUAWEI IDENTIFIED BY HUAWEI DEFAULT TABLESPACE HUAWEI TEMPORARY
TABLESPACE TEMP;
GRANT DBA TO HUAWEI;
创建数据库管理员用户repadmin(这里再次吐槽一下这个名字)
CREATE USER REPADMIN IDENTIFIED BY REPADMIN;
ALTER USER REPADMIN DEFAULT TABLESPACE USERS;
ALTER USER REPADMIN TEMPORARY TABLESPACE TEMP;
GRANT connect,resource TO REPADMIN;
授予repadmin用户权限可以管理当前站点中任何主体组
EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');
授予repadmin用户权限可以为任何表创建snapshot logs
GRANT comment any table TO REPADMIN;
GRANT lock any table TO REPADMIN;
指定repadmin用户为propagator,并授予执行任何procedure的权限
EXECUTE dbms_defer_sys.register_propagator('REPADMIN');
GRANT execute any procedure TO REPADMIN;
更改IBM数据库的全局名称
alter database rename global_name to IBM.COM.CN;
更改ORA数据库的全局名称
alter database rename global_name to ORA.COM.CN;
在ORA数据库的tnsnames.ora中添加
IBM=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.131.50)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = IBM)
)
)
在IBM数据库的tnsnames.ora中添加
ORA=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.131.57)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = ORA)
)
)
在IBM数据库中建立连接
create public database link ora.com.cn connect to REPADMIN identified by REPADMIN
using 'ORA';
在ORA数据库中建立连接
create public database link ibm.com.cn connect to REPADMIN identified by REPADMIN
using 'IBM';
在两个数据库的应用用户huawei下创建表.注意:这里是分别是两个数据库的huawei用户
CREATE TABLE TEST(ID NUMBER(10),TIMESTAMP DATE DEFAULT sysdate);
ALTER TABLE TEST ADD(CONSTRAINT TEST_PK PRIMARY KEY(ID));
以REPADMIN登录数据库IBM
execute dbms_repcat.create_master_repgroup('rep_ibm');
execute dbms_repcat.create_master_repgroup('repg');
在复制组里加入复制对象
execute dbms_repcat.create_master_repobject
(sname=>'huawei',oname=>'test',type=>'table',use_existing_object=>true,gname=>'repg',copy_rows=>false);
对复制对象产生复制支持
execute dbms_repcat.generate_replication_support('huawei','test','table');
添加主体复制节点
execute dbms_repcat.add_master_database
(gname=>'repg',master=>'ora.com.cn',use_existing_objects=>true,copy_rows=>false,
propagation_mode => 'synchronous');
在主体定义站点启动复制
execute dbms_repcat.resume_master_activity('repg',true);
在ora数据中运行
execute dbms_repcat.create_master_repgroup('rep_ibm');
配置至此完成,向数据库中添加数据,修改数据,删除数据即可以同步.
分享到:
相关推荐
### 异构数据库复制技术的研究与实现 #### 一、引言 随着信息技术的快速发展,分布式计算环境变得越来越复杂,数据库复制技术作为一种重要的分布式技术,在提高数据可用性、减轻网络负担以及实现数据冗余等方面...
使用 SQL Server 将表从一个数据库复制到另一个数据库 SQL Server 是一种关系数据库管理系统,它提供了多种方式来将表从一个数据库复制到另一个数据库。下面将详细介绍使用 SQL Server 将表从一个数据库复制到另一...
【Oracle数据库复制】是Oracle数据库管理系统提供的一种技术,旨在解决大量只读数据导致的性能问题。复制技术将数据从一个数据库复制到另一个物理位置的数据库,这样查询和统计操作可以在独立的服务器上进行,减轻主...
**PostgreSQL数据库复制** PostgreSQL数据库复制是一种技术,旨在实现实时维护主库与从库之间的数据一致性。这种功能主要用于高可用性和负载均衡,确保在主数据库出现问题时,从库可以无缝接管,同时也能减轻主库的...
SQL Server 2000的数据库复制是一种强大的技术,它允许数据在多个服务器之间进行同步,从而实现数据的分发、备份和负载均衡。在这个过程中,我们通常涉及到发布、分发和订阅三个主要组件。本文件"SQL2000数据库复制...
**MSSQL Server 2008数据库复制详解** 数据库复制是MSSQL Server 2008中的一项重要功能,它允许数据在不同的数据库之间进行同步和分发,以实现数据备份、负载均衡或者远程访问等目的。下面将详细解释如何在MSSQL ...
### 跨数据库复制数据知识点详解 #### 一、概述 在日常的数据管理工作中,经常会遇到需要将一个数据库中的数据复制到另一个数据库中的场景。本文档将详细介绍如何在SQL Server环境中实现跨数据库的数据复制,主要...
数据库复制技术是现代数据库管理系统(DBMS)中的关键技术之一,旨在解决数据的分布、共享以及在多点之间保持数据一致性的问题。本篇文章将深入探讨数据库复制技术,特别是以SQL Server 2005为例,同时对比其他主流...
MySQL 8 数据库复制技术介绍 MySQL 8 数据库复制技术是指在一个或多个站点生成和复制多个数据副本的过程。这项技术可以帮助确保数据的一致性和可用性,提高系统的可靠性和性能。 数据库复制技术可以应用于各种...
Lotus Domino 邮件从一个数据库复制到另一个数据库 Lotus Domino 是一款功能强大且灵活的协作软件,提供了强大的电子邮件和数据库管理功能。然而,在实际操作中,我们经常需要将邮件从一个数据库复制到另一个...
redis-copy, 将一个redis数据库复制到另一个数据库 RedisCopy这个工具提供了一种将一个redis数据库的内容移动到另一个redis数据库的方法。 代码是由包含在redis源代码中的 redis-copy.rb 脚本插件激发的,但目标是...
### Microsoft SQL Server 2012 数据库复制 #### 一、概述 Microsoft SQL Server 2012 是一款由微软公司开发的关系型数据库管理系统,它提供了强大的数据存储与管理功能,广泛应用于企业级应用程序中。数据库复制...
数据库复制是确保数据高可用性和灾难恢复的关键技术。Oracle和MySQL作为两个主流的数据库管理系统,在数据库复制领域各有所长。本文将深入探讨Oracle和MySQL在数据库复制功能上的差异,并提供实际的代码示例。 ...
Win OGG数据库复制及初始化 Win OGG数据库复制及初始化是指在Windows操作系统下使用Oracle GoldenGate(OGG)软件复制Oracle数据库的过程。下面是相关的知识点: 一、OGG数据库复制的准备工作 1. 用户是否有建表...
数据库复制是指将一个数据库中的数据和结构完整地转移到另一个数据库中,这个过程通常用于创建数据的备份、进行灾难恢复或者在分布式系统中同步数据。在Delphi中,我们可以利用ADO(ActiveX Data Objects)组件库来...
在Windows环境下,双节点数据库复制是构建高可用性和冗余的重要策略,以确保业务连续性和数据安全性。 GoldenGate的核心组件包括捕捉进程(Capture Process)、传送进程(Transport Process)和投递进程(Delivery ...
数据库复制是确保数据高可用性、可扩展性和容错性的关键技术。它涉及将一个数据库中的数据复制到另一个或多个数据库中,从而允许多个数据库实例共享相同的数据集。本文将详细探讨数据库复制的类型、实现方式以及在...
在当今的IT环境中,数据库复制和变化数据捕获(CDC)是确保数据的可用性、一致性和持续性的重要技术。PostgreSQL作为一款先进的开源关系数据库,其复制与CDC的实施方案不仅有助于实现这些目标,还能够支持多种场景下...
在SQL Server中,将表从一个数据库复制到另一个数据库的过程涉及到数据库对象的迁移,这通常通过创建表的结构脚本和数据迁移来实现。以下是一个详细的步骤指南: 1. **启动SQL Server Management Studio (SSMS)**: ...
### 数据库复制技术研究进展分析 #### 一、引言 随着信息技术的飞速发展,海量数据的管理和处理成为企业和组织面临的重大挑战。在这种背景下,数据库技术的重要性愈发凸显。然而,由于网络环境的不稳定性和数据库...