Oracle-Java Dokuman
Oracle is a passion for me
30 Nisan 2012 Pazartesi
Oracle 11g r2 Dataguard(Standby) Kurulumu
Kullanılan sistem bilgileri
Primary veritabanı DB_UNIQUE_NAME: ORCL
Standby veritabanı DB_UNIQUE_NAME:ORCLST
ORACLE_SID: ORCL
Primary hostname: linux1 (OEL Linux 5.5)
Standby hostname: linux2 (OEL Linux 5.5)
##### Primary tarafda ########
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL>ALTER DATABASE FORCE LOGGING;
[oracle@linux1 ~]$ scp $ORACLE_HOME/dbs/orapwORCL oracle@linux2:$ORACLE_HOME/dbs
SQL>ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLST)';
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCLST SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLST';
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
SQL>ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30;
SQL>ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
SQL>ALTER SYSTEM SET FAL_SERVER=ORCLST;
// Eger farkli directoryler olacaksa
--SQL>ALTER SYSTEM SET DB_FILE_NAME_CONVERT='DB11G_STBY','DB11G' SCOPE=SPFILE;
--SQL>ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='DB11G_STBY','DB11G' SCOPE=SPFILE;
SQL>ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
-- primary tarafda
SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/u01/app/oracle/oradata/ORCL/orcl_stby.ctl';
-- Network (Her iki tarafda)
tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = linux1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
ORCLST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = linux2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCLST)
)
)
--listener standby tarafda
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = linux2)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCLST)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = ORCL)
)
)
[oracle@linux1 ~]$ mkdir -p /u01/app/oracle/oradata/ORCL
[oracle@linux1 ~]$ mkdir -p /u01/app/oracle/flash_recovery_area/ORCL
[oracle@linux1 ~]$ mkdir -p /u01/app/oracle/admin/ORCL/adump
####### primary tarafda #######
[oracle@linux1 ~]$ # Standby controlfile to all locations.
[oracle@linux1 ~]$ scp /u01/app/oracle/oradata/ORCL/orcl_stby.ctl oracle@linux2:/u01/app/oracle/oradata/ORCL/control01.ctl
[oracle@linux1 ~]$ scp /u01/app/oracle/oradata/ORCL/orcl_stby.ctl oracle@linux2:/u01/app/oracle/flash_recovery_area/ORCL/control02.ctl
####### standby tarafda #######
[oracle@linux1 ~]$ vi /home/oracle/pfile.ora
DB_NAME=ORCL
SQL> STARTUP NOMOUNT PFILE='/home/oracle/pfile.ora';
####### primary tarafda #######
[oracle@linux1 ~]$ rman target sys/oracle@ORCL AUXILIARY sys/oracle@ORCLST;
rman> DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name='ORCLST' COMMENT 'Is standby'
SET FAL_SERVER='ORCL' COMMENT 'Is primary'
SET FAL_CLIENT='ORCLST'
NOFILENAMECHECK;
####### Her iki tarafdada #######
SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/standby_redo01.log') SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/standby_redo02.log') SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/standby_redo03.log') SIZE 50M;
SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/standby_redo04.log') SIZE 50M;
#### Standby`de apply islemini baslatmak icin #######
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
#######iptal etmek icin#######
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
On the primary server, check the latest archived redo log and force a log switch.
SQL>ALTER SYSTEM SET nls_date_format='DD-MON-YYYY HH24:MI:SS';
SQL>SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY sequence#;
SQL>ALTER SYSTEM SWITCH LOGFILE;
## standby
Check the new archived redo log has arrived at the standby server and been applied.
SQL>ALTER SYSTEM SET nls_date_format='DD-MON-YYYY HH24:MI:SS';
SQL>SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY sequence#;
Read-Only Standby and Active Data Guard
Once a standby database is configured, it can be opened in read-only mode to allow query access. This is often used to offload reporting to the standby server, thereby freeing up resources on the primary server. When open in read-only mode, archive log shipping continues, but managed recovery is stopped, so the standby database becomes increasingly out of date until managed recovery is resumed.
###### Standby tarafda #######
To switch the standby database into read-only mode, do the following.
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE OPEN READ ONLY;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE OPEN READ ONLY;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
SQL>SELECT protection_mode FROM v$database;
PROTECTION_MODE
--------------------
MAXIMUM PERFORMANCE
-- Maximum Availability.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY';
SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
-- Maximum Performance.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY';
SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
-- Maximum Protection.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY';
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>;ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
SQL>ALTER DATABASE OPEN;
Etiketler:
DATAGUARD
| Tepkiler: |
1 Nisan 2012 Pazar
Faydali SQL`ler
Eğer sisteminiz archivelog’da çalışmıyorsa daha tutarsız ve anlık
değişimlerden daha çok etkilenen şu sorguyu kullanabilirsiniz:
SELECT round(AVG(20 / ((to_date(sonraki, 'HH24:MI') - to_date(logswicthzamani, 'HH24:MI')) * 24 * 60) * bytes / (1024 * 1024)), 2) || ' MB' AS "Onerilen Redo"FROM (SELECT bytes,to_char(first_time, 'HH24:MI') AS logswicthzamani,lead(to_char(first_time, 'HH24:MI'), 1) over(ORDER BY first_time) AS sonrakiFROM v$log) WHERE sonraki IS NOT NULL;- Kullanilmayan indexlerselect owner, index_name from dba_indexes where status='UNUSABLE';
Etiketler:
Performance
| Tepkiler: |
15 Mart 2012 Perşembe
Mysql Export/Import
Bir tabloyu export ve import etmek icin.
export
import
export
[root@localhost ertugrula]# mysqldump logdb logs -u logger -p > log.txt
import
[root@localhost ertugrula]# mysql -u logger -p logdb < log.txt
Etiketler:
MYSQL
| Tepkiler: |
22 Şubat 2012 Çarşamba
Enterprise Manager Console ERROR: NMO not setuid-root (Unix-only)
we making below steps
[oracle@linux1 ~]$ su
Password:
[root@linux1 oracle]# cd $ORACLE_HOME
[root@linux1 db_1]# chmod 6750 bin/nm?
[root@linux1 db_1]# chmod 700 bin/emdctl
[root@linux1 db_1]# chmod 700 bin/emagent
[root@linux1 db_1]# chown root bin/nm?
Password:
[root@linux1 oracle]# cd $ORACLE_HOME
[root@linux1 db_1]# chmod 6750 bin/nm?
[root@linux1 db_1]# chmod 700 bin/emdctl
[root@linux1 db_1]# chmod 700 bin/emagent
[root@linux1 db_1]# chown root bin/nm?
[root@linux1 db_1]# exit
[oracle@linux1 ~]$ emctl stop dbconsole
[oracle@linux1 ~]$ emctl start dbconsole
9 Aralık 2011 Cuma
#HY000Host 'XXX' is not allowed to connect to this MySQL server
mysql> grant all privileges on *.* to logger@192.168.10.14 identified by 'logger';
Etiketler:
MYSQL
| Tepkiler: |
6 Aralık 2011 Salı
Glassfish Performans Iyilestirme (Tuning)
Bu makalemizde Glassfish`in performans iyilestirmelerini inceleyecegiz. Neden buna ihtiyac duyuyoruz, cunku benimde basima geldigi gibi, proje gelistirim asamasinda hersey normal olarak gorunuyor ama, bir production sisteme yuklemeye, yani gercek calisma ortamina gecmeye basladigimizda iste o zaman sorunlarla karsilasmaya basliyoruz.
Peki neden bu sekilde oluyor derseniz, cok basit olarak sunu dusunebiliriz, Mesala siz bilgisayariniz uzerinde uygulama gelistiriyorsunuz ve yaptiklarinizi test etmek icin, belkide gunde en az 4-5 defa yeniden deploy ediyorsunuz, ve iste bu sekilde yaptiginiz icin, her yeni redeploy yapiliminda server yeniden restart oluyor diyebiliriz, restart oluyordan kastim, butun degerler sifirlanip yeniden basliyor, buna JVM yani RAM deki objelerin silinmesi vs. gibi diger butun degerler ilk haline donuyor. Ama gercek bir uygulama sunucusa attigimizda, belkide burada aylarca hic restart ve redeploy olmadan sistemin calismasi gerekiyor ve bizde performans problemlerini burada yasiyoruz.
Sizinde tahmin edebileceginiz gibi, Application Server icindeki butun parametreler default olarak ayarlanmis gelmektedir. Ve bizimde makalemizin konusu bu, buradaki parametreleri optimum hale getirmeye calisacagiz.
Sozu cok fazla uzatmadan ise koyulalim..
- Using the glassfish performance tuner
- Deployment Settings
- Logger Settings
- Web Container Settings
- EJB Container Settings
- Java Message Service Settings
- Transaction Service Settings
- HTTP Service Settings
- Network Listener Settings
- Transport Settings
- Thread Pool Settings
- ORB Settings
- Resource Settings
- Load Balancer Settings
Makalemizde yukaridakileri adim adim inceleyecegiz.
Oncelikle sunu belirteyim, performance tuner glassfish`in sitesinde indirdigimiz surumde mevcut degil, oracle kendi sitesinde indirmemiz gerekecek, simdi diyeceksiniz glassfish oracle`in degilmi diye, bunu detayli bir sekilde ben bilmiyorum ama en yakin zamanda ogrenip, paylasacam.
Download icin..
http://www.oracle.com/technetwork/middleware/glassfish/downloads/ogs-3-1-1-downloads-439803.html
(ogs-3.1.1-unix-ml.sh linux icin)
(ogs-3.1.1-windows-ml.exe windows icin)
Using the glassfish performance tuner
Performance tuner glassfish`in bize server deployment icin gerekli tavsiyelerde bulunur ve optimum ayarlari yapmamizda yardimci olur.
Ben kendi bilgisayarim icin asagidaki ayarlamalari yaptim.
Yukaridaki 1.adim da yapilacaklar, ikinci adimda ayarlanmis degerler goreceksiniz ve gelen JVM ile ilgili onlarinda detaylarini JVM tuning makalemizde gorecegiz.
Deployment Settings
Deployment Settings performance icin onemli ayarlari icermektedir.
1- Disable auto-deployment
Burada bahsedilen otomatik deploy, yani .war file`ini yada .ear file`nizi glassfish`in (glassfish-3.0.1/glassfish/domains/domain1/autodeploy/) directorisine attiginiz zaman glassfish onu otomatik olarak deploy edecektir. ve edebilmesi icin auto-deployment parametresinin enable olmasi gerekiyor.
Ama biz production sistemimizde bu parametreyi disable yapmaliyiz, cunku glassfish surekli autodeploy klasorunu kullanmaya calismasin, bu parametreyi production server`imizde disable yaptigimizda performansi artiracaktir.
Ayarlamak icin (http://127.0.0.1:4848/common/index.jsf)domain -> Application Cofiguration altindaAuto Deploy : disable.
2-Use Pre-compiled JavaServer Pages
JSP sayfalarinin derlenmesi cok yogun kaynak ve zaman alici islemlerden biridir. JSP sayfalarinin deploydan once derlenmesi ciddi performance artisi saglayacaktir. Ve bu ozelligi kullandigimiz zaman sadece servlet file`lari deploy olacaktir.
Ayarlamak icin (http://127.0.0.1:4848/common/index.jsf)domain -> Application Cofiguration altindaPrecompile: enable.
3- Disable Dynamic Application Reloading
Eger bu parametre enable ise, o zaman server ve uygulamadaki degisiklikleri periodik olarak incelecektir ve buda performance kayiplarina neden olacaktir. Production serverimizde bu parameteriyi disable yapacagiz.
Ayarlamak icin (http://127.0.0.1:4848/common/index.jsf)domain -> Application Cofiguration altindaReload: disable.
Son hali goruntulu olarak
Logger Settings
Etiketler:
GLASSFISH
| Tepkiler: |
Kaydol:
Kayıtlar (Atom)

