Comandos de la base de datos de replicación
Puede utilizar comandos para modificar la configuración de la base de datos de replicación.
CREATE DATABASE <db_name> REPLICATION SET <replsetname>Crea una nueva base de datos replicada y la asigna al conjunto de replicación especificado. Debe emitir este comando desde el primario; si lo emite desde una réplica se produce un error. Para añadir una base de datos existente al conjunto, utilice el comando ALTER DATABASE.
ALTER DATABASE <db_name> REPLICATION SET <replsetname>Añade una base de datos existente a un conjunto de replicación. Debe emitir este comando desde el primario.
Al emitir el comando ALTER DATABASE...REPLICATION SET se inicia la replicación por valores, lo que puede degradar el rendimiento.
Después de agregar una base de datos a un conjunto de replicación mediante este comando, debe realizar los pasos de inicialización necesarios mediante el comando nzreplanalyze -needsrecovery (a menos que agregue la base de datos al conjunto de replicación antes de registrar la réplica), el comando nzreplbackup y el comando nzreplrestore. Después de inicializar o recuperar el nodo, se reanuda la replicación by-SQL.
ALTER DATABASE <db_name> REPLICATION NEEDS RECOVERY FOR <sub_node>Marca manualmente la base de datos nombrada en el nodo de réplica especificado para su recuperación. Cuando se añade un nodo de réplica a un conjunto de replicación o cuando se añade una base de datos para replicación, el software marca automáticamente la base de datos para recuperación, por lo que este comando no es necesario. Utilice el comando sólo cuando determine que, debido a circunstancias distintas de las mencionadas, es necesario recuperar la base de datos de una réplica.
Después de marcar una base de datos, las transacciones que leen o escriben en la base de datos se replican por valor en todos los nodos del conjunto de replicación hasta que se recupera la base de datos en la réplica. (Esto puede degradar el rendimiento) El primario continúa registrando las transacciones que leen o escriben en la base de datos marcada. La réplica en recuperación continúa replicando otras bases de datos, pero omite las transacciones de la base de datos que se está recuperando. Algunas de las transacciones omitidas nunca se aplicarán, y otras se aplicarán después de la recuperación, dependiendo de si las transacciones se producen antes o después de que se adquieran los datos de recuperación en el primario. En cualquier caso, las demás réplicas del conjunto siguen replicándose. Además, hay un periodo adicional en el que el primario sigue registrando por valor hasta que todas las transacciones activas anteriormente se completan (se consignan o se revierten).
Ejecuta el comando desde el primario. Tanto en los casos de marcado manual como automático, utilice los comandos nzreplanalyze -needsrecovery, nzreplbackup, y nzreplrestore para recuperar la réplica, lo que elimina la marca y reinicia la replicación by-SQL.
ALTER DATABASE <db_name> REPLICATION RECOVERED AT <master_node> <recovered_to_CSN>Marca la base de datos especificada como recuperada a través de un método externo distinto del procedimiento de comandos nzreplanalyze, nzreplbackup y nzreplrestore. Por ejemplo, podría utilizar la utilidad nz_migrate o una herramienta ETL para la recuperación, pero cada situación depende de las circunstancias. Sin embargo, utilice el comando ALTER DATABASE con precaución, ya que puede utilizarlo para marcar una base de datos como recuperada aunque no esté totalmente sincronizada. Marcar una base de datos como recuperada permite al primario replicar por SQL y permite a la réplica recuperada empezar a replicar transacciones para las bases de datos recuperadas. Si la base de datos no está sincronizada, pueden producirse divergencias entre los datos primarios y las réplicas.
Ejecute este comando desde la réplica que necesita la recuperación de la base de datos.
ALTER DATABASE <db_name> REPLICATION SET NONEElimina la base de datos especificada del conjunto de replicación. Ejecute este comando sólo en el nodo primario.
Si no hay transacciones activas contra la base de datos especificada o transacciones activas contra otras bases de datos replicadas que hagan referencia a la base de datos especificada, el comando elimina la base de datos especificada del conjunto de replicación. No se replican más actualizaciones de la base de datos.
Si hay transacciones de actualización activas contra la base de datos, las transacciones no se registran, pero se procesan normalmente y no fallan. Cuando todas las transacciones replicadas correspondientes que se relacionan con esta base de datos terminan de aplicarse en los nodos de réplica, la base de datos se convierte en una base de datos local normal en todos los nodos.
El comando
ALTER DATABASE <db_name> REPLICATION SET NONErequiere acceso exclusivo a la base de datos. Si el comando no tiene acceso exclusivo, falla.ALTER DATABASE <db_name> RENAME TO <new_db_name>Altera el nombre de la base de datos especificada. Se trata de un comando NPS®, pero afecta al entorno de replicación. No se puede modificar el nombre de una base de datos con transacciones de actualización en ejecución. En ese caso, el comando falla y genera un mensaje de error. Cuando aplique el comando a una base de datos replicada, deberá ejecutar el comando en la primaria.