oracle数据库多实例实时同步(利用oracle管理平台实现)

  1. 环境:

    Windows 2008 服务器,Oracle 11g  r2 数据库

  2. 任务要求:

    有三个数据库实例,一个实例供管理子系统使用,一个实例供利用子系统使用,还有一个实例专门做备份。

  3. 选择的技术:

    Oracle Stream Replication(流复制)

  4. 创建另外两个实例

    源实例:orcl

    目标1:target

    目标2:target2

  5. 停止应用服务器,防止用户因为使用应用服务器而对数据库做出的改变。

    并导出 orcl 实例中用户的数据,用 exp 命令

    例如 exp nt_gxt/[email protected] file=E:\nt_gxt_201508140923.dmp

  6. 环境设置

    使用命令行登录数据库

  7. sqlpus sys/[email protected] as sysdba
    alter system set global_names=true scope=both;
    alter system set job_queue_processes=10 scope=both;
    alter system set parallel_max_servers=20 scope=both;
    alter system set undo_retention=3600 scope=both;
    alter system set nls_date_format=‘YYYY-MM-DD HH24:MI:SS‘ scope=spfile;
    alter system set streams_pool_size=512M scope=spfile;
    alter system set utl_file_dir=‘*‘ scope=spfile;
    alter system set open_links=4 scope=spfile;
    --下面为设置归档模式的命令:(注意:修改路径)
    alter system set log_archive_dest_1=‘location=E:\DevProgramsFile\Oracle\archive\target‘ scope=spfile;
    alter system set log_archive_start=TRUE scope=spfile;
    alter system set log_archive_format=‘arch%t_%s_%r.arc‘ scope=spfile;
    shutdown immediate;
    startup mount;

(如果startup mount报如上错误,需要对实例进行静态注册,在listener.ora文件中添加如下内容,并重新启动监听服务)

alter database archivelog;
alter database open;
--如果要查看归档模式是否设置成功可以用命令:
archive log list 
--如果出现如下截图内容则说明设置成功,

8. 创建 stream 管理用户

1). 创建主环境管理用户

Sqlplus sys/[email protected] as sysdba
#创建主环境的 stream 专用表空间(注意修改路径)
create tablespace tbs_stream datafile ‘E:\DevProgramsFile\Oracle\oradata\orcl\tbs_stream01.dbf‘ size 100m autoextend on maxsize unlimited segment space management auto;
#将logminer的数据字典从system表空间转移到新建的表空间,防止撑满system表空间
execute dbms_logmnr_d.set_tablespace(‘tbs_stream‘);
#创建Stream管理用户 
create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp; 
#授权Stream管理用户
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => ‘strmadmin‘,
grant_privileges => true);
end;
/

2). 创建从环境的 stream 管理用户

Sqlplus sys/[email protected] as sysdba
#创建Stream专用表空间
create tablespace tbs_stream datafile ‘E:\DevProgramsFile\Oracle\oradata\target\tbs_stream01.dbf‘ size 100m autoextend on maxsize unlimited segment space management auto;
#同样,将logminer的数据字典从system表空间转移到新建的表空间,防止撑满system表空间 
execute dbms_logmnr_d.set_tablespace(‘tbs_stream‘);
#创建Stream管理用户 
create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp;
#授权Stream管理用户 
grant connect,resource,dba,aq_administrator_role to strmadmin;
begin
dbms_streams_auth.grant_admin_privilege(
grantee => ‘strmadmin‘,
grant_privileges => true);
end;
/

3). 创建 DBlink

3.1) 创建主数据库数据链

根据Oracle 10gR2 Stream官方文档,针对主数据库建立的数据库链的名字必须和从数据库的global_name

相同。如果需要修改global_name,执行“alter database rename global_name to xxx”。

#以strmadmin身份,登录主数据库。
Sqlplus strmadmin/[email protected]
create database link target connect to strmadmin identified by strmadmin using ‘target‘;
create database link target2 connect to strmadmin identified by strmadmin using ‘target2‘;

3.2)创建从数据库的数据链

#以strmadmin身份,登录从数据库。
Sqlplus strmadmin/[email protected]
create database link orcl connect to strmadmin identified by strmadmin using ‘orcl‘;

4). 启动归档日志

alter database add supplemental log data;

8. 使用oracle自带的管理器来创建流复制相关的进程

1). 启动orcl 实例的dbconsole

2). 点击 Database Control – orcl, 启动em

3). 在打开的浏览器窗口中用 strmadmin 用户登录

4). 点击数据移动

5). 选择 ‘流’ – ‘设置‘

6). 选择 复制方案,下面的主机身份证明输入计算机管理员的用户名和密码,并勾选另存为首选身份证明。

然后点击继续。

7).  在包含方案中选择馆系统用户(我的是 nt_gxt)

8). 进行配置

9). 设置立即启动

10). 如果最后一步提交时报如下错误

执行语句(execute MGMT_USER.MAKE_EM_USER(‘STRMADMIN‘);),用系统用户登录orcl实例执行。

已同样的方法为target2创建进程。实现多实例实时同步。

注意:

11g数据库空表导出问题。

Sql代码

查看

show parameter deferred_segment_creation;

修改

alter system set  deferred_segment_creation=false;

三个实例都完成后,服务启动情况,如图所示

最后一张oracle原理图

时间: 2024-08-05 11:10:54

oracle数据库多实例实时同步(利用oracle管理平台实现)的相关文章

【转】Oracle - 数据库的实例、表空间、用户、表之间关系

[转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘

Oracle - 数据库的实例、表空间、用户、表之间关系

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件.Oracle有一个很大的内存快,成为全局区(SGA

Sqlserver2000连接Oracle11G数据库进行数据实时同步

 Sqlserver2000连接Oracle11G数据库进行数据实时同步 1,前提条件 已经有sqlserver2000环境,已经存在oracle11g环境,准备这两个数据库,建立各自的访问账号,两者之间需要ping通,telnet端口也要能通,目的是将sqlserver里面的数据自动同步到oracle数据库里面去.Sqlserver里面有链路服务器(linked server)可以实现. 2,在sqlserver上面建立odbc数据源 有2种方式:"Microsoft ODBC for Ora

Oracle数据库基础入门《一》Oracle服务器的构成

Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle 服务器具备以下的特点: ● 能够可靠的进行多用户环境下大量数据的处理,允许多用户同时访问相同的数据. ● 保证数据访问的高性能. ● 有效防止对数据的非法访问. ● 对于故障恢复提供高效的解决方案. 一.Oracle 服务器的总体结构 Oracle 服务器同运行在操作系统下的很多程序一样,通过在后台运行一组

.Net的Oracle数据库ORM控件dotConnect for Oracle下载地址及功能详解

原文来自龙博方案网http://www.fanganwang.com/product/1330转载请注明出处 dotConnect for Oracle完全基于ADO.NET方法,因此您完全可以采用标准ADO.NET数据提供的方法来使用它.是一款为Microsoft .NET Framework提供直接Oracle数据库连接的数据发生器控件. 具体功能: 无需Oracle客户端,采用直接模式提供数据库连接 100%代码管理 具有高表现性能 支持Oracle 10g, 9i, 8i 和 8.0,包

oracle 数据库、实例、服务名、SID

参考:http://www.zhetao.com/content240 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类的话. 其实问他们什么是数据库,什么是Instance,很可能他们给的答案就是数据库就是Instance,Instance就是数据库啊,没有什么区别. 在这里,只能说虽然他们Oracle用了可能有了一定的经验,不过基础的概念还是不太清楚.(我目前就是这个状态) 一.什么是数据库,其实很简单,数据库就

linux/windows系统oracle数据库简单冷备同步

我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境对生产环境实行实时备份同步,备份方式也有两种:热备冷备.oracle热备一般用oracle DG服务即可,但oracle DG服务是要另行收费的,这对于客户来说也是一笔不小的开支.于是我们采用oracle冷备的方式,基本流程是:数据库定时通过expdp方式导出,然后通过ftp传到应急备份环境,应急备份环境然后执行impdp导入,这样既可完成冷备. 一.linu

[转]Oracle - 数据库的实例、表空间、用户、表之间关系

本文转自:http://www.cnblogs.com/adforce/p/3312252.html 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个

Oracle数据库和实例的区别

一般Oracle数据库(Oracle Database)可以分为两部分,即实例(Instance)和数据库(Database). 实例:是一个非固定的.基于内存的基本进程与内存结构.当服务器关闭后,实例也就不存在了. 数据库(Database)指的是固定的.基于磁盘的数据文件.控制文件.日志文件.参数文件和归档日志文件等. 一般情况下,Oracle数据库都是一个数据库对应一个实例. 创建数据库步骤: 打开Database Configuration Assistant -->> 下一步创建数据