Энэ удаад 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 [email protected]:/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 [email protected]:/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;
Баазыг амжилттай хуулбарлаж дууслаа. Унтрааж асааж шалгах хэрэгтэй.