DeepLearning In Computational Neuroscience

DeepLearning

Reklamlar

Spring MVC

Tomcat Türkçe Karakter Problemi

 

catalina.sh dosyasında

CATALINA_OPTS=-Dfile.encoding=UTF-8

 

satırı eklenir.

Sonra tomcat restart ettirilir.

İlgili problem CentOS üzerinde olmuştur. Tabii CentOS ile ilgisi yok.

ORACLE YEDEKLEME

RMAN İLE YEDEK ALMAK

Öncelikle Oracle 11g sürümü ile gelen RMAN’ e bağlanabilmek için aşağıdaki komut shell üzerinde koşulur.

#rman target/

Burada önemli olan nokta, hangi işletim sistemi kullanıcısı ile bu komut çalıştırılıyorsa, o kullanıcıya ait veritabanıyla ilgili çalışılacağıdır. Eğer doğru işletim sistemi kullanıcısı ile komut girilmezse, yanlış bir veritabanı yedeği alınır. Şayet yanlış veritabanıyla ilgili çalışma yapılmadığından emin olunmak istenirse, TNS adı da kullanılabilir:

$ rman target sys/password@XE;

XE, tnsnames.ora dosyasında tanımlıdır ve yedeği alınacak  veritabanını temsil eder.

RMAN ile Cold Backup Yedek Alma

Burada standart cold backup yönteminden farklı olarak aşağıdaki scriptten de görüldüğü üzere programın içerisinden veritabanı kapalı duruma alınır. Bu yöntem pek tercih edilen yöntem değildir. İşleri aksatmamak adına daha çok online backup yöntemi kullanılır.

#!/bin/sh

# RMAN COLD BACKUP

rman target / << EOF

shutdown immediate

startup mount;

backup database format ‘/backup/path/%d_%t_%s.rman’;

alter database open;

EOF

exit

RMAN ile FULL Database Online Backup

Rman  ile bağlantı kurulduktan sonra  gereksinime bağlı olarak aşağıdaki komutlardan birisi çalıştırılır.

1)RMAN> backup database;

(Full yedekleme yapılır fakat default olarak $ORACLE_HOME/dbs  altına yedekler oluşturulur. Disk dolabilir ya da istenilen formatta yedek alınmamış olabilir bu yüzden sakıncalıdır.)

2)RMAN> backup database format ‘/backup/path/%d_%t_%s.rman’;

(Buradaki komutta hem full database yedeği alınır hem de backup yolu ve format belirtilir.)

Tablespace ve Datafile Yedeklemek

RMAN> backup tablespace system, users;

(Burada system ve users isimli tablespace’ lerin yedeği alınmış olur. Tabii yine istenilirse format vs belirtilebilir.)

Datafile yedeği alabilmek için aşağıdaki sorgu sql ortamında çalıştırılır. Tabii bu opsiyoneldir. Yani aslında sadece yedek alınacak datafile’ın dosya numarası yeterlidir.

SQL> SELECT tablespace_name, file#, name

FROM v$datafile_header ORDER BY tablespace_name;

Sorgu sonucunda dönen değerlere göre datafile numaraları alınıp mesela aşağıdaki gibi komut koşulur.

RMAN> backup datafile 1,3,45;

(Burada da format belirtmek yine opsiyoneldir.)

Arşiv Dosyalarını Yedeklemek

RMAN> BACKUP ARCHIVELOG ALL;

(Tüm arşiv dosyalarını yedekler.)

Eğer tüm arşiv dosyalarını yedeklemek gereksizse aşağıdaki komut çalıştırılır.

RMAN> BACKUP ARCHIVELOG FROM TIME=’SYSDATE-7′ FORMAT ‘/backup/arc_%d_%t_%s.rman’;

(Son 7 günlük arşiv dosyaları backup altına yedeklenir.)

SCN’e göre yedekleme yapmak:

RMAN> BACKUP ARCHIVELOG UNTIL SCN = 320

RMAN> BACKUP ARCHIVELOG SCN BETWEEN 205 AND 320

Arşiv Dizi Numarasına göre yedekleme yapmak:

RMAN> BACKUP ARCHIVELOG UNTIL SEQUENCE = 501;

RMAN> BACKUP ARCHIVELOG FROM SEQUENCE 591

Zamana göre yedekleme yapmak:

RMAN> BACKUP ARCHIVELOG UNTIL TIME ‘SYSDATE-7’;

RMAN> BACKUP ARCHIVELOG

FROM TIME ‘SYSDATE-30’ UNTIL TIME ‘SYSDATE-7’;

Yedekledikten sonra, yedeklenen arşiv dosyalarını silmek:

RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;

Control File Yedeklemek

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

(Her yedek esnasında control file da yedeklenir fakat $ORACLE_HOME/dbs altına yine yedeklenir.)

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO

‘/data2/backup/cf_%F.rman’;

(Burada ise yedeklenilecek konum da belirtilir.)

RMAN> BACKUP CURRENT CONTROLFILE;

( Bu da manuel olarak Control file yedeğinin alınmasını sağlar.)

İLERİ DÜZEY YEDEK İŞLEMLERİ

Alınan Yedeklere Etiket Vermek

Yedek alındığı zaman neyin ne yedeği olduğunu karıştırmamak için RMAN’de TAG etiketi kullanılır.

RMAN> BACKUP DATABASE format ‘/data2/backup/dbf_%d_%t_%s.rman’

TAG=’DBF_SYILDIRIM_20120425_1305′

(Yukarıda full database backup a TAG etiketi eklenmiş.)

Sıkıştırıp Yedek Almak

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE format

‘/data2/backup/dbf_%d_%t_%s.rman’ TAG=’DBF_SYILDIRIM_20120425_1305′

(%80 e kadar varan alan kazanılabilir. Bu şekilde oluşturulan backupsetlerin normallerinden hiçbir farkı yoktur. Sorgulaması vs hepsi aynıdır. Sadece işlemler daha yavaş halledilir.)

Alınan Yedeğe Arşiv Dosyalarını Eklemek

RMAN> BACKUP DATABASE format ‘/data2/backup/dbf_%d_%t_%s.rman’

TAG=’DBF_SYILDIRIM_20120425_1305′ PLUS ARCHIVELOG FORMAT

‘/data2/backup/arc_%d_%t_%s.rman’ TAG=’ARC_SYILDIRIM_20120425_1305′;

Alınan yedeğe arşiv dosyalanı da eklediklen sonra tüm yedeğin sıkıştırılması istenirse aşağıdaki komut koşulur.

RMAN> BACKUP as COMPRESSED BACKUPSET DATABASE FORMAT

‘/data2/backup/dbf_%d_%t_%s.rman’ TAG=’DBF_SYILDIRIM_20120425_1305PLUS

ARCHIVELOG format ‘/data2/backup/arc_%d_%t_%s.rman’

TAG=’ARC_SYILDIRIM_20120425_1305′;

Alınan Yedeklerin Hâlâ Kullanılabilir Olup Olmadığını Kontrol Etmek

RMAN> crosscheck backup;

Alınan yedek erişilemezse expired duruma düşer ve kullanılamaz anlamına gelir.

Backup Piece Mantığı

Yedekleme işleminin başlatıldığı zamanla, yedek işleminin tamamlandığı zaman arasında yeni arşivler oluşabilir. RMAN oldukça gelişmiş bir program ve bu duruma da şöyle bir çözüm üretmektedir. Yedek alma biterken, RMAN yeni arşiv dosyalarının oluşup oluşmadığına bakar ve eğer varsa, bunları yeni bir backup piece içinde alınan yedeğe ekler.

Oluşturulan backuplar başka bir lokasyona taşınırsa RMAN artık bunları görmeyecektir. crosscheck backup komutu çalıştırılırsa, dosyalar expired şeklinde gözükür.

Backup piece’ler farklı bir lokasyona taşınırsa; aşağıdaki adımları gerçekleştirerek, backup piece’ler tekrar RMAN’a  tanıtılabilir.

RMAN> CROSSCHECK BACKUP;

(Daha önceden de belirtildiği gibi dosyalar kontrol edilir.)

RMAN> DELETE FORCE EXPIRED BACKUPSET OF DATABASE;

(Expired olmuş dosyalar artık kullanılamadığından silinir.)

RMAN> CATALOG BACKUPPIECE ‘/data2/yeni_yedekler/BACKUPPIECE_ADI.RMAN’

(Backup piece’lerin yeni lokasyonları teker teker belirtilir.)

Bu işlemden sonra list backup summary denilirse backup piece’lerin RMAN backup’ları arasına eklendiği görülür.

Konfigürasyon Ayarlarını Değiştirme

RMAN> SHOW ALL;

(RMAN’ın değiştirilebilecek tüm ayarlarını gösterir.)

En önemli özellikleri  aşağıda verilmiştir.

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;

(İşlem yapılacak aygıtı disk olarak belirler)

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

(En önemlisi yedek alma optimizasonunu açar)

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

(Aynı anda RMAN için kaç süreç çalışacağını gösterir. Burada 4 olarak ayarlanmıştır. Dikkat edilmesi gereken optimum paralelliği yakalamaktır. Çok fazla süreci aynı anda çalıştırıp zaman kaybı da yaşanabilir.)

Konfigurasyon ayarlarında yapılan bu değişiklik aşağıdaki gibi default moda tekrar alınabilir.

RMAN> CONFIGURE DEFAULT DEVICE TYPE CLEAR;

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM CLEAR;

RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR;

YEDEK BİLGİLERİNİ GÖRME

RMAN> LIST BACKUP SUMMARY;

(Alınan yedeğin özet bilgisi gösterilir.)

RMAN> LIST BACKUP;

(Alınan yedeğin tam olarak içeriği gösterilir.)

RMAN> LIST BACKUP OF DATABASE;

(Hangi dosyanın hangi backup peice içinde olduğu gösterilir.)

RMAN> LIST BACKUP OF DATABASE BETWEEN ’01-ARP-2012′ AND ’28-JUN-2012′

(Bir önceki komutu belli tarihler arasındaki yedekler için kullanmak)

RMAN> LIST BACKUP BY FILE;

(Alınan yedeklerin taşıdığı dosyaları görmek için kullanılır.)

YEDEKTEN DÖNME İŞLEMLERİ

Eğer hangi yedekten dönülmek istenildiği belirtilmezse son alınan yedek işleme konulur.

Yedek Dosyalarının Doğruluğunu Kontrol Etme

RMAN> RESTORE DATABASE VALIDATE;

(Son alınan yedeğin çalışıp çalışmayacağı gösterilir.)

Farklı bir backup set kontrol edilmek istenirse aşağıdaki gibi komut yazılabilir.

RMAN> RESTORE DATABASE VALIDATE FROM TAG=’SYILDIRIM_YEDEK_2010_04_27′;

Full Recover (Tam Yedekten Dönüş):

Database’in tamamen çökmesi ya da tamamen değişmesi durumunda full recover gerekir. Full

recover için, database’in mutlaka mount mode’da açılmış olması gerekir. Veritabanını mount

mode’da açtıktan sonra aşağıdaki komutlar çalıştırılır.

RMAN> RESTORE DATABASE;

RMAN> RECOVER DATABASE;

Yukarıdaki komutların çalıştırılması sonucunda, database kurulmuş olur. Dikkat edilmesi gereken bu komutlar çalıştırıldığı takdirde, alınan son yedeğe göre recover edilmesidir. FROM TAG parametresini ekleyip, başka yedeklerin kullanılması da sağlanılabilir.

 

Datafile’ların ve Tablespace’lerin Recover Edilmesi

 

Full recover gerekmediği durumda kullanılır.

Full recover gerekmediği durumda database kapatılmadan ya da mount moda alınmadan sadece ilgili datafile ya da tablespace’lerin offline moda olması yeterlidir.  Aşağıda bu işlemler için bir çok yöntem verilmiştir.

Dosya lokasyonunu kullanarak datafile recover etmek:

RMAN> RESTORE DATAFILE ‘/u02/oradata/cuddle/users01.dbf’;

RMAN> RECOVER DATAFILE ‘/u02/oradata/cuddle/users01.dbf’;

Dosya numarası (FILE#) kullanarak datafile recover etmek* :

RMAN> RESTORE DATAFILE 3,4,12;

RMAN> RECOVER DATAFILE 3,4,12;

Tablespace belirterek recover etmek:

RMAN> RESTORE TABLESPACE USERS, DATA_TS;

RMAN> RECOVER TABLESPACE USERS, DATA_TS;

Bu verilen örneklerin hepsi  görüldüğü üzere son backup’a göre recover edilir. Eğer daha farklı bir backup kullanmak

İstenilirse , FROM TAG ifadesi kullanılır.

Arşiv Dosyalarını Yedekten Dönme

 

SCN – System Change Number’a belirli aralıktaki arşiv dosyalarını dönme:

RMAN> RESTORE ARCHIVELOG SCN BETWEEN 26716797844 and 26716798848;

Yedeklenmiş bütün arşiv dosyalarını dönme:

RMAN> RESTORE ARCHIVELOG ALL;

30 günden yeni 7 günden eski arşiv dosyalarının yedeğini dönme:

RMAN> RESTORE ARCHIVELOG FROM TIME ‘SYSDATE-30’

UNTIL TIME ‘SYSDATE-7’;

CONTROL FILE’i Yedekten Dönme

Control file’ı restore etmek için öncelikle database’in nomount moda açılmış olması gerekir.

RMAN> STARTUP NOMOUNT;

RMAN> RESTORE CONTROLFILE FROM ‘/data2/cf_1SF32433.rman’;

RMAN> ALTER DATABASE OPEN;

Until Time Şeklinde Yedekten Dönme

 

RMAN ile veritabanı istenilen zamana döndürülebilir. Örnek komut aşağıda verilmiştir.

RMAN> RESTORE DATABASE UNTIL TIME

“TO_DATE(‘2008-06-25 16:45′,’YYYY-MM-DD HH24:MI’)”;

RMAN> RECOVER DATABASE UNTIL TIME

“TO_DATE(‘2008-06-25 16:45′,’YYYY-MM-DD HH24:MI’)”;

CATALOG MANTIĞI

Hangi yedek ne zaman alınmış; hangi veritabanına aitmiş; hangi dosyalar, hangi backupset’ler içerisinde bulunuyor vs… Bunların hepsini CATALOG denilen özel bir veritabanı şemasında tutulabilir.

Veritabanı sayısı arttıkça merkezi bir noktadan tüm veritabanlarını kontrol edebilmek için CATALOG yapısı gerekmektedir. CATALOG kullanılmadığı takdirde alınan yedeklere dair bilgiler ilgili veritabanının CONTROL FILE dosyasında binary olarak tutulur. Aşağıda  bir catalog oluşturup, bir veritabanını bu catalog’a dahil edilip ve sonrasında veritabanının yedeğinin  alınması  anlatılmıştır.

a. Önce catalog şemasını tutacak merkezi bir veritabanı belirlenir ve aşağıdaki ifadeler  SQL

üzerinden çalıştırılır.

SQL> CREATE USER rman IDENTIFIED BY cat

TEMPORARY TABLESPACE temp

DEFAULT TABLESPACE tools

QUOTA UNLIMITED ON tools;

b. Şimdi rman isimli kullanıcıya catalog için yetki verilir:

SQL> GRANT RECOVERY_CATALOG_OWNER TO rman;

c. SQL tarafında yapılması gerekenler  tamamlandı; şimdi RMAN programını açıyor ve aşağıdaki komutları girerek CATALOG yaratılır. Burada dikkat edilmesi gereken, CATALOGDB diye geçen ifadenin TNSNAMES.ORA’daki bir tanım olduğudur. Hangi database catalog için kullanılacaksa , onun TNSNAMES.ORA’daki tanımı kullanılır:

$ rman

RMAN> CONNECT CATALOG rman/cat@CATALOGDB;

RMAN> CREATE CATALOG TABLESPACE cat_ts;

İşlem sonucunda “recovery catalog created” şeklinde bir ifade gelecektir. Artık RMAN

catalog ile kullanılabilir. CATALOG’a bağlanmak için aşağıdaki komutu kullanılır:

RMAN> CONNECT CATALOG RMAN/CAT@CATALOGDB;

( NOT: rman’in kullanacağı tablespace farklı bir şey de yapılabilir. Ancak tablespace adını

catalog olarak vermeye kalkışılırsa, tek tırnak içinde ‘catalog’ şeklinde belirtmek gerekir.)

d. CATALOG olarak kullanılacak şemayı yaratıldı. Şimdi sıra bir veritabanına bağlanıp, bunu

RMAN CATALOG’a dâhil etmektir. Bunun için veritabanına ve catalog’a bağlanmak gerekir.

Aşağıdaki işlem önce Unix komut satırından yapılır:

$ rman target sys/password@yedeklenecek_db catalog rman/cat@CATALOGDB;

Bu komutla hem yedeklenecek veritabanına bağlanılır; hem de yedekleme bilgilerinin

tutulacağı catalog şemasına… Bundan sonra veritabanını catalog’a aşağıdaki gibi kaydediriz:

RMAN> REGISTER DATABASE;

Artık daha önce anlatılan komutların hepsi kullanabilir ve yedek alma işlemi

sorunsuzca gerçekleştirilebilir.

Catalog yapısı yedekleme işlemini biraz daha karmaşıklaştırmış gibi gözükebilir. Fakat çoklu veritabanı söz konusu mantıklı tercih catalog kullanmak olur. Bunun en basit avantajı, yedek bilgilerinin controlfile’da tutulmamasıdır. Yarın öbür gün veritabanının bozulmasıyla birlikte controlfile da silinirse, işler daha da çok karmaşıklaşır.

ORACLE PERİYODİK YEDEKLEME

Burada sadece üzerinde çalıştığım  CRON’dan bahsedeceğim.

CRON, belirli bir zamanda, ayın ya da haftanın belirli bir gününde çeşitli görevleri gerçeklemek için kullanılan bir Daemon’dur.

crontab -l (crontab dosyasını gösterir)

crontab — (crontab dosyası mevcut değilse oluşturur ve editleme işlemi için dosyayı açar.)

crontab -r (crontab dosyasını remove eder.)

crontab -v (crontab dosyasının en son ne zaman editlendiğini gösterir.)

Bu arada öncelikle sistemde cron yüklü mü değil mi aşağıdaki  komutla öğrenilir;

rpm -q vixie-cron

Kısaca crontab dosyasının içeriğini aşağıdaki gibi ayarlayabiliriz:

Aşağıda /etc/crontab dosyası görülmektedir
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
 42 4 1 * * root run-parts /etc/cron.monthly
minute   hour   day   month   dayofweek   command (Kısaca bu şekilde kolonlar izah edilebilir.)
Örnek olarak;
# Her ayın ilk günü sabah 4:10 da yedek alan script 
10 4 1 * * oracle /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/backup.sh
şeklindedir.
Cron servisini başlatmak için;
redhat dağıtımında 
/etc/init.d/crond start komutu koşturulur. Cron servisi kapatmak için ise;
/sbin/service crond stop komutu kullanılır.

UBUNTU’ya MySQL KURULUMU

 

Ubuntu Software Center dan ilgili programlar kurulur. Sonra terminalden ya da programlar kısmından Mysql Administaror çalıştırılınca  Localhost’a bağlanılamıyor hatası veriyor. Tabii ping atılabiliyor. Bu durumda akla şifre hatası olabileceği geliyor ki gerçekten de öyle. Bu şifre /etc/mysql/ dizininin altında debian.cnf dosyasının içeriğinde mevcuttur. Buradaki bilgilerle mysql e giriş yapılırsa başarıyla login işlemi gerçekleştirilecektir.

 

 

 

 

Tomcat Terminalde Çalışmazsa (Ubuntu’da bu problem çıktı. Fedora’da böyle bir problem oluşmadı hatırladığım kadarıyla)

Problem Detayı:

startup.sh
Cannot find /tomcat/bin/catalina.sh
This file is needed to run this program

 

Çözüm:

chmod +x startup.sh
chmod +x shutdown.sh
chmod +x catalina.sh
chmod +x setclasspath.sh
chmod +x bootstrap.jar
chmod +x tomcat-juli.jar

Text Dosyasını excele çevirip SQL servera import etme

Öncelikle bir excel çalışma sayfası açılır. Dosya işlemlerinden aç seçeniğinden ilgili metin dosyası açılır. Buradan exceldeki sütunlar için gerekli ayarlar çekilir. Hatta verilerde Türkçe karakter sorunu varsa yine buradan otomatik düzeltme (dil seçeneği olarak windows dos gibi) yapılır.

Dönüştürme işlemlerinden sonra veri import etmek için Microsoft SQL Server Management Studio açılır. Sonra artık hangi db ye import gerçekleşecekse o db’nin üzerine gelinip sağ tıklanır ve Tasks kısmından İmport Data seçeneği seçilerek işlem devam ettirilir. Bu işlem istenirse direkt  import Wizart üzerinden otomatik isterde sql sorgusu yazılarak devam ettirilir.