2026-03-12 21:01:38
This commit is contained in:
239
tiddlywiki/Dataguard 21c standalone creation - example.md
Executable file
239
tiddlywiki/Dataguard 21c standalone creation - example.md
Executable file
@@ -0,0 +1,239 @@
|
||||
Network configuration
|
||||
---------------------
|
||||
|
||||
`/etc/listener.ora` on primary server:
|
||||
|
||||
|
||||
LISTENER_DG =
|
||||
(ADDRESS_LIST=
|
||||
(ADDRESS=(PROTOCOL=tcp)(HOST=taris.swgalaxy)(PORT=1523))
|
||||
)
|
||||
|
||||
SID_LIST_LISTENER_DG =
|
||||
(SID_LIST =
|
||||
(SID_DESC =
|
||||
(GLOBAL_DBNAME = ASTYPRD_DGMGRL)
|
||||
(SID_NAME = ASTYPRD)
|
||||
(ORACLE_HOME = /app/oracle/product/21)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
`/etc/listener.ora` on secondary server:
|
||||
|
||||
LISTENER_DG =
|
||||
(ADDRESS_LIST=
|
||||
(ADDRESS=(PROTOCOL=tcp)(HOST=mandalore.swgalaxy)(PORT=1523))
|
||||
)
|
||||
|
||||
SID_LIST_LISTENER_DG =
|
||||
(SID_LIST =
|
||||
(SID_DESC =
|
||||
(GLOBAL_DBNAME = ASTYDRP_DGMGRL)
|
||||
(SID_NAME = ASTYDRP)
|
||||
(ORACLE_HOME = /app/oracle/product/21)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Start `LISTENER_DG` on both servers:
|
||||
|
||||
lsnrctl start LISTENER_DG
|
||||
|
||||
|
||||
`/etc/tnsnames.ora` on both servers:
|
||||
|
||||
ASTYPRD_DGMGRL =
|
||||
(DESCRIPTION =
|
||||
(ADDRESS_LIST =
|
||||
(ADDRESS = (PROTOCOL = TCP)(HOST = taris.swgalaxy)(PORT = 1523))
|
||||
)
|
||||
(CONNECT_DATA =
|
||||
(SERVER = DEDICATED)
|
||||
(SERVICE_NAME = ASTYPRD_DGMGRL)
|
||||
)
|
||||
)
|
||||
|
||||
ASTYDRP_DGMGRL =
|
||||
(DESCRIPTION =
|
||||
(ADDRESS_LIST =
|
||||
(ADDRESS = (PROTOCOL = TCP)(HOST = mandalore.swgalaxy)(PORT = 1523))
|
||||
)
|
||||
(CONNECT_DATA =
|
||||
(SERVER = DEDICATED)
|
||||
(SERVICE_NAME = ASTYDRP_DGMGRL)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Dataguard initial duplication
|
||||
-----------------------------
|
||||
|
||||
From primary init.ora, create an init.ora from secondary database, test-it starting the secondary database in nomount and create a spfile from this init.ora. Startup secondary database in nomount mode. Copy also the passwordfile from primry to secondary server.
|
||||
|
||||
Try cross connections from both primary and secondary servers:
|
||||
|
||||
sqlplus 'sys/"*****"'@ASTYPRD_DGMGRL as sysdba
|
||||
sqlplus 'sys/"*****"'@ASTYDRP_DGMGRL as sysdba
|
||||
|
||||
|
||||
Create standby redolog on primary database using the result of following queries:
|
||||
|
||||
select 'ALTER DATABASE ADD STANDBY LOGFILE THREAD '||thread#||' size '||bytes||';' from v$log;
|
||||
select distinct 'ALTER DATABASE ADD STANDBY LOGFILE THREAD '||thread#||' size '||bytes||';' from v$log;
|
||||
|
||||
If you plan to use backups on standby database, set required RMAN parameters **prior** to duplicate step:
|
||||
|
||||
configure archivelog deletion policy to applied on all standby;
|
||||
configure db_unique_name 'ASTYDRP' connect identifier 'ASTYDRP_DGMGRL';
|
||||
configure db_unique_name 'ASTYPRD' connect identifier 'ASTYPRD_DGMGRL';
|
||||
|
||||
|
||||
Duplicate primary database *for standby*:
|
||||
|
||||
rman target='sys/"*****"'@ASTYPRD_DGMGRL auxiliary='sys/"*****"'@ASTYDRP_DGMGRL
|
||||
|
||||
run
|
||||
{
|
||||
allocate channel pri01 device type disk;
|
||||
allocate channel pri02 device type disk;
|
||||
allocate channel pri03 device type disk;
|
||||
allocate channel pri04 device type disk;
|
||||
allocate channel pri05 device type disk;
|
||||
allocate channel pri06 device type disk;
|
||||
allocate channel pri07 device type disk;
|
||||
allocate channel pri08 device type disk;
|
||||
allocate channel pri09 device type disk;
|
||||
allocate channel pri10 device type disk;
|
||||
|
||||
allocate auxiliary channel aux01 device type disk;
|
||||
allocate auxiliary channel aux02 device type disk;
|
||||
allocate auxiliary channel aux03 device type disk;
|
||||
allocate auxiliary channel aux04 device type disk;
|
||||
allocate auxiliary channel aux05 device type disk;
|
||||
allocate auxiliary channel aux06 device type disk;
|
||||
allocate auxiliary channel aux07 device type disk;
|
||||
allocate auxiliary channel aux08 device type disk;
|
||||
allocate auxiliary channel aux09 device type disk;
|
||||
allocate auxiliary channel aux10 device type disk;
|
||||
|
||||
duplicate database 'ASTY' for standby
|
||||
from active database using compressed backupset section size 512M;
|
||||
}
|
||||
|
||||
|
||||
It is nor mandatory but recommanded to activate flashback on both databases (leaving for exmple then default retention target of 1 day):
|
||||
|
||||
alter database flashback ON;
|
||||
|
||||
|
||||
Dataguard broker configuration
|
||||
------------------------------
|
||||
|
||||
On primary database:
|
||||
|
||||
alter system set dg_broker_config_file1='/app/oracle/base/admin/ASTYPRD/dgmgrl/dr1ASTYPRD.dat' scope=both sid='*';
|
||||
alter system set dg_broker_config_file2='/app/oracle/base/admin/ASTYPRD/dgmgrl/dr2ASTYPRD.dat' scope=both sid='*';
|
||||
alter system set dg_broker_start=TRUE scope=both sid='*';
|
||||
|
||||
On secondary database:
|
||||
|
||||
alter system set dg_broker_config_file1='/app/oracle/base/admin/ASTYDRP/dgmgrl/dr1ASTYDRP.dat' scope=both sid='*';
|
||||
alter system set dg_broker_config_file2='/app/oracle/base/admin/ASTYDRP/dgmgrl/dr2ASTYDRP.dat' scope=both sid='*';
|
||||
alter system set dg_broker_start=TRUE scope=both sid='*';
|
||||
|
||||
On primary or secondary server:
|
||||
|
||||
dgmgrl
|
||||
connect sys/*****@ASTYPRD_DGMGRL
|
||||
|
||||
create configuration ASTY as
|
||||
primary database is ASTYPRD
|
||||
connect identifier is ASTYPRD_DGMGRL;
|
||||
|
||||
add database ASTYDRP
|
||||
as connect identifier is ASTYDRP_DGMGRL
|
||||
maintained as physical;
|
||||
|
||||
enable configuration;
|
||||
|
||||
edit database 'astyprd' set property ArchiveLagTarget=0;
|
||||
edit database 'astyprd' set property LogArchiveMaxProcesses=2;
|
||||
edit database 'astyprd' set property LogArchiveMinSucceedDest=1;
|
||||
edit database 'astyprd' set property StandbyFileManagement='AUTO';
|
||||
|
||||
edit database 'astydrp' set property ArchiveLagTarget=0;
|
||||
edit database 'astydrp' set property LogArchiveMaxProcesses=2;
|
||||
edit database 'astydrp' set property LogArchiveMinSucceedDest=1;
|
||||
edit database 'astydrp' set property StandbyFileManagement='AUTO';
|
||||
|
||||
edit instance 'ASTYPRD' set property 'StaticConnectIdentifier'='ASTYPRD_DGMGRL';
|
||||
edit instance 'ASTYDRP' set property 'StaticConnectIdentifier'='ASTYPRD_DGMGRL';
|
||||
|
||||
edit instance 'ASTYPRD' set property 'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=taris.swgalaxy)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=ASTYPRD_DGMGRL)(INSTANCE_NAME=ASTYPRD)(SERVER=DEDICATED)))';
|
||||
edit instance 'ASTYDRP' set property 'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mandalore.swgalaxy)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=ASTYDRP_DGMGRL)(INSTANCE_NAME=ASTYDRP)(SERVER=DEDICATED)))';
|
||||
|
||||
|
||||
Wait a couple of minutes (after eventually archiving current log on primary database) therefore:
|
||||
|
||||
show configuration
|
||||
show database 'astyprd'
|
||||
show database 'astydrp'
|
||||
|
||||
validate database 'astyprd'
|
||||
validate database 'astydrp'
|
||||
|
||||
|
||||
To disable/enable redo apply on standby database:
|
||||
|
||||
edit database 'astydrp' set state='APPLY-OFF';
|
||||
edit database 'astydrp' set state='ONLINE';
|
||||
|
||||
|
||||
|
||||
Backup primary and standby databases
|
||||
------------------------------------
|
||||
|
||||
Backup primary database:
|
||||
|
||||
rman target /
|
||||
|
||||
run
|
||||
{
|
||||
set nocfau;
|
||||
allocate channel ch01 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYPRD/%d_%U_%s_%t.bck';
|
||||
allocate channel ch02 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYPRD/%d_%U_%s_%t.bck';
|
||||
allocate channel ch03 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYPRD/%d_%U_%s_%t.bck';
|
||||
allocate channel ch04 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYPRD/%d_%U_%s_%t.bck';
|
||||
backup as compressed backupset incremental level 0 database section size 2G include current controlfile plus archivelog delete input;
|
||||
release channel ch01;
|
||||
release channel ch02;
|
||||
release channel ch03;
|
||||
release channel ch04;
|
||||
allocate channel ch01 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYPRD/%d_%U_%s_%t.controlfile';
|
||||
backup current controlfile;
|
||||
release channel ch01;
|
||||
}
|
||||
|
||||
|
||||
Backup standby database:
|
||||
|
||||
rman target='"sys/*****"'
|
||||
|
||||
run
|
||||
{
|
||||
set nocfau;
|
||||
allocate channel ch01 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYDRP/%d_%U_%s_%t.bck';
|
||||
allocate channel ch02 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYDRP/%d_%U_%s_%t.bck';
|
||||
allocate channel ch03 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYDRP/%d_%U_%s_%t.bck';
|
||||
allocate channel ch04 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYDRP/%d_%U_%s_%t.bck';
|
||||
backup as compressed backupset incremental level 0 database section size 2G include current controlfile plus archivelog delete input;
|
||||
release channel ch01;
|
||||
release channel ch02;
|
||||
release channel ch03;
|
||||
release channel ch04;
|
||||
allocate channel ch01 device type disk format '/mnt/yavin4/tmp/_oracle_/orabackup/ASTYDRP/%d_%U_%s_%t.controlfile';
|
||||
backup current controlfile;
|
||||
release channel ch01;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user