Ir al contenido principal

Entradas

Mostrando las entradas de julio, 2009

Como saber que Service Pack tengo instalado en SQL Server?

Para saber que Service pack se tiene instalado en SQL Server, Hay que ejecutar el siguiente comando: SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') Este regresa algo parecido a: 9.00.3042.00 SP2 Enterprise Edition El primer registro es la versión, el segundo es el nivel de producto (en este caso Service pack 2), y el ultimo es la edición, En este caso Enterprise. Esta es una tabla con las versiones de SQL y su respectivo Service pack. RTM SP1 SP2 SP3 SP4 SQL Server 2017 SQL Server 2016 13.0.2149.0 13.0.4001.0 SQL Server 2014 12.0.2000.8 12.0.4100.1 12.0.5000.0 SQL Server 2012 11.0.2100.60 11.0.3000.00 11.0.5058.0 11.0.6020.0 11.0.7001.0 SQL Server 2008 R2 10.50.1600.1 10.50.2500.0 10.50.4000.0 10.50.6000.34 SQL Server 2008 10.00.1600.22   10.00.2531.00 10.00.4000.00 10.00.5500.00 10.0.6000.29 SQL Server 2005 9.00.1399 9.00.2047 9.00.3042 9.00.4035 9.00.5000 SQL Serve

Obtener la fecha del ultimo respaldo de las BD en el server

Si necesitamos obtener la ultima fecha de respaldo completo de una BD, podemos utilizar el siguiente script. declare @dbname varchar(256) declare @status varchar(128) declare dbs_cursor cursor for select name ,status = case when status > 31 then 'BD en read only o en Offline' else 'Normal' end from master..sysdatabases open dbs_cursor fetch next from dbs_cursor into @dbname,@status while @@fetch_status = 0 begin SELECT @dbname,@status, ISNULL(Convert(char(10), MAX(backup_finish_date), 101), 'Never') Last_Backup FROM master.dbo.sysdatabases B LEFT OUTER JOIN msdb.dbo.backupset A ON A.database_name = B.name AND A.type = 'D' WHERE B.name = @dbname fetch next from dbs_cursor into @dbname,@status END close dbs_cursor deallocate dbs_cursor Espero que les sea util. Saludos.

Eliminar archive logs antiguos.

Para eliminar viejos archive logs de las BD de oracle en windows, que ya fueron enviados a cinta, podemos utilizar el siguiente script de VBS. Para generar el arhivo vbs simplemente pegar en un notepad el codigo, modificarlo de acuerdo a nuestros requerimientos y guardar con extension vbs. El codigo es: Set objFSO = CreateObject("Scripting.FileSystemObject") objStartFolder = "[ruta a borrar]" set objfolder = objFSO.GetFolder(objStartFolder) Set colFiles = objFolder.Files For Each objFile in colFiles if objFile.DateCreated < (date - [dias que se desea conservar]) then fullpath = objFile.Path objFSO.DeleteFile(fullpath) end if Next para ejecutarlo en la linea de comandos seria cscript [nombre del script] Saludos.

Migrar los logins / usuarios de SQL Server entre servidores

Cuando necesitamos mover una BD de un servidor a otro, pero queremos que los usuarios tengan los mismos privilegios que en el servidor actual, tenemos que llevar al nuevo servidor tambien los logins. En SQL server es diferente un login a un usuario. Un login es a nivel del Servidor y usario es a nivel de la BD. Si creamos por ejemplo el usuario fer en el servidor A, y luego creo un usuario fer en el servidor B y me llevo la BD produccion al server B el usuario fer es diferente, esto debido a que sql en realidad trabaja con SIDs en lugar del nombre del usuario. Para solucionar esto hay que llevarnos los logins al nuevo server. Como la BD se respalda con los usuarios incluidos, solo hay que recrear los usuarios con su mismo SID en el nuevo server. El script es como sigue: SET NOCOUNT ON SELECT 'EXEC sp_addlogin @loginame = ''' + loginname + '''' ,', @defdb = ''' + dbname + '''' ,', @deflanguage = ''' + langu

Como mover un datafile de oracle

Para mover un datafile fisicamente, en este caso es con la base de datos montada. La sintaxis es : alter database rename file '{ruta actual }' to '{ruta nueva}'; Un ejemplo seria: startup mount; alter database rename file '/data/orcl/datafiles/UNTOTBS_b.dbf' to '/u03/data/orcl/UNTOTBS_b.dbf';

Como saber que version de MDAC tengo instalada?

Para saber que version de MDAC esta instalada en el servidor o en una PC, hay que crear un archivo con extension vbs con el siguiente codigo: wscript.echo GetAdoVersion Function GetAdoVersion() 'Returns an empty string is ADO is not installed ' Dim o As Object On Error Resume Next Set o = CreateObject("ADODB.Connection") If Err.Number = 0 then GetAdoVersion = o.Version Else 'ADO is not installed End If End Function una vez que tengamos el archivo creado hay que ejecutarlo desde la linea de comandos con el comando cscript, como en el ejemplo de abajo. cscript mdacver.vbs En este caso el archivo vbs se llama mdacver.vbs, una vez ejecutado regresara la version del MDAC instalada. Lo he probado en windows 2000, xp y 2003 y ha funcionado bien. Saludos.

Inicio Automatico de la instancia en HPUX

1.- Hay que loguearse al server con el usuario root. 2.- Editar el archivo oratab que esta en /etc/orartab y configurar las instancias que queremos que inicien automaticamente, en el archivo generalmente ya vienen las instancias si se crearon con el DBCA, en caso de que no el formato es el siguiente: SID:ORACLE_HOME:{Y|N|W} Ejemplo: test:/u01/oracle9i/home:Y Lo cual iniciara la instancia test que tiene como home la ruta /u01/oracle9i/home (la ruta es ejemplo solamente, lo recomendable es seguir las reglas del OFA) y la "Y" al final indica que la inicie al iniciar el server, en caso de mantenimientos o cosas por el estilo que no deseemos que inicie hay que cambiar la "Y" por "N". 3.- Crear un archivo que se llame dbora (El codigo viene abajo) en /sbin/init.d Hay que tener cuidado de cambiar las rutas para que refleje el oracle home real y el usuario owner de la instalacion de oracle (en este caso oracle) 4.- Cambiar los privilegios del archivo dbora como s

ORA-12560: TNS: protocol adapter error

Primero se tiene que revisar que la variable ORACLE_SID este correctamente asignada. Si esta correcta, este error comunmente pasa cuando estando conectado a un server con queremos accesar al SQL PLUS o al SVRMGR localmente utilizando el remote desktop de windows 2000 o 2003. Para evitarlo necesitamos conectarnos DIRECTAMENTE a la consola del servidor. Con windows 2003 hay que ejecutar desde linea de comando "mstsc /console" y conectarnos como normalmente. En windows 2000 necesitamos alguna herramienta como "PC Anywhere" o "Dameware" para conectar directamente a la consola. Espero que esto ayude. Saludos.