Tuesday, September 2, 2008

Local Listener tanımlama




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

Wednesday, August 27, 2008

DataGuard konfigürasyon ile Standby database kurulumu

..

Database Adının değiştirilmesi

Database Adının değiştirilmesi

1. Database kapatılır ve mount modda açılır.
shutdown immediate;
startup mount;


2. export $ORACLE_SID=new_db_name olmalıdır

3. nid target=/ dbname=new_db_name

DBNEWID: Release 10.2.0.4.0 - Production on Wed Aug 13 17:20:55 2008

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

Database name changed to PROVKURS.
Modify parameter file and generate a new password file before restarting.
Database ID for database PROVKURS changed to 3460159672.
All previous backups and archived redo logs for this database are unusable.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

4. initnew_db_name.ora dosyasında

db_name= 'new_db_name' yapılır

tnsnames.ora gerekirse değiştirilir.


5. spfile yaratılıp database open resetlog ile açılır.

sqlplus "/ as sysdba"

create spfile from pfile;

startup mount;

alter database open resetlogs;

startup force;

Yeni Yaratılan Bir Database'in Backup'ının Konfigürasyonu

.

Aynı serverda Aynı homeda Bir database'in duplikesinin Yaratılması

Aynı serverda Aynı homeda Bir database'in duplikesinin Yaratılması

1. Source tarafta

Tüm tablespaceler backup moduna alınır.

alter tablespace Tablespace_name begin backup;

2. Source tarafta

Datafile ler yeni yerine kopyalanır

3. Source tarafta Tablespaceler backup modundan çıkarılır.

alter tablespace Tablespace_name end backup;

4. Source tarafta controlfile 'ın kopyası belli bir yere alınır

alter database backup controlfile to '/PATH/controlfilename.ctl'

5. yeni ORACLE_SID belirlenir

export ORACLE_SID = copyDB

6. Source taraftaki initDBNAME.ora dosyası copy database için hazırlanılır.

cp initSourceDB.ora initCopyDB.ora

7. initCopyDB.ora içinde aşağıdaki değişiklikler yapılır.

db_name adı aynı kalır.
*_dump_dest parametreleri için uygun directörüler verilir
control_files='/PATH/controlfilename.ctl' yapılır
lock_name_space='CopyDB' -- Buradaki en önemli parametre buna göre aynı home aynı isimde iki ayrı database
-- açılabiliyor. Her nekadar obselete olsada. Database mount olduğunda Oracle
-- lklock_name_space adında bir file oluşturarak bu işi yapıyor.
-- lkCopyDB gibi.
8. ORACLE_SID = copyDB iken

sqlplus "/ as sysdba"
startup mount -- yapılarak initCopyDB.ora okunur ve controlfile yeni yerinden belli olur.

alter database mount -- yapılarak kontrol file okunur ve

-- Bundan sonraki amaç Redolog ve datafilelar yeni yerlerine yönlendirilir.


9. Redolog fileların yeni yerine yönlendirilmesi

SQL> select member from v$logfile;

ile memberlar seçilir ve yeni yerlerine alter edilir.

alter database rename file 'member_path' to 'new_member_path';

10. Datafileların yeni yerlerine yönlendirilmesi

select name from v$datafile ;

ile datafiler seçilir ve

alter database rename file 'datafile_path' to 'new_datafile_path' ;


11. Temp file'ın drop edilmesi

select name from v$tempfile; ile seçilir

alter database tempfile 'temp_file_path' drop;

12. Database'in recover edilip açılması

recover database using backup controlfile until cancel;

-- burada bir archive log isterse orginal database'in alter database switch logfile yapılıp yönlendirilir.

alter database open resetlogs;

13. Yeni database 'e temp file eklenir

alter tablespace temp add tempfile 'new_temp_file_path' size xxxxM;


Böylece Aynı serverda Aynı homeda Bir database'in duplikesinin yaratılmış olur.
Bundan sonra istenirse database adı değiştirilebilir nid programı ile

Thursday, July 31, 2008

Bir Database'in aynı Serverda Farklı bir Oracle Home 'a Restore Edilmesi

;

Temel Listener konfigürasyonu ve Load Balance

Keywords : Oracle 9i, 10 g Listener tnsnames.ora network
Metalink döküman Noları : 557946.1 260986.1 69546.1 76636.1 235562.1

Standart listener.ora dosyasında listener'ın kullanacağı portlar ve databaseler tanımlanır.
Listener açıldığında bu tanımları kullanarak ; tanımları yapılan databaselere girilen portlardan erişim sağlamak
için hizmete başlar.

Listener kullanmanın diğer bir yöntemide listener.ora dosyasına hiç bir şey yazmamaktır.
Database açıldığında init.ora ve tnsnames.ora dosyalarını kullanarak kendisini listener'a register eder.
buna local listener kullanımı diyoruz.

Oracle 10g'de 1521 nolu porttan listener tanımlamak için listener.ora doyasını gerek yoktur.
Default olarak 1521 portun'dan bir listener açılır ve Database bu listener'a kendini register eder.
Başka bir porttan database listener tanımlamak istiyorsanız

$TNS_ADMIN/listener.ora dosyası kullanılır


STANDART LISTENER KULLANIMI

Eğer Local_listener kullanılmıyacaksa Listener'ı kullanacak database adları aşağıdaki gibi
girilmelidir.

:IP , :Portnumber , :SID , :ORACLE_HOME) değerleri girilmelidir.

LISTENERADI=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = :IP )(PORT = :PortNumber))
)
)

SID_LIST_LISTENERADI =
(SID_LIST =
(SID_DESC =
(SID_NAME = :SID)
)
)

veya


SID_LIST_LISTENERADI =
(SID_LIST =
(SID_DESC =
(SID_NAME = :SID)
(ORACLE_HOME = :ORACLEHOME)
)
)



Bu listener aşağıdaki komut ile açılır

lsnrctl start LISTENERADI


bu database'in iki ayrı Porttan Load balance erişilebilmesi isterseniz diğer bir listener daha tanımlıyabilirsiniz.
Buradaki listener adı ve portu farklı olmalıdır.


Örnek

LISTENERA =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = SAMPLE.COM)(PORT = 2001))
)
)

SID_LIST_LISTENERA =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
)
)

LISTENERB =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = SAMPLE.COM)(PORT = 2002))
)
)

SID_LIST_LISTENERB =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
)
)


Aşağıdaki gibi listenerlar açılır.

lsnrctl start LISTENERA
lsnrctl start LISTENERA


Bu database load balance ile erişim için ise aşağıdaki tanım clientlardaki tnsnames.ora'ya yazılır.

LOADBALANCE =
(DESCRIPTION =
(LOAD_BALANCE = yes)
(ADDRESS = (PROTOCOL = TCP)(HOST = SAMPLE.COM)(PORT = 2001))
(ADDRESS = (PROTOCOL = TCP)(HOST = SAMPLE.COM)(PORT = 2002))
(CONNECT_DATA =
(SID = ORCL)
)
)

Tuesday, July 29, 2008

Oracle 9i 'den 10g ye upgade aşamaları

Key : 9i, 10g , Upgrade ,Install

9i'den 10g ye upgrade oldukça kolay . Upgrade öncesi yapılması gereken kontrölleri Oracle bir script yazarak halletmiş.

NOT : Bu dökümanda Oracle 9i upgrade edilecek serverda bir Oracle 10g Binary sinin olduğunu düşünüyorum.
10g binary kurulum yoksa öncelikle bunu yapmalısınız.


Aşağıdaki Adımlar ile upgrade yapılabilir.

------ UPGRADE ÖNCESİ --------

** 9i databaseine bağlanıp Database linklerin şifrelerini ve İnvalid objeleri ayrı bir tabloya at.

create table before10gupgrade_link$ as select * from link$;
create table before10gupgrade_invalidobject as select * from dba_objects where status='INVALID'and owner not in ( 'SYS','SYSTEM' ) ;


** Log in to the system as the owner of the Oracle home directory of the new Oracle
Database 10g release.

Copy the following file from the ORACLE_HOME/rdbms/admin/utlu102i.sql

Bu dosyayı Oracle9 'lu database'den bağlanarak çalıştır.

output'da belirtilenleri yap.

** 9i database'in backuplarını kontrol et.


------ UPGRADE ----------------

** X- windows ile bağlan

export DISPLAY=IP:0.0

dbua yı çalıştır ve ekranları takip et


------ UPGRADE SONRASI -----------

Öncelikle Upgrade'in başarılı bittiği kontrol edilmelidir

select * from dba_registry; - deki output tüm componentler için VALID olmalıdır.

Burada VALID olmıyan component varsa upgarde sonlanmamış demektir.

Mutlaka componentlerin valid yapılması gerekir.

** Upgrade bittikten sonra 9 lu database'in profile'ını değiştir ve backupını ayarla.

upgrade catalog yapman gerekir rman'dan

** Backup başlat

Saturday, July 26, 2008

DATABASE'i ARCHIVE LOG MODUNA ALMA

---------------------------------------------------------------------------
DB Version : 9i

initDBNAME.ora 'da aşağıdakiler değiştirilir.

*.log_archive_start=TRUE
*.log_archive_dest='/export/d3101/oradata/ORA09/arch'

Database kapatılır.

sqlplus "/ as sysdba"

shutdown immediate;

create spfile from pfile;

startup mount

alter database archivelog;

alter database open;

-- dikkat parametre değişiklikleri pfile'da olmalıdır.

alter system switch logfile; ile archive log 'un ilerlediği görülmelidir.


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


DB Version 10

Sadece aşağıdaki parametrelerle database 'in açılması yeterlidir.

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.log_archive_dest_1='LOCATION=/export/d3101/oradata/ORA09/arch'


log_archive_dest_n parametreleri

n enabled
Specifies that a valid log archive destination can be used for a subsequent
archiving operation (automatic or manual). This is the default.
n defer
Specifies that valid destination information and attributes are preserved, but the
destination is excluded from archiving operations until re-enabled.
n alternate
Specifies that a log archive destination is not enabled but will become enabled if
communications to another destination fail

ORACLE DATABASE TAŞIMA

 --------- AYNI SERVERDA BİR ORACLE DATABASE'İNİ  BAŞKA BİR YERE TAŞIMA --------------