önce çalisip çalismadigini kontrol etmek için;
-- emctl status dbconsole
''Environment variable ORACLE_SID not defined. Please define it.''
yazabilir.ilk çalistirmada sid degerini girmemizi ister.
-- set oracle_sid=orcl
sid değerimizi yazariz.(linux da set yerine export yazılır).Ancak linux da büyük harflerle orcl vermissek büyük yazacagiz.
-- emctl stop dbconsole
sonra
-- emctl start dbconsole
diyerek çalistimaya çalisirz.düzelmezse yeniden yartmaliyiz.yeniden yaratmak için aşşağıdaki adımları uygularız.
EM repository recreate
-- recreate
emca -config dbcontrol db -repos recreate
recreate komutu hata verirse ayrı ayrı drop ve create komutlarını çalıştırırız.
-- drop
emca -deconfig dbcontrol db -repos drop
-- create
emca -config dbcontrol db -repos create
-- hata verirse (sysman user already exists gibi) elle
-----------------------------------------------------
-- sys kullanicisi ile
sql> drop user sysman cascade;
sql> drop role mgmt_user;
sql> drop user mgmt_view cascade;
sql> drop public synonym MGMT_TARGET_BLACKOUTS;
sql> drop public synonym SETEMVIEWUSERCONTEXT;
6 Temmuz 2011 Çarşamba
3 Temmuz 2011 Pazar
Sorgu bazlı flashback
Örneğin biri geldi dedi ki,5dk önce deneme3 tablosundan bir kaydı sildim ama hangi kaydı sildim bilmiyorum.Bu durumda hangi kaydı sildiğini bulmak için sorgu bazlı flashback yapmak gerekir.
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
minus
select *from deneme3
eklenen satırı bulmak içinse tam tersini yazarız
select *from deneme3
minus
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
eksik olanı bulduktan sonra insert into tablo adı yazarsak silinmiş olan kaydı da geri eklemiş oluruz.
insert into deneme3
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
minus
select *from deneme3
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
minus
select *from deneme3
eklenen satırı bulmak içinse tam tersini yazarız
select *from deneme3
minus
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
eksik olanı bulduktan sonra insert into tablo adı yazarsak silinmiş olan kaydı da geri eklemiş oluruz.
insert into deneme3
select * from deneme3
as of timestamp to_timestamp('03/07/2011 20:55','DD/MM/YYYY HH24:MI')
minus
select *from deneme3
28 Haziran 2011 Salı
Linux üzerine oracle10g kurulumu için gerekli parametreler
gedit /etc/sysctl.conf yazip açilan sayfanin sonuna bu parametreleri yaziyoruz. #kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
#fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144 restart etmeden geçerli olmasi için de /sbin/sysctl -p komutunu yazariz. gedit /etc/security/limits.conf yazip dosyanin sonuna bunlari ekliyoruz. * soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
[root@centos5 ~]# gedit /etc/pam.d/login yazip çikan dosyanin sonuna ekliyoruz. session required pam_limits.so kurulumda disable yaptik ama yapmadiysak /etc/selinux/config SELINUX=disabled oracle kurulumu gereken gruplarin yaratilmasi için bu komutlari yazip oracle kullanicisi için yeni sifre veriyoruzben rootla ayni sifeyi verdim. groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
passwd oracle oracle in yerini veriyoruz
mkdir -p /oracle/product/10.2.0/db_1
chown -R oracle.oinstall /oracle clientlara açmak için xhost + gedit /etc/redhat-release yazip eskisini silip redhat-4 yazıyoruz system menüsünden log out root diyip oracle kullanicisi ile login olup asaidaki islemleri yapiyoruz (çikis dediginizde takilirsa init 6 yazin).komut satirindan[oracle@centos5 ~]$ gedit .bash_profile yazip açilan dosyanin sonuna aşağıdaki komutlari yaziyoruz.oracle_sid niz neyse komutta ORACLE_SID kismina onu yazin ; # Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIRORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9; export NLS_LANGLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATHif [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi .bash_profile i enable etmek için bu komutu çalistiyoruz. source ~/.bash_profile bu işlemlerden sonra oracle kurulumuna başlayabiliriz.
CENTOS5 ÜZERİNE ORACLE10G KURULUMU
[oracle@centos5 ~]$ ls
aaa.zip database Desktop
[oracle@centos5 ~]$ cd database
[oracle@centos5 database]$ ls
doc install response runInstaller stage welcome.html
[oracle@centos5 database]$ ./runInstaller
diyerek kurulum baslar.
kurulumdan sonra root kulllanıcısına geçip ;
[oracle@centos5 ~]$ su - root
Password: root şifreni gir.
[root@centos5 ~]# gedit /etc/oratab yazıp açılan dosyanın en sonuna
aaa.zip database Desktop
[oracle@centos5 ~]$ cd database
[oracle@centos5 database]$ ls
doc install response runInstaller stage welcome.html
[oracle@centos5 database]$ ./runInstaller
diyerek kurulum baslar.
![]() |
| Advenced seçeneğini seçiyoruz. |
![]() |
| Default gelenleri değiştirmeden devam diyoruz. |
![]() |
| İstediğimiz edition'ı seçiyoruz |
![]() |
| Oracle'ın kurulacağı adresi ayarlıyorz.default olanı seçiyorum. |
![]() |
| Network configuration konuusnda hata verebilir.Dikkatte almayıp next diyoruz. |
![]() |
| Create database diyoruz |
![]() |
| İstediğimiz database tipini seçiyoruz. |
![]() |
| Tüm dilleri desteklemesini istiyorsak utf-8 i ayarlıyoruz.sample şemaların da olmasını istersen en alttaki seçeneği işaretliyoruz. |
![]() |
| Use database control seçeniğini seçip next diyoruz. |
![]() |
| Windows da alışık olduğum gibi olsun diye resimdeki adresi veriyorum. |
![]() | |||||||||||||
| Şuan ayarlamayı tercih etmiyorum. |
![]() |
| Kullanıcı şifrelerini veriyorum.hepsine aynı şifreyi vermek için altki seçeneği tercih edip veriyorum. |
![]() |
| İnstall diyoruz |
![]() |
| Exit diyoruz.bu işlemden sonra yaklaşık 10-15dk'lık yükleme işlemi başlayacaktır. |
![]() | |||
| Scriptlerin çalıştırılması |
[oracle@centos5 ~]$ su - root
Password: root şifreni gir.
[root@centos5 ~]# gedit /etc/oratab yazıp açılan dosyanın en sonuna
ORCL:oracle/product/10.2.0/db_1:Y yazıyoruz [root@centos5 ~]# gedit /etc/redhat-release yazıp açılan dosyaya
CentOS release 5.3 (Final) diyip eski haline çeviriyoruz.18 Haziran 2011 Cumartesi
Oracle karakter set kodları
- west european WE8MSWIN1252 amerikalıların kendi kodudur.oracle kurulurken default olarak bu seçili gelir.bu değerde ş,i,ğ gibi türkçe karakterleri depolayamayız.genelde ? işaretine çevirir.
- Unicode standart UTF-8 AL32UTF8 içinde bütün dilleri barındırır.ancak ISO lara göre daha yavaştır.ufuk bir çevirme işleminden geçecektir.ancak gözle fark edilemeyecek kadar bir süredir bu.
- Turkish WE8ISO8859P9 türkçe karakter setidir.
- Turkish TR8MSWIN1254 ise 8859P9 a birkaç karakter eklenmiş halidir.ikiside seçilebilir.
Windows ortamında regedit --HKEY_LOCAL_MACHINE--software--oracle--KEY_ORADB10G_HOME1 altında NLS_LANG a çift tıklayıp karakter setleri ayarlayabiliriz.Örneğin unicode standart ayarlamak istersek;
AMERICAN_AMERICA. AL32UTF8 gireriz.
Önemli! veritabanımızda türkçe karakter set kullanacaksak ileride veritabanımızın başka bir dilde kullanılmayacağından emin olmamız gerekir.örneğin bir çağrı merkezi uygulaması yaptık.yöneticiler ruslarda giriş yapacak gerekli tedbirleri alın dediklerinde yapacak hiçbir şey yoktur.sadece türkçe ve ingilizce karakterler girilebilir.Yani ileride globallik ihtimali varsa UTF-8 seçilmelidir.
Possible charset conversion
Örneğin;client üzerinden serverdaki bir kullanıcını verilerini export ile alırken,client ile serverın nls_lang değerleri aynı değilse possible charset conversion yapar.yani client da nsl_lang değeri neyse karakterleri client ın nls_lang değerine çevirir.Bu durumda da türkçe karakterlerde bozulma olabilir.Bu durumun olmaması için client ın nls lang değerini server ile aynı yapıp export almak gerekir.
örneğin;
nls_lang değerimiz AMERICAN_AMERICA.WE8MSWIN1252 şeklinde ise export alırken ş,ğ leri bozar.Bu yüzden AMERICAN_AMERICA.WE8ISO8859P9 yaparsak ş ve ğ harflerini kaybetmeyiz.
ilk restart ta geçerli olur.
örneğin;
nls_lang değerimiz AMERICAN_AMERICA.WE8MSWIN1252 şeklinde ise export alırken ş,ğ leri bozar.Bu yüzden AMERICAN_AMERICA.WE8ISO8859P9 yaparsak ş ve ğ harflerini kaybetmeyiz.
ilk restart ta geçerli olur.
ORA-12705 HATASI
ora-12705 cannot access nls data files or invalid environment specified hatası nls değerinizin hatalı olduğunu gösterir.
düzeltmek için komut satırından regedit--HK_LOCAL_MACHİNE --SOFTWARE--ORACLE--KEY_oradb10g_home1--NLS_LANG değerini kontrol ediniz ve geçerili bir değer giriniz.
ÖNEMLİ ; NLS_LANG değerini değiştirdiğinizde bu değişikliğin geçerli olması için veritabanını kapatıp tekrar açmamız gerek
düzeltmek için komut satırından regedit--HK_LOCAL_MACHİNE --SOFTWARE--ORACLE--KEY_oradb10g_home1--NLS_LANG değerini kontrol ediniz ve geçerili bir değer giriniz.
ÖNEMLİ ; NLS_LANG değerini değiştirdiğinizde bu değişikliğin geçerli olması için veritabanını kapatıp tekrar açmamız gerek
17 Haziran 2011 Cuma
Oracle da kullanıcılar veritabanına baglanamiyoruz dediğinde...
veritabanina baglanamiyoruz denildiginde
-------------------------------------------
1) veritabani açik mi?
sqlplus sys/oracle@orcl as sysdba ile baglan.
connected to an idle instance mesaji görüyorsan,veritabanı kapalıdır.
startup komutu ile baslat.
2) listener açik mi ?
lsnrctl status yazarak kontrol et.
hatalar döndürüyorsa,listener kapalıdır.
lsnrctl start ile baslat.
-------------------------------------------
1) veritabani açik mi?
sqlplus sys/oracle@orcl as sysdba ile baglan.
connected to an idle instance mesaji görüyorsan,veritabanı kapalıdır.
startup komutu ile baslat.
2) listener açik mi ?
lsnrctl status yazarak kontrol et.
hatalar döndürüyorsa,listener kapalıdır.
lsnrctl start ile baslat.
Oracle Kapatma komutları
shutdown [normal]
- yeni kullanicilar giremez.
- mevcut kullanicilarin kendi istegiyle çikmasini bekler.
shutdown immediate
- yeni kullanicilar giremez.
- islemleri rollback yapip, mevcut kullanicilari atar.
shutdown transactional
- yeni kullanicilar giremez.
- çalisan islemlerin bitmesini bekleyip atar.
shutdown abort
- yeni kullanicilar giremez.
- hemen atar, datafile'larin güncellenmesini bile beklemez,
commit edilmis veriler redo log dosyalarinda kalir.
DİKKAT ! shutdown abort ile kapatıldığında redo log dosyalarında veri kalır.Bu yüzden redo log dosyalarına zarar gelmesi durumunda veri kaybı yaşanabilir.Abort ile kapatıldığında redo log dosyalarının güvenliğinden emin olmalıyız.
- yeni kullanicilar giremez.
- mevcut kullanicilarin kendi istegiyle çikmasini bekler.
shutdown immediate
- yeni kullanicilar giremez.
- islemleri rollback yapip, mevcut kullanicilari atar.
shutdown transactional
- yeni kullanicilar giremez.
- çalisan islemlerin bitmesini bekleyip atar.
shutdown abort
- yeni kullanicilar giremez.
- hemen atar, datafile'larin güncellenmesini bile beklemez,
commit edilmis veriler redo log dosyalarinda kalir.
DİKKAT ! shutdown abort ile kapatıldığında redo log dosyalarında veri kalır.Bu yüzden redo log dosyalarına zarar gelmesi durumunda veri kaybı yaşanabilir.Abort ile kapatıldığında redo log dosyalarının güvenliğinden emin olmalıyız.
Kaydol:
Yorumlar (Atom)















