DBCA를 사용하여 RAC 대기 데이터베이스 생성 [19c 버전]
시작하기 전에 버전 제한을 확인하는 것이 중요합니다. 예를 들어 12.2에서는 단일 인스턴스 데이터베이스만 생성할 수 있습니다(Frank Pachot[ https://blog.dbi-services.com/12cr2-dbca-can-create-a-standby-database/]의 이 기사 참조). 19c의 이 게시물에서 볼 수 있습니다.
간단하게 하기 위해 이미 Archivelog 모드에 있는 기본 데이터베이스를 사용하고 있으며 대기 데이터베이스를 가질 준비가 되어 있습니다.
INSTANCE HOST_NAME DATABASE_ROLE
-------- ----------------------- ---------------
db192 rac1-node2.raclab.local PRIMARY
db191 rac1-node1.raclab.local PRIMARY
기본 사이트에서 가장 먼저 해야 할 일은 tnsnames 파일에 새 대기 이름을 추가하는 것입니다.
[oracle@rac1-node1 ~]$ nano /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
[...]
DBCADG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbcadg)
)
)
이제 Standby에서는 항상 대기를 생성하려는 환경 변수를 설정하려고 시도합니다.
[oracle@rac2-node1 ~]$ . oraenv
ORACLE_SID = [oracle] ? dbcadg1
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/19.3.0/dbhome_1
이것은 대기를 생성하는 데 사용할 수 있는 명령의 예입니다.
"primaryDBConnectionString"매개변수에 "tnsnames"이름을 사용할 수 있어야 하지만 몇 가지 문제가 있어 기본 노드를 직접 가리키기로 결정했습니다.
dbca -silent \
-createDuplicateDB \
-gdbName db19 \
-sid dbcadg \
-initParams db_create_file_dest=+DATA,db_recovery_file_dest=+RECO \
-primaryDBConnectionString rac1-node1:1521/db19 \
-sysPassword "Welcome1" \
-createAsStandby \
-adminManaged \
-databaseConfigType RAC \
-nodelist rac2-node1,rac2-node2 -dbUniqueName dbcadg
대기를 생성하자
[oracle@rac2-node1 ~]$ dbca -silent \
> -createDuplicateDB \
> -gdbName db19 \
> -sid dbcadg \
> -initParams db_create_file_dest=+DATA,db_recovery_file_dest=+RECO \
> -primaryDBConnectionString rac1-node1:1521/db19 \
> -sysPassword "Welcome1" \
> -createAsStandby \
> -adminManaged \
> -databaseConfigType RAC \
> -nodelist rac2-node1,rac2-node2 -dbUniqueName dbcadg
Prepare for db operation
22% complete
Listener config step
44% complete
Auxiliary instance creation
67% complete
RMAN duplicate
89% complete
Post duplicate database operations
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/dbcadg/dbcadg.log" for further details.
[oracle@rac2-node1 ~]$
더 자세한 진행 상황을 원하면(시스템이 실제로 수행하는 작업을 확인하는 것이 좋습니다) dbca cfgtoollogs 디렉토리를 확인하십시오.
(일반적으로 "/u01/app/oracle/cfgtoollogs/dbca/DB_NAME/")
[oracle@rac2-node1 ~]$ tail -f /u01/app/oracle/cfgtoollogs/dbca/dbcadg/trace.log_2020-08-14_01-23-33PM
[Thread-611] [ 2020-08-14 13:28:10.974 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=
[Thread-611] [ 2020-08-14 13:28:10.975 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=executing command: SET NEWNAME
[Thread-611] [ 2020-08-14 13:28:10.996 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=
[Thread-611] [ 2020-08-14 13:28:11.032 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=Starting restore at 14-AUG-20
[Thread-611] [ 2020-08-14 13:28:11.042 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=using channel ORA_AUX_DISK_1
[Thread-611] [ 2020-08-14 13:28:11.290 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=
[Thread-611] [ 2020-08-14 13:28:11.753 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: starting datafile backup set restore
[Thread-611] [ 2020-08-14 13:28:11.754 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: using network backup set from service rac1-node1:1521/db19
[....]
[Thread-611] [ 2020-08-14 13:31:46.126 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=contents of Memory Script:
[Thread-611] [ 2020-08-14 13:31:46.127 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output={
[Thread-611] [ 2020-08-14 13:31:46.128 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output= sql clone "create spfile from memory";
[Thread-611] [ 2020-08-14 13:31:46.130 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output= shutdown clone immediate;
[Thread-611] [ 2020-08-14 13:31:46.131 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output= startup clone nomount;
[Thread-611] [ 2020-08-14 13:31:46.132 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output= restore clone from service 'rac1-node1:1521/db19' standby controlfile;
[Thread-611] [ 2020-08-14 13:31:46.134 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=}
[Thread-611] [ 2020-08-14 13:31:46.135 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=executing Memory Script
[Thread-611] [ 2020-08-14 13:31:46.136 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=
[....]
[Thread-611] [ 2020-08-14 13:33:19.226 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: restoring datafile 00001 to +DATA
[Thread-611] [ 2020-08-14 13:34:34.359 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16
[Thread-611] [ 2020-08-14 13:34:34.428 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: starting datafile backup set restore
[Thread-611] [ 2020-08-14 13:34:34.429 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: using network backup set from service rac1-node1:1521/db19
[Thread-611] [ 2020-08-14 13:34:34.677 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
[Thread-611] [ 2020-08-14 13:34:34.678 BST ] [RMANEngine.readSqlOutput:997] Log RMAN Output=channel ORA_AUX_DISK_1: restoring datafile 00003 to +DATA
그리고 짜잔!, 새로운 대기 데이터베이스가 생성되었습니다.
oracle@rac2-node1 ~$ srvctl status database -d dbcadg -v
Instance dbcadg1 is running on node rac2-node1. Instance status: Open,Readonly.
Instance dbcadg2 is running on node rac2-node2. Instance status: Open,Readonly.
oracle@rac2-node1 ~$
이제 고려해야 할 몇 가지 사항이 있습니다(마지막에 출력을 남김).
다른 모든 것과 마찬가지로 어떤 사람들은 RMAN Duplicate 또는 다른 스크립트/메소드를 선호하지만 대기를 생성하는 좋은 방법이라고 생각했으며 중요하다고 생각하는 것은 사용할 수 있는 모든 옵션이 있다는 것입니다. 상황에 따라 올바른 결정
시스템이 충분히 단순하다면 Ansible과 같이 시스템이 자동으로 생성되도록 추가 옵션이나 스크립트를 추가할 수 있습니다. :)
Reference
이 문제에 관하여(DBCA를 사용하여 RAC 대기 데이터베이스 생성 [19c 버전]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/project42/create-rac-standby-database-using-dbca-19c-version-1m8m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)