metin ergöktaş oracle blog

silinen kayıtları ayrı bir tabloda takip etmek

Posted in Admin Scriptleri by itmanager on 08 Aralık 2010

Bazı kritik önemdeki tablolarımızda silinen kayıtları takip etmek isteyebiliriz. Bir anlamda windowstaki çöp kutusu gibi. Bu amaçla aşağıdaki prosedürü yazdım. Bu prosedüre parametreolarak silinen kayıtları takip etmek istediğimiz tablonun adını geçiriyoruz. Prosedür önce silinen kayıtları atacağı tabloyu tablo adının sonuna “__cop” ekleyerek oluşturuyor. Ayrıca silinen kayıtların atılacağı tabloya orjinal tablo yapısından farklı olarak DELETE_USER,DELETE_PC,DELETE_DATE,DELETE_OS_USER kolonlarını ekliyor. Bu kolonlarda isimlerinden anlaşılacağı gibi, kaydı silen kullanıcı adı, silindiği pc ismi,silindiği tarih ve silinen pc nin işletim sistemi kullanıcı adları tutuluyor.
Daha sonra prosedür silme işleminde çalışacak BEFORE DELETE trigger ını oluşturuyor. trigger ın adı tabloadı_rb_trg oluyor.Bundan böyle orjinal tablomuzda silinen her kaydı __cop tablomuzda tutmuş olacağız.

(daha fazla…)

bir tabloyla aynı yapıda boş yeni bir tablo oluşturmak

Posted in Admin Scriptleri by itmanager on 11 Haziran 2010

Bazen bir tabloyla aynı yapıda ama boş bir tablo oluşturmak gerekebilir. Bunun için izleyeceğimiz en kısa yol şu komutu çalıştırmaktır.

create table bosKopyaTablo  as select * from kopyalananTablo where 3=5 ;

3=5 eşitliği sürekli false olarak gerçekleneceği için tablomuz  hiç bir veri içermeden oluşturulmuş olacaktır. Aynı şekilde constraint ler, index ler de orjinal tablomuzdan kopyalanmayacaktır.

Oracle Database SID değiştirme

Posted in Administration by itmanager on 16 Nisan 2010

DBNEWID kullanmadan veritabanının SID sini değiştirmenin tek yolu controfile ların yeniden oluşturulmasıdır. Şimdi varolan bir veritabanımızın (SEKER) ismini ve SID sini değiştirecez. Yeni SID VE db_name (BORDRO) olacak.

Öncelikle varitabanımızı clean shutdown dediğimiz bir metotla kapatmamız gerekiyor

Shutdown immediate

MOUNT modda yeniden başlatıyoruz.
Windows komut satırına geçip aşağıdaki dbnewid aracını aşağıdaki parametrelerle çalıştırıyoruz.

nid TARGET=sys/syssifresi@192.168.10.103/seker DBNAME=bordro

eğer target veritabanımıza (SEKER) bağlanmada bir problem olmazsa aşağıdaki çıktıyı görmemiz gerekiyor. Dikkat edilirse hedef veritabanına bağlandıktan sonra SID ve veritabanı isim değişikliği için bizden onay istiyor.

DBNEWID: Release 10.2.0.1.0 - Production on Fri Apr 16 15:01:29 2010

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

Connected to database SEKER (DBID=10687593)

Connected to server version 10.2.0

Control Files in database:
C:\SEKERDB\CONTROL01.CTL
C:\SEKERDB\CONTROL02.CTL
C:\SEKERDB\CONTROL03.CTL

Change database ID and database name SEKER to BORDRO? (Y/[N]) => y

Proceeding with operation
Changing database ID from 10687593 to 1061216394
Changing database name from SEKER to BORDRO
Control File C:\SEKERDB\CONTROL01.CTL – modified
Control File C:\SEKERDB\CONTROL02.CTL – modified
Control File C:\SEKERDB\CONTROL03.CTL – modified
Datafile C:\SEKERDB\SYSTEM01.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\UNDOTBS01.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\SYSAUX01.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\USERS01.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_DATA.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_INDEX.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_LOB.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_REPORT_DATA.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_REPORT_INDEX.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_ARCHIVE_DATA.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_ARCHIVE_INDEX.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_DATA2.DBF – dbid changed, wrote new name
Datafile C:\SEKERDB\IFSAPP_INDEX2.DBF – dbid changed, wrote new name
Control File C:\SEKERDB\CONTROL01.CTL – dbid changed, wrote new name
Control File C:\SEKERDB\CONTROL02.CTL – dbid changed, wrote new name
Control File C:\SEKERDB\CONTROL03.CTL – dbid changed, wrote new name
Instance shut down

Database name changed to BORDRO.
Modify parameter file and generate a new password file before restarting.
Database ID for database BORDRO changed to 1061216394.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID – Completed succesfully.

Son kısımdaki uyarıları dikkatle okumak gerekiyor.

Önce yaptığımız değişikliği başlangıç dosyalarına uygulamak için sırasıyla

STARTUP MOUNT
ALTER SYSTEM SET DB_NAME=BORDRO SCOPE=SPFILE;
SHUTDOWN IMMEDIATE

Komutlarını çalıştıralım

Son olarak veritabanını RESETLOGS ile başlatmamız gerekiyor

ALTER DATABASE OPEN RESETLOGS

Şununla etiketlendi:, , , , ,

apex admin şifresini resetlemek

Posted in apex by itmanager on 25 Ocak 2010

Benim gibi unutkan birisi iseniz  şifrelerle aranız pek iyi olmayabilir. Oracle Application Express in admin şifresini unuttuysanız çok endişenlenmeye gerek yok, apex in root klasörünün altında apxxepwd.sql  scriptini çalıştırırarak apex admin şifresini resetleyebiliriz.

 

Şununla etiketlendi:, , , ,

Oracle data dictionary view leri görmek

Posted in Admin Scriptleri by itmanager on 19 Kasım 2009

Oracle v$ performans  view leri ( dinamik performans view) leri görmek için şu sorguları çalıştırabiliriz.

select kqfvinam name from x$kqfvi order by kqfvinam;
select * from PUBLICSYN where sname like 'V$%' order by 3,1;
select table_name from DICTIONARY where table_name like 'V$%' order by 1

oracle data dictionary view ler için :  http://ss64.com/orad/oracle
 v$ performans view ler için  : http://ss64.com/orav/index.html

Cold backuptan veritabanını klonlama

Posted in Administration by itmanager on 19 Kasım 2009

Production database in bir klonunu oluşturmak çoğu zaman test ve development işlemleri açısından işe yarayıcı olabilir.

Bu işlemler adım adım şu şekilde yapılır:

(daha fazla…)

Şununla etiketlendi:, , ,
Follow

Get every new post delivered to your Inbox.