25
Erkan ÜLGEY Kimim ben - 2010 Comp.Eng. @ Itu - 2010 – 2014 DBA @ TUBITAK - 2012 - ~M.Sc. @ Boun - 2013 -~ Blogger @ kamudba.blogspot.com.tr - 2013 -~ 11g OCP - 2015 - ~ DBA @ Garanti Teknoloji - Şimdilerde Big Data ile uğraşıyor. İletişim: [email protected] tr.linkedin.com/in/erkanulgey twitter.com/erkanulgey

Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul

Embed Size (px)

Citation preview

Erkan ÜLGEY

Kimim ben

- 2010 Comp.Eng. @ Itu

- 2010 – 2014 DBA @ TUBITAK

- 2012 - ~M.Sc. @ Boun

- 2013 -~ Blogger @ kamudba.blogspot.com.tr

- 2013 -~ 11g OCP

- 2015 - ~ DBA @ Garanti Teknoloji

- Şimdilerde Big Data ile uğraşıyor.

İletişim:

[email protected]

tr.linkedin.com/in/erkanulgey

twitter.com/erkanulgey

Oracle Cloud Servisleri – Complete Example

İçerik

- Oracle Cloud Servislerine kayıt olmak

- Oracle Cloud Database Servisi ile veritabanı oluşturmak

o SSH Public Key oluşturma

o Tape backup için Oracle Cloud Storage servisi ayarlamaları

- Cloud veritabanı bağlantıları

o Host Bağlantısı

o EM Express Bağlantısı

o SQLDeveloper Bağlantısı

Oracle Cloud servislerine genel bir bakış için https://cloud.oracle.com/home adresinden bu

servisleri görebilirsiniz.

- Oracle Cloud Servislerine kayıt olmak

İstediğimiz bir servisin anasayfası açılıp, Try It yapılır. Şu an için BigData servisleri gibi çoğu servisin

trial servisi aktif değil arkadaşlar.

Gerekli bir oracle hesabımız olduktan sonra kayıt adımlarına başlayabiliriz. Oracle Cloud hesabı

farklı bir üyelik ve bilgiler gerektirmektedir.

Ekranda görüldüğü gibi gerekli bilgileri girildikten sonra üyelik onayı mailini alıyoruz, ve

servislerimiz arka tarafta Oracle Data center larında hazırlanıyor.

Burada önemli bir nokta Company bilgisi, identity-domain olarak daha sonraki bağlantı

adımlarında kullanacağız.

Servislerin hazırlanması 2 haftaya yakın bir süre almıştı, bize ayrılan data centerin yoğunluğu

bunda etkili olabilir. Bundan sonraki adımlarda daha önce aktive ettiğim örnek hesap üzerinden

devam edeceğim.

Dashboard üzerinden Oracle Cloud üzerindeki trial servislerimizi ve kullanım oranları

görüntüleyebiliriz.

- Oracle Cloud Database Servisi ile veritabanı oluşturmak

Oracle Database Cloud servisi ile Service Console açılır. Burada daha önce oluşturduğumuz

veritabanlarını görüntüleyebiliriz. Sistem şu an için 5 OCPU, 75GB memory , 250GB storage ve

5NAT IP ‘ye kadar trial alan vermektedir.

Create service ile yeni bir veritabanı oluşturulur. Aşağıda son adım ekran görüntüsü var. Burada

bazı ön ayarla yapmamız gerekiyor. SSH Public Key ve eğer Storage hizmeti alacaksak , container

oluşturma ve bağlantı bilgisi girilmesi gerekiyor. Bu sebeple bu noktada ara verip ön adımları

yapıyoruz.

- Oracle Cloud Database Servisi ile veritabanı oluşturmak

o SSH Public Key oluşturma

Oracle dökümantasyonda geçen aşağıdaki komut çalıştırılır.

Cloudday adında bir SSH public key oluşturuyoruz.

$ ssh-keygen -b 2048 -t rsa -f cloudday

Generating public/private rsa key pair.

$ ls cloudday*

cloudday cloudday.pub

- Oracle Cloud Database Servisi ile veritabanı oluşturmak

o SSH Public Key oluşturma

o Tape backup için Oracle Cloud Storage servisi ayarlamaları

Oracle Storage Cloud servisi ile etkileşimde bulunmak için 2 farklı yöntem var.

- REST Apiler

- JAVA Kütüphaneleri.

REST api yöntemi daha hızlı olduğu için bu örnekte kullacağım, gerekli curl paketinin kurulu olması

gerekiyor.

Curl paketi ile bağlantı adımlarında 3 temel bilgi gerekiyor.

X-Storage-User, X-Storage-Pass : Bu bilgiler cloud servislerine erişirken girdiğimiz bilgiler

Rest Endpoint Url: Bu bilgi ise aşağıdaki ekranda görünmektedir. Ancak burdaki linki aşağıdaki

şekilde düzenlemek gerekiyor.

https://trmycompany.storage.oraclecloud.com/v1/Storage-trmycompany ->

https://trmycompany.storage.oraclecloud.com/auth/v1.0

Curl paketi ile authentication sağlandıktan sonra storage servisi üzerinde işlemler yapmaya

başlayabiliriz.

Token alınması:

$ curl -v -s -X GET -H "X-Storage-User: Storage-

trmycompany:[email protected]" -H "X-Storage-Pass: <PASS>"

https://trmycompany.storage.oraclecloud.com/auth/v1.0

* Trying 160.34.0.231...

* Connected to trmycompany.storage.oraclecloud.com (160.34.0.231) port 443

(#0)

* TLS 1.2 connection using TLS_RSA_WITH_AES_128_CBC_SHA

* Server certificate: *.storage.oraclecloud.com

* Server certificate: VeriSign Class 3 Secure Server CA - G3

* Server certificate: VeriSign Class 3 Public Primary Certification Authority

- G5

> GET /auth/v1.0 HTTP/1.1

> Host: trmycompany.storage.oraclecloud.com

> User-Agent: curl/7.43.0

> Accept: */*

> X-Storage-User: Storage-trmycompany:[email protected]

> X-Storage-Pass: 0rAcle*10

>

< HTTP/1.1 200 OK

< Date: Sat, 07 Nov 2015 13:18:12 GMT

< X-Auth-Token: AUTH_tk90d97fd6e5e931bca8110013c75e0e67

< X-Storage-Token: AUTH_tk90d97fd6e5e931bca8110013c75e0e67

< X-Storage-Url: https://storage.us2.oraclecloud.com/v1/Storage-trmycompany

< Content-Length: 0

< Server: Oracle-Storage-Cloud-Service

<

* Connection #0 to host trmycompany.storage.oraclecloud.com left intact

Token kısa süreli sağlanıyor, daha sonra X-Auth-Token bilgisi ile sonraki bağlantılarımızda tekrar

şifre girmek zorunda kalmıyoruz.

Container oluşturmak:

$ curl -v -s -X PUT -H "X-Auth-Token: AUTH_tk90d97fd6e5e931bca8110013c75e0e67"

https://trmycompany.storage.oraclecloud.com/v1/Storage-

trmycompany/cloudcontainer

* Trying 160.34.0.231...

* Connected to trmycompany.storage.oraclecloud.com (160.34.0.231) port 443

(#0)

< HTTP/1.1 201 Created

< X-Trans-Id: tx665ad2197a174e7f9a928-00563dfae1ga

Gördüğünüz gibi cloudcontainer adında bir storage alanı oluşturduk, storage servisi ile

yetkilendirme yapmak mümkün.

Container içeriği listeleme:

$ curl -v -s -X GET -H "X-Auth-Token: AUTH_tk90d97fd6e5e931bca8110013c75e0e67"

https://trmycompany.storage.oraclecloud.com/v1/Storage-

trmycompany/cloudcontainer

* Trying 160.34.0.231...

* Connected to trmycompany.storage.oraclecloud.com (160.34.0.231) port 443

(#0)

....

< HTTP/1.1 204 No Content

< X-Container-Object-Count: 0

Şu an için veri yok, PUT metodu ile dosya upload edebiliriz. Oracle 5GB dan büyük dosya upload

etmeye izin vermiyor.

- Oracle Cloud Database Servisi ile veritabanı oluşturmak

Evet artık, veritabanı oluşturmaya başlayabiliriz.

İlk adımda Create Service butonu tıklanır. Sonraki ekranda üyelik bilgileri seçilir, burda

veritabanını Oracle’ın default konfigüre etmesine izin verebiliriz ve faturalandırma seçeneği

işaretlenir.

Sonraki adımda veritabanı sürümü ve kurulum tipi seçilir. Burda HP veya EP seçmekte fayda var.

Aksi takdirde EM ekranlarında diagnostic ve tuning pack gibi gerekli lisansları bulamıyor ve örneğin

EM Express Peformance Hub sayfasında boş gösteriyor.

Son adımda aşağıdaki sayfadaki bilgileri giriyoruz.

Burda daha önce oluşturduğumuz SSH Public Key dosyasını upload edip , Storage Cloud servis

container bilgilerini giriyoruz. Container bilgisi için isim formatı şu şekilde olmalı

Storage-CompanyBilgisi/containerAdı

Bu adımdan sonra onay verip işlemi başlatıyoruz, Oracle kurulum durumunu sırayla

göstermektedir. Yaklaşık 2 saate yakın süren bir işlem sonunda sistem hazır olmaktadır.

- Cloud veritabanı bağlantıları

o Host Bağlantısı

Şimdi cloud üzerindeki veritabanı sunucumuza bağlantı yapalım.

SecureCRT , putty ,terminal vs gibi araçlar ile daha önce hazırladığımız SSH keylerimiz ile bağlantı

kurulabilir.

SecureCRT ile bağlanmak:

Daha önce oluşturduğumuz private key ile bağlantımızı oracle kullanıcısı ile gerçekleştiriyoruz.

Şimdi cloud sunucumuza bakalım ve storage alanımıza backup başlatalım.

[oracle@cloudday2015 ~]$ hostname

cloudday2015

[oracle@cloudday2015 ~]$ df -kh

Filesystem Size Used Avail Use% Mounted on

/dev/xvdb2 16G 11G 4.1G 73% /

tmpfs 7.4G 3.8G 3.6G 52% /dev/shm

/dev/xvdb1 194M 91M 94M 49% /boot

/dev/xvdc1 30G 9.2G 19G 33% /u01

/dev/mapper/dataVolGroup-lvol0

25G 6.7G 17G 29% /u02

/dev/mapper/fraVolGroup-lvol0

42G 12G 28G 30% /u03

/dev/mapper/redoVolGroup-lvol0

9.9G 3.2G 6.2G 34% /u04

[oracle@cloudday2015 ~]$ ifconfig -a

eth0 Link encap:Ethernet HWaddr C6:B0:D6:02:FC:89

inet addr:10.106.29.162 Bcast:10.106.29.163 Mask:255.255.255.252

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2060055 errors:0 dropped:5 overruns:0 frame:0

TX packets:1047575 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:114379420 (109.0 MiB) TX bytes:5653299613 (5.2 GiB)

Interrupt:53

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:280789 errors:0 dropped:0 overruns:0 frame:0

TX packets:280789 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:44549051 (42.4 MiB) TX bytes:44549051 (42.4 MiB)

[oracle@cloudday2015 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 08-NOV-2015 16:41:16

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cloudday2015.compute-

trmycompany.oraclecloud.internal)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production

Start Date 07-NOV-2015 14:05:20

Uptime 1 days 2 hr. 35 min. 56 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File

/u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora

Listener Log File

/u01/app/oracle/diag/tnslsnr/cloudday2015/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cloudday2015.compute-

trmycompany.oraclecloud.internal)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=cloudday2015.compute-

trmycompany.oraclecloud.internal)(PORT=5500))(Security=(my_wallet_directory=/u

01/app/oracle/product/12.1.0/dbhome_1/admin/cloud/xdb_wallet))(Presentation=HT

TP)(Session=RAW))

Services Summary...

Service "cloud.trmycompany.oraclecloud.internal" has 1 instance(s).

Instance "cloud", status READY, has 1 handler(s) for this service...

Service "cloudXDB.trmycompany.oraclecloud.internal" has 1 instance(s).

Instance "cloud", status READY, has 1 handler(s) for this service...

Service "pdb1.trmycompany.oraclecloud.internal" has 1 instance(s).

Instance "cloud", status READY, has 1 handler(s) for this service...

The command completed successfully

[oracle@cloudday2015 ~]$

[oracle@cloudday2015 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 8 16:41:26 2015

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

Connected to:

Oracle Database 12c EE High Perf Release 12.1.0.2.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics

and Real Application Testing options

SQL> SQL> SQL>

SQL> select log_mode,open_mode,name from v$database;

LOG_MODE OPEN_MODE NAME

------------ -------------------- ---------

ARCHIVELOG READ WRITE CLOUD

SQL>

SQL> exit

Disconnected from Oracle Database 12c EE High Perf Release 12.1.0.2.0 - 64bit

Production

With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics

and Real Application Testing options

[oracle@cloudday2015 ~]$

[oracle@cloudday2015 ~]$ rman target /

Recovery Manager: Release 12.1.0.2.0 - Production on Sun Nov 8 16:42:05 2015

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

connected to target database: CLOUD (DBID=444804778)

RMAN> show all;

using target database control file instead of recovery catalog

RMAN configuration parameters for database with db_unique_name CLOUD are:

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;

CONFIGURE BACKUP OPTIMIZATION ON;

CONFIGURE DEFAULT DEVICE TYPE TO DISK;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; #

default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #

default

CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 5 BACKUP TYPE TO BACKUPSET;

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT

'cloudstorage_%d_%U' PARMS 'SBT_LIBRARY=libopc.so,

ENV=(OPC_PFILE=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/opccloud.ora)';

CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE ON;

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR

LOAD TRUE ; # default

CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO

'/u01/app/oracle/product/12.1.0/dbhome_1/dbs/snapcf_cloud.f'; # default

RMAN> configure default device type to sbt_tape;

old RMAN configuration parameters:

CONFIGURE DEFAULT DEVICE TYPE TO DISK;

new RMAN configuration parameters:

CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';

new RMAN configuration parameters are successfully stored

RMAN> backup database plus archivelog;

Starting backup at 08-NOV-15

current log archived

allocated channel: ORA_SBT_TAPE_1

channel ORA_SBT_TAPE_1: SID=137 device type=SBT_TAPE

channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.1.16

allocated channel: ORA_SBT_TAPE_2

channel ORA_SBT_TAPE_2: SID=259 device type=SBT_TAPE

channel ORA_SBT_TAPE_2: Oracle Database Backup Service Library VER=3.15.1.16

allocated channel: ORA_SBT_TAPE_3

channel ORA_SBT_TAPE_3: SID=367 device type=SBT_TAPE

channel ORA_SBT_TAPE_3: Oracle Database Backup Service Library VER=3.15.1.16

allocated channel: ORA_SBT_TAPE_4

channel ORA_SBT_TAPE_4: SID=14 device type=SBT_TAPE

channel ORA_SBT_TAPE_4: Oracle Database Backup Service Library VER=3.15.1.16

allocated channel: ORA_SBT_TAPE_5

channel ORA_SBT_TAPE_5: SID=142 device type=SBT_TAPE

….

Burda önemli nokta storage hizmeti , tape bağlantısı RMAN üzerinde tanımlı olmasına ragmen default device olarak tanımlı değil, tape backup için değişikliği yapmamız gerekiyor. Backup başlattık, şimdi backupların cloud storage servisine gittiğine emin olalım:

$ curl -v -s -X GET -H "X-Auth-Token: AUTH_tk79df142a007e8172da637011c60e3b08"

https://trmycompany.storage.oraclecloud.com/v1/Storage-

trmycompany/cloudcontainer

,* Trying 160.34.0.231...

* Connected to trmycompany.storage.oraclecloud.com (160.34.0.231) port 443

(#0)

..

< X-Container-Object-Count: 331

cloudday2015/ohcfgfiles_20151108_0217.tar.gz

cloudday2015/oscfgfiles_20151108_0217.tar.gz

cloudfirstobject

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151107-

00/rLdAzfjGXKHD/0000000001

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151107-

00/rLdAzfjGXKHD/metadata.xml

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

00/BYtsJcJUb3Tk/0000000001

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

00/BYtsJcJUb3Tk/metadata.xml

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

01/Wp9Q3OKXkfGb/0000000001

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

01/Wp9Q3OKXkfGb/metadata.xml

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

02/n9t4UTUXKlvj/0000000001

file_chunk/444804778/CLOUD/backuppiece/2015-11-08/c-444804778-20151108-

02/n9t4UTUXKlvj/metadata.xml

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000001

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000002

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000003

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000004

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000005

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000006

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000007

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000008

file_chunk/444804778/CLOUD/backuppiece/2015-11-

08/cloudstorage_CLOUD_02qln52f_1_2/rbVvkpoRf0Jx/0000000009

….

- Cloud veritabanı bağlantısı

o Host Bağlantısı

o EM Express Bağlantısı

EM Express 5500 portundan çalışmakta, bu yüzden 5500 portu için port forwarding yapılması

gerekiyor. Halihazırdaki host bağlantımızı bu işlem için düzenliyoruz.

https://129.152.159.134:5500/em adresinden EM arayüzüne erişmek istiyoruz

ancak sayfa gelmeyebilir, bunun sebebi Oracle Cloud servislerinde network

izinlerinin default da disable gelmesi (birden fazla database service create edince

karşılaştım)

Bu sorunu çözmek için Cloud Compute servisine bağlanmamız gerekiyor.

Disable durumdaki servisleri enable ettikten sonra bağlantımız gelecektir.

- Cloud veritabanı bağlantısı

o Host Bağlantısı

o EM Express Bağlantısı

o SQLDeveloper Bağlantısı

Veritabanı bağlantısı için 1521 portuna erişim sağlamamız gerekiyor. SQL Developer 4.0.3 versiyonundan

itibaren SQL developer üzerinden doğrudan SSH Tunneling yapabiliriz. Bu örnekte SQLDeveloper 4.1.2

versiyonunu kullandım.

İlk önce View üzerinden SSH açılır.

Daha sonra SSH private key ile bağlantımızı oluşturuyoruz.

Yeni bağlantı oluştururken SQL Developerda Connectiopn Type farklı olarak SSH seçilerek,

oluşturduğumuz tunneling apisini kullanıyoruz.

Bağlantımızı bu şekilde görebiliriz.

Oracle SQLDeveloper üzerinde Instance Viewer ile veritabanımıza genel bir bakış da bulunabiliriz.

Teşekkürler.