Azure Linux sanal makinesinde Oracle Data Guard 'ı uygulama
Uygulama hedefi: : Heavy_check_mark: Linux VM 'leri
Azure CLI, komut satırından veya betik içindeki Azure kaynaklarını yönetmek veya bu kaynakları oluşturmak için kullanılır. Bu makalede, Azure Marketi 'nin Azure Marketi görüntüsünden bir Oracle Database 12c veritabanı dağıtmak için Azure CLı 'nin nasıl kullanılacağı açıklanır. Bu makalede, bir Azure sanal makinesine (VM) Data Guard 'ı nasıl yükleyeceğiniz ve yapılandırabileceğiniz adım adım gösterilir.
Başlamadan önce, Azure CLı 'nin yüklü olduğundan emin olun. Daha fazla bilgi için bkz. Azure CLI yükleme kılavuzu.
Ortamı hazırlama
Varsayımlar
Oracle Data Guard 'ı yüklemek için aynı Kullanılabilirlik kümesinde iki Azure VM oluşturmanız gerekir:
- Birincil VM (myVM1) çalışan bir Oracle örneğine sahiptir.
- Bekleme sanal makinesi (myVM2) yalnızca Oracle yazılımının yüklü olduğu bir.
VM 'Leri oluşturmak için kullandığınız Market görüntüsü Oracle: Oracle-Database-Ee: 12.1.0.2: Latest.
Azure'da oturum açma
Az Login komutunu kullanarak Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri izleyin.
az login
Kaynak grubu oluşturma
az group create komutunu kullanarak bir kaynak grubu oluşturun. Azure Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.
Aşağıdaki örnek westus konumunda myResourceGroup adlı bir kaynak grubu oluşturur:
az group create --name myResourceGroup --location westus
Kullanılabilirlik kümesi oluşturma
Bir kullanılabilirlik kümesi oluşturmak isteğe bağlıdır, ancak bunu yapmanızı öneririz. Daha fazla bilgi için bkz. Azure kullanılabilirlik kümeleri yönergeleri.
az vm availability-set create \
--resource-group myResourceGroup \
--name myAvailabilitySet \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Sanal makine oluşturma
Az VM Create komutunu kullanarak bir VM oluşturun.
Aşağıdaki örnek, ve adlı iki sanal makine oluşturur myVM1 myVM2 . Varsayılan anahtar konumunda zaten mevcut değilse, SSH anahtarları da oluşturur. Belirli bir anahtar kümesini kullanmak için --ssh-key-value seçeneğini kullanın.
MyVM1 oluştur (birincil):
az vm create \
--resource-group myResourceGroup \
--name myVM1 \
--availability-set myAvailabilitySet \
--image Oracle:Oracle-Database-Ee:12.1.0.2:latest \
--size Standard_DS1_v2 \
--admin-username azureuser \
--generate-ssh-keys \
VM 'yi oluşturduktan sonra, Azure CLı aşağıdaki örneğe benzer bilgiler gösterir. Değerini aklınızda edin publicIpAddress . Bu adresi sanal makineye erişmek için kullanırsınız.
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "westus",
"macAddress": "00-0D-3A-36-2F-56",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "13.64.104.241",
"resourceGroup": "myResourceGroup"
}
MyVM2 oluşturma (bekleme):
az vm create \
--resource-group myResourceGroup \
--name myVM2 \
--availability-set myAvailabilitySet \
--image Oracle:Oracle-Database-Ee:12.1.0.2:latest \
--size Standard_DS1_v2 \
--admin-username azureuser \
--generate-ssh-keys \
publicIpAddressMyVM2 oluşturduktan sonra değerini aklınızda edin.
Bağlantı için TCP bağlantı noktasını açın
Bu adım, Oracle veritabanına uzaktan erişime izin veren dış uç noktaları yapılandırır.
MyVM1 için bağlantı noktasını açın:
az network nsg rule create --resource-group myResourceGroup\
--nsg-name myVM1NSG --name allow-oracle\
--protocol tcp --direction inbound --priority 999 \
--source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range 1521 --access allow
Sonuç aşağıdaki yanıta benzer görünmelidir:
{
"access": "Allow",
"description": null,
"destinationAddressPrefix": "*",
"destinationPortRange": "1521",
"direction": "Inbound",
"etag": "W/\"bd77dcae-e5fd-4bd6-a632-26045b646414\"",
"id": "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVmNSG/securityRules/allow-oracle",
"name": "allow-oracle",
"priority": 999,
"protocol": "Tcp",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
}
MyVM2 için bağlantı noktasını açın:
az network nsg rule create --resource-group myResourceGroup\
--nsg-name myVM2NSG --name allow-oracle\
--protocol tcp --direction inbound --priority 999 \
--source-address-prefix '*' --source-port-range '*' \
--destination-address-prefix '*' --destination-port-range 1521 --access allow
Sanal makineye bağlanma
Sanal makine ile bir SSH oturumu oluşturmak için aşağıdaki komutu kullanın. IP adresini, publicIpAddress sanal makinenizin değeri ile değiştirin.
$ ssh azureuser@<publicIpAddress>
Veritabanını myVM1 (birincil) üzerinde oluşturma
Oracle yazılımı Market görüntüsünde zaten yüklüdür, bu nedenle sonraki adım veritabanını yüklemektir.
Oracle superuser 'a geçin:
$ sudo su - oracle
Veritabanını oluşturun:
$ dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-storageType FS \
-ignorePreReqs
Çıktılar aşağıdaki yanıta benzer görünmelidir:
Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for further details.
ORACLE_SID ve ORACLE_HOME değişkenlerini ayarlayın:
$ ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1; export ORACLE_HOME
$ ORACLE_SID=cdb1; export ORACLE_SID
İsteğe bağlı olarak, bu ayarların gelecekteki oturum açma işlemleri için kaydedilmesini sağlamak üzere/Home/Oracle/,bashrc dosyasına ORACLE_HOME ve ORACLE_SID ekleyebilirsiniz:
# add oracle home
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
# add oracle sid
export ORACLE_SID=cdb1
Data Guard 'ı yapılandırma
MyVM1 (birincil) üzerinde arşiv günlüğü modunu etkinleştir
$ sqlplus / as sysdba
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
Günlüğe kaydetmeyi zorla ' yı etkinleştirin ve en az bir günlük dosyasının mevcut olduğundan emin olun:
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
Bekleme yeniden yineleme günlükleri oluşturun, birincil veritabanıyla aynı boyut ve miktarı ayarlama Günlükler şunlardır:
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo01.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo02.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo03.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/cdb1/standby_redo04.log') SIZE 200M;
flashback 'ı etkinleştirin (bu, kurtarmayı çok daha kolay hale getirir) ve bekleme _ dosya _ yönetimini auto. Exit SQL * artı olarak ayarlayın.
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> EXIT;
MyVM1 'de hizmet ayarlama (birincil)
$ORACLE _HOME\network\admin klasöründe bulunan tnsnames. ora dosyasını düzenleyin veya oluşturun.
Aşağıdaki girdileri ekleyin:
cdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
cdb1_stby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
$ORACLE _HOME\network\admin klasöründe bulunan Listener. ora dosyasını düzenleyin veya oluşturun.
Aşağıdaki girdileri ekleyin:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = cdb1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
Data Guard Aracısı 'nı etkinleştir:
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET dg_broker_start=true;
SQL> EXIT;
Dinleyiciyi başlatın:
$ lsnrctl stop
$ lsnrctl start
MyVM2 (bekleme) üzerinde hizmet ayarlama
SSH to myVM2:
$ ssh azureuser@<publicIpAddress>
Oracle olarak oturum açın:
$ sudo su - oracle
$ORACLE _HOME\network\admin klasöründe bulunan tnsnames. ora dosyasını düzenleyin veya oluşturun.
Aşağıdaki girdileri ekleyin:
cdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
cdb1_stby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cdb1)
)
)
$ORACLE _HOME\network\admin klasöründe bulunan Listener. ora dosyasını düzenleyin veya oluşturun.
Aşağıdaki girdileri ekleyin:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myVM2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = cdb1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
Dinleyiciyi başlatın:
$ lsnrctl stop
$ lsnrctl start
Veritabanını myVM2 'e geri yükleme (bekleme)
Aşağıdaki içeriklerle/tmp/initcdb1_stby. ora parametre dosyasını oluşturun:
*.db_name='cdb1'
Klasör oluştur:
mkdir -p /u01/app/oracle/oradata/cdb1/pdbseed
mkdir -p /u01/app/oracle/oradata/cdb1/pdb1
mkdir -p /u01/app/oracle/fast_recovery_area/cdb1
mkdir -p /u01/app/oracle/admin/cdb1/adump
Parola dosyası oluşturma:
$ orapwd file=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/orapwcdb1 password=OraPasswd1 entries=10
Veritabanını myVM2 üzerinde Başlat:
$ export ORACLE_SID=cdb1
$ sqlplus / as sysdba
SQL> STARTUP NOMOUNT PFILE='/tmp/initcdb1_stby.ora';
SQL> EXIT;
RMAN aracını kullanarak veritabanını geri yükleyin:
$ rman TARGET sys/OraPasswd1@cdb1 AUXILIARY sys/OraPasswd1@cdb1_stby
RMAN 'da aşağıdaki komutları çalıştırın:
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name='CDB1_STBY' COMMENT 'Is standby'
NOFILENAMECHECK;
Komut tamamlandığında aşağıdakine benzer iletiler görmeniz gerekir. RMAN 'dan çıkın.
media recovery complete, elapsed time: 00:00:00
Finished recover at 29-JUN-17
Finished Duplicate Db at 29-JUN-17
RMAN> EXIT;
İsteğe bağlı olarak, bu ayarların gelecekteki oturum açma işlemleri için kaydedilmesini sağlamak üzere/Home/Oracle/,bashrc dosyasına ORACLE_HOME ve ORACLE_SID ekleyebilirsiniz:
# add oracle home
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
# add oracle sid
export ORACLE_SID=cdb1
Data Guard Aracısı 'nı etkinleştir:
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET dg_broker_start=true;
SQL> EXIT;
MyVM1 üzerinde Data Guard Broker 'ı yapılandırma (birincil)
Data Guard Manager 'ı başlatın ve SYS ve Password kullanarak oturum açın. (İşletim sistemi kimlik doğrulamasını kullanmayın.) Şunları yapın:
$ dgmgrl sys/OraPasswd1@cdb1
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> CREATE CONFIGURATION my_dg_config AS PRIMARY DATABASE IS cdb1 CONNECT IDENTIFIER IS cdb1;
Configuration "my_dg_config" created with primary database "cdb1"
DGMGRL> ADD DATABASE cdb1_stby AS CONNECT IDENTIFIER IS cdb1_stby MAINTAINED AS PHYSICAL;
Database "cdb1_stby" added
DGMGRL> ENABLE CONFIGURATION;
Enabled.
Yapılandırmayı gözden geçirin:
DGMGRL> SHOW CONFIGURATION;
Configuration - my_dg_config
Protection Mode: MaxPerformance
Members:
cdb1 - Primary database
cdb1_stby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS (status updated 26 seconds ago)
Oracle Data Guard kurulumunu tamamladınız. Sonraki bölümde, bağlantının nasıl test yapılacağı ve üzerinde geçiş yapılacağı gösterilmektedir.
istemci makinesinden veritabanını Bağlan
İstemci makinenizde tnsnames. ora dosyasını güncelleştirin veya oluşturun. Bu dosya genellikle etwork\admin\n$ORACLE _HOME.
publicIpAddressMyVM1 ve myVM2 IÇIN IP adreslerini değerlerinizle değiştirin:
cdb1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=<myVM1 IP address>)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=cdb1)
)
)
cdb1_stby=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=<myVM2 IP address>)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=cdb1_stby)
)
)
başlangıç SQL * Plus:
$ sqlplus sys/OraPasswd1@cdb1
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Data Guard yapılandırmasını test etme
MyVM1 üzerinde veritabanı üzerinde geçiş (birincil)
Birincil bilgisayardan bekleme moduna geçmek için (cdb1 cdb1_stby):
$ dgmgrl sys/OraPasswd1@cdb1
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> SWITCHOVER TO cdb1_stby;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdb1" on database "cdb1_stby"
Connecting to instance "cdb1"...
Connected as SYSDBA.
New primary database "cdb1_stby" is opening...
Operation requires start up of instance "cdb1" on database "cdb1"
Starting instance "cdb1"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "cdb1_stby"
DGMGRL>
Artık bekleyen veritabanına bağlanabilirsiniz.
başlangıç SQL * Plus:
$ sqlplus sys/OraPasswd1@cdb1_stby
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
MyVM2 (bekleme) üzerinde veritabanı üzerinde geçiş yapma
Üzerinde geçiş yapmak için, myVM2 üzerinde şunu çalıştırın:
$ dgmgrl sys/OraPasswd1@cdb1_stby
DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production
Copyright (c) 2000, 2013, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDBA.
DGMGRL> SWITCHOVER TO cdb1;
Performing switchover NOW, please wait...
Operation requires a connection to instance "cdb1" on database "cdb1"
Connecting to instance "cdb1"...
Connected as SYSDBA.
New primary database "cdb1" is opening...
Operation requires start up of instance "cdb1" on database "cdb1_stby"
Starting instance "cdb1"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "cdb1"
Artık, birincil veritabanına bağlanabilmelisiniz.
Başlangıç SQL*Artı:
$ sqlplus sys/OraPasswd1@cdb1
SQL*Plus: Release 12.2.0.1.0 Production on Wed May 10 14:18:31 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Data Guard'ın Oracle Linux'da yüklemesini ve yapılandırmasını tamamladınız.
Şu sanal makineyi silin:
Vm'ye artık ihtiyacınız kalmadan kaynak grubunu, VM'yi ve tüm ilgili kaynakları kaldırmak için aşağıdaki komutu kullanabilirsiniz:
az group delete --name myResourceGroup
Sonraki adımlar
Öğretici: Yüksek oranda kullanılabilir sanal makineler oluşturma