gavinsoorma.com.au · web viewconfiguring dbfs on oracle exadata database machine (doc id...

Post on 11-Nov-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

GoldenGate 12c Advanced Workshop

Hands-on Lab Exercise 2

Goldengate High Availability with Database File System(DBFS)

GoldenGate 12c Advanced Workshop Lab Exercise 2

2GoldenGate 12c Advanced Workshop Lab Exercise 2

3GoldenGate 12c Advanced Workshop Lab Exercise 2

4GoldenGate 12c Advanced Workshop Lab Exercise 2

5GoldenGate 12c Advanced Workshop Lab Exercise 2

6GoldenGate 12c Advanced Workshop Lab Exercise 2

7GoldenGate 12c Advanced Workshop Lab Exercise 2

8

[root@rac01 ~]# fdisk /dev/sdhWelcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.Be careful before using the write command.

Device does not contain a recognized partition tableBuilding a new DOS disklabel with disk identifier 0x01c1c439.

Command (m for help): nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p):Using default response pPartition number (1-4, default 1):First sector (2048-10485759, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):Using default value 10485759Partition 1 of type Linux and of size 5 GiB is set

Command (m for help): wThe partition table has been altered!

Calling ioctl() to re-read partition table.Syncing disks.[root@rac01 ~]#

GoldenGate 12c Advanced Workshop Lab Exercise 2

9

[root@rac01 ~]# /usr/sbin/oracleasm createdisk ASM7 /dev/sdh1Writing disk header: doneInstantiating disk: done

[root@rac01 ~]# /usr/sbin/oracleasm listdisksASM1ASM2ASM3ASM4ASM5ASM6ASM7

[root@rac01 ~]# ssh root@rac02root@rac02's password:Last login: Sat Apr 28 05:35:12 2018

[root@rac02 ~]# /usr/sbin/oracleasm scandisksReloading disk partitions: doneCleaning any stale ASM disks...Scanning system for ASM disks...Instantiating disk "ASM7"

[root@rac02 ~]# /usr/sbin/oracleasm listdisksASM1ASM2ASM3ASM4ASM5

GoldenGate 12c Advanced Workshop Lab Exercise 2

10

ASM6ASM7[root@rac02 ~]#

[root@rac02 ~]# exitlogoutConnection to rac02 closed

Create the DBFS_DG ASM Disk Group

[grid@rac01 ~]$ . oraenv

ORACLE_SID = [grid] ? +ASM1

The Oracle base has been set to /u01/app/grid

[grid@rac01 ~]$ asmca

GoldenGate 12c Advanced Workshop Lab Exercise 2

11GoldenGate 12c Advanced Workshop Lab Exercise 2

12GoldenGate 12c Advanced Workshop Lab Exercise 2

13GoldenGate 12c Advanced Workshop Lab Exercise 2

14

Download RPMs and install as root

dos2unix-3.1-37.el6.x86_64.rpm

[root@rac01 ~]# cd /media/sf_software/

[root@rac01 sf_software]# rpm -ivh dos2unix-3.1-37.el6.x86_64.rpm

warning: dos2unix-3.1-37.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY

Preparing... ################################# [100%]

Updating / installing...

1:dos2unix-3.1-37.el6 ################################# [100%]

https://centos.pkgs.org/7/centos-x86_64/numactl-2.0.9-6.el7_2.x86_64.rpm.html

[root@rac01 ~]# cd /media/sf_software/

[root@rac01 sf_software]# rpm -ivh numactl-2.0.9-6.el7_2.x86_64.rpm

warning: numactl-2.0.9-6.el7_2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key I D f4a80eb5: NOKEY

Preparing... ################################# [100%]

Updating / installing...

1:numactl-2.0.9-6.el7_2 ################################# [100%]

Add the oracle user to the fuse group and edit the fuse.conf file

[root@rac01 ~]# groupadd fuse

GoldenGate 12c Advanced Workshop Lab Exercise 2

15

[root@rac01 ~]# usermod -a -G fuse oracle

[root@rac01 ~]# usermod -a -G fuse grid

[root@rac01 ~]# echo user_allow_other > /etc/fuse.conf

[root@rac01 ~]# chmod 644 /etc/fuse.conf

[root@rac01 ~]# ssh root@rac02

root@rac02's password:

Last login: Sat Apr 28 08:55:12 2018 from rac01.localdomain

[root@rac02 ~]# groupadd fuse

[root@rac02 ~]# usermod -a -G fuse oracle

[root@rac02 ~]# usermod -a -G fuse grid

[root@rac02 ~]# echo user_allow_other > /etc/fuse.conf

[root@rac02 ~]# chmod 644 /etc/fuse.conf

[root@rac02 ~]# exit

logout

Connection to rac02 closed.Connection to rac02 closed.

Create the /dbfs mount point

GoldenGate 12c Advanced Workshop Lab Exercise 2

16

[root@rac01 ~]# cd /

[root@rac01 /]# mkdir dbfs

[root@rac01 /]# chown oracle:oinstall dbfs

[root@rac01 ~]# ssh root@rac02

root@rac02's password:

Last login: Tue Jun 27 16:31:40 2017 from rac01.localdomain

[root@rac02 ~]# cd /

[root@rac02 /]# mkdir dbfs

[root@rac02 /]# chown oracle:oinstall dbfs

[root@rac02 /]# exit

logout

Connection to rac02 closed.

[oracle@rac01 ~]$ . oraenvORACLE_SID = [+ASM1] ? racdbThe Oracle base remains unchanged with value /u01/app/oracle

[oracle@rac01 ~]$ export ORACLE_SID=racdb1

GoldenGate 12c Advanced Workshop Lab Exercise 2

17

[oracle@rac01 alert]$ srvctl status database -d racdb

Instance racdb1 is running on node rac01

Instance racdb2 is running on node rac02

Create the DBFS File System

[oracle@rac01 ~]$ sqlplus sys as sysdba

SQL> CREATE TABLESPACE dbfs_ogg datafile '+DBFS' SIZE 4G autoextend ON NEXT 1000M LOGGING EXTENT MANAGEMENT LOCALAUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created.

SQL> CREATE USER dbfs_user IDENTIFIED BY dbfsDEFAULT TABLESPACE dbfs_ogg QUOTA UNLIMITED ON dbfs_ogg;

User created.

SQL> GRANT create session, create table, create view,create procedure, dbfs_role TO dbfs_user;

Grant succeeded.

SQL> conn dbfs_user/dbfs

Connected.

SQL> @?/rdbms/admin/dbfs_create_filesystem dbfs_ogg dbfs_ogg

GoldenGate 12c Advanced Workshop Lab Exercise 2

18

No errors.

SQL>

SQL> conn / as sysdba

Connected.

SQL> SELECT table_name, segment_name, logging, cache

FROM dba_lobs WHERE tablespace_name like 'DBFS%';

2

TABLE_NAME

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

SEGMENT_NAME

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

LOGGING CACHE

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

SFS$_FST_1

LOB_SFS$_FST_1

YES NO

[oracle@rac01 alert]$ su - grid

Password:

Last login: Sat Apr 28 10:07:36 WST 2018

[grid@rac01 ~]$ . oraenv

GoldenGate 12c Advanced Workshop Lab Exercise 2

19

ORACLE_SID = [grid] ? +ASM1

The Oracle base has been set to /u01/app/grid

[grid@rac01 ~]$ crsctl status resource ogg_vip

NAME=ogg_vip

TYPE=app.appviptypex2.type

TARGET=ONLINE

STATE=ONLINE on rac02

Download the mount-dbfs-20160215.zip file from MOS

Configuring DBFS on Oracle Exadata Database Machine (Doc ID 1054431.1)

[oracle@rac01 bin]$ su - Password:

[oracle@rac01 alert]$ cd /media/sf_software/

[oracle@rac01 sf_software]$ cp mount-dbfs-20160215.zip /home/oracle

[oracle@host01 admin]$ cd

[oracle@host01 ~]$ unzip mount-dbfs-20160215.zip

GoldenGate 12c Advanced Workshop Lab Exercise 2

20

Archive: mount-dbfs-20160215.zip inflating: mount-dbfs.conf inflating: mount-dbfs.sh

[oracle@rac01 ~]$ su - Password: [root@rac01 sf_software]# which dos2unix/usr/bin/dos2unix

[root@rac01 ~]# cd /home/oracle

[root@rac01 oracle]# cp mount-dbfs.sh /u01/app/12.2.0/grid/crs/script/

[root@rac01 oracle]# chown oracle:oinstall /u01/app/12.2.0/grid/crs/script//mount-dbfs.sh

[root@rac01 oracle]# cp mount-dbfs.conf /etc/oracle

[root@rac01 oracle]# chown oracle:oinstall /etc/oracle/mount-dbfs.conf

Create the fuse symbolic links

[root@rac01 lib64]# ldconfig -p |grep fuse

libfuse.so.2 (libc6,x86-64) => /usr/lib64/libfuse.so.2

[root@rac01 lib64]# cd /usr/lib64

[root@rac01 lib64]# ln -s libfuse.so.2 libfuse.so

GoldenGate 12c Advanced Workshop Lab Exercise 2

21

[root@rac01 lib64]# ssh root@rac02

root@rac02's password:

Last login: Tue Jun 27 21:00:48 2017 from rac01.localdomain

[root@rac02 ~]# ldconfig -p |grep fuse

libfuse.so.2 (libc6,x86-64) => /usr/lib64/libfuse.so.2

[root@rac02 ~]# cd /usr/lib64

[root@rac02 lib64]# ln -s libfuse.so.2 libfuse.so

[root@rac02 lib64]# exit

logout

Connection to rac02 closed.

[root@rac01 lib64]# exit

logout

Edit the mount-dbfs.conf and mount-dbfs.sh files

[oracle@rac01 ~]$ vi /etc/oracle/mount-dbfs.conf

############################################## Everyone must set these values

GoldenGate 12c Advanced Workshop Lab Exercise 2

22

############################################## Database name for the DBFS repository as used in "srvctl status database -d $DBNAME"### If using PDB/CDB, this should be set to the CDB nameDBNAME=racdb

### Mount point where DBFS should be mounted MOUNT_POINT=/dbfs

### Username of the DBFS repository owner in database $DBNAMEDBFS_USER=dbfs_user

### RDBMS ORACLE_HOME directory pathORACLE_HOME= /acfs_oh/product/12.2.0/dbhome_1

### GRID HOME directory pathGRID_HOME=/u01/app/12.2.0/grid

############################################## If using password-based authentication, set these############################################## This is the plain text password for the DBFS_USER userDBFS_PASSWD=dbfs

### TNS_ADMIN is the directory containing tnsnames.ora and sqlnet.ora used by DBFSTNS_ADMIN= /acfs_oh/product/12.2.0/dbhome_1/network/admin

[oracle@rac01 ~]$ cd /u01/app/12.2.0/grid/crs/script/

[oracle@rac01 script]$ vi mount-dbfs.sh

GoldenGate 12c Advanced Workshop Lab Exercise 2

23

Change

FUSERMOUNT=/bin/fusermount

To

FUSERMOUNT=/usr/bin/fusermount

Test the mounting of the DBFS file system via the mount-dbfs.sh script

[oracle@rac01 script]$ ls -ltotal 16-rw-r--r-- 1 oracle oinstall 13263 Jun 27 20:51 mount-dbfs.sh[oracle@rac01 script]$ chmod +x *.sh

[oracle@rac01 script]$ ./mount-dbfs.sh startmount-dbfs.sh mounting DBFS at /dbfs from database racdbORACLE_SID is racdb1spawning dbfs_client command using SID racdb1nohup: redirecting stderr to stdoutStart – ONLINE

[oracle@rac01 script]$ df -h /dbfsFilesystem Size Used Avail Use% Mounted ondbfs-dbfs_user@:/ 4.9G 168K 4.9G 1% /dbfs

[oracle@rac01 script]$ ./mount-dbfs.sh stop

GoldenGate 12c Advanced Workshop Lab Exercise 2

24

unmounting DBFS from /dbfs

umounting the filesystem using '/usr/bin/fusermount -u /dbfs'

Stop - stopped, now not mounted

Create the add-dbfs-resource.sh script

[oracle@rac01 script]$ su Password:

[root@rac01 script]# pwdcd /u01/app/12.2.0/grid/crs/script/

[root@rac01 script]# vi add-dbfs-resource.sh#!/bin/bashACTION_SCRIPT=/u01/app/12.1.0/grid/crs/script/mount-dbfs.shRESNAME=dbfs_mountDEPNAME=ora.racdb.dbORACLE_HOME=/u01/app/12.2.0/gridPATH=$ORACLE_HOME/bin:$PATHexport PATH ORACLE_HOMEcrsctl add resource $RESNAME \-type cluster_resource \-attr "ACTION_SCRIPT=$ACTION_SCRIPT, \CHECK_INTERVAL=30,RESTART_ATTEMPTS=10, \START_DEPENDENCIES='hard($DEPNAME)pullup($DEPNAME)',\STOP_DEPENDENCIES='hard($DEPNAME)',\SCRIPT_TIMEOUT=300"

GoldenGate 12c Advanced Workshop Lab Exercise 2

25

[root@rac01 script]# chmod +x add-dbfs-resource.sh

[root@rac01 script]# chown oracle:oinstall add-dbfs-resource.sh

[root@rac01 script]# exit

logout

As oracle user, execute the add-dbfs-resource.sh script

[oracle@rac01 script]$ pwd

/u01/app/12.2.0/grid/crs/script

[oracle@rac01 script]$ ./add-dbfs-resource.sh

Copy the mount-dbfs* scripts to rac02

[root@rac01 script]# scp -rp * root@rac02:/u01/app/12.2.0/grid/crs/script/root@rac02's password: add-dbfs-resource.sh 100% 444 0.4KB/s 00:00 mount-dbfs.sh 100% 13KB 13.0KB/s 00:00

[root@rac01 oracle]# scp -rp /etc/oracle/mount-dbfs.conf root@rac02:/etc/oracleroot@rac02's password: mount-dbfs.conf 100% 3759 3.7KB/s 00:00

GoldenGate 12c Advanced Workshop Lab Exercise 2

26

[root@rac01 script]# ssh root@rac02root@rac02's password: Last login: Tue Jun 27 21:11:06 2017 from rac01.localdomain

[root@rac02 ~]# cd /u01/app/12.2.0/grid/crs/script/

[root@rac02 script]# chown oracle:oinstall *

[root@rac02 script]# ls -l total 20-rwxr-xr-x 1 oracle oinstall 444 Jun 28 09:38 add-dbfs-resource.sh-rwxr-xr-x 1 oracle oinstall 13267 Jun 27 21:18 mount-dbfs.sh

[root@rac02 ~]# cd /etc/oracle

[root@rac02 oracle]# chown oracle:oinstall mount-dbfs.conf

[root@rac02 oracle]# exitlogoutConnection to rac02 closed.

Test mounting of DBFS File System using Clusterware

[oracle@rac01 crs]$ cd /u01/app/12.2.0/grid/bin

[oracle@rac01 bin]$ ./crsctl stat res dbfs_mount -t--------------------------------------------------------------------------------Name Target State Server State details --------------------------------------------------------------------------------

GoldenGate 12c Advanced Workshop Lab Exercise 2

27

Cluster Resources--------------------------------------------------------------------------------dbfs_mount 1 OFFLINE OFFLINE STABLE

[oracle@rac01 bin]$ ./crsctl start resource dbfs_mountCRS-2672: Attempting to start 'dbfs_mount' on 'rac01'CRS-2676: Start of 'dbfs_mount' on 'rac01' succeeded

[oracle@rac01 bin]$ ./crsctl stat res dbfs_mount -t--------------------------------------------------------------------------------Name Target State Server State details--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------dbfs_mount 1 ONLINE ONLINE rac01 STABLE--------------------------------------------------------------------------------

[oracle@rac01 bin]$ df -h /dbfsFilesystem Size Used Avail Use% Mounted ondbfs-dbfs_user@:/ 4.9G 168K 4.9G 1% /dbfs

GoldenGate 12c Advanced Workshop Lab Exercise 2

28

Install the GoldenGate software on both rac01 and rac02.

[root@rac01 dbfs]# cd /

[root@rac01 /]# mkdir u02

[root@rac01 /]# cd /u02

[root@rac01 u02]# mkdir app

[root@rac01 u02]# chown oracle:oinstall app

[root@rac01 u02]# ssh root@rac02

root@rac02's password:

Last login: Mon Apr 30 16:44:04 2018

[root@rac02 ~]# cd /

[root@rac02 /]# mkdir u02

[root@rac02 /]# cd /u02

[root@rac02 u02]# mkdir app

[root@rac02 u02]# chown oracle:oinstall app

[root@rac02 u02]# exit

logout

Connection to rac02 closed.

GoldenGate 12c Advanced Workshop Lab Exercise 2

29

However, on rac02, do not start the manager – just install the software.

[oracle@rac01 Disk1]$ pwd

/media/sf_software/123012_fbo_ggs_Linux_x64_shiphome/fbo_ggs_Linux_x64_shiphome/Disk1

[oracle@rac01 Disk1]$ ./runInstaller

GoldenGate 12c Advanced Workshop Lab Exercise 2

30GoldenGate 12c Advanced Workshop Lab Exercise 2

31GoldenGate 12c Advanced Workshop Lab Exercise 2

32GoldenGate 12c Advanced Workshop Lab Exercise 2

33GoldenGate 12c Advanced Workshop Lab Exercise 2

34GoldenGate 12c Advanced Workshop Lab Exercise 2

35GoldenGate 12c Advanced Workshop Lab Exercise 2

36

On rac02, do not start the manager

GoldenGate 12c Advanced Workshop Lab Exercise 2

37GoldenGate 12c Advanced Workshop Lab Exercise 2

38

Execute the CREATE SUBDIRS command

On rac02, since we did not run the Configuration Assistants part of the installation we have to manually create the directories in the GoldenGate software home.

[oracle@rac02 ogg]$ . oraenvORACLE_SID = [oracle] ? racdbThe Oracle base has been set to /u01/app/oracle

[oracle@rac02 ContentsXML]$ cd /u02/app/goldengate/[oracle@rac02 goldengate]$ ./ggsci

GGSCI (rac02.localdomain) 1> create subdirs

Creating subdirectories under current directory /u02/app/goldengate

Parameter file /u02/app/goldengate/dirprm: created.Report file /u02/app/goldengate/dirrpt: created.Checkpoint file /u02/app/goldengate/dirchk: created.Process status files /u02/app/goldengate/dirpcs: created.SQL script files /u02/app/goldengate/dirsql: created.Database definitions files /u02/app/goldengate/dirdef: created.Extract data files /u02/app/goldengate/dirdat: created.Temporary files /u02/app/goldengate/dirtmp: created.Credential store files /u02/app/goldengate/dircrd: created.Masterkey wallet files /u02/app/goldengate/dirwlt: created.Dump files /u02/app/goldengate/dirdmp: created.

GoldenGate 12c Advanced Workshop Lab Exercise 2

39

Create the shared directories on the DBFS File System

[oracle@rac01 ~]$ cd /u02/app/goldengate/

[oracle@rac01 ogg]$ ./ggsci

GGSCI (rac01.localdomain) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

GGSCI (rac01.localdomain) 2> stop mgr !

Sending STOP request to MANAGER ...Request processed.Manager stopped.

[oracle@rac01 goldengate]$ cd /u01/app/12.2.0/grid/bin

[oracle@rac01 bin]$ ./crsctl status resource dbfs_mountNAME=dbfs_mountTYPE=cluster_resourceTARGET=ONLINESTATE=ONLINE on rac01

Note: If resource dbfs_mount is not running on rac01, then relocate it.

GoldenGate 12c Advanced Workshop Lab Exercise 2

40

[oracle@rac01 bin]$ ./crsctl relocate resource dbfs_mountCRS-2673: Attempting to stop 'dbfs_mount' on 'rac02'CRS-2677: Stop of 'dbfs_mount' on 'rac02' succeededCRS-2672: Attempting to start 'dbfs_mount' on 'rac01'CRS-2676: Start of 'dbfs_mount' on 'rac01' succeeded

[oracle@rac01 bin]$ cd /dbfs/dbfs_ogg/[oracle@rac01 dbfs]$ mkdir dirdat[oracle@rac01 dbfs]$ mkdir dirpcs[oracle@rac01 dbfs]$ mkdir dirchk[oracle@rac01 dbfs]$ mkdir dircrd[oracle@rac01 dbfs]$ mkdir dirwlt[oracle@rac01 dbfs]$ mkdir dirtmp[oracle@rac01 dbfs]$ mkdir dirprm[oracle@rac01 dbfs]$ mkdir BR

[oracle@rac01 dbfs]$ ls -ltotal 0drwxr-xr-x 2 oracle oinstall 0 Jun 28 10:17 BRdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirchkdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dircrddrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirdatdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirpcsdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirprmdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirtmpdrwxr-xr-x 2 oracle oinstall 0 Jun 28 10:16 dirwlt

[oracle@rac01 dbfs_ogg]$ cd /u02/app/goldengate/

[oracle@rac01 ogg]$ mv dirchk dirchk.old

GoldenGate 12c Advanced Workshop Lab Exercise 2

41

[oracle@rac01 ogg]$ mv dircrd dircrd.old[oracle@rac01 ogg]$ mv dirdat dirdat.old [oracle@rac01 ogg]$ mv dirpcs dirpcs.old[oracle@rac01 ogg]$ mv dirprm dirprm.old[oracle@rac01 ogg]$ mv dirtmp dirtmp.old[oracle@rac01 ogg]$ mv dirwlt dirwlt.old

[oracle@rac01 ogg]$ ssh oracle@rac02Last login: Tue Jun 27 09:04:40 2017 from rac01.localdomain

[oracle@rac02 ~]$ cd /u02/app/goldengate/

[oracle@rac02 ogg]$ mkdir BR [oracle@rac02 ogg]$ mv dirchk dirchk.old[oracle@rac02 ogg]$ mv dircrd dircrd.old[oracle@rac02 ogg]$ mv dirdat dirdat.old [oracle@rac02 ogg]$ mv dirpcs dirpcs.old[oracle@rac02 ogg]$ mv dirprm dirprm.old[oracle@rac02 ogg]$ mv dirtmp dirtmp.old[oracle@rac02 ogg]$ mv dirwlt dirwlt.old[oracle@rac02 ogg]$ exitlogoutConnection to rac02 closed.

[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirdat dirdat[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirchk dirchk[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirprm dirprm [oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dircrd dircrd[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirwlt dirwlt[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirpcs dirpcs

GoldenGate 12c Advanced Workshop Lab Exercise 2

42

[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/dirtmp dirtmp[oracle@rac01 ogg]$ ln -s /dbfs/dbfs_ogg/BR BR

[oracle@rac01 ogg]$ ssh oracle@rac02Last login: Wed Jun 28 10:20:44 2017 from rac01.localdomain

[oracle@rac02 ~]$ cd /u02/app/goldengate/

[oracle@rac02 ogg]$ ln -s /dbfs/dbfs/dirdat dirdat[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dirchk dirchk[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dirprm dirprm [oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dircrd dircrd[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dirwlt dirwlt[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dirpcs dirpcs[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/dirtmp dirtmp[oracle@rac02 ogg]$ ln -s /dbfs/dbfs_ogg/BR BR[oracle@rac02 ogg]$ exit

Create the Grid Infrastructure Agent (XAG) managed GoldenGate Resource

[oracle@rac01 BR]$ cd /u01/app/xag

[oracle@rac01 xag]$ cd bin

[oracle@rac01 bin]$ ./agctl remove goldengate ogg_ha

[oracle@rac01 bin]$ ./agctl add goldengate ogg_ha --gg_home /u02/app/goldengate --nodes rac01,rac02 --vip_name ogg_vip --filesystems dbfs_mount --databases ora.racdb.db --oracle_home /acfs_oh/product/12.2.0/dbhome_1 --monitor_extracts ext1 --critical_extracts ext1

GoldenGate 12c Advanced Workshop Lab Exercise 2

43

Configure the Manager process

[oracle@rac01 ogg]$ ./ggsci

GGSCI (rac01.localdomain) 1> edit params mgrPORT 7809

DYNAMICPORTLIST 7810-7890

LAGREPORTMINUTES 5LAGINFOMINUTES 5LAGCRITICALMINUTES 15

AUTOSTART EXTRACT e*AUTOSTART EXTRACT p*AUTOSTART REPLICAT r*

AUTORESTART EXTRACT eAUTORESTART EXTRACT p*AUTORESTART REPLICAT r*

PURGEOLDEXTRACTS ./dirdat/* MINKEEPDAYS 1 USECHECKPOINTS

ACCESSRULE, PROG *, IPADDR *, ALLOW

GoldenGate 12c Advanced Workshop Lab Exercise 2

44

Configure XAG/GoldenGate Integration (on both rac01 and rac02)

GGSCI (rac01.localdomain) 2> edit params ./GLOBALSXAG_ENABLE

GGSCI (rac01.localdomain) 3> shell echo $GRID_HOME

/u01/app/12.2.0/grid

GGSCI (rac01.localdomain) 3> exit[oracle@rac01 ogg]$

GGSCI (rac02.localdomain) 2> edit params ./GLOBALSXAG_ENABLE

GGSCI (rac02.localdomain) 3> shell echo $GRID_HOME

/u01/app/12.1.0/grid

GGSCI (rac02.localdomain) 2> exit[oracle@rac02 ogg]$

[oracle@rac01 ogg]$ ./ggsci

GGSCI (rac01.localdomain) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt XAG

GoldenGate 12c Advanced Workshop Lab Exercise 2

45

MANAGER STOPPED MANAGED/xag.ogg_ha.goldengate

Start the XAG Managed GoldenGate Resource

[oracle@rac01 goldengate]$ cd /u01/app/xag/bin

[oracle@rac01 bin]$ ./agctl start goldengate ogg_ha

[oracle@rac01 bin]$ ./agctl status goldengate ogg_haGoldengate instance 'ogg_ha' is running on rac01

GGSCI (rac01.localdomain) 1> info mgrManager is running (IP port rac01.localdomain.7809, Process ID 24317).

GGSCI (rac01.localdomain) 2> info all

Program Status Group Lag at Chkpt Time Since Chkpt XAG

MANAGER RUNNING MANAGED/xag.ogg_ha.goldengate/rac01

Create the Credential Store

GGSCI (rac01.localdomain) 2> add credentialstore

Credential store created in ./dircrd/.

GoldenGate 12c Advanced Workshop Lab Exercise 2

46

GGSCI (rac01.localdomain) 3> alter credentialstore add user oggadmin@racdb alias oggadmin_racdbPassword:

Credential store in ./dircrd/ altered.

GGSCI (rac01.localdomain) 1> dblogin useridalias oggadmin_racdbSuccessfully logged into database.

Create the Integrated Extract

GGSCI (rac01.localdomain as oggadmin@racdb1) 2> add extract ext1 integrated tranlog begin now EXTRACT (Integrated) added.

GGSCI (rac01.localdomain as oggadmin@racdb1) 3> add exttrail ./dirdat/lt extract ext1EXTTRAIL added.

GGSCI (rac01.localdomain as oggadmin@racdb1) 16> unregister extract ext1 database

2018-04-30 22:41:57 INFO OGG-01750 Successfully unregistered EXTRACT EXT1 from database.

GGSCI (rac01.localdomain as oggadmin@racdb1) 17> register extract ext1 database

2018-04-30 22:42:52 INFO OGG-02003 Extract EXT1 successfully registered with database at SCN 17158582.

GoldenGate 12c Advanced Workshop Lab Exercise 2

47

GGSCI (rac01.localdomain as oggadmin@racdb1) 5> edit params ext1EXTRACT ext1USERIDALIAS oggadmin_racdbEXTTRAIL ./dirdat/ltTABLE demo.myobjects;

GGSCI (rac01.localdomain as oggadmin@racdb1) 14> start ext1

Sending START request to MANAGER ...EXTRACT EXT1 starting

GGSCI (rac01.localdomain as oggadmin@racdb1) 19> info ext1

EXTRACT EXT1 Last Started 2018-04-30 22:48 Status RUNNINGCheckpoint Lag 00:00:04 (updated 00:00:02 ago)Process ID 31832Log Read Checkpoint Oracle Integrated Redo Logs 2018-04-30 22:52:43 SCN 0.17184232 (17184232)

Note that GoldenGate files which need to be shared are located on DBFS file system

GGSCI (rac01.localdomain as oggadmin@racdb1) 21> shell ls -lrt /dbfs/dbfs_ogg/dirdat/*

-rw-r----- 1 oracle oinstall 1410 Apr 30 22:48 /dbfs/dbfs_ogg/dirdat/lt000000000

GoldenGate 12c Advanced Workshop Lab Exercise 2

48

Test the failover of GoldenGate by shutting down node rac01

[oracle@rac02 ogg]$ cd /u01/app/oracle/product/xag/bin

[oracle@rac02 bin]$ ./agctl status goldengate ogg_haGoldengate instance 'ogg_ha' is running on rac01

[oracle@rac01 dirprm]$ su - Password: [root@rac01 ~]# shutdown -h now

[oracle@rac02 bin]$ ./agctl status goldengate ogg_haGoldengate instance 'ogg_ha' is not running

[oracle@rac02 bin]$ ./agctl status goldengate ogg_haGoldengate instance 'ogg_ha' is not running

[oracle@rac02 bin]$ ./agctl status goldengate ogg_haGoldengate instance 'ogg_ha' is running on rac02

[oracle@rac02 bin]$ df -k /dbfsFilesystem 1K-blocks Used Available Use% Mounted ondbfs-dbfs_user@:/ 5090304 1248 5089056 1% /dbfs

[oracle@rac02 bin]$ cd /u01/app/oracle/ogg

[oracle@rac02 ogg]$ ./ggsci

GoldenGate 12c Advanced Workshop Lab Exercise 2

49

GGSCI (rac02.localdomain) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt XAG

MANAGER RUNNING MANAGED/xag.ogg_ha.goldengate EXTRACT RUNNING EXT1 00:00:10 00:00:00 CRITICAL

Remove the GoldenGate XAG Resource and drop the racdb database

[oracle@rac02 bin]$ ./agctl stop goldengate ogg_ha

[oracle@rac02 bin]$ ./agctl status goldengate ogg_ha Goldengate instance 'ogg_ha' is not running

[oracle@rac02 bin]$ cd /u01/app/12.1.0/grid/bin

[oracle@rac02 bin]$ ./crsctl stop resource dbfs_mountCRS-2673: Attempting to stop 'dbfs_mount' on 'rac02'CRS-2677: Stop of 'dbfs_mount' on 'rac02' succeeded

[oracle@rac02 bin]$ srvctl stop database -d racdb

[oracle@rac02 bin]$ srvctl remove database -d racdbRemove the database racdb? (y/[n]) yPRKO-3077 : Failed to remove database racdb: PRCD-1032 : Failed to remove database resource racdbPRCR-1028 : Failed to remove resource ora.racdb.dbPRCR-1072 : Failed to unregister resource ora.racdb.dbCRS-2730: Resource 'dbfs_mount' depends on resource 'ora.racdb.db'

GoldenGate 12c Advanced Workshop Lab Exercise 2

50

[oracle@rac02 bin]$ srvctl remove database -d racdb -f

[oracle@rac02 bin]$ export ORACLE_SID=racdb2

[oracle@rac02 bin]$ sqlplus sys as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jul 4 10:25:23 2017

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Enter password: Connected to an idle instance.

SQL> startup mount restrict;ORACLE instance started.

Total System Global Area 1509949440 bytesFixed Size 2924640 bytesVariable Size 1459621792 bytesDatabase Buffers 33554432 bytesRedo Buffers 13848576 bytesDatabase mounted.

SQL> alter system set cluster_database=false scope=spfile;

System altered.

SQL> shutdown immediate;ORA-01109: database not open

GoldenGate 12c Advanced Workshop Lab Exercise 2

51

Database dismounted.ORACLE instance shut down.

SQL> startup mount restrict;ORACLE instance started.

Total System Global Area 1509949440 bytesFixed Size 2924640 bytesVariable Size 1459621792 bytesDatabase Buffers 33554432 bytesRedo Buffers 13848576 bytesDatabase mounted.

SQL> drop database;

Database dropped.

GoldenGate 12c Advanced Workshop Lab Exercise 2

top related