A1:如果source site上的local trail没有被purge,那么可以让data pump从你丢失的位置重传,如果也没有了,那么就只能从库里重抽,如果archived log也没了,那么就只能重新开始了。 A2:replicat process 默认情况是real-time投递的,如果想延迟,
Oracle服务器由数据库和实例组成,实例包括进程和内存结构。 你连接到一个实例上,只能查到与该实例对应的数据库。数据库名可以这样简单查询 show parameter db_name 或者楼上的语句也可以,但是都只能获得当前的数据库名。
跨数据源访问可以使用OPENDATASOURCE
下面是个跨SQLServer查询的示例
Select TableA,TableB From OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerA;User ID=UserID;Password=Password'
)databaseANamedboTableA
Left Join
OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerB;User ID=UserID;Password=Password'
)databaseBNamedboTableB On TableAkey=TableBkey
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。SELECT
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="c:\Finance\accountxls";User ID=Admin;Password=;Extended properties=Excel 50')xactions
-------------------------------------
SQL语句实现跨Sql server数据库 *** 作实例 - 查询远程SQL,本地SQL数据库与远程SQL的数据传递
(1)查询19216811的数据库(TT)表test1的数据select from opendatasource('sqloledb','server=19216811;uid=sa;pwd=123456;database=TT')TTdbotest1
(2)从19216812的数据库(TT)表test2插入19216811数据库(TT)的表test1去insert into opendatasource('sqloledb','server=19216811;uid=sa;pwd=123456;database=TT')TTdbotest1 (id,[name],password) select id,[name],password
from opendatasource('sqloledb','server=19216812;uid=sa;pwd=123456;database=TT')TTdbotest2
希望对你有帮主,望采纳,谢谢!
DSG是基于日志抽取实现的备份工具
DG是oracle公司的主备,用于主库宕机时,应用切换到备库
ogg是被oracle 公司收到,基于日志抽取传输数据的。例如,我想把几个库的部分数据传输到数据中心库,也可以用作于数据灾备,数据迁移。在功能上有部分和DG重叠。
ADG 同构平台数据同步,OGG可以异构平台数据同步。
ADG 可以通过快照方式保留当前时刻点数据,OGG不能做到。
ADG 直接通过日志重做实现数据复制,OGG是通过对日志加工之后的模式进行数据分析实现复制。
Oracle GoldenGate 用于在各种企业系统间以亚秒级速度复制和集成事务数据,是同类最佳的、易于部署的产品。Oracle GoldenGate 可以灵活地在同类和异类系统(包括不同版本的 Oracle Database、不同的硬件平台)之间以及 Oracle 数据库和非 Oracle 数据库(包括 Microsoft SQL Server、用于开放系统和 z/OS 的 IBM DB2、Sybase 等等)之间移动数据。
本文演示如何安装、设置和配置此产品以轻松实现 Oracle Database 10g 和 11g 之间数据的无缝复制,还介绍了此产品的加速能力。
Oracle 于 2009 年收购了 GoldenGate,我们可以看到在全球各行业超过 4,000 个解决方案中实施了 Oracle GoldenGate。该软件执行实时的、基于日志的更改数据捕获 (CDC),能够在异构数据库间以极低的延迟和很小的空间移动大量事务数据。
通常,您部署 GoldenGate 捕获、数据泵和交付进程,并且可将这些进程部署在许多不同的 *** 作系统和数据库上。可根据目标数据库的需要,复制所有数据或部分数据。当 Oracle GoldenGate 用于 Oracle 数据库时,可以复制数据 *** 作语言 (DML) 和数据定义语言 (DDL) *** 作。(目前只能在同类(不能在异类的)Oracle 版本间复制 DDL *** 作。)Oracle GoldenGate 官方支持 Oracle9i 第 2 版到 Oracle Database 11g 第 2 版,并且对所有这些版本提供 DML/DDL 支持。该产品可用于 Oracle Database 的企业版和标准版。
如上所述,可以在所支持的同类或异类 Oracle Database 版本间移动数据,也可以在 Oracle 数据库和非 Oracle 数据库间移动数据。大多数情况下,可对数据进行筛选、映射和转换。注意,如果启用了 DDL 支持(换言之,如果使用 GoldenGate 进行同类 Oracle Database 版本之间的 DDL 复制),则不支持数据筛选、映射和转换。
Oracle GoldenGate 是以 DBA 为中心的,因此 DBA 很容易学会如何使用它。其实现时间也是最少的 — 一些站点只用一个月的时间就完全付诸实现。
ogg 版本和 oracle数据库版本不需要统一,ogg 122011可以用于 oracle 11201的同步,不过,如果你要使用集成模式,数据库版本必须高于11203的版本。经典模式不限制。
Oracle Goldengate目前支持主被动式的双向配置,换而言之OGG可以将来自于激活的主库的数据变化完全复制到从库中,从库在不断同步数据的同时已经为计划内的和计划外的outages做好了故障切换的准备,也就是我们说的Live Standby。这里我们重点介绍一下配置Oracle Goldengate Live Standby系统的步骤,和具体的故障切换过程。
如果自己搞不定可以找ASKMACLEAN专业ORACLE数据库修复团队成员帮您恢复!
SQL> conn clinic/clinicConnected
SQL> drop table tv;
create table tv (t1 int primary key,t2 int,t3 varchar2(30));
Table dropped
SQL>
Table created
SQL> drop sequence seqt1;
create sequence seqt1 start with 1 increment by 1;
Sequence dropped
SQL> SQL>
Sequence created
declare
rnd number(9,2);
begin
for i in 1100000 loop
insert into tv values(seqt1nextval,idbms_randomvalue,'MACLEAN IS TESTING');
commit;
end loop;
end;
/
/ 以上脚本在primary主库的某个应用账户下创建了测试用的数据,
接着我们可以使用各种工具将数据初始化到从库中,如果在这个过程中
希望实时在线数据迁移的话,可以参考《Goldengate实现在线数据迁移》
/
/ 注意我们在Live Standby的环境中往往需要复制sequence序列,以保证切换到备库时业务可以正常进行 /
/ 初始化备库数据后,确保已与主库完全一致 /
primary :
SQL> select sum(t2) from tv;
SUM(T2)
----------
2498624495
SQL> select last_number from user_sequences;
LAST_NUMBER
-----------
100001
standby:
SQL> select sum(t2) from tv;
SUM(T2)
----------
2498624495
SQL> select last_number from user_sequences;
LAST_NUMBER
-----------
100001
以上完成准备工作后,我们可以进入到正式配置Goldengate live stanby的阶段,包括以下步骤:
配置由主库到备库的extract、replicat、data pump,该步骤同普通的单向复制没有太大的区别
配置由备库到主库的extract、replicat、data pump
启动由主库到备库的extract、replicat、data pump
接下来我们会实践整个配置过程:
1
创建由主库到备库的extract、data pump、replicat
GGSCI (rh2oraclecom) 10> dblogin userid maclean
Password:
Successfully logged into database
GGSCI (rh2oraclecom) 11> add trandata clinic
Logging of supplemental redo data enabled for table CLINICTV
GGSCI (rh2oraclecom) 4> add extract extstd1,tranlog,begin now
EXTRACT added
GGSCI (rh2oraclecom) 5> add exttrail /d01/ext/cl,megabytes 100,extract extstd1
EXTTRAIL added
GGSCI (rh2oraclecom) 7> view params extstd1
-- Identify the Extract group:
EXTRACT extstd1
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify the local trail that this Extract writes to:
EXTTRAIL /d01/ext/cl
-- Specify sequences to be captured:
SEQUENCE clinicseqt1;
-- Specify tables to be captured:
TABLE clinic;
-- Exclude specific tables from capture if needed:
-- TABLEEXCLUDE
GGSCI (rh2oraclecom) 17> add extract pumpstd1,exttrailsource /d01/ext/cl,begin now
EXTRACT added
GGSCI (rh2oraclecom) 98> add rmttrail /d01/rmt/cl,megabytes 100,extract pumpstd1
RMTTRAIL added
GGSCI (rh2oraclecom) 129> view params pumpstd1
-- Identify the data pump group:
EXTRACT pumpstd1
userid maclean, password maclean
-- Specify database login information as needed for the database:
userid maclean, password maclean
RMTHOST rh3oraclecom, MGRPORT 7809
-- Specify the remote trail on the standby system:
RMTTRAIL /d01/rmt/cl
-- Pass data through without mapping, filtering, conversion:
PASSTHRU
sequence clinicseqt1;
Table clinic;
在备库上配置由主库到备库的replicat:
GGSCI (rh3oraclecom) 4> add replicat repstd1,exttrail /d01/rmt/cl,begin now
REPLICAT added
GGSCI (rh3oraclecom) 49> view params repstd1
-- Identify the Replicat group:
REPLICAT repstd1
-- State that source and target definitions are identical:
ASSUMETARGETDEFS
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify tables for delivery:
MAP clinic, TARGET clinic;
-- Exclude specific tables from delivery if needed:
-- MAPEXCLUDE
2
创建由备库到主库的extract、data pump、replicat
GGSCI (rh3oraclecom) 51> dblogin userid maclean
Password:
Successfully logged into database
GGSCI (rh3oraclecom) 52> add trandata clinic
Logging of supplemental redo data enabled for table CLINICTV
/ 不要忘记在备库端的相关表加上追加日志 /
GGSCI (rh3oraclecom) 53> add extract extstd2,tranlog,begin now
EXTRACT added
GGSCI (rh3oraclecom) 54> add exttrail /d01/ext/cl,megabytes 100,extract extstd2
EXTTRAIL added
GGSCI (rh3oraclecom) 58> view params extstd2
-- Identify the Extract group:
EXTRACT extstd2
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify the local trail that this Extract writes to:
EXTTRAIL /d01/ext/cl
-- Specify sequences to be captured:
SEQUENCE clinicseqt1;
-- Specify tables to be captured:
TABLE clinic;
-- Exclude specific tables from capture if needed:
-- TABLEEXCLUDE
GGSCI (rh3oraclecom) 59> add extract pumpstd2,exttrailsource /d01/ext/cl,begin now
EXTRACT added
GGSCI (rh3oraclecom) 60> add rmttrail /d01/rmt/cl,megabytes 100,extract pumpstd2
RMTTRAIL added
GGSCI (rh3oraclecom) 63> view params pumpstd2
-- Identify the data pump group:
EXTRACT pumpstd2
userid maclean, password maclean
-- Specify database login information as needed for the database:
userid maclean, password maclean
RMTHOST rh2oraclecom, MGRPORT 7809
-- Specify the remote trail on the standby system:
RMTTRAIL /d01/rmt/cl
-- Pass data through without mapping, filtering, conversion:
PASSTHRU
sequence clinicseqt1;
Table clinic;
在主库上配置replicat:
GGSCI (rh2oraclecom) 136> add replicat repstd2,exttrail /d01/rmt/cl,begin now,checkpointtable macleanck
REPLICAT added
GGSCI (rh2oraclecom) 138> view params repstd2
-- Identify the Replicat group:
REPLICAT repstd2
-- State that source and target definitions are identical:
ASSUMETARGETDEFS
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify tables for delivery:
MAP clinic, TARGET clinic;
-- Exclude specific tables from delivery if needed:
-- MAPEXCLUDE
3
完成以上OGG配置后,可以启动主库到备库的extract、pump、以及replicat:
GGSCI (rh2oraclecom) 141> start extstd1
Sending START request to MANAGER
EXTRACT EXTSTD1 starting
GGSCI (rh2oraclecom) 142> start pumpstd1
Sending START request to MANAGER
EXTRACT PUMPSTD1 starting
GGSCI (rh3oraclecom) 70> start repstd1
Sending START request to MANAGER
REPLICAT REPSTD1 starting
/ 如果你是在offline状态下配置的话,那么此时可以启用应用了/
接下来我们尝试做有计划的主备库切换演练:
1
首先停止一切在主库上的应用,这一点和DataGuard Switchover一样。在保证没有活动事务的情况下,才能切换干净。
2
在主库端使用LAG等命令了解extract的延迟,若返回如"At EOF, no more records to process"的信息,则说明所有事务均已被抽取。
GGSCI (rh2oraclecom) 144> lag extstd1
Sending GETLAG request to EXTRACT EXTSTD1
Last record lag: 0 seconds
At EOF, no more records to process
在EOF的前提下关闭extract:
GGSCI (rh2oraclecom) 146> stop extstd1
Sending STOP request to EXTRACT EXTSTD1
Request processed
3
同样对pump使用LAG命令,若返回如"At EOF, no more records to process"的信息,则说明已抽取的数据都被发送到备库了。
GGSCI (rh2oraclecom) 147> lag pumpstd1
Sending GETLAG request to EXTRACT PUMPSTD1
Last record lag: 3 seconds
At EOF, no more records to process
在EOF的前提下,关闭data pump
GGSCI (rh2oraclecom) 148> stop pumpstd1
Sending STOP request to EXTRACT PUMPSTD1
Request processed
3
检查备库端replicat的同步情况,如返回"At EOF, no more records to process",则说明所有记录均被复制。
GGSCI (rh3oraclecom) 71> lag repstd1
Sending GETLAG request to REPLICAT REPSTD1
Last record lag: 5 seconds
At EOF, no more records to process
在EOF的前提下关闭replicat
GGSCI (rh3oraclecom) 72> stop repstd1
Sending STOP request to REPLICAT REPSTD1
Request processed
4
紧接着我们可以在备库上为业务应用用户赋予必要的insert、update、delete权限,启用各种触发器trigger及cascade delete约束等;
以上手段在主库上对应的 *** 作是收回应用业务的权限,disable掉各种触发器及cascade delete约束,
之所以这样做是为了保证在任何时候扮演备库角色的数据库均不应当接受任何除了OGG外的手动的或者应用驱动的业务数据变更,
以保证主备库间的数据一致。
5
修改原备库上的extract的启动时间到现在,已保证它不去抽取那些之前的重做日志
GGSCI (rh3oraclecom) 75> alter extstd2 ,begin now
EXTRACT altered
GGSCI (rh3oraclecom) 76> start extstd2
Sending START request to MANAGER
EXTRACT EXTSTD2 starting
若之前没有启动由备库到主库的pump和replicat的话可以在此时启动:
GGSCI (rh3oraclecom) 78> start pumpstd2
Sending START request to MANAGER
EXTRACT PUMPSTD2 starting
GGSCI (rh2oraclecom) 161> start repstd2
Sending START request to MANAGER
REPLICAT REPSTD2 starting
6此时我们可以正式启动在原备库现在的主库上的应用了
接下来我们尝试回切到原主库上:
1前提步骤与之前的切换相似,首先停止在原备库上的任何应用,
之后使用LAG命令确认extract和replicat的进度,在确认后关闭extract和replicat。
完成在主库上的维护工作:包括赋予权限,启用触发器等等。
2修改原主库上的extract的开始时间为当前,保证它不去处理之前的重做日志:
GGSCI (rh2oraclecom) 165> alter extract extstd1,begin now
EXTRACT altered
3此时我们已经可以启动在原主库现在的主库上的应用了
4启动最早配置的由主库到备库的extract、pump、replicat:
GGSCI (rh2oraclecom) 166> start extstd1
Sending START request to MANAGER
EXTRACT EXTSTD1 starting
GGSCI (rh2oraclecom) 171> start pumpstd1
Sending START request to MANAGER
EXTRACT PUMPSTD1 starting
GGSCI (rh3oraclecom) 86> start repstd1
Sending START request to MANAGER
REPLICAT REPSTD1 starting
以上完成了OGG的Live Standby中主备库之间的计划内的切换Switchover,That's Great!
以上就是关于如何查看ogg目标端数据库进程全部的内容,包括:如何查看ogg目标端数据库进程、ogg抽取进程可以和源数据库不在同一服务器吗、OGG现状是有两个源端 两个源数据库,一个目标端一个目标数据库,两个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)