Transactional replication cross-country - where should distributor go?

Hi All,
SQL Server 2005 standard edition using transactional replication from Montreal to Vancouver.
Our current distributor is region-based, so it is within our data centre in Toronto. So basically it goes MTL--> TO -> VAN.
However, i'm thinking that the extra step to TO is unnecessary because its in another physical location and the extra hope/latency from MTL-->TO before going to VAN adds overhead..
I know that a separate distributor is best practice but in this case, 3 physical locations, each with ~50ms latency between each one, is it better to have the publisher and distributor on the same server (in MTL) and then just go directly to the subscriber
(VAN)? We don't have enough resource within MTL to build a separate distributor there so it would go on the same server as publisher.
DB size is 135 MB, all tables synchronizing.
Thanks in advance for any input.

The network hop is normally insignificant when replicating locally, but it can be an issue when replicating across a WAN. IT should be local not only to factor out the network latency but also to simplify your recovery and DR plans.
A remote distributor is required when you have high cpu issues on your publisher. If you don't have this or your workload is not characterized by high cpu you will be able to get away with a local distributor.
looking for a book on SQL Server 2008 Administration?
http://www.amazon.com/Microsoft-Server-2008-Management-Administration/dp/067233044X looking for a book on SQL Server 2008 Full-Text Search?
http://www.amazon.com/Pro-Full-Text-Search-Server-2008/dp/1430215941

Similar Messages

  • Transactional replication issues

    SQL 2012 for both servers.
    Basically I would like to set up a (transactional I think) replication of few articles from serverA to serverB.
    I created publication and I created subscription (push) related to serverB.
    In the past, on a sql 2005 instance I used distrib.exe on publication server to deliver changes on subscriber and it worked well.
    On sql 2012, running distrib.exe does not deliver anything .. and I don't understand why.
    Please remember that my main goal is to deliver changes in articles from serverA to serverB "on demand".
    Can you please help ?
    Any help appreciated, best regards.

    I configured transactional replication because it seems the best choice in my scenario.
    "C:\Program Files\Microsoft SQL Server\110\COM\DISTRIB.EXE" -Subscriber %Subscriber%
    -SubscriberDB %SubscriptionDB% -SubscriberSecurityMode 1 -Publication %Publication%
    -Publisher %Publisher% -PublisherDB %PublicationDB% -Distributor %Publisher%
    -DistributorSecurityMode 1 -Continuous -SubscriptionType 0 -SubscriptionStreams 4 Isn't "-Continuos" the contrary of "on demand" ? Do I really need it ?However in my command line instructions I miss these 3 parameters: -Continuous -SubscriptionType 0 -SubscriptionStreams 4however it worked well in the past also without them.I deleted replication jobs (cleanup ... ) too because I would like to start from scratch but now they are not recreatec.Thanks for help.-
    The distrib.exe works only with transactional and snapshot replication. I hope you are configured replication with Transactional replication topology.
    It should work in the same way that it used to work with SQL 2005.
    Reference:-
    http://technet.microsoft.com/en-us/library/ms151169.aspx
    Push subscriptions can be synchronized programmatically and on-demand by invoking the appropriate replication agent executable file from the command prompt. The replication agent executable file that is invoked will depend on the type of publication
    to which the push subscription belongs.
    To start the Distribution Agent to synchronize a push subscription to a transactional publication
    From the command prompt or in a batch file at the Distributor, execute distrib.exe. Specify the following command-line arguments:
    -Publisher
    -PublisherDB
    -Distributor
    -Subscriber
    -SubscriberDB
    -SubscriptionType = 0
    REM -- Declare the variables.
    SET Publisher=%instancename%
    SET Subscriber=%instancename%
    SET PublicationDB=AdventureWorks2012
    SET SubscriptionDB=AdventureWorks2012Replica
    SET Publication=AdvWorksProductsTran
    REM -- Start the Distribution Agent with four subscription streams.
    REM -- The following command must be supplied without line breaks.
    "C:\Program Files\Microsoft SQL Server\110\COM\DISTRIB.EXE" -Subscriber %Subscriber%
    -SubscriberDB %SubscriptionDB% -SubscriberSecurityMode 1 -Publication %Publication%
    -Publisher %Publisher% -PublisherDB %PublicationDB% -Distributor %Publisher%
    -DistributorSecurityMode 1 -Continuous -SubscriptionType 0 -SubscriptionStreams 4
    http://technet.microsoft.com/en-us/library/ms147886.aspx
    -Prashanth

  • TS3297 @My account when billing in new card,they told me to contact ITunes store support to complete my transaction...where should I go?

    @My account when billing in new card,they told me to contact ITunes store support to complete my transaction...where should I go?

    Click here and request assistance.
    (79195)

  • Error while setting up Transactional Replication

    Hi Team,
    I am getting below error while configuring Transactional Replication.
    Specifically, when I started configuring the distributor that when I am getting below error. I am getting this in GUI as well TSQL script as well.
    SQL Server could not configure 'TEST-PC\SQL2K8' as a Distributor.
    ADDITIONAL INFORMATION:
    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
    Destination path D:\SQL2K8DATA is not valid. Unable to list directory contents. Specify a valid destination path.
    Changed database context to 'master'. (Microsoft SQL Server, Error: 14430)
    Background of the error.
    ========================
    I installed 3 sql instances of "SQL Server 2008 Developer edition, SP3 (x64)".
    I started configuring a remote distributor using one of the instance and error started popping up.
    Initially I had the replication running fine and I removed it and tried to reconfigure distributor thats when the error starting popping up.
    The folder physically exists and the service account has full permissions and I have logged in as service account and trying to setup Transactional Replication.
    He is local administrator on the box and also sysadmin login at sql server level.
    Not sure why this error is popping up.....
    After wasting a lot of time. I tried to install 3 new fresh instances with same service pack level i.e. sp3, but still the error remains the same.
    Appreciate if anyone can guide me resolving this issue.
    Thank you.

    Hi Brandon,
    I generated the script and tried again. No Luck. It is throwing error at creation of distribution database itself i.e. exec sp_adddistributiondb .
    /****** Scripting replication configuration. Script Date: 2/25/2014 11:43:31 AM ******/
    /****** Please Note: For security reasons, all password parameters were scripted with either NULL or an empty string. ******/
    /****** Installing the server as a Distributor. Script Date: 2/25/2014 11:43:31 AM ******/
    use master
    go
    exec sp_adddistributor
    @distributor = N'TEST-PC\S2',
    @password = N'123'
    GO
    exec sp_adddistributiondb
    @database = N'distribution',
    @data_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL10.S2\MSSQL\Data',
    @log_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL10.S2\MSSQL\Data',
    @log_file_size = 2,
    @min_distretention = 0,
    @max_distretention = 72,
    @history_retention = 48,
    @security_mode = 1
    GO
    Error Message :
    Msg 14430, Level 16, State 1, Procedure sp_adddistributiondb, Line 227
    Destination path C:\Program Files\Microsoft SQL Server\MSSQL10.S2\MSSQL\Data is not valid. Unable to list directory contents. Specify a valid destination path.
    use [distribution]
    if (not exists (select * from sysobjects where name = 'UIProperties' and type = 'U '))
        create table UIProperties(id int)
    if (exists (select * from ::fn_listextendedproperty('SnapshotFolder', 'user', 'dbo', 'table', 'UIProperties', null, null)))
        EXEC sp_updateextendedproperty N'SnapshotFolder', N'\\TEST-PC\repldata', 'user', dbo, 'table', 'UIProperties'
    else
        EXEC sp_addextendedproperty N'SnapshotFolder', N'\\TEST-PC\repldata', 'user', dbo, 'table', 'UIProperties'
    GO
    exec sp_adddistpublisher @publisher = N'TEST-pc\s1',
    @distribution_db = N'distribution',
    @security_mode = 1,
    @working_directory = N'\\TEST-PC\repldata',
    @trusted = N'false',
    @thirdparty_flag = 0,
    @publisher_type = N'MSSQLSERVER'
    GO

  • Transactional replication from a failover cluster instance to a SQL Server Express DB

    Hello,
    I have been poking around on Google trying to understand if there are any gotchas in configuring transactional replication on a instance DB of a failover cluster, to a SQL Server Express DB. Also, this client would like to replicate a set of tables between
    two instances DB's which both reside on nodes of the cluster.
    Everything I've read suggests there is no problem using transactional replication on clustered instance as long as you use a shared snapshot folder. I still have some concerns:
    1) Should the distributor need to live on a separate instance?
    2) What happens in the event of an automatic, or manual failover of a publisher, especially if the distributor does not need to live on a separate instance? I know that when a failover occurs, all jobs in progress are stopped and this seems like a recipe for
    inconsistency between the publisher and subscriber.
    There is a paramount concern, that this particular client won't have staff on hand to troubleshoot replication if there are problems, hence my hesitancy to implement a solution that relies on it.
    Thanks in advance.

    1) Should the distributor need to live on a separate instance?
    Answer: It is recommended to configure the distributor on the different server, but it also be configured on Publisher/subscriber server. (Subscriber in our case is not possible as its a Express edition)
    2) What happens in the event of an automatic, or manual failover of a publisher, especially if the distributor does not need to live on a separate instance? I know that when a failover occurs, all jobs in progress are stopped and this seems like a recipe for
    inconsistency between the publisher and subscriber. There is a paramount concern, that this particular client won't have staff on hand to troubleshoot replication if there are problems, hence my hesitancy to implement a solution that relies on it.
    Answer: If you configure both publisher and distributor on the same server and the SQL instance is failed over, the data synchronization/replication is suspended till the instance comes online. 
    Once the instance is up,all the replication jobs will start again and it will continue to synchronize the data to subscriber. No manual intervention is required.

  • Transactional replication very slow with indexes on Subscriber table

    I have setup Transactional Replication for one of our databases where one table with about 5mln records is replicated to a Subsriber database. With every replication about 500-600.000 changed records are send to the Subscriber.
    Since one month I see very strange behaviour when I add about 10 indexes to the Subscriber table. As soon as I have added the indexes replication speed becomes extremely slow (almost 3 hours for 600k records). As soon as I remove the indexes the replication
    is again very fast, about 3 minutes for the same amount of records.
    I've searched a lot on the internet to solve this issue but can't find any explaination for this strange behaviour after adding the indexes. As far as I know it doesn't have to be a problem to add indexes to a Subscriber table, and it hasn't been before on
    another replication configuration we use.
    Some information from the Replication Log:
    With indexes on the Subscriber table
    Total Run Time (ms) : 9589938 Total Work Time : 9586782
    Total Num Trans : 3 Num Trans/Sec : 0.00
    Total Num Cmds : 616245 Num Cmds/Sec : 64.28
    Total Idle Time : 0 
    Writer Thread Stats
    Total Number of Retries : 0 
    Time Spent on Exec : 9580752 
    Time Spent on Commits (ms): 2687 Commits/Sec : 0.00
    Time to Apply Cmds (ms) : 9586782 Cmds/Sec : 64.28
    Time Cmd Queue Empty (ms) : 5499 Empty Q Waits > 10ms: 172
    Total Time Request Blk(ms): 5499 
    P2P Work Time (ms) : 0 P2P Cmds Skipped : 0
    Reader Thread Stats
    Calls to Retrieve Cmds : 2 
    Time to Retrieve Cmds (ms): 10378 Cmds/Sec : 59379.94
    Time Cmd Queue Full (ms) : 9577919 Full Q Waits > 10ms : 6072
    Without indexes on the Subscriber table
    Total Run Time (ms) : 89282 Total Work Time : 88891
    Total Num Trans : 3 Num Trans/Sec : 0.03
    Total Num Cmds : 437324 Num Cmds/Sec : 4919.78
    Total Idle Time : 0 
    Writer Thread Stats
    Total Number of Retries : 0 
    Time Spent on Exec : 86298 
    Time Spent on Commits (ms): 282 Commits/Sec : 0.03
    Time to Apply Cmds (ms) : 88891 Cmds/Sec : 4919.78
    Time Cmd Queue Empty (ms) : 1827 Empty Q Waits > 10ms: 113
    Total Time Request Blk(ms): 1827 
    P2P Work Time (ms) : 0 P2P Cmds Skipped : 0
    Reader Thread Stats
    Calls to Retrieve Cmds : 2 
    Time to Retrieve Cmds (ms): 2812 Cmds/Sec : 155520.63
    Time Cmd Queue Full (ms) : 86032 Full Q Waits > 10ms : 4026
    Can someone please help me with this issue? Any ideas? 
    Pim 

    Hi Megens:
    Insert statement might be slow with not only indexes and few others things too
    0) SQL DB Blocking during inserts
    1) If any insert triggers are existed
    2) Constraints - if any
    3) Index fragmentation
    4) Page splits / fill factor
    Without indexes inserts will be fast because, each time when new row going to insert to the table, SQL Server will do
    1) it will check for the room, if no room page splits will happen and record will placed at right place
    2) Once the record updated all the index should be update
    3) all these extra update work will cause can make insert statement bit slow
    Its better to have index maintenance jobs frequently to avoid fragmentation.
    If every thing is clear on SQL Server Side, you need look up on DISK IO, N/W Latency between the servers and so on
    Thanks,
    Thanks, Satish Kumar. Please mark as this post as answered if my anser helps you to resolves your issue :)

  • Transactional Replication To 2014

    Hi All,
    In our environment we are planning to move the subscriber and distributor to 2014 with publisher on 2008. So am doing some work around on this,
    Since
    Publisher can be assigned to only a single Distributor instance, can i perform the new setting only through downtime as already a replication is running?
    Can I perform this replication without disturbing the current setup.?
    Do I need to look into any scenario/conditions except load balancing before setting up this replication? 
    Thanks
    Moug
    Best Regards Moug

    Thanks for the link. Yes the current setup is in 2008, am planning to move only distributor and subscriber. I read the article which you suggested, as per the I need to upgrade the Sql to 2014 in the current server whereas my requirement is to different
    new server. So do i need to stop all the jobs in old server and setup a replication to new server or i can perform while replication is online.? 
    Thanks.
    Best Regards Moug
    Hi Moug,
    According to your description, you had configured transactional replication on Servers, and now you want to upgrade distributor and subscribers.
     As other post, before upgrading distributor and subscribers, usually, we need to make sure that all committed transactions have been completely processed by the Log reader agent, in addition, generate scripts for the entire replication topology
    and store them in a safe place. These scripts will help to recreate replication if needed or the upgrade breaks replication.
    After performing the SQL Server 2014 upgrade on the Server, although you can restore the a backup of a replicated database from an earlier version to a server and make sure that database have the same names as the original server and preserved
    replication setting, it is rarely used as an upgrade process.  Personally, after you upgrading distributor and subscribers on the servers,
     I recommend you recreating the database and replication configuration from the above scripts, then restart SQL Server Agent and the Log Reader Agent.
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • Transactional Replication sp_MSupd RUNNABLE and never ends

    Hello,
    I came across not understandable problem connecting transactional pull replication. Once or twice a month I have a problem that stored procedure on subscription server (sp_MSupd) cannot be finished. It is not blocked by any other session and does not have
    any wait type. It simply hangs and remains in task status RUNNABLE. The only one way to recover the replication is initilizing it from backup or snapshot. Do you have any suggestions. Have you faced similiar problem?

    Hi, Lydia
    Thank you for your reply. What do you mean that this is the "busy update on the publication". Could you please describe it in more details? Does it mean that on the publisher there was a huge update on a huge amount of rows? On the Publisher to
    Distributor History I can see that there is no problem. All transactions are delivered without any delays (few seconds). But in Distributor to Subscriber History I have all actions completed in few seconds except the last one that hangs. How can I check if
    it is the "busy update on the publication" problem? What should be done if it hangs more than few hours?
    I found out that sp_MSget_repl_commands hangs on Publisher for remote Subscriber. It hangs with ASYNC_NETWORK_IO
    Hi KirKuz,
    I originally mean distribution agent reader &writer latency issue, and you can use SQL profiler or DMVs to examine in detail the Transaction Replication, which is described in this
    blog.
    Regarding to ASYNC_NETWORK_IO, based on my research, it's simply waiting for something external to SQL. The drive with your distribution database might be a bottleneck of such issue, or maybe the distribution tables are getting too large. Please check your
    disk performance, also check your indexes on the replication tables for fragmentation.
    Here is a similar thread for your reference.
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d0117651-f94c-488a-83e8-30038e38d510/transactional-replication-slow-running-spmsgetreplcommands?forum=sqlreplication
    Thanks,
    Lydia Zhang
    Lydia Zhang
    TechNet Community Support

  • Transactional replication triggers disabled after server restart

    Hello Everyone,
    I have been facing this issue since couple of days. I have configured transactional replication with updatable subscriber in sql server 2008 R2.  It was working fine till date. Recently we are facing an issue where subscriber whenever restarts, one
    of the table's replication triggers(insert, update and delete) are disabled automatically. We have to manually enable all the triggers for that table. Other tables are working fine. Please help. Thanks in advance.
    Regards,
    Sai

    Have you checked information from replication monitor?
    You should disable all triggers because you don't want SQL Server to fire the trigger on the Subscriber database when the database receives an insert, update, or delete operation. Because the trigger has already fired on the Publisher database, firing the trigger
    on the Subscriber database might repeat the transaction.
    http://technet.microsoft.com/en-us/library/ms151718(v=sql.110).aspx
    http://msdn.microsoft.com/en-us/library/ms152529.aspx

  • Dropping existing subscriber from a pualisher who has multiple subscriber in Transactional Replication

    Hi Everyone,
    We have a transactional replication(one publisher and multiple subscribers). If I drop one of subscribers, will this cause any locking or performance problem for publisher or other subscribers? I am going to do  that using SSMS.
    Thanks
    Aspet
    A.G

    Hi Mourmansk,
    Agree with others,In addition, before you deleting Subscriber, we need to verify that Publisher define a source database where replication starts, Subscriber is the destination database where replication ends. If you want to drop a Subscriber, it means that
    you should delete the related pull subscription or push subscription in transaction replication. Usually, for example, to delete a push subscription, you use
    sp_dropsubscription on the publication database, and execute sp_subscription_cleanup to remove replication metadata in the subscription database. There is a similar issue about delete subscriber from replication, you can review it.
    http://social.technet.microsoft.com/Forums/en-US/1354e29f-4904-46dd-8e64-d1150263ba7c/unable-to-drop-subscriber-from-replication?forum=sqlreplication
    For more information, see:http://msdn.microsoft.com/en-us/library/ms151212.aspx
    http://msdn.microsoft.com/en-us/library/ms151861.aspx
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • Push and Pull Transaction Replication

    How do we know if the current replication is PUSH or PULL and where the distributor database is at Publisher or Subscriber?
    Thanks,

    Try the below:
    --First you find the distributor servername using the below running in publisher
    Use master
    EXEC sp_helpdistributor;
    --Then you can run the below to find the type (use distributor database)
    SELECT
    (CASE
    WHEN mdh.runstatus = '1' THEN 'Start - '+cast(mdh.runstatus as varchar)
    WHEN mdh.runstatus = '2' THEN 'Succeed - '+cast(mdh.runstatus as varchar)
    WHEN mdh.runstatus = '3' THEN 'InProgress - '+cast(mdh.runstatus as varchar)
    WHEN mdh.runstatus = '4' THEN 'Idle - '+cast(mdh.runstatus as varchar)
    WHEN mdh.runstatus = '5' THEN 'Retry - '+cast(mdh.runstatus as varchar)
    WHEN mdh.runstatus = '6' THEN 'Fail - '+cast(mdh.runstatus as varchar)
    ELSE CAST(mdh.runstatus AS VARCHAR)
    END) [Run Status],
    mda.subscriber_db [Subscriber DB],
    mda.publication [PUB Name],
    CONVERT(VARCHAR(25),mdh.[time]) [LastSynchronized],
    und.UndelivCmdsInDistDB [UndistCom],
    mdh.comments [Comments],
    'select * from distribution.dbo.msrepl_errors (nolock) where id = ' + CAST(mdh.error_id AS VARCHAR(8)) [Query More Info],
    mdh.xact_seqno [SEQ_NO],
    (CASE
    WHEN mda.subscription_type = '0' THEN 'Push'
    WHEN mda.subscription_type = '1' THEN 'Pull'
    WHEN mda.subscription_type = '2' THEN 'Anonymous'
    ELSE CAST(mda.subscription_type AS VARCHAR)
    END) [SUB Type],
    mda.publisher_db+' - '+CAST(mda.publisher_database_id as varchar) [Publisher DB],
    mda.name [Pub - DB - Publication - SUB - AgentID]
    FROM distribution.dbo.MSdistribution_agents mda
    LEFT JOIN distribution.dbo.MSdistribution_history mdh ON mdh.agent_id = mda.id
    JOIN
    (SELECT s.agent_id, MaxAgentValue.[time], SUM(CASE WHEN xact_seqno > MaxAgentValue.maxseq THEN 1 ELSE 0 END) AS UndelivCmdsInDistDB
    FROM distribution.dbo.MSrepl_commands t (NOLOCK)
    JOIN distribution.dbo.MSsubscriptions AS s (NOLOCK) ON (t.article_id = s.article_id AND t.publisher_database_id=s.publisher_database_id )
    JOIN
    (SELECT hist.agent_id, MAX(hist.[time]) AS [time], h.maxseq
    FROM distribution.dbo.MSdistribution_history hist (NOLOCK)
    JOIN (SELECT agent_id,ISNULL(MAX(xact_seqno),0x0) AS maxseq
    FROM distribution.dbo.MSdistribution_history (NOLOCK)
    GROUP BY agent_id) AS h
    ON (hist.agent_id=h.agent_id AND h.maxseq=hist.xact_seqno)
    GROUP BY hist.agent_id, h.maxseq
    ) AS MaxAgentValue
    ON MaxAgentValue.agent_id = s.agent_id
    GROUP BY s.agent_id, MaxAgentValue.[time]
    ) und
    ON mda.id = und.agent_id AND und.[time] = mdh.[time]
    where mda.subscriber_db<>'virtual' -- created when your publication has the immediate_sync property set to true. This property dictates whether snapshot is available all the time for new subscriptions to be initialized. This affects the cleanup behavior of transactional replication. If this property is set to true, the transactions will be retained for max retention period instead of it getting cleaned up as soon as all the subscriptions got the change.
    --and mdh.runstatus='6' --Fail
    --and mdh.runstatus<>'2' --Succeed
    order by mdh.[time]
    Ref: http://stackoverflow.com/questions/220340/how-do-i-check-sql-replication-status-via-t-sql
    EDIT: You can remove unwanted info while executing. I just provided as it is from the reference site thinking that would be useful to you.

  • Setup transactional replication with pull subscription using the option @allow_initialize_from_backup

    I am trying to setup  transactional replication with pull subscription using the option @allow_initialize_from_backup = true and I am a bit confused on steps involved because at teh end of setup it shows ‘uninitialized subscriber’ in replication
    monitor.
    Publisher, distributor and subscriber are three separte SQL server 2008 R2 servers.
    I executed below steps -
    On publisher SQL server executed sp_addpublication with  options @immediate_sync ='true and   @allow_initialize_from_backup = true  
    On publisher SQL server executed  sp_addarticle to add the articles
    On distribution  SQL server disabled distribution cleanup agent and stopped the distribution cleanup job
    On publisher SQL server created full backup of the publication db
    On subscriber SQL server restored above backup with recovery
    On publisher  executed  sp_addsubscription using options  @subscription_type = N'pull', and @sync_type = N'initialize with backup'
    On subscriber  executed  sp_addpullsubscription  using options  @independent_agent = N'True',@subscription_type = N'pull',@description = N'',@update_mode = N'read only',@immediate_sync = 1
    On distribution  SQL server enabled distribution cleanup agent and started the distribution cleanup job
    At the end of these steps it shows ‘uninitialized subscriber’ in replication monitor.  What am I doing wrong ?
     In the above steps what is the difference between sp_addsubscription and sp_addpullsubscription ? 
    When I setup transactional replication with push subscription using the option @allow_initialize_from_backup = true, I only execute sp_addsubscription on publisher.
    Ravi Kumar

    After the step 7 did you create the  "Pull Subscription Agent" by running the below stored procedure?
    EXEC sp_addpullsubscription_agent
    http://msdn.microsoft.com/en-us/library/ms147834.aspx - Step 6
    "(Optional) For a pull subscription, execute sp_addpullsubscription (Transact-SQL) and
    sp_addpullsubscription_agent (Transact-SQL) at the Subscriber on the subscription database. For more information, see
    Create a Pull Subscription."
    Check this article for step by step with example-
    http://www.sqlpassion.at/archive/2012/08/05/initialize-a-transactional-replication-from-a-database-backup/ The only thing in this article is it uses immediate_sync to be false, where as BOL says to keep it true when allow_initilize_from_backup is true.
    Regards, Ashwin Menon My Blog - http:\\sqllearnings.com

  • Taking snapshot of oracle tables to sql server using transactional replication is taking a long time

    Hi All,
    I am trying to replicate around 200 oracle tables onto sql server using transaction replication and it taking a long time i.e the initial snapshot is taking more than 24 hrs and it still going on.
    Is there any way to replicate those these tables faster?
    Kindly help me out..
    Thanks

    Hi,
    According to the description, I know the replication is working fine. But it is very slow. 
    1. Check the CPU usage on Oracle publisher and SQL Server. This issue may due to slow client processing (Oracle performance) or Network performance issues.
    2. Based on SQL Server 2008 Books Online ‘Performance Tuning for Oracle Publishers’ (http://msdn.microsoft.com/en-us/library/ms151179(SQL.100).aspx). You can enable the transaction
    job set and follow the instructions based on
    http://msdn.microsoft.com/en-us/library/ms147884(v=sql.100).aspx.
    2. You can enable replication agent logging to check the replication behavior. You may follow these steps to collect them:
    To enable Distribution Agent verbose logging. Please follow these steps:
    a. Open SQL Server Agent on the distribution server.
    b. Under Jobs folder, find out the Distribution Agent.
    c. Right click the job and choose Properties.
    d. Select Steps tap, it should be like this:
    e. Click Run agent and click Edit button, add following scripts by the end of scripts in the command box:
            -Output C:\Temp\OUTPUTFILE.txt -Outputverboselevel 2
    f. Exit the dialogs
     For more information about the steps, please refer to:
    http://support.microsoft.com/kb/312292
    Hope the information helps.
    Tracy Cai
    TechNet Community Support

  • Transactional Replication Stalled.

    Hi,
    We are having a Transactional  replication issue where the Data does not get replicated  and the log Just keeps grawing.
    Last week we had an accidental load 15 Million records, on one of  the T replication enabled   Db's .Then  the replication stopped working i mean i look at the replication monitor it says NO transactions to replicate but we have a lot difference
    with the DATA.I  also see that the logfile file for the DB is growing.  
    1.I did a few things like stopping the log reader and restarting.
    2.Reinitialize the Snapshot ,the snapshot is taken but is not being applied  to the subscriber .No error msg that i can see.
    So had to drop the replication entirely , shrink the log  and recreate it adding few bunches of articles, creating a snapshot for them wait until they are applied and then add the other articles which worked fine for few days , and  DB replication
    stopped again and log started growing.This time it is also effecting other replications this time too.
    I am running out of options can some one plz help!
    THanks,
    Jack

    That message means the log reader agent is going through the log reading commands from it. If your ETL operation does large batch operations replication many not be able to keep up. You might need to break these batches up into smaller batches - batchsize
    works well here.
    Another thing to consider is to do your ETL operation on both sides. This works well if the only source of changes occurs from the ETL process - then you would not publish these tables.
    If not - think about use MaxCmdsInTran - you can set this to something like 10,000 which means that if you do a million row update - the log reader agent will start to read the commands out of the log for every 10,000 changes and replicate them to the subscriber
    - before the transaction is committed on the publisher.
    This is a command that you can put in your log reader agent profile so you can turn it off when the ETL process is done and replicated.
    looking for a book on SQL Server 2008 Administration?
    http://www.amazon.com/Microsoft-Server-2008-Management-Administration/dp/067233044X looking for a book on SQL Server 2008 Full-Text Search?
    http://www.amazon.com/Pro-Full-Text-Search-Server-2008/dp/1430215941

  • Moving cross country with a Mac Pro

    I have a Mac Pro and am relocating cross country. Both the Mac Pro and the monitor must go with the movers. I do have the original boxes and certainly will pack in them but I'm wondering if it makes any sense at all to remove the hard drives from the computer and take them with me in the car. Is this a sensible idea or are they better protected in their nice hard shell in the box with the original packing?
    Thanks

    Let me ask the backup question in a way that is clearer....
    What I have now is 2 internal HDs. I use one for data, applications etc and one solely for Time Machine backup. Additionally, I have an external HD solely for working originals of my photography. Changes to the photos are backed up in Time Machine and go to the Time Machine backup drive. So, for all that's on Time Machine I have a reasonably good source of originals as well as changed and updated data.
    Now I'm relocating and want to try to both be practical and cost efficient. I'm afraid of simply shipping my Mac Pro (even properly re-boxed in its original carton and styrofoam) especially since my Time Machine back up is on a drive in that same machine. (I will take the external drive with me in the car, but---since we travel with 4 dogs---space in the van is at a premium and I can't take the entire Mac Pro).
    So, what to do?? My inclination is to use an offsite backup service rather than buying another external drive, downloading to it and carrying it with me. It seems to me that backing up absolutely everything off-site, with a service such as Backblaze should work and save some much needed room in the car. Thoughts? Thanks! S

Maybe you are looking for

  • Is it possible to burn a DVD from FCPX in 16:9 aspect ratio?

    I am using FCP X 10.1.1 on an iMac with OS 10.9.3 I have HD video shot in 1080X720.  I realize a dvd isn't HD, but I would like to try and get the wide screen aspect.  Is that even possible?  I would love any sort of assistance!  Thanks much! -R

  • Link between Invoice and Delivery note

    Hi, Here I am having a requirement to get all the GR made against an Invoice. Let me explain it. I am having one Purchase order. Now I made the GR with a delivery note number. Now in MIRO I pass the bill or create the Invoice against the delivery not

  • Break Formatting not working correctly

    Hi All, I have a report that I am trying to use the break formatting option on. The columns are as follows: Billing Code Qty Desc Price Billing Cycle I am trying to use the Break on First Column selection, with a summary of Price. If I select QTY as

  • Line of item in invoice

    Hi, Can anyone tell me how we can fix the line of item in invoice ? Thanks in advance.............. Sanjay

  • Which procedure is executing?

    Hi, Is there a way to know which procedure, in a pl/sql block, is running? I need put the procedure/function name into a string variable. procedure doSomething is begin // In that moment doSomething is running! end; Thanks, Leonardo Luiz