Ben Curry - CISSP, SharePoint Server MVP

All MindsharpBlogs

http://www.microsoft.com/mspress/books/10623.aspx

My Links

Archives

Image Galleries

Blog Stats

Favorite SharePoint Books

My Favorite Blogs

Saturday, August 23, 2008 #

New SharePoint Server 2007 Installation Scripts

Ok, so I'll post these on our premium content for free download later in the week, but several people have emailed me that they need them now. If you need the instructions, they are already on our premium content area for download - so go get the zip file, and there is a docx file in there. You will still need several files in the zip, like translate.js and the host header scripts for IIS6. So, download the old zip from premium content and replace the 3 build scripts with these.

Each script will start with “--StartScriptName.cmd--” and end with “--EndScriptName.cmd--”

--StartConfig.XML--(this is for an Advanced, Complete Binary Installation)

<Configuration>
 <Package Id="sts">
  <Setting Id="LAUNCHEDFROMSETUPSTS" Value="Yes"/>
  <Setting Id="REBOOT" Value="ReallySuppress"/>
  <Setting Id="SETUPTYPE" Value="CLEAN_INSTALL"/>
 </Package>

 <Package Id="spswfe">
  <Setting Id="SETUPCALLED" Value="1"/>
  <Setting Id="REBOOT" Value="ReallySuppress"/>
  <Setting Id="OFFICESERVERPREMIUM" Value="1" />
 </Package>

 <Logging Type="verbose" Path="%temp%" Template="Office Server Setup(*).log"/>
 <Display Level="none" CompletionNotice="no" AcceptEULA="Yes" />
 <PIDKEY Value="F6YVR-4XY7K-xxxxx-xxxxx-xxxxx" />  
<Setting Id="SERVERROLE" Value="APPLICATION"/>
 <Setting Id="USINGUIINSTALLMODE" Value="1"/>
</Configuration>

--EndConfig.xml--

--StartBits.cmd--


@echo off
REM ////////////////////////////////////////////
REM // script install the binaries for sharepoint
REM // farm.
REM ////////////////////////////////////////////


REM ////////////////////////////////////////////
REM // need real paths      ##        //
REM ////////////////////////////////////////////
d:\x86\setup /config c:\scripts\config.xml

--EndBits.cmd--

--StartFarmBuild.cmd--

@echo off
REM //////////////////////////////////////////////////
REM // script farm -- creating dbs and setting sites /
REM //  sharepoint farm.                             /
REM //////////////////////////////////////////////////


REM //////////////////////////////////////////////////
REM // applications
REM //////////////////////////////////////////////////
set s="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe"
set ps="c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe"

REM //////////////////////////////////////////////////
REM // your enterprise SQL server
REM //////////////////////////////////////////////////
set sql=SPSQL

REM //////////////////////////////////////////////////
REM // account vars
REM //////////////////////////////////////////////////
set mossfarm=contoso\moss
set mosscrawler=contoso\mosscrawler
set sspapid=contoso\sspapid
set myapid=contoso\myapid
set sspservice=contoso\coressp
set portalapid=contoso\portalapid
set mossservice=contoso\mossservice

REM //////////////////////////////////////////////////
REM // password
REM //   NOTE:if using a % sign in password you must
REM //        escape it with a % sign 'iuyOP%%$#@!11'
REM //        is interpreted as 'iuyOP%$#@!11'
REM //       
REM //////////////////////////////////////////////////
set p=[YOURPASSWORD]

REM //////////////////////////////////////////////////
REM // urls
REM //////////////////////////////////////////////////
set sspportalurl=http://ssp.contoso.msft
set mysiteurl=http://my.contoso.msft
set portalurl=http://portal.contoso.msft

REM //////////////////////////////////////////////////
REM // start work here
REM //////////////////////////////////////////////////

Echo ===============================
Echo == Creating Farm
Echo ===============================
:: Creating Farm via populating the ConfigDB. Set SQL Servername, configDB name, Central Admin ContentDB, and Farm Account.
%ps% -cmd configdb -create -server %sql% -database Contoso_Config_DB -user %mossfarm% -password %p% -admincontentdatabase Central_Admin_Content
Echo ======================
Echo Provision Central Admin
Echo ======================
:: @pause
::  Provision Central Admin Application on this server. Uses configDB and ContentDB above. Set port number to suit your requirements.
%ps%  -cmd adminvs -provision -port 45009 -windowsauthprovider onlyusentlm
Echo ======================
Echo Install all Services
Echo ======================
::  Install all services on machine
%ps% -cmd services install
Echo ======================
Echo Securing File System and Registry Keys
Echo ======================
:: @pause
:: Set Security on File System and Registry Keys
%ps% -cmd secureresources
Echo ======================
Echo Starting MOSS Search
Echo ======================
:: @pause
::  Start SharePoint Server Search Service with only Index.Verify database and services names. Change role to Index, Query, or IndexQuery, depending on your farm topology.
%s% -o osearch -action start -role Indexquery -farmcontactemail admin@contoso.msft -farmperformancelevel maximum -farmserviceaccount %mossservice% -farmservicepassword %p%
Echo ======================
Echo Starting WSS Search
Echo ======================
::  Start WSS Search. Verify database and service names.
%s% -o spsearch -action start -farmserviceaccount %mossservice% -farmservicepassword %p% -farmcontentaccessaccount %mosscrawler% -farmcontentaccesspassword %p% -databaseserver %sql% -databasename WSS_Search
Echo ======================
Echo Installing all Features
Echo ======================
::  Install all features on machine
%ps% -cmd installfeatures
Echo ======================
Echo Creating My Sites Web
Echo ======================
::  Create My Site Web application. Verify database name and administrator's names.
%s% -o extendvs -url %mysiteurl% -ownerlogin "%mossfarm%" -owneremail "admin@contoso.msft" -exclusivelyusentlm -ownername "mossAdmin" -databaseserver %sql% -databasename WSS_Content_MySite -sitetemplate spsmsitehost -description "My Site Host" -sethostheader -apidname MySiteAppPool -apidtype configurableid -apidlogin %myapid% -apidpwd %p%
Echo ======================
Echo Enabling Self Service Site Management for %mysiteurl%
Echo ======================
::  Enable Self Service Site Management (Creation) on %mysiteurl%
%s% -o enablessc -url %mysiteurl%
Echo ======================
Echo Creating SSP Web
Echo ======================
::  Create SSP Web application. Verify database and apid names. (APID = Application Pool Identity)
%s% -o extendvs -url %sspportalurl% -exclusivelyusentlm -databaseserver %sql% -databasename WSS_Content_Contoso_SSP -donotcreatesite -description "Contoso SSP Admin Host" -sethostheader -apidname "Contoso SSP" -apidtype configurableid -apidlogin %sspapid% -apidpwd %p%
::  We must reset IIS before building the SSP. If you are local on the box, you can check all services are created before creating SSP.
iisreset
Echo ======================
Echo Creating SSP
Echo ======================
:: @pause
::  Create SSP. Verify all names and URLs.
%s% -o createssp -title "Contoso SSP" -url %sspportalurl% -mysiteurl %mysiteurl% -ssplogin %sspservice% -indexserver redsrttc2nsv207 -indexlocation c:\indexes -ssppassword %p% -sspdatabaseserver %sql% -sspdatabasename Contoso_SSP_Config -searchdatabaseserver %sql% -searchdatabasename Contoso_SSP_Search -ssl no
Echo ======================
Echo Creating Portal
Echo ======================
:: @pause
::  Creating Portal. Change the URL if you will have a different URL than 'portal'.
%s% -o extendvs -url %portalurl% -ownerlogin %mossfarm% -owneremail "admin@contoso.msft" -exclusivelyusentlm -ownername "Administrator" -databaseserver %sql% -databasename WSS_Contoso_Portal_Content -sitetemplate spsportal -description "Contoso Portal" -sethostheader -apidname PortalAppPool -apidtype configurableid -apidlogin %portalapid% -apidpwd %p%
::  CALLING portalhh.cmd to add Contoso Host Headers
REM //////////////////////////////////////////////////
REM //  call the cmd files that create the host
REM // headers and alternate access mappings
REM //////////////////////////////////////////////////
call portalhh.cmd
call ssphh.cmd
call myhh.cmd
call aam.cmd

REM //////////////////////////////////////////////////
REM // POST BUILD
REM //////////////////////////////////////////////////
Echo ========================
Echo Modifying Logging level
Echo and Outbound Smtp
Echo ================calling setlogs.cmd====see premium content for xlsx source file=======
REM  or just set the logging levels in this script
%s% -o setlogginglevel -category general -tracelevel unexpected -windowslogginglevel error
:: @pause
%s% -o email -outsmtpserver 10.1.1.25 -fromaddress administrator@contoso.msft-replytoaddress ContosoAdmins@contoso.msft -codepage 65001

Echo ========================
Echo Setting Application Settings
Echo Setting Recycle Bin Settings
Echo ========================
%s% -o setproperty -pn recycle-bin-enabled -pv yes -url %portalurl%
%s% -o setproperty -pn recycle-bin-enabled -pv yes -url %mysiteurl%
%s% -o setproperty -pn recycle-bin-retention-period -pv 180 -url %portalurl%
%s% -o setproperty -pn recycle-bin-retention-period -pv 180 -url %mysiteurl%
%s% -o setproperty -pn second-stage-recycle-bin-quota -pv 20 -url %portalurl%
%s% -o setproperty -pn second-stage-recycle-bin-quota -pv 20 -url %mysiteurl%

Echo ========================
Echo Setting Maximum Upload
Echo File Size
Echo ========================
%s% -o setproperty -pn max-file-post-size -pv 200 -url %portalurl%
%s% -o setproperty -pn max-file-post-size -pv 200 -url %mysiteurl%
::  Creating managed paths for http://portal. Change for your environment
%s% -o addpath -url http://portal.contoso.msft/projects -type wildcardinclusion
%s% -o addpath -url http://portal.contoso.msft/teams -type wildcardinclusion
%s% -o addpath -url http://portal.contoso.msft/HR -type explicitinclusion
@Echo Added projects, teams, and HR managed paths
::DON'T USE BELOW WHEN RESTORING CONTENT DATABASES!!!!!!
::  Just for fun, create the embedded managed path site collectoin 'HR'
%S% -o createsite -url http://portal.contoso.msft/hr -owneremail administrator@contoso.msft -ownerlogin contoso\administrator -ownername Administrator -sitetemplate sts#1 -title "HR Portal"
@echo created embedded managed path site collection at http://portal.contoso.msft/HR

--EndFarmBuild.cmd--

This script is for connecting servers to an existing farm:

--StartFarmConnect.cmd--

:: Farm_Connect.cmd
:: Use on all WFE Servers in Farm
:: @Echo On (off for demo)
:: Calling bits.cmd to install binaries
@call bits.cmd
Echo Ready to connect server to farm
"c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe" -cmd configdb -connect -server app1 -database SharePoint_Config_Contoso -user contoso\mossfarm -password P@ssw0rd
"c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe" -cmd services install
"c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe" -cmd installfeatures
:: Setting Security on Registry and File System
@Echo Ready to Set Security on File System and Registry
"c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe" -cmd secureresources
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o osearch -action start -role query -farmcontactemail administrator@contoso.msft -farmperformancelevel maximum -farmserviceaccount "contoso\mossservice" -farmservicepassword P@ssw0rd
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe" -o osearch -action start -role query -farmcontactemail administrator@contoso.msft -farmperformancelevel maximum -farmserviceaccount "contoso\mossservice" -farmservicepassword P@ssw0rd -propagationlocation c:\indexes
iisreset
@Echo Ready to add portal and my sites host headers?
::  CALLING myhh.cmd to add http://my Host Header. Allows your users to enter http://my or http://my.contoso.msft in the browser
call myhh.cmd
::  CALLING portalhh.cmd to add http://portal Host Header
call portalhh.cmd

--EndFarmConnect.cmd--

--StartSampleAlternateAccessMappingsScript.cmd--

REM ////////////////////////////////////////////////////
REM // Adding Alternate Access Mappings         /
REM //             / 
REM ////////////////////////////////////////////////////
rem // applications
set s="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe"
set ps="c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe"

set sspportalurl=http://ssp.contoso.msft
set myurl=http://my.contoso.msft
set portalurl=http://portal.contoso.msft

rem // create intranet link first
%s% -o addalternatedomain -url %portalurl% -incomingurl http://portal.contoso.msft -urlzone intranet
%s% -o addalternatedomain -url %portalurl% -incomingurl http://portal -urlzone custom
%s% -o addalternatedomain -url %myurl% -incomingurl http://my.contoso.msft -urlzone intranet
%s% -o addalternatedomain -url %myurl% -incomingurl http://my -urlzone custom
%s% -o addalternatedomain -url %sspportalurl% -incomingurl http://ssp.contoso.msft -urlzone intranet
%s% -o addalternatedomain -url %sspportalurl% -incomingurl http://ssp -urlzone custom

--EndSampleAlternateAccessMappingsScript.cmd--

--StartSampleAddContentDatabaseToWebApp.cmd--

@echo off
REM ///////////////////////////////////////////////////////
REM // script farm -- attaching dbs to Web apps          //
REM //                                                   //
REM ///////////////////////////////////////////////////////


rem //  required accounts
set mossfarm=contoso\moss
set mosscrawler=contoso\mosscrawler
set sspapid=contoso\sspapid
set myapid=contoso\myapid
set sspservice=contoso\coressp
set portalapid=contoso\portalapid
set mossservice=contoso\mossservice
rem ////////////////////////////////////////////////////////////////////
rem // if using a % sign in password you must escape it with a % sign //
rem //  'iuyOP%%$#@!11' is interpreted as 'iuyOP%$#@!11'              //
rem ////////////////////////////////////////////////////////////////////
set p=[YOURPASSWORD]

rem // applications
set s="C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe"
set ps="c:\program files\common files\microsoft shared\web server extensions\12\bin\psconfig.exe"


REM Add contoso Content Databases
echo  adding WSS_Portal_Home
%s% -o addcontentdb -url http://portal.contoso.msft -databasename "WSS_Portal_Home"
echo  adding WSS_CEO_Home
%s% -o addcontentdb -url http://portal.contoso.msft -databasename "WSS_CEO_Home"
echo  adding WSS_Content_Sandbox
%s% -o addcontentdb -url http://portal.contoso.msft -databasename "WSS_Content_Sandbox"

REM Add Mysite Content Databases

echo  adding WSS_Content_MySite1
%s% -o addcontentdb -url http://my.contoso.msft -databasename "WSS_Content_MySite1"  
echo  adding WSS_Content_Mysite3
%s% -o addcontentdb -url http://my.contoso.msft -databasename "WSS_Content_Mysite3"
echo  adding WSS_Content_Mysite4
%s% -o addcontentdb -url http://my.contoso.msft -databasename "WSS_Content_Mysite4" 
echo  adding WSS_Content_MySite5
%s% -o addcontentdb -url http://my.contoso.msft -databasename "WSS_Content_MySite5"
echo  adding WSS_Content_MySite2
%s% -o addcontentdb -url http://my.contoso.msft -databasename "WSS_Content_MySite2"

--EndSampleAddContentDatabaseToWebApp.cmd--

 

Cheers. I will try to get more detail up about these in the premium content area soon. I have a new version of the scripting a farm whitepaper, but need time to test them against my new images.

Hth,

 

Ben Curry, CISSP, SharePoint Server MVP

http://mindsharpblogs.com/ben

http://www.microsoft.com/mspress/books/10623.aspx

Come see me at SharePoint Connections in Las Vegas!

posted @ 7:34 PM | Feedback (0)

Thursday, August 21, 2008 #

SharePoint Server 2007 Document Management Pre-Conference at SharePoint Connections

Been away from the blog for a few weeks, but I have a ton of content to get on here in the next 2-3 weeks. I've been scuba-diving in Key West and Panama City Beach - basically chillaxing and taking a break from technology :-) If you didn't know, I'm a PADI Scuba Instructor when I'm not doing summits, seminars, and implementation. We had a great time and the only computer I used was my Dive Computer!

OK, so what's coming up this fall for me? First of all, I am the speaker manager for the SharePoint Best Practices in Washington D.C., Sept 15-17. You can find the agenda, directions, and speaker information at http://www.sharepointbestpractices.com.

Next? I'll be at  TechEd New Zealand  (been sold out for a loooong time) Sept 1-2 speaking. The first session is with Chandima Kulathilake and we'll be speaking about Findability. This should be a very cool session and we'll show you how to architect your SharePoint Server so you can 1. manage content 2. retrieve content. We'll show you some real-world examples and walk you through some examples of how to apply the concepts to the technology. The second session is Global Deployments of SharePoint Server 2007 with Joel Oleson - will also be a very cool session, even if you don't need to architect SharePoint over a WAN. Part of the presentation is simply focused on getting the most out of your server farm (s) and how to identify bottlenecks in your implementation. Joel has a ton of content on this topic, so I guess I'm just eye candy for the session :-)...no, not really. I've also worked on over 10 projects that were geographically dispersed, and there are a lot of simple lessons learned we will be presenting.

After TechEd New Zealand, I'll be flying to Sydney for TechEd Australia. Sept 3-5 I'll be doing the Findability session again, but with Ivan Wilson this time. Also, Joel and I will be doing the Global Deployments session for the AU audience. I suppose we'll try some BBQ Kangaroo, and then off to a Sydney Bridge climb on Saturday. I'm hoping to score some tickets for the Sydney Swans AU Rules football that night (Sept 6)! If you have tickets, I'll buy the food :-)

Now, to the point of this blog - November 10-13 is Dev Connections in Las Vegas! I will be presenting a pre-conference session on Document Management in SharePoint Server 2007 - soup to nuts, 6hrs of DM goodness :-)

Here's the info from the Dev Connections site:

HPRA01: SharePoint Server 2007 Document Management Best Practices (9 AM - 4 PM)
Addle Fee $399
Ben Curry

Document management is the process of applying creation, management, storage and other rules to how documents are created, persisted and expired within an organization. Document collaboration is merely the process of checking out, checking in, and visioning a document before it is published. Windows SharePoint Services gives you document collaboration where as SharePoint Server 2007 gives you document management. Records management encompasses all of that which is document management plus it applies to a broader set of content elements—not just documents. Any electronic record, such as a list item or log entry, can be managed as well in SharePoint Server 2007 if there is a need to do so. Managing these documents involves workflows, templates, expiration policies, and integration with the Microsoft Office suite. This workshop will cover the following:

1. Creating and managing Web applications for document collaboration.

  a. Content database planning and management.

  b. Information architecture.

  c. Site directory.

2. Creating and managing document libraries from an administrator’s perspective.

3. Creating and managing large lists for performance using indexed columns and folders.

4. Integration with third-party products and Microsoft Outlook 2007.

5. An overview of using Work flows for business processes.

6. Leveraging content types for document management.

  a. Templates.

  b. Expiration.

  c. Meta data collection via site columns and document information panels.

  d. Workflows.

7. Replacing file shares with SharePoint (or why not to).

8. Configuring document repositories for search and Findability.

9. Managing documents from multiple locations.

10. Creating and managing a records repository.

11. Understanding and using the Recycle Bin for item recovery.

Paul Stork and Daniel Webster will also be going 3 sessions each at Dev Connections. If you've never been to a Dev Connections show, you are missing a ton of good, bare-metal, how-to advice! Paul will be talking about Enterprise Content Management, and Daniel Webster will be doing 3 sessions on Search Server, SharePoint Server Search, and related topics. Hopefully, his sessions won't be hard to find. (did I actually write that?)

To register for SharePoint Connections / Dev Connections, go here: http://www.devconnections.com/shows/FALL2008SP/default.asp?s=123

Ok, so next blog will be my new parameterized farm build scripts, so stay tuned...

Ben Curry, CISSP, SharePoint Server MVP

http://mindsharpblogs.com/ben

http://www.microsoft.com/mspress/books/10623.aspx

 

posted @ 10:09 AM | Feedback (0)

Wednesday, July 16, 2008 #

Huntsville MOSSMOSIS Group with Jim Curry on August 20 - Web Content Management

Come on down to the Huntsville MOSSMOSIS Group on August 20th as our own James Curry presents Web Content Management in SharePoint Server 2007.  With SharePoint Server 2007, Microsoft has rolled in the content management features of their standalone CM product, Microsoft Content Management Server, enhancing and adding functionality along the way.  Come learn what MOSS 2007 has to offer in the arena of content management and, as always, enjoy a free lunch as well.

When/Where?
Wednesday, August 20 2008 - 9AM CST
Huntsville Botanical Gardens
 
Who Should Attend?
Developers, designers, power users, architects, and administrators.

What is the Agenda?
•  8:45AM: Coffee/Breakfast
•  9:00AM: Speaker
•  9:55AM: Break (5min) 
•  11:00AM: Lunch

James Curry is a respected computer scientist and consultant with over 15 years of programming experience. In his role as a Mindsharp instructor, James uses his knowledge of Microsoft products to provide students with a dynamic, hands-on classroom experience. He was a contributing author on the SharePoint Admin Pocket Consultant and SharePoint Server 2007 Best Practices books.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

Come to the first ever SharePoint Best Practices Conference, Sept 15-17!

Register at http://www.sharepointbestpractices.com

 

posted @ 6:28 PM | Feedback (0)

Wednesday, July 09, 2008 #

Scripting SharePoint Server 2007 SP1 Bug

This is an update to the original post http://mindsharpblogs.com/ben/archive/2008/03/08/4411.aspx. Unfortunately, the SP1 installation media hooks psconfigui.exe when the config.xml display level is set to “Basic”. This should only lay down the bits. arghhh.

The only workaround I currently know is to set the display level to “none”, and wait for the setup.exe process to stop (taskmgr.exe or sysinternals tools) - not perfect. I've notified Microsoft and will udpate you as soon as I get something back.

I also have new farm build scripts coming in the next couple of weeks that are 'parameter-ized' that I just built for a customer. (thanks, Jerry Chappell!) I'll try to get those out asap in my free time. Todd Klindt has also been doing some scripting, maybe we can talk him into sharing his new finds.

If you haven't checked out the new best practices book, it's bigger than I thought it would be :-)

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

Come to the first ever SharePoint Best Practices Conference, Sept 15-17!

Register at http://www.sharepointbestpractices.com

 

posted @ 2:50 PM | Feedback (1)

Thursday, June 12, 2008 #

Microsoft Office SharePoint Server 2007 Best Practices Book

Finally! It looks like our new best practices book should ship around the first of July. Bill English and myself wrote a big chunk of the book, but we had tons of help from rock stars like Kathy Hughes (MVP), Paul Schaeflein, Daniel Webster (SharePoint Guru), Mark Ferraz (IA and Security), Paul Stork, Jim Curry, and Mark Schneider (PMP).

We want to publicly thank all of the folks who gave technical feedback and wrote fabulous real world sidebards: Todd Klindt (MVP), Steve Smith (MVP), Andrew Woodward (MVP), Todd Bleeker (MVP), Keith Richie (MVP), Bob Fox (MVP), Robert Bogue (MVP), Matthew McDermott (MVP),  Joel Oleson (well, give it time), Doron Bar-caspi (MSFT), Mike Watson (thanks, Mike!! - you rock), James Petrosky (wow, what doesn't he know?), Scott Edwards, Daniel Galant, Jack Dougher, Woodrow Windischman, Steve Mong, Eric Larson, Kuda Nhiwatiwa, Oleg Glubochansky, Satish Mathew (MSFT), Sean Livingston, and Frank Zakrajsek (MSFT).

Ross Brookshire, Don Scott, and John Moh are great MCS guys and tech reviewed much of the book - thanks a ton (and your free copy is on the way!)

This book was a ton of work, but we really think it is a great resource for the community. It isn't prescriptive best practices as much as design and architecture best practices. A prescriptive best practices guide for SharePoint Server 2007 would be 3000 pages, and outdated in 90 days. In the book, we tried to get people to 'think' about the way they were installing, more than giving guidance on a specific technology.We aren't saying there is only one way to do it, we are showing the reader the methodology to get the right answer. There is often more than one 'best practice', and only through proper planning, designing, and testing, will you know for sure. We DO give you a starting place, and whether you agree or disagree isn't the point - it is to start you in the right direction and challenge you to find the best practices for your specific implementation. 800 pages of SharePoint Server goodness...

Our book should be available for purchase in mid-June. You can pre-order your copy today at Amazon, Barnes & Noble and other retail outlets. We'll also have a best practices web site (which is not up yet) at http://www.sharepointbestpractices.com.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

posted @ 4:01 PM | Feedback (2)

Monday, June 09, 2008 #

DeliverPoint 2007 offers FREE version with production license

DeliverPoint 2007 is now available for FREE with a full production license for a limited number of features. In this free version you'll enjoy the following features in your SharePoint Server 2007 deployment:

  • Security Trimmed interface
  • Discover Object Permissions
  • Properties reporting
  • Discover Account Permissions

I would encourage you to use DeliverPoint 2007 in your environment. It is the permissions tool that will help you significantly understand who has permissions to objects and sites with reporting capabilities.

If you have any questions about DeliverPoint 2007, please visit the web site at www.deliverpoint.com.

-ben

posted @ 3:51 PM | Feedback (0)

Monday, June 02, 2008 #

First SharePoint Best Practices and Governance Conference!

Mindsharp will be hosting the first SharePoint Best Practices and Governance Conference in Washington, DC on September 15-17.  We will be hosting this event in cooperation with Microsoft Press, who will be publishing the SharePoint Server 2007 Best Practices Deployment book, co-authored by myself, Bill English, Kathy Hughes and others. 

This should be a great conference, and we will be releasing the speaker roster in the next few weeks. As soon as we have the conference Web site up, I'll be sure to let you know. As a quick preview, we will be covering the 'why' of implementing portions of SharePoint, and then proving it with some real-world how to! Some areas to be covered are Governance, Branding, Customization, Web parts, Solutions, WCM, Taxonomies, Availability, Search, Document Management, and Capacity Planning.

Mark your calendars, and I hope to see you there.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

posted @ 11:40 AM | Feedback (1)

Friday, May 23, 2008 #

Creating and Managing SharePoint Content Databases

I consider creating and managing content databases a two part excercise. First, design for availability. Second, design for performance. Before I move forward, consider the following 2 points:

1.      Service Level Agreements (SLAs). How long can your site collections be out of service? When designing your site collections it is important to remember that site collections are contained in content databases, and cannot span content databases. Consider the following when designing for site collection availability:

Recovery Time Objective - The recovery time objective (RTO) defines how long your system can be down before it is back online after a disruption. The disruption could be due to anything from a SQL Server outage to a WFE Server failure. The RTO should include data recovery at the server, farm, database, site, list, and item levels.

Recovery Point Objective - The recovery point objective (RPO) defines your data loss threshold, measured in time. If you run daily backups only and ignore the SQL Server transaction logs, then your RPO is 23 hours, 59 minutes, and 59 seconds. Any data written to SharePoint Server 2007 after you ran the backup cannot be restored via native tools until after the next backup. Many organizations assume this risk without fully understanding the impact of losing 24 hours worth of data.

 2.      Performance. You don't have to host all content databases on the same disks in your SQL Server. In fact, you don't even have to host them on the same SQL instance! For very large and/or busy site collections, you can host them on very fast disk using RAID 1+0 or 0+1 (depends on your speed vs. availability). You could then host the more generic site collections on less expensive configurations/disks, and assume more risk.

So, how do we begin our design? I would begin by calculating both the A. size and B. performance levels required. If you have a very fast site collection that is mostly read (think WCM / Publishing Site), then you need to optimize the data files on your SQL Server. That means a config like RAID 0+1 for super speed, or RAID 1+0 for more availability and decent speed. Your transaction logs won't matter as much. But, if you are designing for a highly-collaborative environment, then you probably want to optimize your transaction log files.

Microsoft often states that 100GB is the recommended maximum for a content database. This is mainly because small to medium shops may have difficulty maintaining, backing up, and restoring large content databases. But, let's be honest: You can't span content databases, so you are accepting a maximum Site Collection size of 100GB (or less if you count the 2nd stage recycle bin). Really? 100GB doesn't seem very big anymore :) If you need larger site collections, optimize SQL and rock on...

Update: There seems to be an issue with really large databases and large lists. See: http://blogs.msdn.com/toddca/archive/2008/03/23/database-disconnect-issues-with-sharepoint.aspx and http://joeloleson.spaces.live.com/blog/cns!B05AD15E2DE730DD!116.entry seems to still be valid.  I know you want to know more - so do I. Look for a blog coming on this in the near future!

There are some performance hits with large site collections, but these usually aren't that bad. Just be sure to test, test, test. Visual Studio works great for stress testing your site collection performance.

We also need to think through our SLAs when designing content databases/site collections. The two are inseparable and are designed simultaneously. SharePoint Server 2007 can adapt to a multi-tiered SLA arrangement at the site collection/content database levels. If you grouped site collections by their criticality in corresponding content databases, you can then use SQL Server tools to manage them to different support levels. The below picture shows a possible database design for hosting three different SLA levels within a single farm.

If you group site collections similar to what is shown in the above picture, then you can manage them accordingly. Level 1 site collections could have frequent SQL level backups and be mirrored to another SQL instance. Level 2 site collections might be transaction log shipped, and Level 3 site collections might be in simple recovery mode and backed up only once a day. Additionally, every level of content database could be on a different SQL Server instance, and on different disk subsystems. Note that this depicts a one-to-one relationship between a Level 1 site collection and a Level 1 content database. While this provides robust recovery and performance options, it does not scale well. (Microsoft recommends no more than 100 content databases per Web application)

Note: If you have already over-loaded and over-populated your content databases, check out Todd Klindt's blog here to learn how to move them around. (nice post, Todd!) Another best practice is to create multiple content databases to support multiple site collections. A very common mistake we see is customers creating all site collections in a single content database. This usually results from a lack of understanding about how the product should be architected and partially from the process of rapid deployments. All is not lost, however, if you have implemented this way. I feel obligated to explain an almost always misunderstood Central Administration interface. The first picture below shows a screen in Central Administration Application Management Content Databases to take a database offline. The second picture shows the status of the database as stopped after it has been taken offline.

These settings do not mean what they appear to mean. Taking a database offline merely blocks any new site collections from being created in it. It does not take the database offline as one might think. Users can still upload and download content, view Web pages, and process workflows. The content database status will also show as stopped. Once again, this means only that new site collections cannot be created in this database. If you want a one-to-one site collection to content database association, taking the hosting database offline is the best method to accomplish this.

 Cheers.

 

Ben Curry, CISSP, SharePoint Server MVP
Mindsharp
http://mindsharpblogs.com/ben
http://www.microsoft.com/MSpress/books/10623.aspx
http://www.microsoft.com/MSPress/books/12197.aspx

posted @ 10:10 PM | Feedback (3)