{"id":6105,"date":"2018-07-05T18:39:23","date_gmt":"2018-07-05T23:39:23","guid":{"rendered":"https:\/\/www.bhinfo.com.mx\/cursos\/?p=6105"},"modified":"2018-10-11T20:07:39","modified_gmt":"2018-10-12T01:07:39","slug":"oracle-script-conceptos-y-chunches","status":"publish","type":"post","link":"https:\/\/www.bhinfo.com.mx\/cursos\/2018\/07\/05\/oracle-script-conceptos-y-chunches\/","title":{"rendered":"Oracle, Script, conceptos y chunches"},"content":{"rendered":"<p>Empezaremos a recolectar informaci\u00f3n acerca de Oracle de acuerdo como se nos va presentando las cosas en el proyecto JDA, la primera situaci\u00f3n que se nos presento es el manejo de espacio para los TableSpace<\/p>\n<p>Este script nos informa de los tama\u00f1os y objetos por bloque que contiene los TableSpaces<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:plsql decode:true\">--\r\nSELECT tablespace_name,\r\nROUND(sum(bytes)\/1024\/1024,0)\r\nFROM dba_free_space\r\nWHERE tablespace_name NOT LIKE 'TEMP%'\r\nGROUP BY tablespace_name;\r\n\r\nSELECT TABLESPACE_NAME \"TABLESPACE\", FILE_ID,\r\nCOUNT(*) \"PIECES\",\r\nMAX(blocks) \"MAXIMUM\",\r\nMIN(blocks) \"MINIMUM\",\r\nAVG(blocks) \"AVERAGE\",\r\nSUM(blocks) \"TOTAL\"\r\nFROM DBA_FREE_SPACE\r\nGROUP BY TABLESPACE_NAME, FILE_ID;\r\n--<\/pre>\n<p>&nbsp;<\/p>\n<p>Para ver el tama\u00f1o de un Tablespace<\/p>\n<pre class=\"lang:plsql decode:true \">SELECT tablespace_name, file_name, bytes\/(1024*1024) AS \"[Mb]\" FROM dba_temp_files WHERE tablespace_name like 'TEMP%';\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Tama\u00f1o de los Volumens donde esta las basedata<\/p>\n<pre class=\"lang:plsql decode:true \">select name,state,total_mb,free_mb from v$asm_diskgroup;\r\n\r\nselect group_number, name, path, os_mb, total_mb, free_mb from v$asm_disk;\r\nselect * from v$asm_disk;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Para ver cuantos TableSpace existen<\/p>\n<pre class=\"lang:plsql decode:true\">SELECT * FROM V$TABLESPACE<\/pre>\n<p>&nbsp;<\/p>\n<p>Para crear TableSpaces<\/p>\n<pre class=\"lang:plsql decode:true\">--\r\nCREATE TABLESPACE TS_SSIDATA DATAFILE '+DATA1\/SSCALDEV\/69F98A6850942F46E053B60110ACC7DF\/DATAFILE\/TS_SSIDATA.dbf' SIZE 500M;\r\nCREATE TABLESPACE TS_SSIIDX DATAFILE '+DATA1\/SSCALDEV\/69F98A6850942F46E053B60110ACC7DF\/DATAFILE\/TS_SSIIDX.dbf' SIZE 500M;\r\n--<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;Para modificar tableSpaces<\/p>\n<pre class=\"lang:plsql decode:true \">--\r\nALTER DATABASE datafile '+DATA1\/SSCALDEV\/69F98A6850942F46E053B60110ACC7DF\/DATAFILE\/TS_SSIDATA.dbf' resize 2048M;\r\nALTER DATABASE datafile '+DATA1\/SSCALDEV\/69F98A6850942F46E053B60110ACC7DF\/DATAFILE\/TS_SSIIDX.dbf' resize 2048M;\r\ncommit\r\n--<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;La forma m\u00e1s exacta de saber lo que \u201crealmente\u201d est\u00e1 consumido de los data files es sumando los bytes de la DBA_EXTENTS:<\/p>\n<pre class=\"lang:plsql decode:true \">--\r\nSelect Tablespace_name, Sum(bytes) total\r\nFrom Dba_extents\r\nGroup by Tablespace_name;\r\n\r\nSelect Tablespace_name, Sum(bytes) total\r\nFrom Dba_data_files\r\nGroup by Tablespace_name;\r\n--<\/pre>\n<p>&nbsp;<\/p>\n<p>Mostrar los nombres de las tablas que est\u00e1n en un TableSpace<\/p>\n<pre class=\"lang:plsql decode:true \">--\r\nselect owner,TABLE_NAME,TABLESPACE_NAME \r\nfrom dba_tables \r\nwhere TABLESPACE_NAME = 'TS_SSIDATA'\r\n\r\nselect TABLE_NAME\r\nfrom dba_tables \r\nwhere TABLESPACE_NAME = 'TS_SSIDATA'\r\n--\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Tu puedes utiliza el siguiente c\u00f3digo para recuperar el <strong>tama\u00f1o por tabla<\/strong> en un esquema, para un tama\u00f1o total retira la condici\u00f3n que el objeto sea tabla<\/p>\n<pre class=\"\">SELECT segment_name AS \"TABLE_NAME\",\r\nSUM (BYTES) AS \"[Bytes]\",\r\nSUM (BYTES) \/ 1024 AS \"[Kb]\",\r\nSUM (BYTES) \/ (1024*1024) AS \"[Mb]\",\r\nSUM (BYTES) \/ (1024*1024*1024) AS \"[Gb]\"\r\nFROM user_segments\r\nWHERE segment_type = 'TABLE'\r\nGROUP BY segment_name;\r\n\r\n\r\n\r\nselect owner, sum(bytes) \/ (1024*1024) AS \"[Mb]\"\r\nfrom dba_segments\r\ngroup by owner\r\norder by \"[Mb]\"\r\n\r\n\r\n<\/pre>\n<h3>Sesiones<\/h3>\n<pre class=\"lang:plsql decode:true\">--\r\nSET LINESIZE 100\r\nCOLUMN spid FORMAT A10\r\nCOLUMN username FORMAT A10\r\nCOLUMN program FORMAT A45\r\n\r\nSELECT s.inst_id,\r\ns.sid,\r\ns.serial#,\r\n--s.sql_id,\r\np.spid,\r\ns.username,\r\ns.program\r\nFROM gv$session s\r\nJOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id\r\nWHERE s.type != 'BACKGROUND';\r\n--\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h4>Kill sesiones<\/h4>\n<pre class=\"lang:plsql decode:true \">alter system kill session '404,25431, @2' immediate;\r\n\r\nALTER SYSTEM DISCONNECT SESSION '31,58911' immediate;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h5>Espacio en discos<\/h5>\n<pre class=\"\">select group_number, name, path, os_mb, total_mb, free_mb from v$asm_disk;\r\n\r\n\r\nselect name,state,total_mb,free_mb from v$asm_diskgroup;<\/pre>\n<h2>&nbsp;<\/h2>\n<h2 id=\"post-10\" class=\"posttitle\">Activar\/Desactivar Archivelog de&nbsp;Oracle<\/h2>\n<p>El tener activado el Archivelog es el primer paso para poder realizar una copia en caliente de nuestra Base de Datos mediante Rman, a continuaci\u00f3n explicaremos como activar\/desactivar esta opci\u00f3n para tener otra opci\u00f3n m\u00e1s de realizar copias de seguridad de nuestra Base de Datos, aqu\u00ed una peque\u00f1a explicaci\u00f3n del modo archivelog.<\/p>\n<p>El modo&nbsp;<strong>archivelog<\/strong>&nbsp;de una base de datos&nbsp;<strong>Oracle<\/strong>&nbsp;protege contra la p\u00e9rdida de datos cuando se produce un fallo en el medio f\u00edsico.<\/p>\n<ol>\n<li>Se puede realizar una copia de seguridad mientras la base de datos est\u00e1 levantada.<\/li>\n<li>Con este modo de base de datos se puede restaurar una copia de seguridad de los archivos da\u00f1ados utilizando estos archivos para actualizar los archivos mientras nuestra base de datos est\u00e1 levantada.<\/li>\n<li>Se puede recuperar la base de datos en un n\u00famero de cambio del sistema espec\u00edfico.<\/li>\n<li>Se puede restaurar la base de datos en un punto espec\u00edfico en el tiempo.<\/li>\n<li>Teniendo en cuenta estas caracter\u00edsticas b\u00e1sicas del modo&nbsp;<strong>archivelog<\/strong>&nbsp;de base de datos&nbsp;<strong>ORACLE<\/strong>, vamos a exponer en este documento c\u00f3mo se activa y c\u00f3mo se desactiva.<\/li>\n<\/ol>\n<p>Alguna de las consecuencias que tiene desactivarlo son las siguientes:<\/p>\n<ol>\n<li>Las copias de seguridad ya no se pueden hacer on-line (habr\u00eda que aplicar otro tipo de copias de seguridad).<\/li>\n<li>No se podr\u00e1 recuperar la base de datos en un tiempo concreto.<\/li>\n<\/ol>\n<p>Lo primero que tenemos que saber si nuestra base de dato tiene activo o no el Archivelog, para verlo:<\/p>\n<p>\u2013 Entramos en la consola de sqlplus e introducimos el siguiente comando&nbsp; archive log list, lo que nos dir\u00e1 si tenemos o no activado el archivelog y si el archivado autom\u00e1tico est\u00e1 funcionando<\/p>\n<h3>&nbsp;<\/h3>\n<h3 style=\"text-align: center;\"><strong>DESACTIVACI\u00d3N DEL MODO ARCHIVELOG<\/strong><\/h3>\n<p>Para desactivar el modo archivelog, realizamos los siguientes pasos:<\/p>\n<p>\u2013 Nos conectamos a la base de datos y la paramos, despues de pararla la montamos<\/p>\n<p>shutdown immediate<\/p>\n<p>startup mount<\/p>\n<p>\u2013 Desactivamos el modo archivelog<\/p>\n<p>alter database noarchivelog<\/p>\n<p>\u2013 Abrimos la base de datos<\/p>\n<p>alter database open<\/p>\n<p>\u2013 Desactivamos el archivado autom\u00e1tico<\/p>\n<p>alter system archive log stop<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: center;\"><strong>ACTIVACI\u00d3N DEL ARCHIVELOG<\/strong><\/h3>\n<p>\u2013 Para activar el modo archivelog, el&nbsp;<span class=\"skimlinks-unlinked\">init.ora<\/span>&nbsp;debe de estar arrancado con los siguientes par\u00e1metros.<\/p>\n<p>log_archive_start = true<br \/>\nlog_archive_dest_1 = \u201clocation=\/database\/archivelog\/bbdd REOPEN=5\u201d<br \/>\nlog_archive_format = arch_%t_%s.arc<\/p>\n<p>\u2013 Si la base de datos est\u00e1 funcionando y esos par\u00e1metros est\u00e1n en el&nbsp;<span class=\"skimlinks-unlinked\">init.ora<\/span>, nos conectamos a la base de datos y la paramos con un<\/p>\n<p>shutdown immediate<\/p>\n<p>\u2013 A continuaci\u00f3n montamos la base de datos:<\/p>\n<p>startup mount<\/p>\n<p>\u2013 Cuando montamos la base de datos ejecutamos el siguiente comando:<\/p>\n<p>alter database archivelog<\/p>\n<p>\u2013 Despues abrimos nuestra base de datos y activamos el archivado autom\u00e1tico<\/p>\n<p>alter database open<\/p>\n<p>alter system archive log start<\/p>\n<p>&nbsp;<\/p>\n<h3>&nbsp;<\/h3>\n<h3>Links de Interes<\/h3>\n<h6 class=\"titulo1\"><a href=\"https:\/\/jorgesanchez.net\/manuales\/abd\/control-usuarios-oracle.html\">Administraci\u00f3n de usuarios en Oracle Database<\/a><\/h6>\n<h6><a href=\"https:\/\/jorgesanchez.net\/abd\">Gesti\u00f3n de Base de Datos<\/a><\/h6>\n<p><a href=\"https:\/\/ramkiller.wordpress.com\/2008\/04\/23\/activardesactivar-archivelog-de-oracle\/\">Activar\/Desactivar Archivelog de&nbsp;Oracle<\/a><\/p>\n<p>&nbsp;<\/p>\n<h5 style=\"text-align: center;\"><strong>Cursores<\/strong><\/h5>\n<p>&nbsp;<\/p>\n<pre class=\"lang:plsql decode:true \">show parameter pga_aggregate_limit;\r\n\r\nselect * from V$SESSTAT\r\n\r\nselect * from v$open_cursor\r\n\r\nshow parameter cursor\r\n\r\nalter system set open_cursors=600;\r\n\r\nselect s.username, max(a.value)\r\nfrom v$sesstat a, v$statname b, v$session s\r\nwhere a.statistic# = b.statistic#\r\nand s.sid (+)= a.sid\r\nand b.name = 'opened cursors current'\r\ngroup by s.username\r\n\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Empezaremos a recolectar informaci\u00f3n acerca de Oracle de acuerdo como se nos va presentando las cosas en el proyecto JDA, la primera situaci\u00f3n que se nos presento es el manejo de espacio para los TableSpace Este script nos informa de los tama\u00f1os y objetos por bloque que contiene los TableSpaces &nbsp; &#8212; SELECT tablespace_name, ROUND(sum(bytes)\/1024\/1024,0) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6105","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/posts\/6105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/comments?post=6105"}],"version-history":[{"count":12,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/posts\/6105\/revisions"}],"predecessor-version":[{"id":6334,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/posts\/6105\/revisions\/6334"}],"wp:attachment":[{"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/media?parent=6105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/categories?post=6105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bhinfo.com.mx\/cursos\/wp-json\/wp\/v2\/tags?post=6105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}