OGG常见初始化方案
(2015-06-04 14:59:16)分类: ogg |
http://www.askmaclean.com/archives/ogg-goldengate-initial-load-method.html
OGG常见初始化方案
数据初始化
RMAN初始化方案
本方案在初始化过程中,不需要源数据库停机。
步骤如下:
生产端===============================================
1)
2)
3)
4)
Select
注:通过上面的SQL语句查找到比第3歩中记录下的时间点早的事务,需要等到该事务结束,然后执行rman的备份;
5)
–备份数据库:
$rman target /
run {
allocate channel ch00 type disk maxpiecesize 20g;
allocate channel ch01 type disk maxpiecesize 20g;
crosscheck backupset;
delete noprompt expired backupset;
sql ‘alter system archive log current';
backup as backupset skip inaccessible tag hot_db_bk_level0
full database
format ‘/u01/backup/bk_%s_%p_%t';
release channel ch00;
release channel ch01;
}
–备份归档和控制文件:(如果有三个日志文件组,可以按照以下方式进行切换,如果更多,则对应增加切换的次数即可);
run {
ALLOCATE CHANNEL ch00 TYPE DISK MAXPIECESIZE 20G;
ALLOCATE CHANNEL ch01 TYPE DISK MAXPIECESIZE 20G;
sql ‘alter system switch logfile';
sql ‘alter system switch logfile';
sql ‘alter system switch logfile';
sql ‘alter system archive log current';
BACKUP ARCHIVELOG ALL FORMAT ‘/u01/backup/ARCH_%U';
BACKUP CURRENT CONTROLFILE FORMAT ‘/u01/backup/bk_controlfile';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
在源机执行
SQL>set linesize 200
SQL>select * from Gv$log;
GROUP#
———- ———- ———- ———- ———- — —————- ————- ———
获取不活动的已归档日志的最后一个SCN号,如果有多个已归档的INACTIVE的组,取最大的FIRST_CHANGE#,这里取218412
记录该SCN号(在“第10歩”目标端恢复数据库时使用),将备份文件,FTP到目标机
========================================
hpux2:/u01/oracle$ ftp 192.168.1.27
Connected to 192.168.1.27.
220 hpux_dr FTP server (Revision 4.0 Version wuftpd-2.6.1 Wed Jun 18 07:11:14 GMT 2008) ready.
Name (192.168.1.27:oracle): oracle
331 Password required for oracle.
Password:
230 User oracle logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /u01/oracle/rmanbk
250 CWD command successful.
ftp> lcd /u01/oracle/rmanbk
Local directory now /u01/oracle/rmanbk
ftp> bin
200 Type set to I.
ftp> prompt
Interactive mode off.
ftp> mput hp*
容灾端===============================================
6)
ü
ü
ü
ü
7)
sqlplus ‘/ as sysdba’
SQL>startup nomount
8)
rman target /
RMAN>restore controlfile from ‘/u01/oracle/rmanbk/hpdb_ctlfile_757366280381.dbf';
9)
sqlplus ‘/ as sysdba’
SQL>alter database mount;
10)
rman target /
RMAN>restore database;
RMAN>
run
{
}
11)
SQL> SELECT CHECKPOINT_CHANGE#,CHECKPOINT_TIME FROM V$DATAFILE_HEADER;
CHECKPOINT_CHANGE# CHECKPOIN
—————— ———
注:
a)
b)
12)
删除多余的redolog group
SQL> select THREAD#, STATUS, ENABLED from v$thread;
———- —— ——–
1
OPEN
2 CLOSED PRIVATE
SQL> select group# from v$log where THREAD#=2;
GROUP#
———-
4
5
6
SQL> alter database disable thread 2;
Database altered.
SQL> alter database drop logfile group 4;
alter database drop logfile group 4
ERROR at line 1:
ORA-00350: log 4 of instance racdb2 (thread 2) needs to be archived
ORA-00312: online log 4 thread 2: ‘/u01/oracle/oradata/ractest/log/redo04.log’
SQL> alter database clear unarchived logfile group 4;
Database altered.
SQL> alter database drop logfile group 4;
Database altered.
SQL> alter database drop logfile group 5;
Database altered.
SQL> alter database drop logfile group 6;
Database altered.
SQL> select THREAD#, STATUS, ENABLED from v$thread;
THREAD# STATUS ENABLED
———- —— ——–
1
OPEN
删除多余UNDO表空间
SQL> show parameter undo;
NAME
———————————— ———– ——————————
undo_management
undo_retention
undo_tablespace
SQL> select tablespace_name from dba_tablespaces where contents=’UNDO';
TABLESPACE_NAME
——————————
UNDOTBS1
UNDOTBS2
SQL> drop tablespace UNDOTBS2 including contents and datafiles;
Tablespace dropped.
如果源数据库为Oracle9i,因为RMAN时不备份TEMP表空间,需重新创建TEMP表空间
SQL>
create temporary tablespace TEMP
Tablespace created.
SQL> alter database default temporary tablespace TEMP;
Database altered.
13)
alter database open resetlogs;
注意:由于此时源端和目标端一样,所以要先删除DDL那几个脚本,删除replicat进程再 重新添加,最后才能 start replicat repea,aftercsn <>
Oracle EXPDP/IMPDP初始化方案
在数据初始化的过程中,不需要源数据库停机。
1)
2)
3)
4)
Select
注:通过上面的SQL语句查找到比第3歩中记录下的时间点早的事务,需要等到该事务结束,然后执行rman的备份;
5)
–directory path for store dump file
CREATE OR REPLACE DIRECTORY DATA_PUMP AS ‘E:\OGG\data';
grant read ,write on DIRECTORY DATA_PUMP to ggs ;
–users to execute expdp
grant read ,write on DIRECTORY DATA_PUMP to maclean ;
6)
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
————————
7)
在源端OS系统中执行数据导出,导出用户名、dmp文件名自行修改,导出完成后ftp至目标端datapump目录
expdp maclean/maclean directory=DATA_PUMP dumpfile= flashback_scn=
–以下操作在目标端执行
8)
–directory path for store dump file
CREATE OR REPLACE DIRECTORY DATA_PUMP AS ‘/goldengate/data';
grant read ,write on DIRECTORY DATA_PUMP to ggs ;
grant read ,write on DIRECTORY DATA_PUMP to maclean;
9)
— 以下操作在OS中执行,具体用户名与导入dmp文件名视具体情况而定
impdp maclean/maclean DUMPFILE=DATA_PUMP:DP_maclean.DMP