2012-01-23 17 views
6

No encuentro ejemplos en línea de cómo configurar dos bases de datos separadas para Magento: una para solicitudes de lectura y otra para solicitudes de escritura. Supongo que esto debería suceder en la aplicación/etc/local.xml pero no sé cuál es la sintaxis. ¿Alguien sabe la sintaxis o tiene un enlace a una publicación de blog o algo que mi búsqueda no apareció?Separar bases de datos de lectura y escritura en Magento

estoy corriendo Magento 1.6.1.0

Gracias

+0

pregunta interesante. ¿Puedo preguntarle en qué tipo de escenario se separarían las DB para que las lecturas y las escrituras se utilicen por completo? – mas

+0

Para [Equilibrio de carga] (http://en.wikipedia.org/wiki/Load_balancing_%28computing%29). Magento es muy intensivo en lectura. Al usar [RDS] (http://aws.amazon.com/rds/) leer réplicas, puedo distribuir la carga en el DB y manejar más tráfico. – Max

Respuesta

20

En su app/etc/local.xml llenar <resources> en el siguiente manera:

<resources> 
     <db> 
      <table_prefix><![CDATA[]]></table_prefix> 
     </db> 
     <core_read> 
      <connection> 
       <use /> 
       <host><![CDATA[localhost]]></host> 
       <username><![CDATA[root]]></username> 
       <password><![CDATA[]]></password> 
       <dbname><![CDATA[db_read_name]]></dbname> 
       <initStatements><![CDATA[SET NAMES utf8]]></initStatements> 
       <model><![CDATA[mysql4]]></model> 
       <type><![CDATA[pdo_mysql]]></type> 
       <pdoType><![CDATA[]]></pdoType> 
       <active>1</active> 
      </connection> 
     </core_read> 
     <core_write> 
      <connection> 
       <use /> 
       <host><![CDATA[localhost]]></host> 
       <username><![CDATA[root]]></username> 
       <password><![CDATA[]]></password> 
       <dbname><![CDATA[db_write_name]]></dbname> 
       <initStatements><![CDATA[SET NAMES utf8]]></initStatements> 
       <model><![CDATA[mysql4]]></model> 
       <type><![CDATA[pdo_mysql]]></type> 
       <pdoType><![CDATA[]]></pdoType> 
       <active>1</active> 
      </connection> 
     </core_write> 
    </resources> 
+1

Me aparece 'Fatal error: llamada a una función miembro getTableName() en un objeto no en /path/to/magento/magento/app/code/core/Mage/Core/Model/Resource.php en la línea 296 ' ¿Alguna idea? – Max

+0

Sin ideas. ¿Limpiaste el caché? – Zyava

+2

Solo se necesita agregar '' para sobrescribir lo que estaba en la aplicación/etc/config.xml. Sin embargo, decidí sobreescribir default_read y default_write en su lugar. Yo pienso que es mejor. – Max

Cuestiones relacionadas