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

VM dağıtımı Azure CLI örneklerini keşfetme