Archivo de la categoría ‘Bases de Datos’

Cómo cambiar tu blog en WordPress a un nuevo servidor

Lunes, 19 de octubre de 2009

El mayor problema que nos encontramos al pretender cambiar la dirección web de nuestro blog es que en WordPress usa direcciones absolutas en ciertos parámetros que almacena en la base de datos en lugar de direcciones relativas. Este artículo le mostrara como cambiar de forma sencilla estas direcciones absolutas para que apunten al nuevo dominio o directorio dentro del mismo dominio.

El primer paso que hay que realizar es mover todo el contenido de tu instalación de WordPress al nuevo destino, ya sea un nuevo directorio de tu antiguo servidor o tu nuevo servidor. Una vez completado este paso, cambiaremos una serie de opciones en la tabla OPTIONS que indican la dirección de nuestro blog. Para ello ejecutaremos el siguiente comando SQL en nuestra base de datos:

UPDATE wp_options
   SET option_value = REPLACE(option_value, 'http://www.antiguo-dominio.com', 'http://www.nuevo-dominio.com')
 WHERE option_name = 'home' OR option_name = 'siteurl';

Posteriormente, necesitarás arreglar los enlaces que se encuentran dentro de los artículos y las páginas de tu blog a la nueva dirección. Para realizar esto hay que ejecutar el siguiente comando SQL:

UPDATE wp_posts
   SET guid = REPLACE(guid, 'http://www.antiguo-dominio.com','http://www.nuevo-dominio.com');

En el caso de que hayas hecho enlaces desde tus propios contenidos a direcciones absolutas (es decir direcciones en las que indicas el el nombre del servidor por completo) además necesitarás ejecutar también:

UPDATE wp_posts
   SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');

Tras realizar estas operaciones, ya podrás entrar en tu blog usando tu nueva dirección. En el caso de que no funcionen los Permalinks deberás generar un nuevo el fichero .htaccess mediante el interfaz de administración de WordPress acudiendo al menú ‘Opciones/Permalinks’ en el Tablero.

En este punto ya tendrás tu blog funcionando correctamente en la nueva dirección web, pero tendrás que indicar al mundo que has cambiado de servidor o de directorio dentro de tu servidor antiguo. Esto lo puedes realizar de forma sencilla mediante reglas en htaccess. Por ejemplo, para el caso de que cambies del directorio raíz en tu mismo servidor a un nuevo directorio, es decir desde http://www.midominio.com/ a http://www.midominio.com/blog puedes usar la siguiente redirección en htaccess:

redirectMatch 301 ^(.*)$ http://www.midominio.com/blog$1

Fuente: My Digital Life

Más información sobre redirectMatch.

Etiquetas: , , , , ,

Trabajar con juegos de resultados de gran tamaño.

Jueves, 26 de febrero de 2009

Adaptive response buffering es una nueva funcionalidad de la versión 1.2 driver JDBC de Sql Server que permite reducir el uso de memoria y los retrasos en la ejecución de consultas que devuelven un conjunto de resultados grande.

Mediante este método, el controlador JDBC obtiene los resultados de la consulta a la base de datos según se van necesitando, en lugar de todos de una vez. Además, el controlador JDBC elimina automaticamente de la memoria los resultados que dejan de ser accesibles por la aplicación.

Imaginemos que tenemos que hacer una consulta que devuelve una columna con un campo LOB de 600MB.  Seria inviable mantener un buffer para acceder mediante los métodos definids en la interfaz de los tipos Blob/Lob ya que estos métodos necesitan que el campo al completo este cargado en memoria. En su lugar, podemos acceder mediante un ImputStream obtenido usando los metodos getBinaryStream, getCharacterStream, o getAsciiStream del ResultSet. De esta forma, solo se necesita una cantidad de memoria pequeña y de un tamaño fijo para poder leer ese campo.

Hay varias formas para indicar al controlador JDBC que use Adaptative Response Buffering:

  • Añadir “responseBuffering=adaptive” a la URL de conexión
     Connection connection = null;
    try {
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String url = "jdbc:sqlserver://localhost:1433;database=BBDD;responseBuffering=adaptive";
        String username = "usuario";
        String password = "clave";
     
        // Cargar el Driver
        Class.forName(driverName);
     
        // Crear la conexion
        connection = DriverManager.getConnection(url, username, password);
    } catch (ClassNotFoundException e) {
        // No se ha encontrado el driver.
        e.printStackTrace();
    } catch (SQLException e) {
        // No se ha podido conectar con la base de datos
        e.printStackTrace();
    }
  • Usar el método SQLServerDataSource.setResponseBuffering(“adaptive”) del DataSource

Si nuestra aplicación siempre accede de manera consecutiva  a las filas de nuestro ResultSet y no necesita acceder a el de manera aleatoria (es decir, recorremos el juego de resultados una única vez y de pricipio a fin), podemos usar el siguiente código para indicar al controlador que descarte las filas por las que ya se han pasado:

ps = con.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY );

Etiquetas: , , , , , ,