Oracle Notes

  • Upload
    ibbooo

  • View
    289

  • Download
    0

Embed Size (px)

Citation preview

--objelerin DDL ini olusturmak dbms_metadata.get_ddl('TABLESPACE','MENKUL2007_DATA') --to start or stop em grid kontrol proces oracle_home/bin/emctl start|stop agent --to start or stop em databese kontrol proces oracle_home/bin/emctl start|stop dbconsole --to start aplication server control process emctl start iasconsole --start stop isqlplus process on server oracle_home/bin/isqlplusctl start|stop --port listesi oracle_home/install/portlist.ini --start web_based em db contole http://selohan:1158/em --start isqlplus on explorer http://selohan:5560/isqlplus --unix den dbca (oracle database configuration assistant) i alistirmak oracle_home/bin/dbca --elle oracle database i drop etmek sqlplus sys/hancer@ocp as sysdba startup mount drop database not:database archive dosyalarida elle silinmelidir komut alistiktan sonra --oracle instance baslatirken parametre dosyasini okur arama sirasi: spfileocp.ora,spfile.ora,pfileocp.ora (oracle_home/dbs|database) --database ailma asamalari startup [nomount|mount|open] [ pfile|spfile= ] [ restrict] startup nomount>>baslangi parametreler okunarak instance baslatilir database kurulmaz kullanim amaci database olusturma scripti alistirmak startup mount>> control file okunarak data base kurulur bu modda iken admin grevler yapilir recovery,archive log modu degistirme dosyalarin yerini degistirme

startup open >>bu modda database btn kullanicilara aciktir startup restrict>>database backup ,export yapmak iin database bu modda ailir sadece restricted sesion ayricaliginasahip kisiler baglanabilir databese " alter system disable restricted session" yapilarak database diger kullanicilara ailir startup force>> database normal modda ailmadiginda kullanilir databese bu sekilde shutdown abort ile kapatilir yeniden ailir . --databesa kapatma komutlari shutdown normal >>yeni beglantiya izin verilmez btn kullanicilar sistemden ikdiktan sonra database kapanir recovery gerektirmez shutdown transactional>>yeni bir baglanti yeni bir transaction kabul edilmez yarim kalan transaction lar bitir bitmez database kapanir recovety gerektirmez. shutdown immediate >>yeni baglanti yeni transction kabul edilmez tamamlanmamis transaction lar rollback yapilir transaction in tamamlanmasi beklenmeden database kapanir shutdown abort >> hi biseye bakilmadan database hemen kapanir rollback bile yapilmaz instance yeniden aildiginda recovery gerektirir --database alert loglari "background_dump_dest" init paramatresindee belirtilen yere kaydedilir . genellikle yeri oracle_home/admin/ocp/bdump --tablespace yaratmak create [bigfie|smallfile] tablespace menkul2007 datafile '/us01/oradata/menkul/mrnkul200701.dbf' size 200m; bigfile>>32 tr sinirlidir smallfile>>32 gb ile sinirlidir.

** isletim sistemi bagimsiz dosyalar yaratmak iin orace maneged files (omf) kullanilir aimlar 1-alter system db_create_file_dest='d:\oracle\oradata\menkul\omf' 2-create tablespace menku2007. **tempory tablespace yaratmak create temporary tablespace temp tempfile 'd:\oracle\oradata\menkul\temp01.dbf' size 200m **table space i ierikleriyle birlikte silmek drop tablespace menkul2007 including contents **table space object ve data file ile birlikte silmek drop tablespace menkul007 including contents and datafiles **table space e data file eklemek alter tablespace menkul2007 add datafile 'c:\oracle\oradata\menkul200801.dbf size 500' **table space i tasimak yada ismini degistirmek iin offline almak alter table space menku2007 offline; alter table space menkul2007 rename datafile '/menkul200701.dbf' to 'menkul2008dbf'; **undo tablespace yaratmak creata undo tablespace *** **datafile in hacmini degistirmek alter database datafile 'd:\oradata\ocp\system01.dbf' resize 500 **datafile offline online yapmak alter database datafile 'd:\oradata\dara01.dbf' [offline|online] **datafile in file header ini database ile ayni yapmak recover datafile 'c:\oradata\data01.dbf' **tablespace i read only ve read write yapmak alter tablespace menkul [read only|read write] -----btn table space leri yaratmak iin kullanilacak tablolar dba_data_files dba_temp_files v$tablespace --create global temporary rable create global temporay table

( cloumn1, cloumn1 ) on commit delete rows|on commit preserve rows --table ve column larina comment eklemek comment on table customer is 'msterilerin eklendigi tablodur'; comment on cloumn customer.customer_name is 'msterinin ismini belirten bir alandir' -- tabloya kolon eklemek silmek degistirmek alter table customer add (ad varchar2,soyad varchar2) alter table customer modify (ad bumber default 1) alter table customer drop (ad soyad) yada alter table customer drop column ad; **constrains primary key ----------tablo yaratilirken:contraint pm_const primary key (customer_no) daha sonra olusturma:alter table customer add consraint pk_name primary key (customer_no) disable enable drop:alter tabe customere disable|enable|drop constraint cs_name; foreign key -------------tablo yaratilirken:contraint pm_const foreign key (customer _no) references customer (customer_no) daha sonra olusturma:alter table customer add consraint fk_name foreign key (customer_no) references customer(customer_no) on delete cascade |on delete set null unique ---------tablo yaratilirken:contraint un_const unique (customer _no) daha sonra olusturma:alter table customer add consraint un_name unique (customer_no) check

---------tablo yaratilirken:contraint ck_name check (customer _no >0 ) daha sonra olusturma:alter table customer add consraint ck_name check (customer_no>0) --index yaratmak ve rebuild etmek create unique index index_name on teyid (islem_no,borsa_emir_no) alter index index_name rebuild --aralikla database baglanti kesintisinin nedeni firewall a uygulanmis olan bir patch olabilir. --iki tip firewals var ip-filtering firewalls:data header kismindaki ip leri ip group la karsilastir ona gre izin verir proxy-based firewalls :newwork disindan gelen direk istekleri nler sirketin kapisindaki gvenlikci gibidir cisco ve check point bu tr firewall lerin saticilaridir . --kerberos:authentication protocal dir cilint ve server arasinda --heterogeneous servise: oracle transparent gateway ve generic connectiviyi iki iki compenentten olusur oracle olmayan datasourclariyla haberlesmek iin kullanilir. --pl/sql code iinden agrlan external procedureler extpro process tarafindan islenirler. **listeners --client in sever ile baglanti kurmasini saglar --listenerler database in alistigi server zerinde bulunur --bir listenr birden fazla database i dinleyeblir . --bir server zerinde birden fazla listener olabilir. --dedidated serverlerde direct baglanti listener istegi alir ve dedicated server process i baslatir daha sonra client bu process ile direk baglanti kurar --dedicated server ile indirect baglanti bu te baglanti uzak baglantiyla olur listener baglanti istegini alir process i baslatir daha sonra process in adres ve port bilgisini cient a gnderir client da bu bilgilerle baglantisini kurar

--shared serverler da direct baglanti listeener baglanti istegini alir en az ykl dispatcher process ini verir ve byle client server baglantisi kurulur --shared serverlerde indirect baglanti listener baglanti istegini alir enaz ykl dispatcer in adres ve port bilgisini client a gnderir client bu bilgiyle dispatcher a baglanir baglanti kurulduktan sonra pmon process listener a dispatcher daki baglanti sayisini gnderi --listener ile ilgili komutlar lsnrctl start|stop|reload|set|show|servicess|status --oracle database i direk listener ile iliskilendir iin parametre dosyasindaki local_instance,instance_name,service_names parametreleri doldurulmalidir --kerberos authentication protocal client ve server arasinda **database e baglanti ile problem yasandiginda yapilmasi gerekenler 1-database servere ping atilir alisip alismadigini kontrol iin 2-sqlplus ile baglanilir database iin aik olup olmadigini anlamak iin kapali grnyorsa database in restiricted session mosunda ailip ailmadigino kontrol iin sysdba olarak baglanilir 3-baglati problrmi yasayan kullanicinin create session ayricaligina sahip degilse verilir. 4-btn listener in alisip alismadigindan kullanicinin listener larin grdg servise lerden birine baglandigindan emin ol lsntctl status komutunu kullanarak 4-clint baglanti metodu olarak hostnaming kullaniyorsa listener tanimda global_dbname de database servise adi degildi databasei in bulundugu host name in bulundugundan emin olunmali 5-client in litener a baglanmak iin kullandigi protocols ile listener in protocols un ayni olup olmadigi kontrol edilmeli 6-adapter (tcp/ip) lerin server zerine kurulu olmadigina emin ol 7-client in connection time out a dp dsmedigine emin ol dsyorsa listener in inbound_connect_timeout degerini artir ile isnrctl set

inbound_connect_timeout=20 --trace komutlari windows:tracert unix:traceroute --client ,listener baglantisinin olup olmadigi tnsping service_name komutu ile yapilir --client ,server baglanti problemlerinde sqlnet.ora dosyasindaki NAMES.DIRECTORY_PATH ve NAMES.DEFAULT_DOMAIN degerleri nemlidir. rnegin sqlplus dan baglanti yapiyosun domain ismi belirtmedin sqlnet dosyasinda ise world olsun oracle servise ismini zerken baglantida domain ni belirtmmissen o domain i servis ismine ekliyor ve tnsnames dosyasindan onu bulmaya alisiyor bulamazsa service ismi zlemedi diye hata veriyor ------------------------------**shared server shared server daha fazla baglantida hafiza problemi yasanmasi ek bir hardware gerektiren uygulamalarda kullanislidir . shared server scalibility iin iyidir ,performans artirimi iin bir seenek degildir . dezavantajlari:yogun client connection alrinda jullanisli degildir ,byk data transferlerinin oldugu uygulamalarda kullanisli degildir databaase shared server ile baglandiysan database i baslatamaz durduramaz bir takim recovery islemlerini yapamazsin. --btn dispatcher larin tek request queue vardir fakar her disparcher in bir response queue vardir --dedicated servede her connection iin PGA vardir bu shared serverda UGA ile yer degistirir ve bu uga larda large pool diye SGA bir hafiza biriminde bulunur --instance basladiginda alistirilacak dispatcher sayisi dispatchers adli parametreyle belirlenir ve alter system ilede degistirilebilir dispatchers="(pro=tcp)(dis=3) (pro=ipc) (dis=2)" --baslatilcak disatches sayisi es zamanli maksimum connection sayisi/50 ile bulunur yani her dispatchers 50 connection ile bas edebilir --connection pooling connection pooling ;idle connection nin disconect edilmesi ve o

connectiion nnin yeni gelen istekler iin kullanma yetenegi verir dispatcherrs parametresinde asagidaki gibi belirtilir dispatches="(pro=tcp)(dis=3) (poo=on) (tick=1) tick=1 esitttir 10 dakika --bir dispatches 50 connection idare edebilir --bir shared server ise 25 connection i idare edebilir. --sonu olarak dispatchers in iki kati shared server olmalidir. --alter system shared servers=10 -alter system dispatchers="(pro=tcp) (dis=5) (poo=on) (tick=1)" --lsnrctl services komutu shared server hakkinda bilgi verir dispatvhes ka connection kurmus katane kurmus gibi byle her dispatchers daki yk dagilimini grebilirsin --v$dispatcher --v$dispatcher_config>>mevcut disparcher hakkinda config bilgisi ierir --v$shared_server --v$circuit --v$shared_server_monitor>maksimum connection ve sesion sayisini verir --v$session>server alaninindan session nin dedicated yada shared oldugu anlasilabilir --eger oracle shared server olarak ayarlanmis ise dedicated olarak baglanmank istenirse (sadece localnaming) tnsnames dosyasina server=dedicated seklinde eklenebilir --large pool ; large_pool_size parametresiyle init parametre dosyasindan yada alter system large_pool_size =100m ile degistirilebilir --v$sgastat view ile large pool kullanim bilgisi grenilebilir --large pool size i konfigre etmek iin asagidaki iki view kullanilir v$sesstat>>session nin istatistik degerlerini gsterir v$statname >>istatiklerin aiklamalatri tanimlidir session uga memory max kullanilarak ideal large pool miktari ayarlana bilir --yeterli dispatcher in olup olmadigini grenmek iin v$dispatcher view su kullanilabilir burdan ( busy/ (busy+idle) )*100 den busy orani bulunur gerekirse dispatcher

eklenir --dispatcher lerin ne kadar is yaptigini ne kadar bekledigini bulnak iin select sum(wait)/sum(totalq) ortalama bekleme zamani from v$queue ,v$dispatcher where q.type='DISPATCHER' and p.paddr=q.qaddr --shared server in ne kadar mesgul oldugunu grenmek iin select wait/totalq from v$queue where type=common --database i shared server moda sokmak iin shared_servers parametresi 0 dan farkli ypilmalidir alter system set dispatchers='(protocol=tcp)(dispatchers=2)' scope=spfile; alter system set shared_servers=3 scope=spfile; startup force; ------------------------users --password authenticated user tanimlamak iin create user selohan identified by hancer --externally uthenticated user yaratmak iin create user os_authent_prefix(default=ops$)+selohan identified by externally * kulanimi:kullanici isletim sistemine baglanmissa ona gvenir sifre kontrolu yapmaz bu kullanicilarin yaratilmasi okunabilir criptlerin ierisine database baglanti bilgileri koymamak iin yararlidir --kullanici bir nesne yaratirsa bu kullanicinin default tablespace inde saklanir kullanicinin table space i yoksa database in default table espace inde olur --kullanici iin default tablespace,temporary table space ve profile vermek creare user selohan identified by hancer default tablespace users temporary tablespace temp profile resource_profile --kullaninin table space yada profile ini degistirmek alter user selohan default tablespace menkul2007 alter user selohan profile selohan

--bir kullaniciyi btn nesneleri ile silmek drop user cascade --rollere ;with grant option ile nesne privilige verilemez --nesne priviliglerinde ,databese grantee ve grantor leri birlikte kaydeder --nesne priviliglerinde,grantee kullanicinada baskasina nesne zerinde yetki vermemk iin witt grant option seenegi kullanilir grant ile --btn systen priviligleri asagidaki system view sunda bulunur system_privilege_map --rol yaratmek ve set etmek create role dba_role ; set role dba_role identified by hancer set role all; set role all except customer_role --roller de system privilege leri gibi WITH ADMIN OPTION kullanilabilir --rolleri enable yapmak iin SET ROLE komutu kullanilir --tek bir roll disable yapamazsin --kullanicilara tablespace quata lari vermemk alter user selohan quota 100m on users alter user selohan quota unlimited in users --profiller cpu ve session oriented rosource kullanimi iin tanimlanirlar --profiller ile resource limitini etkinlestirmek iin alter system resouce_limit=true scope=both create profile admin_profile limit connect_time 10 create profile idletime limit idle_time 10 create profile persession limit sessions per user --user i lock yapmak yada password expire yapmak iib alter user selohan password expire account lock --password la ilgli limitler failed_login_attemps password_lock_time password_life_time password_grace_time password_reuse_time password_reuse_max password_verify_function

--------audit trail-----audit trail in amaci database zerinde yapilan islemin kaydini tutmaktir (sorgulanmamasi gereken bir tabloyu gizlice kim sorguladi yada kim sildi bunu sabtamak iin nemlidir ) bu kayitlar audit seenegi os seilmisse udit_file_dest ile belirtilen paremetreye yazilr db yada db_extended (bu seenek sqltext li) belirtilirse dba_audit_trail tablusuna yazilir ve alter system set audit_trail=db_extended scope=spfile ile database kapatilip ailarak aktif hale getirilir --audit seeneleri statement,privilege,object,fine-grained access -**-stament audit audit insert table |by selohan |whenever not succesfull noaudit update table --statememnt audit seeneklerinden bir kai insert table update table table delete table session procedure role profile lock table execute procedure not exists (btn sql stamentleri ) --hangi audit trail seeneginin geerli oldugunu grenmek iin select * from gv$paramater where name='audit_trail' sorgulanabilir --stament audit trailler hangi tabloda tutulir dba_stmt_audit_opts -**privilege audit system privilege lerinin verilmesi sirasinda kayitlari tutar audit select any table

audit crate any table by selohan audit grant any privilege by selohan --mevcut audit privilege hangi tabloda tutulur dba_priv_audit_opts --* object audit herhnagi bir nesne zerinde select ,inssert,update,delete,execute eylemlerinin kaydini tutar audit select on menkul2007.account_detail by selohan noaudit select on menkul2007.account_detail by selohan --mevcut object audit ler hangi tabloda tutulur dba_obj_audit_opts --auditler i silmek delete sys.aud$ -**-audit fga --fga larin kullanim amaci tablolardaki data lara ulasim zerine kayitlar tutar --mevcut fga lar select * from dba_audit_policies --fga ieriklers select * from dba_fga_audit_trail --fga ekle dbms_fga.add_policy (object_schema=>'scott', object_name=>'sil1', policy_name=>'policy_sil', audit_condition=>'salary>100', audit_column=>'salary', statement_types=>'select' dbms_fga.enable_policy( (object_schema=>'scott', object_name=>'sil1', policy_name=>'policy_sil' ); dbms_fga.disable_policy( (object_schema=>'scott',

object_name=>'sil1', policy_name=>'policy_sil' ); dbms_fga.drop_policy( (object_schema=>'scott', object_name=>'sil1', policy_name=>'policy_sil' ); --SQL PL/SQL --insert first ,all insert first|all when custemer_tye='p' then into portfoys values (customer_no,customer_name) when customer_type ='t' then into gercek_mus valuse (customer_no,customer_name) from customer --update update customer set (customer_no,customer_name) =(select musteri_no,musteri_adi from nusterilere) --or replace fonksiyon yada procedure bu sekilde yaratilirsa nesne zeinde ki privilage ler kaybolmaz ve bu nesneyi agiran nesler invalid olmaz ***** --tablo dump expdp selohan/hancer dumpfile =tempdir:my.dmp nologfile =y content=metadata_only tables =asa --export la ilgili parametre listsi expdp help=y --dbms_metadata package kullanma for export iin h1 number; h1:=dbms_metadata.open ( operation=>'export'|'import' job_mode=>'schema'|'full' | 'table' |'

tablespace' ) --dump file dbms_metadate.add_file ( handle=>h1 filename=>'hr.dmp' directory=>'tempdir' filetype=>dbms_datadump.ku$_file_type_dump_file

) --lof file dbms_metadate.add_file ( handle=>h1 filename=>'hr.log' directory=>'tempdir' filetype=>dbms_datadump.ku$_file_type_log_file

) dbms_metadata.metadate_filter( handle=>h1 name=>'schema_expr' | 'include_name_expr ' | 'exclude_name_expr' | 'tablespace_expr' value=>'in (''menkul2007'')' ) dbms_metadata.start_job (handle=>h1) --jobi background da alistirmak dbms_metadata.detach (handle=>h1) --tablespace dump -**** --sqlloader

--sqlldr komutu kullanilir sqlldr selohan/hancer control=regions.ctl --kontrol file ii --kontrol dosyasi bunla baslar LOAD DATA |CONTINUE LOAD DATA --data dosyasininin oldugu yer,* datanin kontrol dosyasi iinde oldugunusyler INFILE * | c:\a.dat BADFILE ? DISCARTFILE ? --DIRECT =true yaplirsa bind variable roll back kullanilmadan direk database e yazilir bu yzden hislidir uniq index ve constraint alismaz triggerlar alismaz OPTIONS (DIRECT=TRUE) --hangi tabloya eklenecek eklenmeden nce silinecek yada var olan a eklenecek INTO TABLE customer TRUNCATE|DALETE|INSERT|APPEND FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' BEGINDATA 1,'ANKARA' 2,'ISTANBUL' **undo --undo tablaspace segmentlerden olusur v$rollname den bu segmentlerden sorgulanir bu segmentlerde degisen datanin eski hali orjinali tutulur bir transaction basladiginda her transaction a bir segment atanir v$transaction dan alisan transactiolar bulunabilir bu iki view arasinda iliski usn ve sidusn alanlari ile kurulabilir --bir transaction sadece bir undo segmentte bulunabilir ama birden fazla transaction ayni undo segment i kullanabilir segment yetersizse bir transaction iin yeni extend lel ilave edilir --btn undo segmentlerin sahibi SYS kullanicidir degisikligi kimin yaptigina bakmaksizin --undo yu ynetmek iin parametre kulanilir (her parametre show parametre undo_management ile grlebilir)

1-undo_management >aouto|manual 2-undo_tablespace>birden fazla undo table space varsa ancak sadece biri online olabilir ayni anda 3-undo_retention >undo bilgilerinin ne kadar sreyle zerine yazilmadan kalacagini belirtir --undo tablespace in yogunlugu ve durumu hakkinda v$undostatus kullanilabilir --undo retention i garanti yapmak alter tablespace undo01 retention guarantee alter tablespace undo01 retention noguarantee --bir tabloyu lock koymak lock table customer in exclusive mode | row exclusive | share |row share |share row exclusive --select ile birlikte lock koymak select * from customer where customer_no =100 for update; --baskasinin lock i ni kaldirip kendin lock koymak iin NOWAIT ifadesini kullan lock table customer in exclusive mode nowait --DEADLOCK ne zaman olur nasil zlr iki transaction bir birinin kilitli nesnelerini beklerken olusur deadlock i ilk sezen transaction rollbak yapilir (oracle tarafindn otomatik ) diger transaction islemi tamamlar --lock lari zmek iin kullanilack tablolar v$locked_object v$lock v$session v$transaction --**database monitoring and meantanance --reactive monitoring ,problem ikditan sonra monitrlemedir --proactive monitoring ,problem ikmadan nce monitrlemedir --MMON (memory monitor ) ,MMNL(memory minotor light) processs leri deafult olarak her bir saat te aktif olarak data dictionary view ,dynamic performance view ve optimizerler dan performance istatistikleri toplar ve onu AUTOMATIC WORKLOAD REPOSOTIRY (AWR-tablolardan

olusmustur ) iine atar --AWR ,SYSAUX tablespace iin dedir ve bu tablespace de SYSMAN kullanicisina aittir. --MMON process in istatis tik toplamasi iin STATISTICS_LEVEL baslangi parametresi uygun bir degere ayarlanmalidir. --STATISTICS_LEVEL parametre degerleri BASIC>disable edeer AWR yi TYPICAL>enable eder AWR yi ALL >BASIC+TYPICAL --AWR de kayitlar default olarak 7 gn boyunca tutulur --AWR de kayirlarin ka boyunca tutulacagi ve hangi siklikla istatistik toplanacagini belirlemek iin assagidaki package kullanilabilir. dbms_workload_repository.modify_snapsot_settings (interval=>60 ,retention=>43200 (40 gn)) --ADDM ;her AWR snapshot dan sonra otomatik olarak baslar --awr iin elle snapshot yaratmak dbms_workload_repository.create_snapshor(); --db time cpu,i/o,oracle memory structore larda btn kullanicilar iin harcanan ortalama zamandir eger bu deger bykse daha ok lock olustugunu bir kullanici digerini daha ok bekledigini gsterir --el ile addm analiz yamak iin script oracle_home/rdmd/admin/addmrpt.sqt --el ile analiz yaptiktan sonra bulunan find ings ler ver tavsiyeler asagida data dictinory view ile grlebilir. dba_advisor_findings>addm analizi sonucu bulunan problemler dba_advisor_objects> problemin kaynagi iin temel alinan nesler sql ler dba_advisor_rational>problemin niye problem oldugunun arkasidaki aiklama dba_advisor_recomendations>problem in zm iin tavsiye dba_advisor_actions>problemi zmek iin eylem ve alistirilacak komut --advisor center altinda bulunan advisor lar sql tuning advisor>alisan sql leri daha hizli alstirmak iin nerilr getirir rnegin tablo iin index yaratilmasi

sql access advisor> memory advisor >sga iin tavsiyelerde bulunur yukardaki 3 advisorda db time (cpu,i/o,sga) i minimize etmek iindir mttr advisor (the mean time to recover)>instance failure olduktan sonra recover etmek iin gerekli olan zamani minimize eder oracle in eski srmlerinde bunun iin FAST_START_MTTR_TARGET parametresi kullanilirdi segment advisor >>sgmentleri shrink etmek byle ce i/o azaltarak performansi artirmaktir shrink table space yada objects seviyesinde yapilir iki shrink metodu vardir bunlar compact segment ve compact segment and release space istenirse sadece compact segmet yapilir daha sonra "alter table customer shrink space" yapilabilir segment advisor in etkin bir sekilde yapila bilmesi iin ncesinde "alter table customer enable row movement" alistirilmalidir. undo manegment advisor :undo table space in miktari yeterlimi yada undo retention uzun alisan sql leri karsilaya biliyormu transaction nin before image data of chenged ;undo segment e yazilirken bekleme olusuyormu bunlari saptamak iin bu advisor kullanilabilir --alert log lar asagida belirtilen parametredeki yere yazilir background_dump_dest --data dictinory deki bazi alanlar o nesne analiz edildikten sonra dolar rnegin dba_tables deki num_rows alani bu bilgiler eger cost based optimizer (CBO) kullaniyosan nemlidir bu analizle dolan bilgilere optimizer statistics leri denir . --data dictinory deki bazi alanlarin CBO iin dolmasi iin kullnilan package lar dbms_stats.gather_table_stats ('menkul2007','customer') dbms_stats.gather_index_stats dbms_stats.gather_schema_stats dbms_stats.gather_database_stats --addm analiz yaparken dogru parametre degeri vermek iin dbms_advisor.set_default_task_parameter

('addm','dbio_expected',7000) BUCKUP --flach recovey erea recowy ile ilgili btn ilgili dosyalarin bulunduu yer --instance failure da redo loglar kullanilr intance recovery iin media failure da da archived files lar kullanilir --control files database in fiziki yapisiyla ilgli bilgi tutar bu bilgiler database ismi,ablesspace isimleri,datafiles isimleri ve yerleri ,redo log files simleri ve yerleri arcive file name ve yerlerri ,log sequence number ile bilgi ne zeman redo log switch olsa bu deger gncellenir recovery manager ile ilgili (RMAN) bilgiler RMAN ile ilgili bilgiler control fie in reusable blgesinde bulunur "control_file_record_keep_time" kadar tutulur daha sonra yeni kayit eklendik ce silinir -bir control file i multiplexin yapmak alter system set conrol_files ='d:\ora01\oradata\ocp\controla01.ctl,c:\ora01\oradata\ocp\controla02' scope =spfile yukardaki alistirldiktan sonra database kapatilmali daha sonra d dizinindeki kontrol file c dizinine kopyalanmali daha sonra da database yeniden ailmalidir checkpoint ---------------her transaction bir scn numarasina sahiptir basarili bir sekilde transaction tamamlandiginda bu process kontrol files i updata eder bu sistem chance numbr (scn) ile her chackpoint oldugunda bu gelenellikle "alter system checkpoint " elle bu komut alistirildiginda database normal yada immediiate ile kapatildiginda tablespace readonly ye ekildiginde ayrica oracle in eski srmlerinde lof file nezaman switch olsa checkpint olur checkpoint oldugunda ne olur database writer (DBWn) process i buffer cache deki btn degismis (dirty) blocklari datafiles a yazar ve byle datafiles in header lari enson scn ile gncellenmis olur

yukdarki ifadelerin bir kismi yanlis geregi asagidad " checkpoint is an event that flushes the modified data fron the buffer cache to disk and updates the control files and datafiles .checkpoint process updates the headers of datafiles and control files ;the actual block are writen to file bt DBWn process,a checpoint is initiated when the redo log file is filled and a log switch occur ,when the instance is shut down with normal,transactional or immediate ,when a tablespace status is chanced to read-only or put into BUCKUP mode " --bir instance recovery olsa ka i/o olacak buffer cashe den ka blok okuncak bunu asagidaki view sorgulayak greeneblirsin v$instance_recovery --checkpoint ile btn commit olmus datalar ,datafiles a yazilir alter system checkpoint alter system switch logfile --checkoint olayinin siklgini asagidaki paremetreyle ayarlaya bilirsin fazla chekpoint product ortamda perforansi olumsuz etkileyebilir nk fast_start_mttr_target --*redo log transaction lar tarafindan degisen record entry leri redo log buffer i yazlir bu bufferdandan ne zamn kullanici transaction i commit yapsa ,buffer cache in de biri dolsa yada 1 mb lik data olsa LGWR process i record enrty leri log buffer cache den online redo file a yazar . --online redo files daki bilgiler media yada instanca failure durumunda datayi forward (ileri ) almak iin kullanilir geri almak iinde undo segment deki bilgiler kullanilir --degismis data DBWn process i buffer cache den datafiles a yazilmadan nce herzaman LGWR process i degisis data entry lerini online reso files a yazar --online redo log file commited yada uncommited datayi ierir nezaman transaction commit yapildi scn numarasi atilir record a --database in yaratilmasi sirasinda log file lerin yaratilmasi create database ocp

... logfile group1 ('d:\ora02\oadata\ocp\redo0101.log','d:\ora03\oradata\ocp\redo0102') size 10, group2 ('d:\ora02\oadata\ocp\redo0201.log','d:\ora03\oradata\ocp\redo0202') size 10 --yeni redogrop yarartamk alter database add logfile group3 (('d:\ora02\oadata\ocp\redo0301.log','d:\ora03\oradata\ocp\redo0302') size 100m --var olan redolog group unu REUSE kullanarak basan yaratmak burda size keywod n kullanmaya gerek yoktur alter darabase add logfile '\ora01\oradata\ocp\redo0101.log ' reuse --redo group a yeni membereklemek alter database add logfile member '\ora01\oradata\ocp\redo0103.log' to group1 --redo log goroup member ismini degistirme k alter database rename file eski_member_name to yeni isim --redo log group u silmek alter database drop logfile group 1 --redo log group member silmek alter database drop logfile member 'member ismi yolu ile birlikte ' --temizlemek log file group u alter databse clear logfile group 3 --kullaniciya commit komutuna bastiktan sonra commit olan data LGWR ile online redo log file a yazmadan commit islemi basarili bir sekilde yapilmistir diye bir sey dnmez --arcchive log modeaiksa log file switch oldugu zaman dolan redo log file arsiflenir ARCn process i tarafindan --log archive destination i ayarlamak log_archive_dest_1=(location ='D:\ARCHIVED_FILES') MANDATORY REOPEN=60) --remota databse zene archive yapmak log_archive_dest_2=(service=stdb01) optional reopen

--archiveleme iin kullanilan parametreler log_archive_min_succeed_dest >redo log group unun yeniden kullanilabilmesi iin ka hedefin arsifleflenmesi gerektigi log_archive_format=ARC%S_%R.%T s>log sequence number t>thread number r>resetlogs id d>database id (bu sadece birden fazla database ayni arsiv yerini kullaniyorsa gereklidir ) --database i archivelog modesokmak startup mount alter database archivelog --flash recovery area ii parametreler baslangi parametresi LOG_ARCHIVE_DEST_10 flash recovery area iin otomaitk olarak tanimlanmistir db_recovery_file_dest>recovety file destination db_recovety_file_size --flash recovery areada neler bulunur control files,all dta files,redo log files,archieved log files,RMan ile ilgil files ,incremental backups --backup trleri whole database >btndatafiles ve bir control files partial database full>datafiles iinde ki btn data blocklari incremental consistent>database kapaliyken alinn bacup inconsistent >database aik iken alinan vakup --control file in yedegini trace etme yoluyla alma alter database backup controlfile to trace trace alma islemi database in yapisinda bir degisiklik yapidiginda kullanilir zellikle redo log group eklenip ikarilmasi yeni bir tablespace eklenmesi falan trace sonucu dosya USER-DUMP-DEST parametressyle belirtilen yerde yaratilir --RMAN komutu database i backup yada recovery yapmak iin komut-interface program --rman nasil alistirilir

oracle home daha sonra bin e gidildikten sonra asagidaki yazilir rman target / --rman backup settings parallelism disk bakup location disk buckup type >image copy ,backup set,compressed backup set --backup alma ilk bakup rman>backup incremental level 0 as compreesed backupset database diger haftalar rman>backup incremental level 1 as compressed backupset database --v$recovery_file_dest recovery media area hakkinda bilgi verir RECOVERY --*database failure tipleri 1-statement failure kullanici bir tabloya insert ediyor yada tablo yaratirken hatanin meydena gelmesi bu durumda yapilmasi gereken privilege kontrol,qouta kontrol table space zeinde 2-user process kullanici sessionin aniden kopmasi ile ollur nedenleri kullanici sqlplus dan logout olmadan ikmis olabilir yada alistigi program aniden kapanmis yada sitem byle durumlarda pmon backround process i disconect olmus process lerin islemlerini rollback yapar 3-network failures bu hatanin nedenleri genelliklenetwork karti,switch,reuter yada listener in alismamasi byle bir durumla karsilasmamak iin ek network kartlari yada ek listener lar kullanilabilir 4-user error failures kullanicin istmeden bir tabloyu drop etmesi yada biseyleer silmesidir zm olarak logminer ,flashback table,flasback query yada table space belli bir zamana ekilebilir 5-instance failure server in alistigi hardware hatasi g kesintisi backgroun processlerin

hata vermesi gibi bble durumda startup komutu ile yeniden baslatabilirsin oracle otomatik olarak online redo log ve undo table spacedeki bilgilri kullanark recovery islemni yapacaktir 6-media failue databaase dosyalaini kaybolmasi yada bozulmasidir datafiles,redo log files,control files ,spfile,init file gibi mirror ing yada backup islemi yapilark buproblemin stesinden geline bilir --database ailis fazlari shotdown >h bir background process alismiyor nonount> mount> open> --instance ailmazsa recovery ile ilgili dosyalar v$instance_file --datafile dosyalari v$datafile --instance ;bozulan datafiles lar SYSTEM yada UNDO tablespace e ait degilse alismaya devam eder --instance ne zaman fail olur herhanfi bir control file in kaybolmasi,redi group un kaybolmasi bozulmasi,undo yada system tablespace ailt datafile in bozulmasi kaybolmasi --instance failue oldugunda control file ve datafile bir birine senkronize ayni saviyede olmadan sistem abort olur daha sonra instance startup ile bailadiginda online redo file ve undo table space deki datalar kullanilarak control file ve datafile lar ayni seviyeye ekilir --instance recovery ile datafiles,enson checkpoint seviyesinden kontrol files daki en son scn e eklilir en son scn ekilme sresi hizi asagidaki paramtreler le belirlenir fast_start_mttr_target>instance zaman olarak ne kadar srede recovery olacagini belirtir fast_start_io_target>instance ne kadar giris ikis ile recovety olacagini belirtir log_checkpoint_timeout >buffer cache deki degismis datalarin datafile

a yazilmadan ne kadar bekleyecegini gsterir son iki parametre kullanildiginda ilk parametre kullanilmaz ezlir alter system set fast_start_mttr_target=60 scope =both --flashback query bir ka gn ,saat,ay nceki data lara ulasmak iin kullanilr bu datalar undo tablespaceden alinir o yzden enfazla ne kadr zaman nceki datalarin alinip alinmayacagi UNDO_RETENTION parametresiyle iyi ayarlanmalidir sorgulama yaparken tabloya AS OF TIMESTAMP keyword kullanilir rneklr select * from customer as of timestamp (systimestamp -interval '15' minute | month | day ) select * from customer as of timestamp (sysdate-2) where customer _no=2 --flashback drop oracle 10 g ile her tablespace in rcyclebin diye bir memory siz vardir sillinen tablolar burada tutulur burada silinmis nesneler v$recyclebin view ile sorgulanaiblir buradaki tablolari tekrar eski haline getirmek iin flashback table customer to before drop flachback table cistomer to before drop rename to customerold --recyclebin de tablolarin foreign key leri kayit edilmez ama tabloarin bagli nesneleride birlikte kaydedilir --flashback table bir tabloyu yada tabloyla iliskili tablolari eski zamanda bir noktaya almak iin flashback query de oldugu gibi undo tablespace deki bilgiler kullanilir.flashback table ile bir tabloyu gemiste istenen zamana yada bildigin bir SCN ye alabilirsin tabluyu flashback yapmadan nce ilgili tablolarin row movement lari enable yapilmalidir alter table customer,customer_type enable row movement flashback table customer,customer_type to timestamp systimestamp interval '15' minute flashback table customer ,customere_type to timestamp to_timestamp ('2004-10-12 01:15:34 pm' ,'yyyy-mm-dd hh:mi:ss am')

--logminer belli tarih arasinda meydana gelem hem DML hemde DDL aktivitelerini gsteren bir tool dur log bilgileri redo log dosyasarindan okunur ierigini V$LOGMNR_CONTENTS adli view danda grebilirsin degisiklikle ilgili hem undo hemde redo scripleri otomatik olusturuluyor orcle tarafindan --control file kayip oldugunda recovery nce database NOMOUNT modda ailir daha sonra kayip olan dosya yerine ayni isimli control file dosyasi koy yada o control file geici olarak kullanma parametre dosyasindaki control_files parametresini asagidaki degistirerek alter system set control_files =(a.ctl,c.ctl) scope=spfile --redolog file kayip oldugunda recovery v$logfile view sorguladiginda status alaninda 4 farkli degerle karsilasirsin bunlar: log member kullanimda yada bozulmamis stale>log member yeni yada daha nce hi kullanilmamis deleted>log member silinmis invalid> log member bozulmus instance group d bir member alisana kadar alismasina devam eder eger group daki btn member lar bozulmussa full backup gerektirir recovery iin yapilmasu gereken adimlar silinmis ye yerine silinmemisini koy yada nce redo group u arsifle daha sonrada temizle bu adimlar btn member leri bastan yaratacakdir alter system archive log group 1 alter database clear logfile group 1 --sistem kritik datafile system yada undo table space ine ait datafile lardir --ssistem kritik olmayan data file lar system yada undo table space ine ait olmayan data filelardir . --sistem yada sisyem olmayan datafile in NOACRHIVED modda kayip olmasi durumunda en son backupdan buyana girilen commit olmus datalar yeniden

girilmek zorundadir . --sistem yada sistem olmayan ARCHIVED modda data file kaybinda herhangi commit olmu datanin kaybi sz konusu degildir eger kayip olan sistem datafile ise database in kapatilip mount modda ailmasi gerekmekte daha sonra EM control ekranindan kayip datafile seilerek geerli zamana resore edilir datafile eger kayip olan sistem datafile degilse database i kapatmaya gerek yoktur sadece datafile in iindeki tablolar ve bu tablolarla ilgili islem yapan kullanicilar etkilenir resore olayindan ,restore olayi system olan datafile ile ayni EM control ekra,ninda --archive log list >bu komut log sirasini ve arsif hedevini gsterir Subject: sh putty --ssh program $echo $shell ** shell deitirmek $sh $ exit $ ksh $ exit --$ ls -l enviomntal deikenli listler $ env env deikn tanmlama $ ORACLE_HOME=/u01/app/--$ export ORACLE_HOME $ echo $ORACLE_HOME /u01/app/--local dikn tanmla sssion kapandnda yok olan export edilmesine gerek yok $ day=monday $ echo $monday monday $ pwd $ cd

hangi shell le altn gsterir $ which bash /bin/bash default shell i deitirmek $ chsh /etc/profile sistem konfig file .profile kullanc konfig file gizli dosyalar listlemek $ ls -a $ .profile $ ahmet.txt45 user name $ \u host name $ \h allan dizin $ \w promp u deitirmek,ift kota iine alnsa deikenin deeri deitiinde prompt deimez tek kota sssion boyunca deiimleri yanstr $ PS1='$OACLE_SID $' herkul $ \ back slash enter anlamna gelir ve PS2 ile deitirilbilir $ biz bir komut altrdmz zaman PATH env deikeni iinde : ile ayrlm dizinler ierisinde aranr biz PATH deikenini commnd line dan ,kullanc profile dan yada /etc/profile dan set edilebilir yeni bir uygulama kurulduu zaman exe dosyalarn altrmak iin gerekli dizini bu deikne set etmemiz gekir .. $ PATH=$PATH:/opt/bin $ export PATH altrdmz bi komutun herden bulunarak altn bulmak iin which komutunu kullanz bir komut farkl kullanclada farkl ekilde alyorsa kontol iin yararl bir komuttur $ which ls

/bin/ls $ bir komut hakknda yardm almak iin man komutunu kullan $ man ls bir uygulama kurarkn yada altrken yada delerken software libray lre ihtiya duyar bunun yeri LD_LIBRARY_PATH set edilrek yaplabilir. $ bir komutu daha anlamll klmak yada bir komutun davann deitirmek iin alias komutu kullanlr mesala rm alias olduktan sonra birey silmden nce kullancya sorar $ alias rm='rm -i' mevcut alias la grmek iin $ alias $unalias rm scriptleri gzel oganize etmek iin kurallar 1-kendi kullancna ait scriptlei kendi home dirctory in iinde scripts dizinine koyabilisin 2-scipt dizinini PATH deikeni tam yol vermeden amak iin ~/scripts eklinde ekleyebilirsin 3-biden fazla database tarafnda kullannlcak scipts leri $ORACLE_BASE/common/scripts dizini ierisine konabilir 4-bir database zg script ler database in admin foldurunda saklabilir . 5-bir database zg scriptlr PATH deikenin atanmamaldr yoksa yanl database de alma ihtimali var $ .forward file kullanc home dizininde bulunur ve iierinde sistemde bir hata alnd zaman mail gnderilecek kiilerin mail adresleri tutulur $ vi ediyounun kullanlmas $vi /test/scipt_upd.sh $ vi ile yeni bo bir dosya amak iin vi den sonra yeni yaratlacak dosyann ismini yazmak yeterli $ vi yeni_scr.sh

$ vi den command moda gemeek iin ESC ye basmak yeterlic vi komutlar i birey eklemek iin o yeni bir satr eklemek iin x biey silmek iin dd tm satr silmek iin u yaplan deiiklii geri almak iin yy seilen satr kopyalar p daha nce kopyalanm eyi yaptrr :w deiiklikleri kaydt :wq kaydet k :q k :q! kaydetmdn k bir ey aramak iin vi ditr iinde /aranacak metin bir sonrakini gitmek iin n ikullanabilisin $ grep kullanm komuttan sonra anacak kilime daha sonrada nerde aranaca bilgisi verilir case senstivesiz arama rnei $ grep -i 'ilemim sistem' sistemler.txt $ egrep ; grep e benzer fakat daha kompleks ifadeler yazmk iin kullanlr $ egrep 'while|do' ./tst_script.sh more : bir dosya iindeki heryi grmek iin kullnlr kullanm more dan sonra dosya ismi yazmak yeterli. $ sed : bu komutun kullanm gep ve egrep in yaptklarna ek olarak parametre olarak verilen dosyada deiiklik ve silmede yapar ve sonucu ekrana yazar. bir deitirme rnei $sed -e 's/UNIX/Unix/g' text.txt $ bir silme nei $ sed - '/^$/d' text.txt $ cut : bu komut zellikle cloumn ypsnda sorgularda istenilen alanlarn bir

clolum ayrac yada column yerini belirlmk sureti ile sonu retir. -f1 kanc kolon olduunu -d kolon ayracnn ne olduunu -c1-30,60-74 karakter olarak alnacak aral belirler. $ cut -f1 -d"" acount.txt $ cut -c1-30,60-74 acount.txt $ awk :ok gl txt malipule tool dur rnek dosya ierisnde OPEN ibaresini bulur ve listeler $awk "/OPEN/" acout.txt rnek dosya ierisnde OPEN ibaresini bulur ve sadece 1. kolondaki bilgileri listeler $awk "/OPEN/" {print \$1}" acount.txt rnek ayrac : nokta olan ikinci kolondaki ifadeyi getirir $awk -F: "/^oss:/ {print \$2;exit" /etc/oratab $ sort: bir dosya iindeki bilgileri kkden by sralar $ sort -f acoount.txt head bir dosyann belli saydaki st satn sorgular default 10 dur $ head log1.log $ head -15 log1.log tail : dosyann belli sayda alt satrn olumak iin kullanlr -f seenei belirtilirse dinamik olarak dosya ya yeni satrlar eklendikce deiiklikleri gsterir. $tail -10 log1.log $tail -f wc dosya ierindeki satrla kelimeleri karakterleri saymak iin kullanlr -w kelimli sayar -l satrlar sayar -m karakterleri sayar $wc -l acout.txt $ ps komutu kullanclar taafndan altrrlan prosesleri listelemek iin kullanlr sadece senin altdun prosslri grmek iin $ ps

sadece senin altdun prosslri detaylgrmek iin $ps -f proses i kimin altrdna bakmakszn detayl grmek iin $ ps -ef sadece rnein oracl kullancn proseslerini detayl grmek iin $ ps -fu oracle kill : pocess leri ldrmek iin kullanlr aldkla seenekler -2 acil ldrmk iin -9 hemen ldrr fii ekmek gibidir temiz bir lm deildir geride ok temizlenmesi gereken ok pislik brakr . kullanm ps den sonra proses id verilir $ kill 2005 $ kill -2 2005 $kill -9 2005 pgrep : parametre olarak proses adn alr ve prosess id deeini dner $pgrep lsnr 5002 $ pkill :parametre olarak proses adn alr ve ldrr kullanm tavsiye edilmz yanllkla baka kullancnn prosesini ldrebilirsin $pkill -2 lsnr $ | :pipe komutu: bir nceki komuutn ktsn bir sonraki komuta tar $ ps -ef | grep oracle | sort $ expr : matamatiksel ilmler yapmak iin kullanlr $expr 2+7 9 $expr 4+3 \*3 13 $ expr ierisinde deikenlerde kullanabilirsin $ count =30 $test =expr $count \/5 $echo $test $ & : uzun sren komutlar geri planda altmak iin kullanlr

$ dbstart & [1] 3434 $ jobs :geri planda alan joblar listlemek iin $ jobs $ ctl+z : alan komutu durdurur ve geri plana atar $ bg: geri planda durmu joblar yeniden altrmak iin parametre olarak job numaras alr $ bg 1 $ fg : geri planda alan job n plana almak iin kullanlr parametre olarak job numaras alr $ fg 2 $ nohup: sesson kopsa bile almas uzun sreck komutlan almasna devam etmesi iin kullanlr $ nohup backup.sh & $ alan proses i nohupl yapmak iin -p paramtresi kullanlabilir $ nohup -p 3434 $ chown : dosyann sahibini deitirmk iin kullanlr $ chown metin dosya.txt $ chgrp : dosyann grupunu deitirmek iin kullanlr $ chgrp dba dosya.txt $ chmod : dosyann ayn anda grupunu ve sahibini deitimek iin kullanlabilir. $ chmod ahmet:other dosya.txt $ chmod : dosya ve dizinlri u-dosya sahibi g-grup o-other lara w-yazma r-okuma x-altrma yetkileri vermek iind kullanlr $ chmod o-x dosya.txt $ chmod g+x dosya.txt $ chmod o=rx

$ chmod u=wx ,g=rx o= dosya.txt $ chmod go-rwx dosya.txt (bylece dosyay senden bakas ulaamaz ) $ dizin zerindekiyetkileri grmk iin aadaki komutu kullan $ ls -ld dizin/ $chmod u-r dizin/ $ ctrl +d : bir komuta ait ekranda input girmenin sonlandn belirtmek iin kullanulr bundan sonra komut alr $ sort ahmet metin canan ctrl+d ahmet canan metinm $ canan >EOF ahmet canan metin $ > bir komutun ktsn dosya yazmak iin kullanlr $ ls >listinig.txt 0- bi komuuta giriln inputla gsterir 1-bir komutun ktlarn gsterir 2- bir komutda alna hata ktsn gsterir $

hata bilgilerine bir dosyaya yazmak iin aadakini kullanabiliiz $ ls >listing.txt 2>error.txt $ >> : komut ktlan verilen dosyann sonuna eklemek iin kullanlr > gibi >>dosyay bir sonraki yazmada tamamen zerin yazmaz $ ls >>istinig.txt $ shell script i allan dizinde armak iin $ ./hello.sh $ dosyann eriim yerkilerini grmek iin $ ls -l hello.sh $ df -h : disk kullanmn gsterir $df -h $ $USER :env deikeni hostname: bal host ismini dnen komut $ ' ' : trnak arasna yazlan shell komutlar ve deikenleri sh tarafndan yorumlanamaz $ " ": arasna yazlan deiken ler torumlanabilir $ echo " hello $USER" hello oracle $ ` `: komutlar geritrnaklar ierisinde youmlanabilir . $echo " hello $USER welcome to `hostnama`" hello oracle welcome to shancer $ # : kodu remarklamak iin kullanlr $ unset : deiknin ierisini null lamk iin kullanlr $ unset degisken $ $1,$2,$3 : bir script e geen paramtreleri temsil eder srasyla $#:bir script e geen paramtrelerin sayn temsil eder

$@: script e geen btn paramrteleeri string olarak temsil eder. $*: script e geen btn parametelerin listesini ierir. $ #!/bin/sh -vx : script irinde alacak sh belirttiimiz yerde -vx yada -v ,-x ayr ayr ekleyip script i altrarak debug debilirz . $ mv : dosyann ismini deitimk iin kullnabiliiz $ mv hello.sh status.sh $ read :deikenlere kullancn komut satnda deer atamas iin kullanabilir $ welcome sh: #!/bin/sh echo "enter your name" read name echo "hi $name " $ ./welcome.sh enter your name john hi john $ shell sciptten sql scipt i armak bu genelllikle oacle n script lerini kullanmak iin kullanlr dual.sql : set pagesize 0 linesize 80 feadback off select 'ssh scipt ierisinden sql arma' from dual exit; dual.sh: #!/bin/sh sqlplus -S system/manager @ dual.sql $ ./dual.sh $ ORACLE_BASE den script armak iin bunu temsil eden ? soru iaretini kullanabilrsin $ sqlplus "/ as sysdba" @?rdmbs/admin/utlrp.sql $ sql scipt i shell ierisin yazmak

dual.sh: #!/bin/sh sqlplus -S system/manager