2
votes

I am planning an enterprise deployment with SiteCore 6.5.... I am thinking to have one instance of CMS (WebAuthoring) and several servers as Content Delivery... I was thinking to replicate the Core Database between the Content Delivery and the WebAuthoring instances... and I was not able to understand the role of the LinkDatabase... Do I need the linkdatabase on the Content Delivery?! I was also considering an alternative scenario without the CORE database for the content delivery, in this case, I should put the LinkDatabase on the web database, shall I have in place a procedure to rebuild the LinkDatabase or it is completely useless in a content delivery scenario??? I really cannot understand from the documentation the purpose of the link database and the API that use it. pls let me know your opinion and thoughts about it.

2

2 Answers

1
votes

From what I can tell you don't have to have a LinkDatabase on content delivery nodes. It is however quite handy as it is one of the fastest ways to get a list of references and/or referrers for a specific item.

You can point the LinkdDatabase at the web database and Sitecore will automatically keep it updated for you as described in section 3.6.1 of the Scaling Guide:

You can use the Sitecore link database API to access all the items that are referenced by or refer to a specific Sitecore item.

All the link database information is stored in the Core database by default, and aggregates data for the items from every Sitecore content database.

You configure the location of the link database in the web.config in the Link Database section file in the connectionStringName parameter:

<!-- LINK DATABASE --> 
<LinkDatabase type="Sitecore.Data.$(database).$(database)LinkDatabase, Sitecore.Kernel">    
    <param connectionStringName="core" />
</LinkDatabase>

In a single-server Sitecore setup, the link database is automatically updated.

In a multi-server Sitecore setup, the link database is only automatically updated for databases that are referenced from the CM environment.

To ensure that Sitecore automatically updates the link database in the CD environment:

  • The CD and CM instances must use the same name to refer to the publishing target database across the environments (typically Web).
  • One of the following conditions should be met:
    • The Core database should be shared or replicated between the CM and CD instances.
    • The Link database data should be configured to be stored in a database which is shared between CM and CD publishing target database (typically Web).

If you want to remove the core database from the content delivery nodes there is a section called 'Remove the Core database from the content delivery environment' in the Configuring Production Environments(PDF) document.

0
votes

The Link database keeps track of relations between items, such as item <-> template relations. It's required for Sitecore and possibly for your custom components so they can do fast lookups for those kind of relations.

If the databases are not physically on a different machine, i would just go for a shared Core db where all the servers use the same core.

If they are on different machines, then go for a seperate Core with SQL replication.

The scenario without Core is possible, but not recommended because it's more difficult to setup and to maintain.