Script Auditoria DB

23/03/2006 - 21:49 por Javier E. Romero T. | Informe spam
Buenas Tardes:

No soy muy experto en el tema y a lo mejor alguno de ustedes me pueda
colaborar con el tema:

Como plan de auditoria tengo que generar un script y no se como.

El script debe obtener por cada instancia, la base de datos, la ubicación de
los datafiles, el tamaño de los mismos y el espacio disponible, lo mismo para
los logs de transacciones de cada instancia.

Me gustaría que ese script se ejecutara por decir algo todos los días a la 1
de la mañana y que su resultado se guardara en un archivo de texto.

Mil gracias por la colaboración Brindada.

Kike Romero.

Preguntas similare

Leer las respuestas

#1 Guillermo Roldán
23/03/2006 - 22:24 | Informe spam
Hola Javier,

Una forma, es utilizar un cursor sobre la tabla master..sysdatabases, de tal
modo, que en el cuerpo del cursor y utilizando SQL Dinámico, puedas hacer un
USE BBDD y lanzar consultas sobre las tablas del sistema que consideres, por
ejemplo sysdatafiles.

Si no eres capaz de encontrar alguna información pero existe algún
procedimiento almacenado del sistema que te sirva, como pudiera ser
sp_helpdb, puede ejecutar dicho procedure, o examinar su código fuente para
extraer la parte que te interese y utilizarla desde el cuerpo de tu cursor.

Con esto, más o menos, deberías poder hacer alguna cosilla.

Saludos,
Guillermo


"Javier E. Romero T." escribió en
el mensaje news:
Buenas Tardes:

No soy muy experto en el tema y a lo mejor alguno de ustedes me pueda
colaborar con el tema:

Como plan de auditoria tengo que generar un script y no se como.

El script debe obtener por cada instancia, la base de datos, la ubicación
de
los datafiles, el tamaño de los mismos y el espacio disponible, lo mismo
para
los logs de transacciones de cada instancia.

Me gustaría que ese script se ejecutara por decir algo todos los días a la
1
de la mañana y que su resultado se guardara en un archivo de texto.

Mil gracias por la colaboración Brindada.

Kike Romero.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
24/03/2006 - 00:44 | Informe spam
Javier,

A que te refieres con "por cada instancia". Cada instancia de SQL Server?

Si deseas sacar la info por cada database, entonces crea un cursor y
recorrelo, usa sql dinamico para que puedes usar la db y sacar la info con el
procedimineto sp_helpfile.

Ejemplo:

create table t (
dbid int,
dbname varchar(128),
[name] sysname,
fileid int,
[filename] sysname,
[filegroup] nvarchar(128) null,
[size] varchar(25),
[maxsize] varchar(25),
growth varchar(25),
usage varchar(25)
)

declare @sql nvarchar(4000)
declare @dbid int
declare @db sysname
declare dbs_cursor cursor
local
fast_forward
for
select dbid, [name]
from master.dbo.sysdatabases

open dbs_cursor

while 1 = 1
begin

fetch next from dbs_cursor into @dbid, @db

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'use [' + @db + N'] exec dbo.sp_helpfile'

insert into t([name], fileid, [filename], [filegroup], [size], [maxsize],
growth, usage)
exec sp_executesql @sql

update t set dbid = @dbid, dbname = @db where dbname is null
end

close dbs_cursor
deallocate dbs_cursor

set @sql = N'bcp northwind.dbo.t out "c:\temp\db_audit_' + convert(char(8),
getdate(), 112) + N'.txt" -S(local) -T -c -w'

exec master.dbo.xp_cmdshell @sql, no_output

drop table t
go


AMB


"Javier E. Romero T." wrote:

Buenas Tardes:

No soy muy experto en el tema y a lo mejor alguno de ustedes me pueda
colaborar con el tema:

Como plan de auditoria tengo que generar un script y no se como.

El script debe obtener por cada instancia, la base de datos, la ubicación de
los datafiles, el tamaño de los mismos y el espacio disponible, lo mismo para
los logs de transacciones de cada instancia.

Me gustaría que ese script se ejecutara por decir algo todos los días a la 1
de la mañana y que su resultado se guardara en un archivo de texto.

Mil gracias por la colaboración Brindada.

Kike Romero.

Respuesta Responder a este mensaje
#3 Javier E. Romero T.
24/04/2006 - 21:16 | Informe spam
Gracias Alejandro, si me funciono, pero no me esta escribiendo el resultado a
un archivo.

Gracias.

Javier E. Romero T.

"Alejandro Mesa" escribió:

Javier,

A que te refieres con "por cada instancia". Cada instancia de SQL Server?

Si deseas sacar la info por cada database, entonces crea un cursor y
recorrelo, usa sql dinamico para que puedes usar la db y sacar la info con el
procedimineto sp_helpfile.

Ejemplo:

create table t (
dbid int,
dbname varchar(128),
[name] sysname,
fileid int,
[filename] sysname,
[filegroup] nvarchar(128) null,
[size] varchar(25),
[maxsize] varchar(25),
growth varchar(25),
usage varchar(25)
)

declare @sql nvarchar(4000)
declare @dbid int
declare @db sysname
declare dbs_cursor cursor
local
fast_forward
for
select dbid, [name]
from master.dbo.sysdatabases

open dbs_cursor

while 1 = 1
begin

fetch next from dbs_cursor into @dbid, @db

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'use [' + @db + N'] exec dbo.sp_helpfile'

insert into t([name], fileid, [filename], [filegroup], [size], [maxsize],
growth, usage)
exec sp_executesql @sql

update t set dbid = @dbid, dbname = @db where dbname is null
end

close dbs_cursor
deallocate dbs_cursor

set @sql = N'bcp northwind.dbo.t out "c:\temp\db_audit_' + convert(char(8),
getdate(), 112) + N'.txt" -S(local) -T -c -w'

exec master.dbo.xp_cmdshell @sql, no_output

drop table t
go


AMB


"Javier E. Romero T." wrote:

> Buenas Tardes:
>
> No soy muy experto en el tema y a lo mejor alguno de ustedes me pueda
> colaborar con el tema:
>
> Como plan de auditoria tengo que generar un script y no se como.
>
> El script debe obtener por cada instancia, la base de datos, la ubicación de
> los datafiles, el tamaño de los mismos y el espacio disponible, lo mismo para
> los logs de transacciones de cada instancia.
>
> Me gustaría que ese script se ejecutara por decir algo todos los días a la 1
> de la mañana y que su resultado se guardara en un archivo de texto.
>
> Mil gracias por la colaboración Brindada.
>
> Kike Romero.
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida