Scimore Company Blog
Ramblings on databases

Replication changes since v3.0.1520

January 8, 2009 17:15 by scimore

Hi everyone,

The new version of 3.0 beta branch is no longer compatible with the previous 3.* versions.  The changes affect only replication and require an upgrade. If you don't use replication, you don't need to upgrade, otherwise, here is an upgrade steps: 

1. If merge replication used, synchronize those tables using the old syntax, so the publisher has the latest data.

2. Uninstall old and install new versions. You can get it from download page under 3.0 (Beta). Both subscriber and the publisher must be the latest versions.

3. Cleanup publisher and subscriber. Because [#histories] table structure has been changed you must to drop all replication related tables ([#histories], [tablename#history],[tablename#conflicts] and replicated tables [tablename] (only on subscriber(s)! ). Use the commands below, since DROP TABLE will fail:

For [#histories] in the database "test" (subscriber and publisher):


execute DQL
begin
exec_ddl ' DROP TABLE  [test.#histories] '
end

For each published/subscribed table in the "test" (subscriber and publisher):

execute DQL
begin
exec_ddl ' DROP TABLE  [test.mytable#history] '
end

execute DQL
begin
exec_ddl ' DROP TABLE  [test.mytable#conflicts] '
end

Note: depending of the replication type READ/MERGE [test.#history] and [test.#conflicts] may exists or not.

Restart database servers and then drop each subscribed table. (only on subscriber!):

DROP TABLE test.mytable

4. Subscribe again:

Use SUBSCRIBE SQL command from the previous blog "Testing replication".

New syncrhonization SQL commands:

To synchronize a single or the multiple tables:

SYNCRHONIZE TABLE mytable [where] ,  optional [where] used to apply filter conditions to subscribe to a subset of rows.

Example: SYNCHRONIZE TABLE mytable where id between 0 and 100

Syncrhonize more than one table:

BEGIN TRAN
SYNCHRONIZE TABLE mytable1 [where clause]
SYNCHRONIZE TABLE mytable2 [where clause]
COMMIT

To synchronize entire database without [where] clause, on the subscriber invoke the following command:

SYNCHRONIZE DATABASE mydb

The command will syncrhonize all subscribed tables in the "mydb" database.

The subscribe/unsubscribe commands remain unchanged. For the syntax read the "Testing Replication" blog entry. 

 

Thanks, Scimore Team


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories:
Actions: E-mail | Permalink | Comments (2) | Comment RSSRSS comment feed

Related posts

Comments

April 9. 2009 19:14

Sergey

When do you plan to release 3.0 final?

Sergey

April 10. 2009 10:34

scimore

RC1 is expected latest end of May. We are feature complete, and a currently working on testing and documentation.

After RC1 - timing very much depends on customer and user feedback. We do not expect much time between RC1 and Release.

scimore

Comments are closed