Menu

Problem with Bulk Replication SQL Server 2012

2016-05-03
2018-09-19
  • Efrain Romero

    Efrain Romero - 2016-05-03

    Hi,

    Im using Symmetric 3.7.32 and everything was looking just fine.

    but now im encountring the following error in the LOG

    We had to delete /opt/symmetric-server-3.7.32/tmp/store-001/bulkloaddir/usuarios483.csv.create because it already existed
    2016-05-03 12:31:48,527 INFO [store-001] [RouterService] [store-001-job-20] Routing heartbeat, data.enqueue.time.ms=0, data.events.insert.count=1, data.events.insert.time.ms=109236, data.read.total.time.ms=0, data.routed.count=1, data.router.time.ms=14722, total.time.ms=255147
    2016-05-03 12:32:19,082 ERROR [store-001] [AcknowledgeService] [store-001-push-1] The outgoing batch 000-346 failed. Cannot bulk load because the file "/opt/symmetric-server-3.7.32/tmp/corp-000/bulkloaddir/usuarios346.csv.create" could not be opened. Operating system error code 3(The system cannot find the path specified.).

    The weird part is that the file is there.

    Sym is running as ROOT and yet the problem persist. Any cluees?

    (Yes the network is really bad, running on a ... sat uplink as contingency)

     
    • Nathan Richardson

      Are you familiar with the property mssql.bulk.load.unc.path in your properties file when dealing with SQL Server bulk loader where SQL Server is on a separate server from the SymmetricDS server?

       
  • Mark Michalek

    Mark Michalek - 2016-07-20

    Efrain,

    To elaborate on Nathan's answer - SQL Server (from the Windows machine) needs to have visibility to the location of the .csv file. It can't directly reach out and load it from the Linux path on the server (/opt/symmetric-server-3.7.32/tmp). So the windows box needs to be able to "see" the location where the csv is located.

    You'll need create a UNC network share to a directory like this:
    /opt/symmetric-server-3.7.32/tmp/corp-000/bulkloaddir/

    So, for example maybe you share that directory as:
    \symmetricserver\corp-000\bulkloaddir

    Once the share is in place, use the Configure > Parameters screen to set the mssql.bulk.load.unc.path like this:
    mssql.bulk.load.unc.path=\symmetricserver\corp-000\bulkloaddir

    Once the property is in place, make sure to restart the SymmetricDS service.

    Hope this helps.

    Mark

     
  • surendra

    surendra - 2018-09-17

    I am using Symmetric DS to load the data from Unix server to MS SQL server(Window machine). My csv file "emp_data.csv" exist on the Unix box under "/sure/dataload" file system.

    I added the mssql.bulk.load.unc.path=\sure\dataload\emp.csv in the store file and using below command to load the file using bulk insert command.

    ./dbsql --engine=store-001 --sql=" BULK INSERT EMP FROM 'emp_data.csv' WITH(FIRSTROW = 2,FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', ERRORFILE = 'emp_load_error.csv',TABLOCK ) "

    still getting the below error. Not sure what i am missing here.

    Error: java.sql.SQLException: Cannot bulk load because the file "emp_data.csv" could not be opened. Operating system error code 3(The system cannot find the path specified.).

    Please suggest the command and help to load the data.

     
  • Mark Michalek

    Mark Michalek - 2018-09-19

    Surendra, see Mark's post over here: https://sourceforge.net/p/symmetricds/discussion/739235/thread/eb8a8f13/

    dbsql will send the SQL command directly to the database and does not use the mssql.bulk.load.unc.path parameter. The mssql.bulk.load.unc.path parameter is only used by the code in the MS SQL Bulk loader.

     

Log in to post a comment.