{"id":1437,"date":"2012-10-13T09:19:19","date_gmt":"2012-10-13T07:19:19","guid":{"rendered":"http:\/\/www.extradrm.com\/?p=1437"},"modified":"2013-10-13T09:20:32","modified_gmt":"2013-10-13T07:20:32","slug":"oracle-mini-guide-tips","status":"publish","type":"post","link":"https:\/\/www.extradrm.com\/?p=1437","title":{"rendered":"Oracle mini-guide tips"},"content":{"rendered":"<p>========== REMARQUES ==================<br \/>\nSQL au coeur des performances de Markus Winand (Livre utilit\u00e9 des index)<br \/>\nTOAD Oracle outil de supervision<br \/>\nOEM 10g exploitable client lourd<br \/>\nSQL developer gratuit \/ client lourd java \/ sous linux $ORACLE_HOME\/sqldeveloper\/sqldeveloper.sh<br \/>\nOutil graphique EM Database Control \/ via web<br \/>\nLe site d&#8217; Oracle.com sous OTN on trouve doc\/logiciels\/Os support\u00e9s<br \/>\nLa norme OFA est la norme des organisations des r\u00e9pertoires sous oracle<\/p>\n<p>Outils ETL prennent le pas sur SQL LOADER<br \/>\nKettle (Open source)<br \/>\nODI produit Oracle<br \/>\nDatastage<br \/>\n=============================================<br \/>\nlsnrctl start ==> chaque fois qu&#8217; une instance est d\u00e9marr\u00e9 elle prise en compte sur le port tcp 1521 (localhost\/PROD\/Test)<br \/>\nle listener sert \u00e0 \u00e9tablir la connexion et n&#8217; est pas utile pour la suite<\/p>\n<p>Rep\u00e9rer les instances d&#8217; une base<br \/>\nps -ef | grep _test (test est le nom de ma base) <\/p>\n<p>les vues v$ (en $) sont des vues dynamiques charg\u00e9s dans la sga \/ instance et m\u00e9moire.<\/p>\n<p>====================  COMMANDES USUELS ============================<\/p>\n<p>oracle doit \u00eatre install\u00e9 avec l&#8217; utilisateur oracle et le groupe dba<br \/>\noracle fait partie de dba<\/p>\n<p>echo $ORACLE_HOME<br \/>\nexport ORACLE_SID=test ===> use test;<br \/>\ntest@oracle:centos><\/p>\n<p>centos n&#8217; est pas support\u00e9 par Oracle comme les Redhat<\/p>\n<p>sqlplus \/nolog<br \/>\nsql> connect as sysdba<\/p>\n<p>sql>connect scott\/tiger (changer de connexion)<\/p>\n<p>========== D\u00e9marrage des bases ====================<br \/>\nstartup no mount (Instance seule)<br \/>\nstartup mount (attacher la base \u00e0 l&#8217; instance &#8211; Pour certaines t\u00e2ches de maintenance : la base n&#8217; est pas en ligne ou connexion)<br \/>\nStartup (Autoriser les connexions)<\/p>\n<p>======================= Commandes sqlplus utiles ==============================<br \/>\nsql>echo pwd<br \/>\n\/home\/oracle\/<br \/>\nsql>echo @tpespace.sql<br \/>\nsql>\/ (R\u00e9p\u00e9ter l&#8217; instruction de remplissage<br \/>\nex: insert into demo.emp2 select * from demo.emp2;<br \/>\nex : create table demo.emp3 as select * from demo.emp;<\/p>\n<p>Formatage de l&#8217; affichage de sqlplus :<br \/>\nsql>set line 140<br \/>\nsql>column column_name format a20<br \/>\ncolumn column_name format a50 word_wrapped <\/p>\n<p>Effacer les commande \u00e9cran :<br \/>\nSQL>!clear<br \/>\nSQL>! ===> commande os linux<br \/>\nSQL>; supprime le cache<\/p>\n<p>\/oracle\/app\/oracle\/oradata\/test\/control01.ctl<\/p>\n<p>alter system set control_files = &#8216;\/oracle\/app\/oracle\/oradata\/test\/control01.ctl&#8217; scope=spfile;,&#8217;\/oracle\/app\/oracle\/oradata\/test\/control02.ctl&#8217; scope=spfile,&#8217;\/oracle\/app\/oracle\/oradata\/test\/controlsave\/control03.ctl&#8217; scope=spfile;<\/p>\n<p>alter system set control_files = &#8216;\/oracle\/app\/oracle\/oradata\/test\/control01.ctl&#8217;, &#8216;\/oracle\/app\/oracle\/oradata\/test\/control02.ctl&#8217; scope=spfile;<\/p>\n<p>=========== Mise en mirroring des fichiers LOG circulaires ==================<br \/>\nselect group#,status, type, member from v$logfile; <\/p>\n<p>alter database add logfile member &#8216;\/oracle\/app\/oracle\/oradata\/test\/miror\/redo01.log&#8217; to group 1;<br \/>\nalter database add logfile member &#8216;\/oracle\/app\/oracle\/oradata\/test\/miror\/redo02.log&#8217; to group 2;<br \/>\nalter database add logfile member &#8216;\/oracle\/app\/oracle\/oradata\/test\/miror\/redo03.log&#8217; to group 3;<br \/>\n=================================================================================================<\/p>\n<p>======================= Doubler fichier de Contr\u00f4le (Checkpoint modifications dans les structures &#8230;..=========<br \/>\nalter system set control_files =<br \/>\n\t\t&#8216;\/oracle\/app\/oracle\/oradata\/test\/control01.ctl&#8217;,<br \/>\n\t\thttp:\/\/codesamplez.com\/development\/using-doctrine-with-codeigniter&#8217;\/oracle\/app\/oracle\/oradata\/test\/control02.ctl&#8217;,<br \/>\n\t\t&#8216;\/oracle\/app\/oracle\/oradata\/test\/controlsave\/control03.ctl&#8217; scope=spfile;<\/p>\n<p>sql>shutdown immediate<\/p>\n<p>Copier un des fichier dans le dossier controlsave qui doit \u00eatre le m\u00eame que les autres sinon pas de d\u00e9marrage.<\/p>\n<p>Faire des sauvegardes \u00e0 chaque changement de structures\/param\u00e8res dans la base, ne pas attendre longtemps :<br \/>\nalter database backup controlfile to &#8216;\/oracle\/app\/oracle\/oradata\/test\/save\/control.bak&#8217;;<\/p>\n<p>=======================================================================================<\/p>\n<p>======================= SECURITE ========================================<br \/>\nselect granted_role,admin_option,default_role from dba_role_privs where grantee=&#8217;michel&#8217;;<br \/>\nselect grantee,owner,table_name,grantor,privilege from dba_tab_privs where grantee=&#8217;RUSERS&#8217;;<\/p>\n<p>select username from dba_audit_session where username=&#8217;sysman&#8217;;<br \/>\nselect username,owner,obj_name,action_name from dba_audit_object where username not in (&#8216;SYSMAN&#8217;,&#8217;DBSNMP&#8217;,&#8217;ORACLE_COM&#8217;) ;<\/p>\n<p>audit select table, insert table, delete table,  execute procedure by access whenever successful<\/p>\n<p>select username, owner, action_name, priv_used from dba_audit_trail where username =&#8217;DEMO&#8217; and obj_name=&#8217;EMP&#8217;;<\/p>\n<p>select * from sys.aud$;<\/p>\n<p>=================================== TABLES =============================================<br \/>\nCREATE TABLE &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; TABLESPACE &#8220;USERS&#8221; STORAGE ( INITIAL 400M) as select * from demo.EMP;<\/p>\n<p>CREATE INDEX &#8220;DEMO&#8221;.&#8221;ENAME&#8221; ON &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; (&#8220;ENAME&#8221;) TABLESPACE &#8220;USERS&#8221;;<\/p>\n<p>http:\/\/www.dbforums.com\/oracle\/1627103-alter-table-move-vs-shrink-space.html<br \/>\n============================================================================<\/p>\n<p>select blocks, empty_blocks from user_tables where table_name = &#8216;EMPTEST&#8217;;<\/p>\n<p>analyze table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; compute statistics;<\/p>\n<p>alter table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; move tablespace users;<\/p>\n<p>alter index &#8220;DEMO&#8221;.&#8221;ENAME&#8221; rebuild online;<\/p>\n<p>alter table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; enable row movement;<br \/>\nalter table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; shrink space;<\/p>\n<p>Test de flashback :<br \/>\n==================<br \/>\ndrop table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221;;<br \/>\nselect * from &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221;;<br \/>\nselect count(*) from &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221;;<br \/>\nflashback table &#8220;DEMO&#8221;.&#8221;EMPTEST&#8221; to before drop;<\/p>\n<p>Sortir de sqlplus et lancer la commande sous l&#8217; invite linux :<br \/>\nexpdp system\/test directory=datapump dumpfile=expdpfulldb.dmp<br \/>\nimpdp system\/test directory=datapump dumpfile=expdpfulldb.dmp tables=&#8217;scott.emp&#8217;<\/p>\n<p>alter system flush shared_pool;<br \/>\nalter system flush buffer_cache;<\/p>\n<p>Oracle n&#8217; est pas en auto-commit sur les op\u00e9ration DML (Insert, update, delete)<br \/>\n=======================================================<br \/>\ninsert emp.demo (empno,empname) values (&#8216;8000&#8242;,&#8217;mike&#8217;);<br \/>\ncommit;<\/p>\n<p>===========================<br \/>\nORACLE.NET<br \/>\n============================<br \/>\nalter system kill session &#8216;sid,serial#&#8217;;<br \/>\nex: alter system kill session &#8216;154,46&#8217;;<\/p>\n<p>Ne jamais tuer une session interne \/ where username is not null; <\/p>\n<p>(Attention il faut \u00eatre connect\u00e9 en (sys\/test) as sysdba)<br \/>\nselect s.osuser, s.username, s.sid, s.serial#, s.program &#8220;Prog. Client&#8221;, p.program &#8220;Prog. server&#8221;,s.server, s.terminal from v$session s, v$process p where s.paddr = p.addr and type <> &#8216;BACKGROUND&#8217; and s.username not in (&#8216;SYSMAN&#8217;,&#8217;DBSNMP&#8217;);<\/p>\n<p>select username, terminal, serial#, sid, to_char(logon_time, &#8216;DD-MM-YYYY hh24:mi:ss&#8217;) &#8220;Connect time&#8221; from v$session where  type <> &#8216;BACKGROUND&#8217; and username not in (&#8216;SYSMAN&#8217;,&#8217;DBSNMP&#8217;);<\/p>\n<p>Le programme Netmgr permet de g\u00e9rer un ensemble de connexions comme tscadmin<br \/>\n=============================== SAUVEGARDE ET RESTAURATION ======================<br \/>\nS\u00e9curit\u00e9 ++++ => Mode ARCHIVELOG (En plus Si un tablespace perd un fichier.dbf la base ne TOMBE PAS et on a le temps de r\u00e9parer en d\u00e9montant que la partie touch\u00e9e) <\/p>\n<p>La pire panne que l&#8217; on peut avoir c&#8217; est la perte du redolog courant \/ On ne peut rien faire m\u00eame en mode archivelog.<br \/>\nLa seule fa\u00e7on est de mettre en mirroring les redonn.log<\/p>\n<p>Base bloqu\u00e9e :<br \/>\nselect * from v$archive (Elle devra \u00eatre vide)<\/p>\n<p>A la restauration : Self Controle<br \/>\n1- Quoi de perdu<br \/>\n2- Aucun danger \u00e0 red\u00e9marrer la base : cela aide de voir ce qui manque.<\/p>\n<p>Exemple : une base de 500 tera tombe \/ il manque un dbf signal\u00e9 au d\u00e9marrage<\/p>\n<p>A- je suis en mode archivelog : 1- Restaurer le fichier de la veille (100 Mo) 2- RECOVER (15 min)<br \/>\nB- Je ne suis pas en archivelog : 1- Restaurer toute la base \u00e0 la date de la veille.<\/p>\n<p>Exemple : Perte d&#8217; un tablespace<\/p>\n<p>===================== Commandes archivage<br \/>\narchive log list<\/p>\n<p>select name,created,log_mode,open_mode from v$database;<br \/>\nalter system switch logfile;<\/p>\n<p>alter system set<br \/>\n  2  log_archive_dest_1=&#8217;LOCATION=\/oracle\/app\/oracle\/admin\/test\/arch mandatory reopen&#8217;<br \/>\n  3  scope=spfile;<\/p>\n<p>select DESTINATION,DEST_NAME,BINDING,STATUS from v$archive_dest;<\/p>\n<p>!cp \/oracle\/app\/oracle\/oradata\/test\/*.dbf \/oracle\/app\/oracle\/admin\/test\/save<br \/>\nrestaurer par l&#8217; os copy :<br \/>\n!cp \/oracle\/app\/oracle\/admin\/test\/save\/users01.dbf \/oracle\/app\/oracle\/oradata\/test\/users01.dbf <\/p>\n<p>select instance_name,status from v$instance;<br \/>\nselect a.name TABLESPACE,b.name FILE_NAME,file# FILE_ID,b.status STATUS from v$tablespace a, v$datafile b<br \/>\nwhere a.ts#=b.ts# and file#=4;<\/p>\n<p>alter tablespace users offline immediate;<br \/>\nalter tablespace users online;<\/p>\n<p>analyze table &#8220;DEMO&#8221;.&#8221;EMP&#8221; compute statistics;<\/p>\n<p>insert into demo.emp select * from demo.emp;<\/p>\n<p>cd \/oracle\/app\/oracle\/oradata\/test\/<br \/>\nll<br \/>\n> users01.dbf<\/p>\n<p>=========================== PERFORMANCES ========================================<br \/>\nhttp:\/\/docs.oracle.com\/cd\/B28359_01\/server.111\/b28275\/tdppt_sqlid.htm<\/p>\n<p>======================== TEST et DIAGNOSTICS=====================================<\/p>\n<p>Avec Rman<br \/>\n$ rman target \/<br \/>\nrman> validate <\/p>\n","protected":false},"excerpt":{"rendered":"<p>========== REMARQUES ================== SQL au coeur des performances de Markus Winand (Livre utilit\u00e9 des index) TOAD Oracle outil de supervision OEM 10g exploitable client lourd SQL developer gratuit \/ client lourd java \/ sous&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":2843,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[241,240],"tags":[],"youtube_video":null,"_links":{"self":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/1437"}],"collection":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1437"}],"version-history":[{"count":0,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/posts\/1437\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=\/wp\/v2\/media\/2843"}],"wp:attachment":[{"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.extradrm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}