Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

999

积分

1

好友

942

主题
1#
发表于 2013-9-24 23:20:16 | 查看: 6151| 回复: 2
goldengate OGG参数规范

如果goldengate安装在unix或者linux操作系统下,则建议以oracle系统用户进行安装。如果使用其他用户进行安装,则需要确保该用户在dba组中,以确保该用户具备读取redo和归档日志的系统权限;
注:
1) Goldengate软件建议安装在服务器Server/goldengate路径下,该目录的属主为oracle:dba,权限为775;
2)/goldengate目录一般是建立在共享存储上,这样实际上goldengate的软件和相应的文件如参数文件,队列文件等都是在共享存储上的。这样做的好处是,例如在RAC环境下,如果一台服务区宕机,则可以将/goldengate mount到另外一个正常的rac节点上,启动goldengate各个进程就可以了,不需要做任何其他的动作。






3.      附录2开启DDL复制(在实施DML复制之后)
如果系统当前已经完成了Goldengate的DML复制实施(请确保DML实施遵循了本实施规范,打开的是数据库一级的PK,UI,FK,而不是在表一级实行add trandata的操作),并且正在运行,想在此基础上打开DDL复制,则需要按照本节介绍的步骤进行相应的操作。

3.1.  准备工作
1)       明确在配置DML时所创建的golengate的用户名,密码,表空间以及权限等信息;参考本文档的2.3.4小节部分内容。
2)       在配置DDL时,停止目前正在运行的goldengate所有进程,如mgr,extract,datapump,以及目标端的replicat进程
3)       在配置DDL时,生产端的数据库所有的session连接都应该退出(强烈建议);

3.2.  卸载DDL配置(可选)
如果之前曾经安装过ddl,需要重新进行安装,则需要先将ddl的一些组件卸载掉,然后再重新安装:
依次在OGG的根目录执行
1)       切换到Goldengate安装目录下,并且按照顺序以SYS用户依次执行以下脚本:
2)       SQLPLUS SYS/ORACLE@ORCL  @./ddl_disable.sql
3)       SQL>/goldengate/ddl_remove.sql
4)       SQL>/goldengate/marker_remove.sql
注:在执行上述脚本的时候,会提示输入安装时所指定的schema名称。

3.3.  配置数据库级别的附加日志

以下脚本用以查询和开启数据库级别的附加日志信息,
conn /as sysdba

SQL>Select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI,SUPPLEMENTAL_LOG_DATA_FKfrom v$database;

SQL>alterdatabase add supplemental log data;

SQL>alterdatabase add supplemental log data (PRIMARY KEY,FOREIGN KEY,UNIQUE) columns;

--附加日志打开以后,正常需要执行一次归档操作,以使附加日志即时生效:

SQL>ALTERSYSTEM ARCHIVE LOG CURRENT;

--ALL COLUMNS的附加日志不建议开启:
SQL>alter database add supplemental log data (ALL) columns;
--以下为取消数据库级别附加日志的方法:
SQL>alter database drop supplemental log data;
SQL>alter database drop supplemental log data(PRIMARY KEY,FOREIGN KEY,UNIQUE) columns;
SQL>alter database drop supplemental log data(ALL) columns;

注:正常需要切换一次redo,以确保附加日志即时生效

3.4.  删除表级别的附加日志
如果在实施DML操作时,曾经添加过表级别的附加日志信息,如:
--在ggsci的界面中运行:
Ggsci>addtrandata scott.table1;
--或者在sql界面中执行以下sql语句:
SQL>alter tablescott.t1 add supplemental log data (primary key, unique, foreign key) columns;
都是在表一级打开的附加日志信息。
因为已经开启了数据库级别的附加日志信息,所以对表级别的附加日志配置进行清除,使用以下脚本可以生成批量可执行的sql语句:
Conn / as sysdba
Sql>set line200
Sql>set headoff
Sql>Spooldroptrandata.sql
Sql>select'alter table '||owner|| '.' ||table_name|| ' drop supplemental log group '||log_group_name||';' from dba_log_groups where dba_log_groups.owner  in (’SAPSR3’,’xxx’);
Sql>spool off
--确认脚本保存路径,如/home/oracle
--在sys用户下运行droptrandata.sql脚本,清除表级别的附加日志信息:
Sql>@/home/oracle/droptrandata.sql
           
3.5.  编辑GLOBALS参数文件

这里直接建立在goldengate用户下:
Ggsci>EDITPARAMS ./GLOBALS
GGSCHEMAgoldengate

3.6.  关闭数据库的recyclebin
SQL> showparameter recyclebin

NAME                                 TYPE        VALUE
----------------------------------------------- ------------------------------
recyclebin                           string      OFF
--如不是off,需要关闭recyclebin:
SQL>altersystem set recyclebin=off scope=both;
3.7.  停止数据库的所有Session
OGG的DDL对象安装时不能有运行的sessoin存在,请DBA执行停机清理或者杀死所有数据库中的Session。
建议有条件先执行停止业务,并关闭Oracle的Listener。

3.8.  建立OGG的DDL对象

sqlplus "/ assysdba"
SQL>@marker_setup.sql
Enter GoldenGateschema name:goldengate

SQL>@ddl_setup.sql
Enter GoldenGateschema name:goldengate

SQL>@role_setup.sql

Grant this role toeach user assigned to the Extract, Replicat, GGSCI, and Manager processes, byusing the following SQL command:

GRANTGGS_GGSUSER_ROLE TO <loggedUser>

where<loggedUser> is the user assigned to the GoldenGate processes.

注意这里的提示:它需要你手工将这个GGS_GGSUSER_ROLE指定给你的extract所使用的数据库用户(即参数文件里面通过userid指定的用户),可以到sqlplus下执行类似的sql:
GRANT GGS_GGSUSER_ROLETO goldengate;
这里的goldengate是extract使用的用户。如果你有多个extract,使用不同的数据库用户,则需要重述以上过程全部赋予GGS_GGSUSER_ROLE权限。


3.9.  安装提升性能工具
本步骤为可选步骤。
为了提供OGG的DDL复制的性能,可以将ddl_pin脚本加入到数据库启动的脚本后面,该脚本需要带一个OGG的DDL用户(即安装DDL对象的用户,本例中是goldengate)的参数:
SQL> @ddl_pin<DDL_user>

3.10. 配置OGG进程中DDL参数
GoldenGate的data pump进程和replicat的ddl开关默认是打开的,只有主extract是默认关闭的,所以DDL的配置要在extract进程中配置;同时因为replicat进程默认是所有DDL都复制,如果有多个replicat进程,如果在参数中不进行复制范围限制,必然引起DDL的重复复制,所以在replicat进程中也需要进行配置。
Extract中需要添加的配置参数:
DDL &
INCLUDE MAPPEDOBJTYPE 'table' &
INCLUDE MAPPED OBJTYPE'index' &
EXCLUDE OPTYPECOMMENT
DDLOPTIONS  NOCROSSRENAME REPORT
Replicat中需要添加的配置参数:
DDL include mapped
DDLOPTIONS report

3.11. MGR的配置(只需配置源端)
另外,在mgr里面加入自动purge ddl中间表的参数:
PURGEDDLHISTORYMINKEEPDAYS 3, MAXKEEPDAYS 7
PURGEMARKERHISTORYMINKEEPDAYS 3, MAXKEEPDAYS 7

3.12. 删除系统已有的OGG进程和队列,重新添加
GGSCI>delete er*
进入dirdat目录,删除里面的所有队列文件,进入dirrpt目录,删除里面的所有日志文件
GGSCI>add extextea,tranlog ,begin now
GGSCI>addexttrail ./dirdat/ea,ext extea,megabytes 200
GGSCI>add extdpeea,exttrailsource ./dirdat/ea
GGSCI>add rmttrail./dirdat/ea,ext dpeea,megabytes 200

GGSCI>alterrepea,extseqno 0,extrba 0
GGSCI>alterrepeb,extseqno 0,extrba 0
GGSCI>alterrepec,extseqno 0,extrba 0
3.13. 启动OGG DDL捕捉的trigger
在sqlplus里面执行ddl_enable.sql脚本启用ddl捕捉的trigger。
说明:ddl捕捉的trigger与OGG的extract进程是相互独立的,它并不依赖于extract进程存在。即使OGG的extract进程不存在或者没有启动,但是trigger已经启用了,那么捕捉ddl的动作就一直延续下去。如想彻底停止捕捉DDL捕捉,需要禁用ddl的trigger,此时需要执行ddl_disable.sql
1)       启动OGG的ext数据抽取进程,等抽取进程开始工作后,进行系统数据库热备份,具体方法参考数据库热备方案。
2)       在容灾中心的数据库上禁用外键、触发器、级联删除、带有dml操作的JOB,参考本文档的2.5.4部分。
3)       启动OGG所有进程
注意:启动容灾中心的REP进程的时候,使用如下的启动命令
GGSCI>startrepea,aftercsn <recover时候指定的SCN>
GGSCI>startrepeB,aftercsn <recover时候指定的SCN>
GGSCI>startrepeC,aftercsn <recover时候指定的SCN>
GGSCI>startrepeD,aftercsn <recover时候指定的SCN>


下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569     邮箱:service@parnassusdata.com
2#
发表于 2013-9-27 09:41:44
都是经验之谈呀,让我少走了不少弯路,顶一下

回复 只看该作者 道具 举报

3#
发表于 2013-10-18 23:06:39
顶,好贴

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-18 20:44 , Processed in 0.056814 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569