on 2019 May 03 8:02 AM
Is there any way to exclude a specific table from replication (SQL Remote) (in a way to ignore the past and current changes on this table).
With: ALTER PUBLICATION pub1 DELETE/DROP TABLE table1;
This ignores only the changes after executing this statement (so the past changes will still be replicated).
With: STOP SUBSCRIPTION TO pub1 FOR remote1;
This ignores all changes as I want (i.e. ignores even the changes before executing this statement), but the problem here I cant define a specific table, but I should define a whole pbulication (but I want only one specific table)!!!
Is there any way to stop the subscription for a specific table?
Request clarification before answering.
Perhaps you should seriously consider MobiLink.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
No, this is not possible.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Before trying to think of a workaround for your problem, I'd like to understand it. If the table is intended to be no longer replicated, but still locally used, you're violating the idea of occasionally connected replication by creating a dependency upon the time an operation was replicated.
Due to the way SQLRemote replication control is stored - inside the xact.log, together with the logged row operation(s) - I'm quite confident that this is not possible on SQLRemote level. What has been written to the xact.log must not be changed any more. If you manage to create a set of INSTEAD OF triggers against the table on each receiving side, that might do the job. But then, this also has to be arranged outside SQLRemote, and depending on how tightly or loosely the nodes are coupled. manually corrupting the continuity of replication messages by deleting the oldest message not received yet may buy you the time required to get this organized.
All these actions massively affect the consistency of replication (on a conceptual level, not necessarily on the level of your setup), so I guess you might be better off by letting the replication run dry and fix the results afterwards with e.g. passthrough operations.
HTH
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The goal is not finding a way how I can ignore the changes on the receiver, but how can I tell the sender to ignore these changes.
So I dont care anymore about the consistency/correctnes of the information on this specific table, but I am thinking of the health of my PC because it does now nothing rather than allocating resources for DBREMOTE which in turns does nothing rather than collecting garbages in DB.
Ok, I understand your problem. And, trusting Reg's answer, I'm afraid your only options are to go through it or to stop and restart replication. BTW, are you using the default message size? Depending on message type and infrastructure, you're probably better off by massively (1 or 2 orders of magnitude) increasing it.
User | Count |
---|---|
76 | |
30 | |
10 | |
8 | |
8 | |
7 | |
7 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.