当前位置:文档之家› Oracle高级复制Step by Step

Oracle高级复制Step by Step

Oracle高级复制Step by Step
Oracle高级复制Step by Step

Oracle高级复制Step by Step

实施起因

某项目中遇到内外网数据库同步的问题,假设电信机房和某机房网络物理隔绝,需要借助中间服务器进行数据库同步,这个中间服务器既可以是数据库服务器也可以是某种中间件或者某个程序。

因为两头都是Oracle数据库,所以暂时先考虑使用数据库同步的机制来进行预研,当然仅仅是预研而已,距离实施还有一定距离,比如暂时只考虑数据库的单向同步,少量数据的双向同步采用其他方法进行。另外一个目的是为了简化预研的难度,比如省略了发布模板(deployment template)和冲突解决方案(Conflict Resolution)。

Master site(主站点)Oracle实例为source

Materialized view site(中间站点)Oracle实例为mid

Materialized view site Level2(目标站点)Oracle实例为dest

数据流方向为source—>mid, mid—>dest

网络连通为source?mid,mid?dest;source<>dest

高级复制中的几个概念

1) replication object:复制对象,指需要作复制的对象(object),包括表,索引,

存储过程等等。复制对象的更新遵循事务一致性规则(transactionally consistent manner)。

2) replication groups:复制组,是复制对象(replication object)的集合称为group,oracle 以replication group 的形式来管理复制。一个组可以包含多个模式的object,

一个模式也可以有多个组中的object,但是每个replication object 都只能属于一个replication group。

3) replication sites:复制站点,包含两种类型,主体站点(master sites)和实

体化视图站点(materialized view sites)。一个site 可以担任一个replication

group 中的mater site 同时又担任另外一个replication group 中的materialized

view site,注意必须是另外一个组,而不能是同一个replication group。

4) scheduled links:一个数据库链接(database link),包含一个由用户定义的计划,来将需要更新的事务推到其它的master sites,当创建scheduled link 的时候,oracle

将在本地任务队列中创建一个任务。

5) master definition site:主体定义站点,大部分的高级复制配置都需要在一个站

点上作,这个站点就是maserdef site

Asynchronous Data Replication Mechanisms示意图

创建replication站点

设置master主站点

SQL> connect system/inxite@source

已连接。

SQL> --在主站点创建复制管理员帐号

SQL> create user repadmin identified by repadmin;

用户已创建。

SQL> --在主站点给该管理员赋予管理员权限

SQL> begin

2 dbms_repcat_admin.grant_admin_any_schema(

3 username=>'repadmin');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> --授予相应的权限

SQL> grant comment any table to repadmin;

授权成功。

SQL> grant lock any table to repadmin;

授权成功。

SQL> grant select any dictionary to repadmin;

授权成功。

SQL> --在主站点注册传播用户

SQL> begin

2 dbms_defer_sys.register_propagator(

3 username=>'repadmin');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> --在主站点注册接受用户

SQL> begin

2 dbms_repcat_admin.register_user_repgroup(

3 username=>'repadmin',

4 privilege_type='receiver',

5 list_of_gnames=>NULL);

6 end;

7 .

PL/SQL 过程已成功完成。

SQL> --设置清除延迟序列的job

SQL> begin

2 dbms_defer_sys.schedule_purge(

3 next_date=>sysdate,

4 interval=>'sysdate+1/24',

5 delay_seconds=>0);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> --在主站点创建代理物化视图管理员用户

SQL> connect system/inxite@source

已连接。

SQL> create user proxy_mviewadmin identified by proxy_mviewadmin; 用户已创建。

SQL> begin

2 dbms_repcat_admin.register_user_repgroup(

3 username=>'proxy_mviewadmin',

4 privilege_type=>'proxy_snapadmin',

5 list_of_gnames=>NULL);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> grant select_catalog_role to proxy_mviewadmin;

授权成功。

SQL>--创建代理刷新用户

SQL> create user proxy_refresher identified by proxy_refresher;

用户已创建。

SQL> grant create session to proxy_refresher;

授权成功。

SQL> grant select any table to proxy_refresher;

授权成功。

SQL> spool off

设置物化视图站点

SQL> --Connect as system at materialize view site at mid SQL> set echo on

SQL> conn system/inxite@mid

已连接。

SQL> --在物化视图站点(中间站点)创建物化视图用户SQL> --创建物化视图管理员

SQL> create user mviewadmin identified by mviewadmin; 用户已创建。

SQL> begin

2 dbms_repcat_admin.grant_admin_any_schema(

3 username=>'mviewadmin');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> grant comment any table to mviewadmin;

授权成功。

SQL> grant lock any table to mviewadmin;

授权成功。

SQL> grant select any dictionary to mviewadmin;

授权成功。

SQL> --创建传播者帐号

SQL> create user propagator identified by propagator;

用户已创建。

SQL> begin

2 dbms_defer_sys.register_propagator(

3 username=>'propagator');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> --创建刷新帐号

SQL> create user refresher identified by refresher;

用户已创建。

SQL> grant create session to refresher;

授权成功。

SQL> grant alter any materialized view to refresher;

授权成功。

SQL> --把物化视图管理员帐号注册为传播者

SQL> begin

2 dbms_repcat_admin.register_user_repgroup(

3 username=>'mviewadmin',

4 privilege_type=>'receiver',

5 list_of_gnames=>NULL);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL>--创建公共数据库链接到master站点(source站点)

SQL> connect system/inxite@mid

已连接。

SQL> create public database link source using 'source';

数据库链接已创建。

SQL> conn mviewadmin/mviewadmin@mid

已连接。

SQL> create database link source connect to proxy_mviewadmin identified by proxy_mviewadmin;

数据库链接已创建。

SQL> select * from tab@source;

未选定行

SQL> --create the propagator/receiver database link;

SQL> connect propagator/propagator@mid;

已连接。

SQL> create database link source connect to repadmin identified by repadmin; 数据库链接已创建。

SQL> --Schedule purge at the mid materialized view site

SQL> conn mviewadmin/mviewadmin@mid

已连接。

SQL> begin

2 dbms_defer_sys.schedule_purge(

3 next_date=>sysdate,

4 interval=>'sysdate+1/24',

5 delay_seconds=>0,

6 rollback_segment=>'');

7 end;

8 /

PL/SQL 过程已成功完成。

SQL> --Schedule push at the mid materialized view site

SQL> conn mviewadmin/mviewadmin@mid

已连接。

SQL> begin

2 dbms_defer_sys.schedule_push(

3 destination=>'source',

4 interval=>'sysdate+1/24',

5 next_date=>sysdate,

6 stop_on_error=>false,

7 parallelism=>0);

8 end;

9 /

PL/SQL 过程已成功完成。

SQL> --create proxy users at the mid materialized view site

SQL> --create proxy materialized view administrator

SQL> connect system/inxite@mid

已连接。

SQL> create user proxy_mviewadmin identified by proxy_mviewadmin;

用户已创建。

SQL> begin

2 dbms_repcat_admin.register_user_repgroup(

3 username=>'proxy_mviewadmin',

4 privilege_type=>'proxy_snapadmin',

5 list_of_gnames=>NULL);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> grant select_catalog_role to proxy_mviewadmin;

授权成功。

SQL> --Create the proxy refresher

SQL> create user proxy_refresher identified by proxy_refresher; 用户已创建。

SQL> grant create session to proxy_refresher;

授权成功。

SQL> grant select any table to proxy_refresher;

授权成功。

SQL> spool off

设置物化视图站点2

SQL> --connect as system at level 2 materialized view site dest SQL> connect system/inxite@dest

已连接。

SQL> --create level2 materialized view site users at dest SQL> create user mviewadmin identified by mviewadmin;

用户已创建。

SQL> begin

2 dbms_repcat_admin.grant_admin_any_schema(

3 username=>'mviewadmin');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> grant select any dictionary to mviewadmin;

授权成功。

SQL> --create the propagator

SQL> create user propagator identified by propagator;

用户已创建。

SQL> begin

2 dbms_defer_sys.register_propagator(

3 username=>'propagator');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> --create the refresher

SQL> create user refresher identified by refresher;

用户已创建。

SQL> grant create session to refresher;

授权成功。

SQL> grant alter any materialized view to refresher;

授权成功。

SQL> --create database links to master materialized view site SQL> --create a public database link

SQL> connect system/inxite@dest

已连接。

SQL> create public database link mid using 'mid';

数据库链接已创建。

SQL> connect mviewadmin/mviewadmin@dest

已连接。

SQL> create database link mid connect to proxy_mviewadmin identified by proxy_mviewadmin; 数据库链接已创建。

SQL> select * from tab@mid;

未选定行

SQL> --create a propagator/receiver database link

SQL> connect propagator/propagator@dest

已连接。

SQL> create database link mid connect to mviewadmin identified by mviewadmin;

数据库链接已创建。

SQL> select * from tab@mid;

未选定行

SQL> --Schedule purge at level 2 materialized view site at dest site

SQL> conn mviewadmin/mviewadmin@dest

已连接。

SQL> begin

2 dbms_defer_sys.schedule_purge(

3 next_date=>sysdate,

4 interval=>'sysdate+1/24',

5 delay_seconds=>0,

6 rollback_segment=>'');

7 end;

8 /

PL/SQL 过程已成功完成。

SQL> --Schedule push at the dest materialized view site

SQL> conn mviewadmin/mviewadmin@dest;

已连接。

SQL> begin

2 dbms_defer_sys.schedule_push(

3 destination=>'mid',

4 interval=>'sysdate+1/24',

5 next_date=>sysdate,

6 stop_on_error=>false,

7 delay_seconds=>0,

8 parallelism=>0);

9 end;

10 /

PL/SQL 过程已成功完成。

SQL> spool off

创建主站点组

SQL> connect repadmin/repadmin@source;

已连接。

SQL> --create the test schema at source master site SQL> --...

SQL> --create the master group

SQL> begin

2 dbms_repcat.create_master_repgroup(

3 gname=>'test_repg');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> --add object to master group

SQL>

SQL> BEGIN

2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT (

3 gname => 'test_repg',

4 type => 'TABLE',

5 oname => 'test',

6 sname => 'test',

7 use_existing_object => TRUE,

8 copy_rows => FALSE);

9 END;

10 /

PL/SQL 过程已成功完成。

SQL>

SQL> BEGIN

2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT (

3 gname => 'test_repg',

4 type => 'TABLE',

5 oname => 'dept',

6 sname => 'test',

7 use_existing_object => TRUE,

8 copy_rows => FALSE);

9 END;

10 /

PL/SQL 过程已成功完成。

SQL> BEGIN

2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (

3 sname => 'test',

4 oname => 'test',

5 type => 'TABLE',

6 min_communication => TRUE);

7 END;

8 /

PL/SQL 过程已成功完成。

SQL> BEGIN

2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (

3 sname => 'test',

4 oname => 'dept',

5 type => 'TABLE',

6 min_communication => TRUE);

7 END;

8 /

PL/SQL 过程已成功完成。

SQL> --start replication

SQL> begin

2 dbms_repcat.resume_master_activity(

3 gname=>'test_repg');

4 end;

5 /

PL/SQL 过程已成功完成。

SQL> spool off

创建物化视图组

SQL> conn test/test@source;

已连接。

SQL> create materialized view log on test.test;

实体化视图日志已创建。

SQL> create materialized view log on test.dept;

实体化视图日志已创建。

SQL> CONN system/inxite@mid;

已连接。

SQL> CREATE SMALLFILE TABLESPACE "test"

2 DATAFILE 'E:\OracleDB\DBFILE01.DB' SIZE 200M AUTOEXTEND ON NEXT 200M MAXSIZE 8000M

3 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

表空间已创建。

SQL> CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "test" DEFAULT TABLESPACE "test" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;

用户已创建。

SQL> GRANT "CONNECT" TO "TEST";

授权成功。

SQL> GRANT "DBA" TO "TEST";

授权成功。

SQL> GRANT "DELETE_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT "EXECUTE_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT "EXP_FULL_DATABASE" TO "TEST";

授权成功。

SQL> GRANT "GATHER_SYSTEM_STATISTICS" TO "TEST";

授权成功。

SQL> GRANT "IMP_FULL_DATABASE" TO "TEST";

授权成功。

SQL> GRANT "RESOURCE" TO "TEST";

授权成功。

SQL> GRANT "SCHEDULER_ADMIN" TO "TEST";

授权成功。

SQL> GRANT "SELECT_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT CREATE PROCEDURE TO TEST;

授权成功。

SQL> GRANT CREATE SEQUENCE TO TEST;

授权成功。

SQL> GRANT CREATE VIEW TO TEST;

授权成功。

SQL> GRANT CREATE SYNONYM TO TEST;

授权成功。

SQL> GRANT ALTER SESSION TO TEST;

授权成功。

SQL> GRANT CREATE MATERIALIZED VIEW TO TEST;

授权成功。

SQL> GRANT ALTER ANY MATERIALIZED VIEW TO TEST;

授权成功。

SQL> GRANT CREATE DATABASE LINK TO TEST;

授权成功。

SQL> grant create session to test;

授权成功。

SQL> grant create table to test;

授权成功。

SQL> conn system/inxite@dest

SQL> CREATE SMALLFILE TABLESPACE "test"

2 DATAFILE 'E:\OracleDB\DBFILE01.DB' SIZE 200M AUTOEXTEND ON NEXT 200M MAXSIZE 8000M

3 LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

表空间已创建。

SQL> CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "test" DEFAULT TABLESPACE "test" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;

用户已创建。

SQL> GRANT "CONNECT" TO "TEST";

授权成功。

SQL> GRANT "DBA" TO "TEST";

授权成功。

SQL> GRANT "DELETE_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT "EXECUTE_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT "EXP_FULL_DATABASE" TO "TEST";

授权成功。

SQL> GRANT "GATHER_SYSTEM_STATISTICS" TO "TEST";

授权成功。

SQL> GRANT "IMP_FULL_DATABASE" TO "TEST";

授权成功。

SQL> GRANT "RESOURCE" TO "TEST";

授权成功。

SQL> GRANT "SCHEDULER_ADMIN" TO "TEST";

授权成功。

SQL> GRANT "SELECT_CATALOG_ROLE" TO "TEST";

授权成功。

SQL> GRANT CREATE SESSION TO TEST;

授权成功。

SQL> GRANT CREATE TABLE TO TEST;

授权成功。

SQL> GRANT CREATE PROCEDURE TO TEST;

授权成功。

SQL> GRANT CREATE SEQUENCE TO TEST;

授权成功。

SQL> GRANT CREATE VIEW TO TEST;

授权成功。

SQL> GRANT CREATE SYNONYM TO TEST;

授权成功。

SQL> GRANT ALTER SESSION TO TEST;

授权成功。

SQL> GRANT CREATE MATERIALIZED VIEW TO TEST;

SQL> GRANT ALTER ANY MATERIALIZED VIEW TO TEST;

授权成功。

SQL> GRANT CREATE DATABASE LINK TO TEST;

授权成功。

SQL> connect test/test@mid;

已连接。

SQL> create database link source connect to proxy_refresher identified by proxy_refresher; 数据库链接已创建。

SQL> select * from tab@source;

未选定行

SQL> --create the materialized view group

SQL> connect mviewadmin/mviewadmin@mid;

已连接。

SQL> begin

2 dbms_repcat.create_mview_repgroup(

3 gname=>'test_repg',

4 master=>'source',

5 propagation_mode=>'ASYNCHRONOUS');

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> --create the refresh group

SQL> begin

2 dbms_refresh.make(

3 name=>'mviewadmin.test_repg',

4 list=>'',

5 next_date=>sysdate,

6 interval=>'sysdate+1/24',

7 implicit_destroy=>false,

8 rollback_seg=>'',

9 push_deferred_rpc=>true,

10 refresh_after_errors=>false);

11 end;

12 /

PL/SQL 过程已成功完成。

SQL> --add object to the materialized view group

SQL> create materialized view test.test_mv1

2 refresh fast with primary key for update

3 as select * from test.test@source;

实体化视图已创建。

SQL> create materialized view test.dept_mv1

2 refresh fast with primary key for update

3 as select * from test.dept@source;

实体化视图已创建。

SQL> select * from test.dept_mv1;

ID Name

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

1 market

2finacial

SQL> begin

2 dbms_repcat.create_mview_repobject(

3 gname=>'test_repg',

4 sname=>'test',

5 oname=>'test_mv1',

6 type=>'SNAPSHOT',

7 min_communication=>true

8 );

9 end;

10 /

PL/SQL 过程已成功完成。

SQL> begin

2 dbms_repcat.create_mview_repobject(

3 gname=>'test_repg',

4 sname=>'test',

5 oname=>'dept_mv1',

6 type=>'SNAPSHOT',

7 min_communication=>true);

8 end;

9 /

PL/SQL 过程已成功完成。

SQL> --add objects to the refresh group SQL> BEGIN

2 DBMS_REFRESH.MAKE (

3 name => 'mviewadmin.test_refg',

4 list => '',

5 next_date => SYSDATE,

6 interval => 'SYSDATE + 1/24',

7 implicit_destroy => FALSE,

8 rollback_seg => '',

9 push_deferred_rpc => TRUE,

10 refresh_after_errors => FALSE);

11 END;

12 /

PL/SQL 过程已成功完成。

SQL> BEGIN

2 DBMS_REFRESH.ADD (

3 name => 'mviewadmin.test_refg',

4 list => 'test.test_mv1',

5 lax => TRUE);

6 END;

7 /

PL/SQL 过程已成功完成。

SQL> BEGIN

2 DBMS_REFRESH.ADD (

3 name => 'mviewadmin.test_refg',

4 list => 'test.dept_mv1',

5 lax => TRUE);

6 END;

7 /

PL/SQL 过程已成功完成。

SQL> --create materilized view logs at the master materialized view site

SQL> connect test/test@mid;

已连接。

SQL> create materialized view log on test.test_mv1;

实体化视图日志已创建。

SQL> create materialized view log on test.dept_mv1;

实体化视图日志已创建。

SQL> connect test/test@dest;

已连接。

SQL> create database link mid connect to proxy_refresher identified by proxy_refresher; 数据库链接已创建。

SQL> select * from tab@mid;

未选定行

SQL> --create the materialized view group

SQL> connect mviewadmin/mviewadmin@dest;

已连接。

SQL> begin

2 dbms_repcat.create_mview_repgroup(

3 gname=>'test_repg',

4 master=>'mid',

5 propagation_mode=>'ASYNCHRONOUS');

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> --create the refresh group

SQL> BEGIN

2 DBMS_REFRESH.MAKE (

3 name => 'mviewadmin.test_refg',

4 list => '',

5 next_date => SYSDATE,

6 interval => 'SYSDATE + 1/24',

7 implicit_destroy => FALSE,

8 rollback_seg => '',

9 push_deferred_rpc => TRUE,

10 refresh_after_errors => FALSE);

11 end;

12 /

PL/SQL 过程已成功完成。

SQL> --add objects to the materialized view group

SQL> create materialized view test.test_mv2

2 refresh fast with primary key for update

3 as select * from test.test_mv1@mid;

实体化视图已创建。

SQL> create materialized view test.dept_mv2

2 refresh fast with primary key for update

3 as select * from test.dept_mv1@mid;

实体化视图已创建。

SQL> --add the materialized view to the materialized view group SQL> begin

2 dbms_repcat.create_mview_repobject(

3 gname=>'test_repg',

4 sname=>'test',

5 oname=>'test_mv2',

6 type=>'SNAPSHOT',

7 min_communication=>true);

8 end;

9 /

PL/SQL 过程已成功完成。

SQL>

SQL> begin

2 dbms_repcat.create_mview_repobject(

3 gname=>'test_repg',

4 sname=>'test',

5 oname=>'dept_mv2',

6 type=>'SNAPSHOT',

7 min_communication=>true);

8 end;

9 /

PL/SQL 过程已成功完成。

SQL> --add objects to the refresh group

SQL> begin

2 dbms_refresh.add(

3 name=>'mviewadmin.test_refg',

4 list=>'test.test_mv2',

5 lax=>true);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> begin

2 dbms_refresh.add(

3 name=>'mviewadmin.test_refg',

4 list=>'test.dept_mv2',

5 lax=>true);

6 end;

7 /

PL/SQL 过程已成功完成。

SQL> spool off

Oracle GoldenGate(OGG)复制技术完全解析精讲视频课程

Oracle GoldenGate(OGG)复制技术完全解析精讲视频课程 课程目标:学习完本课程可以掌握goldengate的安装配置,各种进程的配置和作用,掌握单向复制技术,掌握几种数据初始化的方法以及日常维护。 适合人群:想提高Oracle技术的同学,想学习容灾技术的同学GoldenGate是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。学习本课程可以掌握Oracle GoldenGate 的安装,部署,配置等知识点,可以满足工作中的需要,OGG技术是当前找工作拿高薪的必杀技 目录 第1节 第1课-goldengate概述-复制模式和技术架构 第2节 第2课-GoldenGate安装和进程讲解 00:16:11 第3节 第3课-GoldenGate安装和进程讲解-2 00:18:41 第4节 第4课-GoldanGate单向复制环境的搭建

00:22:29 第5节 第5课-GoldanGate单向复制环境的搭建-2 00:18:23 第6节 第6课-配置Goldengate支持DDL 00:12:05 第7节 第7课-目标端数据初始化之imp-exp 00:23:19 第8节 第8课-目标端数据初始化之imp-exp-2 00:10:18 第9节 第9课-initial-load直接传输初始化 00:16:35 第10节 第10课-initial-load使用文件传输初始化 00:14:46 第11节 第11课-goldengate目录、进程和常用参数说明

oracle使用数据泵导出和导入

使用数据泵导出和导入 几乎所有DBA都熟悉oracle的导出和导入实用程序,它们将数据装载进或卸载出数据库,在oracle database 10g和11g中,你必须使用更通用更强大的数据泵导出和导入(Data Pump Export and Import)实用程序导出和导入数据。 以前的导出和导入实用程序在oracle database 11g中仍然可以使用,但是Oracle强烈建议使用数据泵(Data Pump)技术,因为它提供了更多的高级特性。例如,你可以中断导出/导入作业,然后恢复它们;可以重新启动已失败的导出和导入作业;可以重映射对象属性以修改对象;可以容易地从另一个会话中监控数据泵的作业,甚至可以在作业过程中修改其属性;使用并行技术很容易快速移动大量的数据;因为oracle提供了针对数据泵技术的API,所以可以容易地在PL/SQL 程序中包含导出/导入作业;可以使用更强大的可移植表空间特性来快速移植大量的数据,甚至可在不同操作系统平台之间移动。 与旧的导出和导入实用程序不同,数据泵程序有一组可以在命令行中使用的参数以及一组只能以交互方式使用的特殊命令,你可以通过在命令行中输入expdp help = y 或者impdp help = y快速获取所有数据泵参数及命令的概述。 一.数据泵技术的优点 原有的导出和导入技术基于客户机,而数据泵技术基于服务器。默认所有的转储,日志和其他文件都建立在服务器上。以下是数据泵技术的主要优点: 1.改进了性能 2.重新启动作业的能力 3.并行执行的能力 4.关联运行作业的能力 5.估算空间需求的能力 6.操作的网格方式 7.细粒度数据导入功能 8.重映射能力 二.数据泵导出和导入的用途 1.将数据从开发环境转到测试环境或产品环境 2.在不同的操作系统平台上的oracle数据库直接的传递数据 3.在修改重要表之前进行备份 4.备份数据库 5.把数据库对象从一个表空间移动到另一个表空间 6.在数据库直接移植表空间 7.提取表或其他对象的DDL 注意:数据库不建立完备的备份,因为在导出文件中没有灾难发生时的最新数据。但是对于较小的数据库和个别的表空间的导出,数据导出仍然是一个可行的备份工具。 三.数据泵的组成部分

oracle统计分析信息拷贝介绍

数据库统计分析信息拷贝介绍 1.数据库统计分析简介 统计分析主要包括产生表及索引的统计信息。表的统计信息主要包括表的行数,每行的平均长度(字节),空闲块,统计时间等信息;索引的统计信息主要包括行数、层数、叶块数、统计时间等信息。另外ORACLE还可以统计列及数据不对称信息。 ORACLE执行成本分析时首先取出所应用表及索引的统计数据进行分析,其中数据行数是一个重要的参数,因为ORACLE在分析表大小时行数为主要参数,如果进行两个表联合时,ORACLE会通过分析表的大小,决定应用小表进行全表查询,而大表执行联合查询,这种性能明显高于先大表进行全表扫描。索引的统计信息对分析也产生比较大的影响,如ORACLE 通过统计可以分析产生多个索引的优先级及索引的实用性来确定最优的索引策略。ORACLE 还可以统计列及数据对称信息以产生更精确的分析。 dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的SQL执行计划。 2.存储过程解析 2.1DBMS_STATS.GATHER_TABLE_STATS介绍 DBMS_STATS.GATHER_TABLE_STATS功能为:统计表、列、索引的统计信息。DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_percent NUMBER, block_sample BOOLEAN, method_opt VARCHAR2,

Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库

在Oracle 10g下,我们可以使用RMAN duplicate 命令创建一个具有不同DBID 的复制库。到了Oracle 11gR2,RMAN 的duplicate 有2种方法实现: 1. Active database duplication 2. Backup-based duplication Active database duplication 通过网络,直接copy target 库到auxiliary 库,然后创建复制库。这种方法就不需要先用RMAN 备份数据库,然后将备份文件发送到auxiliary端。 这个功能的作用是非常大的。尤其是对T级别的库。因为对这样的库进行备份,然后将备份集发送到备库,在进行duplicate 的代价是非常大的。一备份要占用时间,二要占用备份空间,三在网络传送的时候,还需要占用带宽和时间。所以Active database duplicate 很好的解决了以上的问题。它对大库的迁移非常有用。 如果是从RAC duplicate 到单实例,操作是一样的。如果是从单实例duplicate 到RAC。那么先duplicate 到单实例。然后将单实例转换成RAC。 Oracle 10g 下Rman duplicate 的例子参考: RMAN 异机复制数据库 下面我们看一下11gR2下,Active Database Duplicate的步骤如下: 1. 创建Auxiliary 库的Initialization Parameter: 如果使用spfile,那么在pfile文件里只需要设置一个DB_NAME参数,其他参数会在duplicate 命令中自己设置。 如果使用pfile,那么需要设置如下参数: DB_NAME CONTROL_FILES DB_BLOCK_SIZE DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT DB_RECOVERY_FILE_DEST

数据库容灾、复制解决方案全分析(绝对精品)要点

数据库容灾、复制解决方案全分析(绝对精品) 目前,针对oracle数据库的远程复制、容灾主要有以下几种技术或解决方案: (1)基于存储层的容灾复制方案 这种技术的复制机制是通过基于SAN的存储局域网进行复制,复制针对每个IO进行,复制的数据量比较大;系统可以实现数据的同步或异步两种方式的复制.对大数据量的系统来说有很大的优势(每天日志量在60G以上),但是对主机、操作系统、数据库版本等要求一致,且对络环境的要求比较高。 目标系统不需要有主机,只要有存储设备就可以,如果需要目标系统可读,需要额外的配置和设备,比较麻烦。 (2)基于逻辑卷的容灾复制方案 这种技术的机制是通过基于TCP/IP的网络环境进行复制,由操作系统进程捕捉逻辑卷的变化进行复制。其特点与基于存储设备的复制方案比较类似,也可以选择同步或异步两种方式,对主机的软、硬件环境的一致性要求也比较高,对大数据量的应用比较有优势。其目标系统如果要实现可读,需要创建第三方镜像。个人认为这种技术和上面提到的基于存储的复制技术比较适合于超大数据量的系统,或者是应用系统的容灾复制。 我一直有一个困惑,存储级的复制,假如是同步的,能保证数据库所有文件一致吗?或者说是保证在异常发生的那一刻有足够的缓冲来保障? 也就是说,复制的时候起文件写入顺序和oracle的顺序一致吗?如果不一致就可能有问题,那么是通过什么机制来实现的呢? 上次一个存储厂商来讲产品,我问技术工程师这个问题,没有能给出答案 我对存储级的复制没有深入的研究过,主要是我自己的一些理解,你们帮我看一下吧…… 我觉得基于存储的复制应该是捕捉原系统存储上的每一个变化,而不是每隔一段时间去复制一下原系统存储上文件内容的改变结果,所以在任意时刻,如果原系统的文件是一致的,那么目标端也应该是一致的,如果原系统没有一致,那目标端也会一样的。形象一点说它的原理可能有点像raid 0,就是说它的写入顺序应该和原系统是一样的。不知道我的理解对不对。另外,在发生故障的那一刻,如果是类似断电的情况,那么肯定会有缓存中数据的损失,也不能100%保证数据文件的一致。一般来说是用这种方式做oracle的容灾备份,在发生灾难以后目标系统的数据库一般是只有2/3的机会是可以正常启动的(这是我接触过的很多这方面的技术人员的一种说法,我没有实际测试过)。我在一个移动运营商那里看到过实际的情况,他们的数据库没有归档,虽然使用了存储级的备份,但是白天却是不做同步的,只有在晚上再将存储同步,到第二天早上,再把存储的同步断掉,然后由另外一台主机来启动目标端存储上的数据库,而且基本上是有1/3的机会目标端数据库是起不来的,需要重新同步。 所以我觉得如果不是数据量大的惊人,其他方式没办法做到同步,或者要同时对数据库和应用进行容灾,存储级的方案是没有什么优势的,尤其是它对网络的环境要求是非常高的,在异地环境中几乎不可能实现。

VM虚拟环境Windows2008与oracle11g RAC集群

Windows 2008 R2环境下的Oracle 11G R2 RAC+ASM 虚拟环境安装指南V1.0

目录 Windows 2008 R2环境下的Oracle 11G R2 RAC+ASM (1) 虚拟环境安装指南V1.0 (1) 1 环境规划 (3) 2 基础环境的准备 (4) 2.1 服务器硬件环境准备 (4) 2.2 服务器软件件环境准备 (15) 2.2.1 操作系统安装 (15) 2.2.2 操作系统级配置 (15) 3 RAC配置 (25) 3.1 安装前检查 (25) 3.2 Oracle grid安装 (25) 4 Oracle数据库软件的安装 (34) 5 数据库的创建 (40) 6 重启服务器 (53) 7 简单测试 (54)

1环境规划

如上图所示,实验环境中采用Oracle VM VirtualBox虚拟了两台服务器分别是RAC1和RAC2,它们各有两条网线分别用于公共服务和内部互联;群集使用的共享存储由ISCSI提供的两块磁盘OCR和ASM。 软件环境方面,操作系统选择Windows 2008 R2企业版。 数据库采用Oracle 11G R2(11.2.0.1)和win64_11gR2_grid(RAC基础架构软件)。 2基础环境的准备 2.1 服务器硬件环境准备 本例中采用Oracle VM VirtualBox来虚拟服务器,为每台服务器准备Bridged模式和Host-only 模式的两个网卡。其他配置如下图所示:

Oracle VM VirtualBox安装2个虚拟机windows2008 r2 系统,2个共享磁盘步骤如下:系统安装省去....安装系统后在Oracle VM VirtualBox目录下有2个VDI系统文件。例如:win2008_1.vdi和win2008_2.vdi。 创建虚拟机如下图: 1.打开Oracle VM VirtualBox 2.点击新建

oracle report高级开发教程

ORACLE REPORT 高级开发 1REF游标查询 (2) 2条件格式化 (3) 3图象加入 (6) 4数据链接 (7) 5组设置 (9) 6前后处理 (10) 7报表布局调整 (13) 7.1标尺设置 (13) 7.2网格线对齐 (13) 7.3限制模式 (14) 7.4伸缩模式 (14) 7.5元素的大小控制 (15) 7.6元素的水平、垂直控制 (15) 7.7元素对齐 (16) 7.8页面控制 (16) 8手工开发报表 (19) 8.1基本报表 (19) 8.2分组报表 (21) 8.3交叉报表 (23)

1REF游标查询 建立游标查询的基本过程包括: 1.建立游标类型 2.建立游标函数 3.利用框架实现游标查询结果的展现 下边的例子通过建立一个包的方式,设置游标类型,函数,在报表游标函数中设置游标即为包函数返回。 包的定义和包体信息: CREATE OR REPLACE PACKAGE a04 AS type a04rec is RECORD ( ORG_NO NUMBER(8), NAME VARCHAR2(128) ); type a04refcursor is REF CURSOR return a04rec; function TESTC return a04.a04refcursor ; end A04; create or replace package body A04 as function TESTC return a04.a04refcursor is temp_container a04.a04refcursor; begin open temp_container for select https://www.doczj.com/doc/cc11210031.html,_no org_no ,https://www.doczj.com/doc/cc11210031.html, name from scorg s; return temp_container; end TESTC; END A04; 报表游标函数: function QR_1RefCurDS return a04.a04refcursor is temp_container a04.a04refcursor; str1 varchar(200); begin temp_container :=a04.testc(); return temp_container; end;

《数据库技术与Oracle》习题笔记

《大型数据库设计与实现》复习题(2014.6) 1.画图说明Oracle系统的体系结构。 ? Oracle 服务器:Oracle 服务器中包含多种文件结构、进程结构和内存结构;但是,处理SQL 语句时,并非所有这些结构都会用到。 ? Oracle 例程:Oracle 例程是后台进程和内存结构的组合。 ? Oracle 数据库:Oracle 数据库包含操作系统文件(也称为数据库文件),这些文件为数据库信息提供了实际的物理存储。 ? 其它关键文件:非数据库文件用于配置例程、验证特权用户以及在磁盘出现故障时恢复数据库。 ? 用户进程和服务器进程:执行SQL 语句时,用户进程和服务器进程是其中涉及的主要进程;但是,其它进程也会有助于服务器完成SQL 语句的处理。 ? 其它进程:还有很多供其它选件使用的其它进程,例如,高级排队(Advanced Queuing)、实时应用集群(Real Application Clusters)、共享服务器(Shared Server) 和

高级复制(Advanced Replication) 等。 2.分析表空间两种不同的空间管理方式。 本地管理的表空间:在表空间内通过位图管理区。位图中的每个位对应于一个块或一组块。分配了某个区或释放了某个区可重新使用时,Oracle 服务器更改位图值以显示块的新状态。从Oracle9i 开始,在本地管理已成为缺省设置。 ? 减少了对数据字典表的争用 ? 分配或回收空间时不生成还原数据 ? 无需合并 字典管理的表空间:由数据字典管理区。Oracle 服务器将在分配或回收区时更新数据字典中对应的表。 ? 在数据字典中管理区 ? 存储在表空间中的每个段都可以有不同的存储子句 ? 需要合并 3.命令shutdown有几种方式?请说明各有哪些不同,分析数据库服务器如何解决突然掉电?关闭模式: ? A = ABORT ? I = IMMEDIATE ? T = TRANSACTIONAL ? N = NORMAL 正常关闭: “正常” 是缺省的关闭模式。正常的数据库关闭在下列情况下进行: ? 未建立新连接。 ? Oracle 服务器等待所有用户断开后才完成关闭。

oracle高级复制

Oracle高级复制 在开始之前,需要简单说明一下,目前公司有几个项目都采用Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助。其中在文中使用到的SQL脚本都是经过检验可以运行的。 首先简单介绍和数据库复制有关的基本概念,然后探讨Oracle数据复制技术中的几个重要模型,最后介绍Oracle的数据复制管理器以及如何利用它来配置和维护复制环境。 在文章的开头,我想首先简单谈一下复制的基本概念,也就是什么是复制?复制简单地说就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。Oracle高级复制,也称为对称复制,第一次是在Oracle 7.1.6版本中出现的,在这之前的Oracle版本中,Oracle数据复制方法仅有只读快照形式的基本复制一种方法。随着Oracle版本的每一次升级,数据复制的功能、管理以及速度等方面都得到了很大的改进和完善。目前,由于对分布式数据环境需求的不断增长,越来越多的应用提出了数据复制的需求。 1.基本概念 1. 分布式数据库技术 分布式数据库技术是目前我们经常提及的分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。采用分布式数据库技术,一个本地服务器可以存取不同物理地点的远程服务器上的数据;也可以使所有的服务器均可以持有数据的拷贝/复制,这样分布式系统中的所有服务器均可进行本地存取。 设计一个分布式计算解决方案首先需要考虑的问题就是应用的完整性、复杂性、性能和可用性以及响应时间等,同时还需要考虑的是对于不同的应用需求是采用实时存取远程数据还是采用延迟存取远程数据。这对于数据复制来讲就是采取实时更新复制方案还是延迟数据复制方案。 2. 同步和异步的概念

03_Oracle数据迁移之克隆数据库

Oracle数据迁移之克隆数据库 DBA有时需要克隆数据库以便测试备份和恢复策略。如果数据库校小,简单的expdp/impdp就能搞定了,但是多数生产环境中的数据库是没法这么干的。克隆数据库有以下几种不同的方法: 使用RMAN的duplicate命令 使用OEM中的Database Control 通过SQL*PLUS手工拷贝 在这里,方少想通过一个实验向大家演示一下如何通过RMAN工具来克隆一个运行中的数据库。 RMAN提供了duplicate命令,此命令使用一个数据库的备份创建一个新数据库。文件被复原到目标数据库,之后,执行一个不完全的恢复,用open resetlogs选项打开数据库。使用RMAN的好处是上述所有步骤都能自动执行,无需用户干涉。复制数据库可以是原来数据库的完全拷贝,也可以只是包含原数据库的某一个子集。 实验演示环境 服务器A:Redhat Enterprise Linux5.5+Oracle10g R2 服务器B:Redhat Enterprise Linux4.8+Oracle10g R2 实验目的:将服务器A上正在运行中的ProdDB数据库克隆至服务器B并更名为TestDB 一、在服务器A上配置SAMBA,将备份集所在目录共享出来 检查一下服务器上是否安装了samba套件 结果显示未安装samba,所以我们得先把samba套件给装上 编辑/etc/samba/smb.conf文件将ProdDB数据库的备份集以及归档日志所在目录共享出来 注:请确保备份集以及归档日志对于others用户是可读,不然后面在RMAN中duplicate的时候会报错

通过Oracle数据库备份将本地数据库环境整体复制到云端

通过数据库备份将本地数据库环境整体复制到云端. 将本地数据库迁移到云端有多种方法,如在Oracle Database 12中可以将某一个容器数据库方便、轻松的搬到云端(通过SQL Develop图形化、向导式迁移,实现一键式迁移);将本地数据库的备份在云端进行恢复,等等。有时我们需要将本地数据库的环境完整迁移到云端,如应用整体环境的云端化,在云端建立一个Standby数据库等。今天要介绍的主题就是将本地数据库的环境完整迁移到云端。 RMAN是Oracle数据库提供的功能强大的备份、恢复及管理的功能组件。我们将借助RMAN的Database Duplication功能来实现。 RMAN提供2种类型的数据库复制: ●Backup-based duplication 基于RMAN备份或拷贝进行数据库复制。 ●Active database duplication 通过网络从活动的源数据库COPY到复制数据库,可以同时结合使用备份集(backup sets)或文件拷贝(image copy)。 Backup-based duplication又分为3种情形, ●连接到源数据库,但不连接到恢复目录(Backup-Based Duplication with a Target Connection)

●不连接到源数据库,但连接到恢复目录(Backup-Based Duplication Without a Target Connection) ●不连接到源数据库和恢复目录(Backup-Based Duplication Without a Target Database and Recovery Catalog Connection)

oracle复制表数据

oracle复制表数据,复制表结构 2010年09月02日15:49 1.不同用户之间的表数据复制 对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus: insert into B.new(select * from A.old); 如果需要加条件限制,比如复制当天的A.old数据 insert into B.new(select * from A.old where date=GMT); 蓝色斜线处为选择条件 2.同用户表之间的数据复制 用户B下有两个表:B.x和B.y,如果需要从表x转移数据到表y,使用用户B登陆sqlpus 即可: insert into 目标表y select * from x where log_id>'3049' -- 复制数据 注意:要示目标表y必须事先创建好 如insert into bs_log2 select * from bs_log where log_id>'3049' 3.B.x中个别字段转移到B.y的相同字段 --如果两个表结构一样 insert into table_name_new select * from table_name_old 如果两个表结构不一样: insert into y(字段1,字段2) select 字段1,字段2 from x 4.只复制表结构加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内容 create table 用户名.表名as select * from 用户名.表名where 1=2 如create table zdsy.bs_log2 as select * from zdsy.bs_log where 1=2 5完全复制表(包括创建表和复制表中的记录) create table test as select * from bs_log --bs_log是被复制表 6 将多个表数据插入一个表中 insert into 目标表test(字段1。。。字段n) (select 字段1.。。。。字段n) from 表union all select 字段1.....字段n from 表 ===================================================== oracle和mssql中复制表的比较 库内数据复制 MS SQL Server: Insert into 复制表名称select 语句(复制表已经存在) select 字段列表into 复制表名称from 表(复制表不存在) Oracle : Insert into 复制表名称select 语句(复制表已经存在) create table 复制表名称as select 语句(复制表不存在) 多表更新、删除 一条更新语句是不能更新多张表的,除非使用触发器隐含更新,我这里说的意思是:根据其他表数据更新你要更新的表一般形式:

OracleDataguard数据同步复制的容灾技术方案

OracleDataguard数据同步复制的容灾技术方案2007-02-28 15:20:07 标签:容灾方案Oracle Dataguard是ORACLE 提供的一种高可用性(HIGH AVAILABLE)的数据库方案,它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。中软公司自主研发的基于Dataguard同步引擎的Oracle数据库异地同步解决方案RS5,能够对安全、高效的实现数据库远程实时备份,最大限度保证用户的数据安全。 一、设计目标 最大程度上保证数据的可用与可恢复,做到灾难事件发生时的数据零丢失。 二、方案概述 针对关键业务数据灾难防护的需求,制定本地备份策略结合异地实时备份的高可靠性方案。 1. 本地备份策略 本地备份是数据库容灾重要的组成部分。通过配置RMAN的备份策略,可以实现备份和还原数据库文件、归档日志和控制文件。根据具体应用环境,可以订制备份的方式和频率,例如每周的全备和每日的增量备份。在数据库出现问题的时候,可以使用RMAN备份、归档日志及在线日志恢复数据。 2. 异地实时同步 异地实施同步可以最大限度的保证数据安全,避免因各类事故造成的损失。ORACLE Dataguard是基于数据库复制的方式来实现的、目前最流行的高可用解决方案之一。在此基础上,我们开发了一套直观便捷的管理界面,使系统不仅可以实现数据库数据的实时快速复制,而且使系统的实施和管理方便而快捷。 数据库复制的原理主要是通过日志文件的传送、分析和应用来实现的,在应用事务发生后主数据中心通过数据复制引擎将日志传输到备份数据中心,备份数据中心的数据库对日志中记载的事务执行重演操作,实现对备份数据中心数据库数据的更新。 本方案采用高性能、基于Log分析(主要是Redo Log)的Oracle数据库复制解决方案,它可以复制数据库中大量的数据更新(如在数千个表上的每秒数千个操作)到一个或多个Oracle目标实例中。并且保证这些目标实例在实时更新的过程中是可存取的。 对于交易产生的数据,数据复制引擎通过对生产系统数据库的在线日志进行实时跟踪,当应用系统向数据库中进行任何操作时时,这些信息都将在在线日志中存储,数据复制引擎通过对实时获取的数据库在线日志进行分析,获得本次操作的交易指令和交易数据,然后将这些交易指令和交易数据通过网络传送到备份数据中心。 备份数据中心数据库系统的数据复制引擎对接收到的交易进行处理,按照交易的先后顺序在“备份数据中心”中重新执行该交易。 同时,系统还提供数据一致性监测功能,系统将自动监控主数据中心和备份数据中心的数据一致性状态,如果发现不一致,马上进行重新同步。采用这种数据复制方式,可以保证数据完全不丢失,并且实现非常高的实时性。 数据复制引擎从生产系统上实时获取系统交易,将交易数据通过TCP/IP网络传送到异地容灾系统,在该网络上只传输交易的纯数据,无需其他的额外信息,这样减少对广域网络带宽的需求。

利用MSSQL复制功能实现与Oracle数据库同步

一概述 默认情况下,SQL Server 代理创建错误日志来记录警告和错误。日志中显示下列警告和错误: 警告消息,提供有关潜在问题的信息,例如“作业在执行时被删除”。 错误消息,通常需要系统管理员干预,例如“无法启动邮件会话”。可以通过net send 将错误消息发送给特定用户或计算机。 默认情况下,执行跟踪消息不写入SQL Server代理日志错误,因为它们会将日志填满。如果错误日志已满,会降低选择和分析更严重的错误的能力。因为日志会增加服务器的处理负荷,所以请务必仔细考虑是否值得将执行跟踪消息捕获到错误日志中。通常,最好仅在调试某个特定问题时捕获所有消息。 二错误日志的存放目录和个数 SQL Server 最多可以维护1个当前错误日志记录和9个SQL Server 代理错误日志历史记录。每个存档日志都有一个扩展名,指示该日志的相对存在时间。例如,扩展名.1 表示最新的存档错误日志,而扩展名.9 表示最旧的存档错误日志。 SQL Server 代理停止后,可以修改SQL Server 代理错误日志的位置。如果错误日志为空,则无法打开日志。可以随时循环访问SQL Server 代理日志,无需停止SQL Server 代理。 三基本管理任务 查看SQL Server 代理错误日志:企业管理器;通过openrowset读取文件;xp_cmdshell 下执行dos输出的type命令等;xp_cmdshell下bcp进入数据库系统的表中;exec xp_cmdshell 'type "C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGSQLAGENT.out"' 重命名SQL Server 代理错误日志,重启sql代理后生效:企业管理器;EXEC msdb.dbo.sp_set_sqlagent_properties @errorlog_file=N'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGSQLAGENT.OUT' 发送SQL Server 代理错误消息,使用net send 发送消息,依赖于windows的messenges 服务:企业管理器;EXEC msdb.dbo.sp_set_sqlagent_properties @error_recipient=N'jinsen' 将执行跟踪消息写入到SQL Server 代理错误日志中:配置sql代理,记录跟踪内容; 配置代理错误日志的信息内容类型(错误1、警告2、信息(包含错误跟踪) 4),类型可以叠加:企业管理器;EXEC msdb.dbo.sp_set_sqlagent_properties @errorlogging_level={1|2|4|3|5|7|6} 配置代理错误日志的信息 1.分别建立链接对数据库进行操作,SQLServer可以用https://www.doczj.com/doc/cc11210031.html,,操作Oracle可以用OLEDB或者用System.Data.OracleClient(需要添加引用才能用) 这种方案的优点就是简单,各自写各自的数据库操作代码,缺点就是不能将两个数据库中的表直接进行联合查询,链接Oracle的每台机器必须安装OracleClient才可以使用。 2.使用同义词操作Oracle数据库。 这种方法的具体操作我在以前的文章中已经写清楚了,这样做一来可以进行表的联合查询二来不需要每台机器都安装OracleClient,但是还是有一个缺点:效率低,比如对同义词使用like去查找需要的数据,如果是直接连Oracle数据库也许只要0.1秒就可以找到答案,但是用同义词可能就要等10秒20秒或更久。原来SQLServer并不是直接把查询语句传递给Oracle,让Oracle执行操作,而是将所有数据都取到SQLServer服务器上,边取数据边分析,直到满足查询条件为止。其实这种数据放在两个服务器上还有一个缺点就是一旦Oracle服务器宕机,即使我们这边的所有服务器都是好的,那么我们的程序中用到Oracle数据的地

Symantec VVR+GCO容灾方案与Oracle Golden Gate数据库复制方案的对比

Symantec DR solution vs. Oracle Golden Gate Symantec 中国, 沈勇 标题:Symantec VVR+GCO容灾方案与Oracle Golden Gate数据库复制方案的对比Subject:Symantec DR solution based on VVR&GCO vs. Oracle Golden Gate 摘要:在IT技术上,基于硬件存储、虚拟化存储、数据库、应用和文件系统的数据复制技术经常是个热门话题。而在实际IT应用中,数据复制只是手段,根据目标的侧重点不同,各种数据复制手段有各自的应用场景。这里主要讨论对于容灾的应用需求,Symantec 的构建在VVR数据复制技术和VCS+GCO的应用高可用容灾管理之上的容灾解决方案与Oracle Golden Gate数据库复制方案之间的异同。 关键词:DR, Symantec, VVR, VCS, GCO, Oracle, Golden Gate 1.简单介绍: Symantec的容灾解决方案是一个由VVR数据复制软件和VCS+GCO的应用高可用容灾管理软件紧密结合的容灾解决方案。VVR是构建于Symantec广获声誉的存储管理软件Volume Manager(VxVM)之上的基于虚拟化存储复制技术的数据复制软件。通过捕获本地所有写入Volume Manager虚拟化存储的I/O,保证时序和一致性的通过IP网络复制到远端的一个适用于所有数据类型的数据复制软件。提供同步和异步的实时复制方式,提供带宽管理,提供多种快照以实现基于容灾系统的高级功能,例如数据仓库、备库查询和演习等,提供1对1和1对多的复制关系,提供多种初始数据复制方式,提供灾难发生时的多种数据复制切换模式,提供灾难恢复后的数据复制的双向选择,提供复制中继(Bunker Site)以实现RPO为0的目标,提供对各主流平台的支持,提供异构平台的数据复制功能;VCS+GCO则是同样广获声誉的应用高可用容灾管理软件,提供广泛的平台支持、整体的各种应用和数据库资源的监控管理、整体的应用本地高可用和异地容灾的切换和恢复管理、容灾演习等等功能;二者紧密结合构成Symantec的容灾解决方案; Oracle Golden Gate是一个由Oracle在2009年收购并在之后将Oracle Stream的技术逐渐融入的一个基于数据库的数据复制软件。通过在原端数据库,以事务为单位,捕获分析数据库的redo日志或archive日志,提取事务SQL语句,打包压缩传送到目标数据库,在目标库拆分为单条SQL执行完成来达到两个数据库的数据同步的效果的只适用于数据库类型数据的数据复制软件。支持主流数据库,如oracle、sqlserver、DB2、sybase ase,支持异构数据库复制;支持主流操作系统平台,如aix、solaris、hpux、linux、windows,支持异构平台复制;目标端数据库处于open状态,支持1对1和1对多的单向复制、1对1的双向复制、多对1的单向复制、多级数据库复制等复制链接形式;

教你如何克隆Oracle10g数据库

教你如何克隆Oracle10g数据库,冷备份方式(图文版) 最近一个项目使用到Oracle,由于数据库比较大,每次备份恢复时间比较长,这几天参考了较多的资料,终于成功进行了数据库克隆,欣喜之余通过图解方式把这个过程共享出来。 Oracle 10g克隆数据库步骤: 1、准备目标数据库存放路径、配置信息等 2、配置目标数据库控制文件脚本 3、准备目标数据库的数据文件(通过冷备份方式进行) 4、运行控制文件脚本 5、打开克隆的数据库 1、准备目标数据库存放路径、配置信息等 a) 创建目标数据库存放路径: 分别创建数据库文件 (D:\oracle\product\10.1.0\oradata\CLNE)和运行信息(D:\oracle\product\10.1. 0\admin\CLNE)文件夹,其中运行信息文件夹包括bdump、cdump、create、pfile、udump五个文件夹 b) 初始化参数文件: 可以从其他数据库拷贝,进行修改。在这里拷贝源数据库PRACTICE的初始化配置文件到D:\oracle\produ ct\10.1.0\Db_1\databas\目录中,并把该文件命名为initCLNE.ora,打开该文件把”PRACTICE”替换成”

CLNE” 修改后如下图: c) 数据库密码文件 通过命令行进行创建,放置于D:\oracle\product\10.1.0\Db_1\database\ ,文件名称为PWDCLNE.ora 命令为:orapwd file=D:\oracle\product\10.1.0\Db_1\database\PWDCLNE.ora password=CLNE entries =4

[计算机]安装Oracle11g全过程

安装Oracle 11g全过程 1.安装准备 执行安装Oracle 11g数据库管理系统之前,必须确保用户的计算机系统内没有Oracle系统,否则安装难以顺利进行。对于已经存在Oracle系统的计算机系统,用户必须执行一系列卸载操作,以清理Oracle的痕迹,大致过程如下: 使用Oracle的卸载程序或操作系统的卸载程序卸载Oracle系统。 删除操作系统内的Oracle安装主目录。 删除操作系统内系统盘中有关Oracle的目录。 删除注册表中与Oracle有关的项和键值。 然后就可以正式安装Oracle 11g数据库管理系统了。 2.系统要求 与Oracle 10g类似,Oracle 11g For Windows对计算机系统的要求也比较高,如表1所示。 表1 Oracle 11g对系统的要求 系统要求最小值 物理内存1GB 虚拟内存2倍物理内存 可用磁盘空间基本安装需要4.55GB 高级安装需要4.92GB 显示适配器256色 处理器550MHz主频的 Intel (x86)、 AMD64和Intel EM64T系列系统结构32位或64位系统处理器 操作系统Windows 2000 SP1以上 Windows Server 2003所有版本 Windows Server 2003 R2所有版本 Windows XP Professional版 Windows Vista Business、Enterprise和Ultimate版 网络协议TCP/IP(SSL)、命名管道

Web浏览器Netscape Navigator 7.2以上 Mozilla 1.7 Microsoft Internet Explorer 6.0 SP2以上Firefox 1.0.4以上 3.安装过程 下载Oracle 11g的安装文件“win32_11gR1_database.zip”,将其解压到本地目录,接着就可以正式开始安装Oracle 11g了。 运行database目录下的“setup.exe”文件,以正式安装Oracle 11g,执行情况如图1所示。 图1 启动安装 选择安装方法,如图2所示。用户既可以选择“基本安装”,也可以选择“高级安装”。选择基本安装时,在“Oracle基位置”指定Oracle 11g的基位置,在“Oracle主目录位置”指定安装主目录,选择安装类型为“企业版”。在安装Oracle 11g数据库管理系统过程中,可以同时创建启动数据库,本例中指定全局数据库名为ESHOPPE,数据库口令为123456,该口令也是系统用户SYS 和SYSTEM的默认登录口令,请牢记此口令。

Oracle高级复制Step by Step

Oracle高级复制Step by Step 实施起因 某项目中遇到内外网数据库同步的问题,假设电信机房和某机房网络物理隔绝,需要借助中间服务器进行数据库同步,这个中间服务器既可以是数据库服务器也可以是某种中间件或者某个程序。 因为两头都是Oracle数据库,所以暂时先考虑使用数据库同步的机制来进行预研,当然仅仅是预研而已,距离实施还有一定距离,比如暂时只考虑数据库的单向同步,少量数据的双向同步采用其他方法进行。另外一个目的是为了简化预研的难度,比如省略了发布模板(deployment template)和冲突解决方案(Conflict Resolution)。 Master site(主站点)Oracle实例为source Materialized view site(中间站点)Oracle实例为mid Materialized view site Level2(目标站点)Oracle实例为dest 数据流方向为source—>mid, mid—>dest 网络连通为source?mid,mid?dest;source<>dest 高级复制中的几个概念 1) replication object:复制对象,指需要作复制的对象(object),包括表,索引, 存储过程等等。复制对象的更新遵循事务一致性规则(transactionally consistent manner)。 2) replication groups:复制组,是复制对象(replication object)的集合称为group,oracle 以replication group 的形式来管理复制。一个组可以包含多个模式的object, 一个模式也可以有多个组中的object,但是每个replication object 都只能属于一个replication group。 3) replication sites:复制站点,包含两种类型,主体站点(master sites)和实 体化视图站点(materialized view sites)。一个site 可以担任一个replication group 中的mater site 同时又担任另外一个replication group 中的materialized view site,注意必须是另外一个组,而不能是同一个replication group。 4) scheduled links:一个数据库链接(database link),包含一个由用户定义的计划,来将需要更新的事务推到其它的master sites,当创建scheduled link 的时候,oracle 将在本地任务队列中创建一个任务。 5) master definition site:主体定义站点,大部分的高级复制配置都需要在一个站 点上作,这个站点就是maserdef site Asynchronous Data Replication Mechanisms示意图

相关主题
文本预览
相关文档 最新文档