Diferencias de comandos SQL en el entorno de replicación
- Debe ejecutar los comandos SQL en el primario.
- En una réplica, los cambios en los objetos replicados (DDL, DML, tablas de base de datos y secuencias) hacen que se aborte la transacción. Las tablas temporales no se consideran objetos replicados; por lo tanto, puede modificarlas.
- Se admiten todas las referencias a datos, incluso a datos de una base de datos no replicada o del sistema. Las referencias a datos no replicados activan la replicación por valores.
Además, las sentencias no deterministas se gestionan mediante la replicación por valores (replicación de valores de cambio).
- Replicado: el comando se ejecuta en el primario y se reproduce en la réplica
- No replicado: el comando se ejecuta en el nodo primario o en la réplica, pero no se reproduce en otro nodo
- No compatible: se bloquea la ejecución del comando
| Mandato | Notas | Consulte también |
|---|---|---|
| ALTER DATABASE | Sólo puede ejecutar este comando desde una conexión de sesión a una base de datos replicada o SYSTEM. En una base de datos replicada en un primario, el comando ALTER DATABASE se replica en la réplica. En una réplica, el comando ALTER DATABASE sólo está permitido en una base de datos no replicada. | Mandato de CREATE DATABASE |
| BEGIN y COMMIT | Se replican las transacciones con consultas de actualización (con sus correspondientes comandos BEGIN y COMMIT ) que afectan a objetos globales o replicados. Las transacciones sin consultas de actualización (sólo lectura, en las que no se realizan cambios en la base de datos) no lo son. | Mandato de ROLLBACK |
| CALL, EXEC, EXECUTE, y SELECT procedimiento almacenado | La replicación por SQL o por valor se selecciona en función de si todos los objetos a los que hace referencia un procedimiento almacenado son miembros del conjunto de replicación. | Replicación de procedimientos almacenados |
| COPY FROM | Este comando no es compatible. | |
| CREATE AGGREGATE, CREATE [OR REPLACE] AGGREGATE, DROP AGGREGATE | Todos los agregados definidos por el usuario (y las funciones de agregado por ventanas del sistema, que no pueden modificarse) utilizan la replicación por valor. | |
| CREATE CATEGORY, ALTER CATEGORY y DROP CATEGORY | Existen objetos globales relacionados con la seguridad multinivel. | Objetos globales |
| CREATE COHORT, ALTER COHORT, y DROP COHORT | Existen objetos globales relacionados con la seguridad multinivel. | Objetos globales |
| CREATE DATABASE REPLICATION SET | Un subcomando del comando CREATE DATABASE, crea una nueva base de datos replicada cuando se emite en el primario. | Creación de nuevas bases de datos replicadas |
| CREATE EXTERNAL TABLE | Se crea un archivo externo como parte de la ejecución del comando en la réplica, que no es el archivo exacto que existía en el primario. La ruta del directorio debe existir en la réplica; de lo contrario, se suspende la replicación. | Creación de tablas externas |
| CREATE [OR REPLACE] FUNCTION, ALTER FUNCTION y DROP FUNCTION | Puede especificar la opción DETERMINISTIC o NOT DETERMINISTIC. Si especifica la opción NOT DETERMINISTIC, se selecciona la replicación por valor cuando se llama a la función. | Sincronización |
| CREATE GROUP, ALTER GROUP y DROP GROUP | Objeto global. | Objetos globales |
| CREATE HISTORY CONFIGURATION, ALTER HISTORY CONFIGURATION, DROP HISTORY CONFIGURATION, y SET HISTORY CONFIGURATION | Los comandos relacionados con la configuración del historial no se replican. Los nodos de un conjunto de replicación pueden tener configuraciones de historial diferentes o no habilitadas. | |
| CREATE [OR REPLACE] LIBRARY, ALTER LIBRARY y DROP LIBRARY | Las bibliotecas definidas por el usuario son objetos de una base de datos. Los comandos toman dos cláusulas, EXTERNAL HOST OBJECT y EXTERNAL SPU OBJECT, que identifican objetos compilados en el sistema de archivos que se utiliza para ejecutar el código de la biblioteca en el host y la SPU. Debe definir cada biblioteca (incluidas las bibliotecas dependientes opcionales) y objeto compilado en una base de datos replicada; de lo contrario, el comando falla. | |
| CREATE MATERIALIZED VIEW | Consulte CREATE VIEW. | |
| CREATE PROCEDURE, ALTER PROCEDURE y DROP PROCEDURE | Replicación de procedimientos almacenados | |
| CREATE SECURITY LEVEL, ALTER SECURITY LEVEL y DROP SECURITY LEVEL | Objetos globales relacionados con la seguridad multinivel. | Objetos globales |
| CREATE SEQUENCE, ALTER SEQUENCE y DROP SEQUENCE | Se utiliza la replicación por valor. | Coherencia de secuencias |
| CREATE SYNONYM, ALTER SYNONYM y DROP SYNONYM | Puede crear sinónimos entre bases de datos. La replicación por valor se utiliza para las referencias a una tabla no replicada. | |
| CREATE TABLE, ALTER TABLE y DROP TABLE | Los comandos sólo se replican para las tablas no temporales de una base de datos replicada. | |
| CREATE TABLE AS SELECT | La replicación es por SQL o por valor, dependiendo de si todos los objetos referenciados son miembros del conjunto de replicación. | |
| CREATE TEMPORARY TABLE | Las tablas temporales se comportan de forma idéntica en bases de datos replicadas y no replicadas en el primario. Las tablas temporales no son objetos miembros del conjunto de replicación, y las referencias a tablas temporales dan lugar a una replicación por valor. | Normas de aplicación de la replicación SQL |
| CREATE USER, ALTER USER y DROP USER | La ejecución del comando ALTER USER admin es una operación local. Puede emitir el comando en cualquier nodo, y no se replica. Todas las demás operaciones de usuario deben realizarse en el primario, y se replican con otros objetos globales. | |
| CREATE VIEW y CREATE [OR REPLACE] VIEW | El comando puede hacer referencia a objetos de una base de datos replicada o a objetos del sistema. El comando falla si hace referencia a un objeto de una base de datos no replicada. | Vistas al inicializar una réplica |
| DROP DATABASE | Cuando se ejecuta el comando contra una base de datos replicada en el primario, la base de datos se elimina en todos los nodos de replicación del conjunto. La caída de una base de datos durante la ejecución de transacciones replicadas concurrentes puede provocar un bloqueo. Si se elimina una base de datos mientras hay sesiones conectadas a ella, el comando falla. | |
| EXECUTE AS y REVERT | Los comandos deben replicarse cuando se encuentran en una transacción de actualización multistatement contra datos replicados o globales. Sin efecto cuando se emite como transacción implícita. | |
| GRANT y REVOKE | Concesión y revocación de privilegios | |
| GENERATE STATISTICS | El comando no modifica los datos, pero afecta al rendimiento de la consulta. En las versiones de NPS® anteriores a la 7.2.0.4, el comando siempre se replica si se emite en el primario. En NPS 7.2.0.4 o posterior, el comando se replica si se emite en el primario y el parámetro replReplayMaintenance del archivo replrqm.cfg se establece en true. El valor por defecto del parámetro es verdadero ; cámbielo sólo consultando con el Servicio de Atención al Cliente. Puede emitir el comando contra una base de datos replicada en la réplica, pero el comando no se replica. |
|
| GROOM TABLE | El comando no modifica los datos, pero afecta al rendimiento de la consulta. En las versiones de NPS anteriores a 7.1.0.4-P2 y 7.2.0.3-P2, un comando GROOM TABLE replicado con la opción RECLAIM BACKUPSET <backupsetid> provoca la suspensión de la réplica. En NPS 7.1.0.4-P2 y 7.2.0.3-P2 o posteriores, la réplica trata un comando GROOM TABLE replicado con la opción RECLAIM BACKUPSET <backupsetid> como un comando GROOM TABLE sin la opción RECLAIM BACKUPSET <backupsetid>. En NPS 7.2.0.4 o posterior, el comando GROOM TABLE se replica si se emite en el primario y el parámetro replReplayMaintenance del archivo replrqm.cfg se establece en true. El valor por defecto del parámetro es verdadero ; cámbielo sólo consultando con el Servicio de Atención al Cliente. Puede emitir el comando GROOM TABLE contra una base de datos replicada en la réplica, pero el comando no se replica. Ejecutar el comando contra una tabla replicada en una réplica no purga los registros eliminados que puedan ser visibles para transacciones replicadas posteriores desde el primario o para transacciones actuales en la réplica. |
|
| INSERT, UPDATE y DELETE | Los comandos se replican si se aplican en una base de datos que está replicada, excepto cuando se dirigen a una tabla temporal o externa (descargar). Los comandos sólo están permitidos en una réplica en una base de datos no replicada o en una tabla temporal de una base de datos replicada. Las descargas no se registran en el primario ni en la réplica, por lo que también están permitidas en una réplica. | |
| LOCK DATABASE sentencia | La sentencia LOCK DATABASE no se replica, pero se permite en el primario para evitar bloqueos y abortos de transacciones. | |
| LOCK TABLE sentencia | No replicado, incluso para tablas en una base de datos replicada. | LOCK TABLE y la Guía del usuario de IBM Netezza Database. |
| ROLLBACK | No se reproduce. | BEGIN y COMMIT |
| SELECT consultas | Las transacciones implícitas con SELECTs, las transacciones de sólo lectura y las sentencias SELECT que forman parte de una transacción de lectura/escritura no se replican. | |
| SET y RESET declaraciones | Salvo algunas excepciones, no se replica porque el estado de la sesión no se conserva entre el primario y la réplica. | Variables de sesión NPS |
| SHOW sentencia | No replicado. | |
| TRUNCATE TABLE | El comando no puede formar parte de una transacción explícita. Si se ejecuta en el primario, el comando se replica si la base de datos está replicada. |