Duplicate database from RAC to Single node

Энэ удаад RAC орчины баазыг энгийн бааз руу хэрхэн хуулбарлах талаар жишээгээр тайлбарлая.

rac-node01.oracloud.mn сервер нь 2 node RAC бүхий кластерын нэг гишүүн сервер гэж ойлгох бөгөөд db02.oracloud.mn серверийг Single Node бүхий зөвхөн оракл бааз суусан сервер гэж ойлгоно.

tnsnames.ora бичилт тохируулах.

DB01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-node01.oracloud.mn)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DB01)
    )
  )

DB02 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db02.oracloud.mn)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DB02)
    )
  )

tnsnames.ora нь бүх сервер дээр байх шаардлагатай бөгөөд хуулбар баазыг үүсгэх серверээс нөгөө баазруу холбогдох бичилт байхгүй тохиолдолд “ORA-17629: ‘Cannot connect to the remote database server’ with RMAN when related to SQLNET.INBOUND_CONNECT_TIMEOUT parameter (Doc ID 1056174.1)” эсвэл “Duplicate From Active Database Errors : ORA-17629 ORA-17627 ORA-12154 (Doc ID 1144273.1)” эсвэл “RMAN Active Duplicate on RAC fails with ORA-17629 and ORA-17627: ORA-12154 (Doc ID 1982003.1)” алдаануудаас заана

spfile файлыг ажиллаж буй баазаас гаргаж авна.

SQL> create pfile='/tmp/pfile.ora' from spfile; 

pfile-ийг Single Instance-д зориулж засварлана

vi /tmp/pfile.ora

Агуулга нь :

audit_file_dest='/u01/app/oracle/admin/DB02/adump'
audit_trail='db'
cluster_database=false
compatible='12.1.0.2.0'
control_files='/u01/app/oracle/oradata/DB02/control01.ctl','/u01/app/oracle/fast_recovery_area/DB02/control02.ctl'
db_block_size=8192
db_create_file_dest='/u01/app/oracle/oradata'
db_create_online_log_dest_1='/u01/app/oracle/oradata'
db_create_online_log_dest_2='/u01/app/oracle/fast_recovery_area'
db_domain=''
db_flashback_retention_target=1440
db_name='DB02'
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=280g
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=DB02XDB)'
log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST'
log_archive_format='%t_%s_%r.dbf'
log_archive_max_processes=4
log_archive_min_succeed_dest=1
log_archive_trace=0
pga_aggregate_target=3g
processes=200
remote_login_passwordfile='exclusive'
sec_case_sensitive_logon=TRUE
service_names='DB02'
sga_target=10g
sga_max_size=11g
thread=1
undo_tablespace='UNDOTBS1'

cluster_database=false мөрийг анхаарах шаардлагатай. Дээрх утгуудад ороогүй мөрийг устгаж болно.

Хуулбар баазын файлуудыг агуулах хавтсуудыг үүсгэж бэлтгэнэ

mkdir -p /u01/app/oracle/oradata/DB02
mkdir -p /u01/app/oracle/fast_recovery_area/DB02
mkdir -p /u01/app/oracle/admin/DB02/adump

pfile-г хуулбар баазын сервер руу хуулна

    scp /tmp/pfile.ora oracle@db02.oracloud.mn:/u01/app/oracle/product/12.1.0/dbhome_1/dbs/pfile.ora

Нууц үгийн файлыг хуулна

[root@db01 ~]$ su - grid
[grid@db01 ~]$asmcmd
ASMCMD> pwcopy +DATA/DB01/password/pwfile /tmp/orapwDB02
[grid@db01 ~]$scp /tmp/orapwDB02 oracle@db02.oracloud.mn:/u01/app/oracle/product/12.1.0/dbhome_1/dbs/

Хуулбар баазын орчныг бэлтгэх

[oracle@db02 ~]$ echo "DB02:/u01/app/oracle/product/12.1.0/dbhome_1:N" >> /etc/oratab
[oracle@db02 ~]$ . oraenv
ORACLE_SID = [oracle] ? DB02
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@db02 ~]$

Хуулбар баазын инстансыг эхлүүлэх

[oracle@db02 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri May 31 03:43:23 2019

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

Connected to an idle instance.

SQL> create spfile from pfile='/u01/app/oracle/product/12.1.0/dbhome_1/dbs/pfile.ora';
  File created
SQL> 
SQL> startup nomount
ORACLE instance started.

Total System Global Area 1.1811E+10 bytes
Fixed Size                  2937248 bytes
Variable Size            3422555744 bytes
Database Buffers         8355053568 bytes
Redo Buffers               30613504 bytes
SQL> alter system register;

System altered.

SQL> exit

Инстансыг эхлүүлэхэд “ORA-27104: system-defined limits for shared memory was misconfigured” алдаа заавал энд дарж шийдлийг харна уу.

2 бааз руу RMAN ашиглан холбогдох

rman target sys/***@DB01 nocatalog auxiliary sys/***@DB02

RMAN Active Duplicate on RAC fails with ORA-17629 and ORA-17627: ORA-12154 (Doc ID 1982003.1) – Энэ алдаа гарвал дараах байдлаар холбогдох шаардлагатай.

rman target sys/***@DB01 nocatalog auxiliary sys/***@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db02.oracloud.mn)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DB02)(UR=A)))

Баазыг хуулбарлах коммандыг ажиллуулна

duplicate database to DB02 from active database nofilenamecheck;

Хуулбарлалтыг амжилттай дуусгасан бол дараах төгсгөлийн мөр харагдана.

contents of Memory Script:

{

Alter DB02 database open resetlogs;

}

executing Memory Script

database opened

Finished Duplicate

RAC threads -ийг болиулна

SQL> alter database disable thread 2;
SQL> select * from gv$logfile;
SQL> select group# from v$log where THREAD#=2;

GROUP#
-- -- -- -- --
3
4

SQL> alter database drop logfile group 3;
SQL> alter database drop logfile group 4;

Илүү undo tablespaces-ийг устгана.

SQL> select tablespace_name from dba_tablespaces where contents=UNDO;

TABLESPACE_NAME
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
UNDOTBS1
UNDOTBS2

SQL> drop tablespace  UNDOTBS2  including contents and datafiles;

SQL> select tablespace_name from dba_tablespaces where contents=UNDO;

Баазыг амжилттай хуулбарлаж дууслаа. Унтрааж асааж шалгах хэрэгтэй.

1 Like