Symantec Enterprise Vault - Veritas

Transcription

Symantec Enterprise Vault SQL Best Practices10.0Last updated: September 6, 2013

Symantec Enterprise Vault : SQL Best PracticesThe software described in this book is furnished under a license agreement and may be usedonly in accordance with the terms of the agreement.Last updated: September 6, 2013.Legal NoticeCopyright 2013 Symantec Corporation. All rights reserved.Symantec, the Symantec Logo, the Checkmark Logo, Enterprise Vault, Compliance Accelerator,and Discovery Accelerator are trademarks or registered trademarks of Symantec Corporationor its affiliates in the U.S. and other countries. Other names may be trademarks of theirrespective owners.This Symantec product may contain third party software for which Symantec is required toprovide attribution to the third party (“Third Party Programs”). Some of the Third PartyPrograms are available under open source or free software licenses. The License Agreementaccompanying the Software does not alter any rights or obligations you may have under thoseopen source or free software licenses. Please see the Third Party Software file accompanyingthis Symantec product for more information on the Third Party Programs.The product described in this document is distributed under licenses restricting its use,copying, distribution, and decompilation/reverse engineering. No part of this document maybe reproduced in any form by any means without prior written authorization of SymantecCorporation and its licensors, if any.THE DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS,REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, AREDISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BELEGALLY INVALID. SYMANTEC CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL ORCONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING PERFORMANCE, ORUSE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THISDOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE.The Licensed Software and Documentation are deemed to be commercial computer software asdefined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19"Commercial Computer Software - Restricted Rights" and DFARS 227.7202, "Rights inCommercial Computer Software or Commercial Computer Software Documentation", asapplicable, and any successor regulations. Any use, modification, reproduction release,performance, display or disclosure of the Licensed Software and Documentation by the U.S.Government shall be solely in accordance with the terms of this Agreement.Symantec Corporation350 Ellis Street, Mountain View, CA 94043www.symantec.com

Technical SupportSymantec Technical Support maintains support centers globally. TechnicalSupport’s primary role is to help you resolve specific problems with a Symantecproduct. The Technical Support group also creates content for our online KnowledgeBase. The Technical Support group works collaboratively with the other functionalareas within Symantec to answer your questions in a timely fashion. For example,the Technical Support group works with Product Engineering and SymantecSecurity Response to provide alerting services and virus definition updates.Symantec’s support offerings include the following: A range of support options that give you the flexibility to select the rightamount of service for any size organization Telephone and/or Web-based support that provides rapid response andup-to-the-minute information Upgrade assurance that delivers software upgrades Global support purchased on a regional business hours or 24 hours a day, 7 daysa week basis Premium service offerings that include Account Management ServicesFor information about Symantec’s support offerings, you can visit our Web site atthe following URL:www.symantec.com/business/support/All support services will be delivered in accordance with your support agreementand the then-current enterprise technical support policy.Contacting Technical SupportCustomers with a current support agreement may access Technical Supportinformation at the following URL:www.symantec.com/business/support/Before contacting Technical Support, make sure you have satisfied the systemrequirements that are listed in your product documentation. Also, you should be atthe computer on which the problem occurred, in case it is necessary to replicate theproblem.When you contact Technical Support, please have the following informationavailable: Product release level Hardware information Available memory, disk space, and NIC information Operating system

Version and patch level Network topology Router, gateway, and IP address information Problem description: Error messages and log files Troubleshooting that was performed before contacting Symantec Recent software configuration changes and network changesLicensing and registrationIf your Symantec product requires registration or a license key, access our technicalsupport Web page at the following URL:www.symantec.com/business/support/Customer serviceCustomer service information is available at the following URL:www.symantec.com/business/support/Customer Service is available to assist with non-technical questions, such as thefollowing types of issues: Questions regarding product licensing or serialization Product registration updates, such as address or name changes General product information (features, language availability, local dealers) Latest information about product updates and upgrades Information about upgrade assurance and support contracts Information about the Symantec Buying Programs Advice about Symantec's technical support options Nontechnical presales questions Issues that are related to CD-ROMs or manuals

Support agreement resourcesIf you want to contact Symantec regarding an existing support agreement, pleasecontact the support agreement administration team for your region as follows:Asia-Pacific and Japancustomercare apac@symantec.comEurope, Middle-East, and Africasemea@symantec.comNorth America and Latin Americasupportsolutions@symantec.com

ContentsChapter 1Introduction . 9Chapter 2Server requirements . 11Hardware considerations . 12CPU considerations . 12Memory considerations. 13Network considerations . 14Storage considerations. 15Virtualized infrastructure . 17Anti-virus considerations . 18Chapter 3Database sizing. 19Directory database . 19Audit database . 21Monitoring database. 23Enterprise Vault Reporting database. 24Vault Store database. 24Fingerprint database . 26FSA Reporting database . 27Chapter 4Deployment and tuning . 29Deployment . 29SQL permissions . 29Deploying databases and the impact of model database . 29Co-locating Enterprise Vault databases . 31Database tuning . 32The tempdb database . 32Multiple SQL Server instances . 33Reporting services. 34Advanced tuning . 34Distributing I/O with multiple database files . 34Moving tables or indexes into file groups . 34Chapter 5Maintenance. 35Maintenance plan . 35Moving databases. 37

8ContentsDatabase upgrades. 38Rolling over databases . 38Audit database . 38Vault Store database . 39Chapter 6Monitoring . 41CPU and memory . 43Disk . 43SQL Server . 44Useful queries . 46Identifying vault store throughput per hour. 46Identifying sharing group sharing ratio . 47

Chapter1IntroductionSizing and implementing Enterprise Vault requires careful planning to ensure thatthe product can perform and scale to expectations, and ensure the underlyingEnterprise Vault infrastructure is configured to support the required activity.The Enterprise Vault SQL servers should be sized, tuned and maintained accordingto Microsoft best practice advice for SQL Server. See the TechNet article “SQLServer best practices”.This guide discusses some of the SQL Server best practices from an Enterprise Vaultperspective and should be used in conjunction with Microsoft advice. This documentdoes not explore any aspects of high availability.The Enterprise Vault databases contain varied information including configurationinformation, item metadata, and reporting statistics. In many cases the data forms akey part of feature workflow and this can result in high workloads that will struggleto co-exist with any other database application. During Enterprise Vaultimplementation you must pay special attention to the SQL servers and theirconfiguration.This guide assumes that are you are familiar with how to configure and administerEnterprise Vault, SQL Server and associated products. You can obtain more detailedinstallation and configuration information from the Enterprise Vaultdocumentation. Symantec also publishes many white papers that explore specificEnterprise Vault details.For advice on Discovery Accelerator sizing and tuning, see the Best Practices forImplementation Guide, which is available from the following page:http://www.symantec.com/docs/TECH159520

10IntroductionHardware considerations

Chapter2Server requirementsThe anticipated loads will help determine the best SQL Server edition and thenumber and size of SQL Servers that should be deployed. From an Enterprise Vaultperspective, the key differences between the Standard and Enterprise or Datacentereditions of SQL Server are the scalability and high availability options.Enterprise Vault is a feature-rich product and can therefore result in very diverseSQL Server load profiles between customer deployments. As Enterprise Vault scales,additional databases and the associated increase load will require scaling the SQLServers to meet the load.It may be necessary to separate out specific Enterprise Vault databases such as thedirectory and audit databases to dedicated SQL Servers. We also recommendpreparing dedicated SQL Servers with reporting services if FSA reporting is to bedeployed.There are many factors which may influence the deployment, but an initial serversizing guideline would be to provision the CPU cores and RAM described in the tablebelow arranged in as many servers as desired, evenly distributing the EnterpriseVault databases if deployed as multiple SQL servers.SQL Server requirementsLow load or no end-users (e.g.Journaling only)Provision 4 cores and 8 GB RAM for every 8 EnterpriseVault serversUp to 8 Enterprise Vault servers with Provision 4 cores and 8 GB RAM for every 4 Enterprisenormal loadVault serversMore than 8 Enterprise Vault servers Dedicated server for directory and audit database:with normal loadProvision 4 cores and 16 GB RAM for every 8 EnterpriseVault serversServers for all other databases:Provision 4 cores and 8 GB RAM for every 4 EnterpriseVault servers

12Server requirementsHardware considerationsSQL Server requirementsFSA ReportingDedicated SQL Servers:Provision 2 cores and 4 GB RAM for every 8 file serversNote: The minimum should be 4 cores and 8 GB RAM.For example, to support 16 Enterprise Vault servers and 64,000 users you mightchoose to implement: 1 Enterprise edition server with 8 processor cores and 32 GB RAM for theDirectory database.Plus one of the following example combinations to host the other databases: 4 Standard edition servers each with 4 processor cores and 8 GB RAM. 2 Enterprise edition servers each with 8 processor cores and 16 GB RAM. 1 Datacenter edition server with 16 processor cores and 32 GB RAM (providedthat the network and storage bandwidth can cater for the overall load).Scaling Enterprise Vault to meet complex requirements, such as wide geographicdistribution, may require deploying multiple Enterprise Vault installations (withindependent directory and associated databases).Hardware considerationsWe recommend the Enterprise Vault SQL servers run a single SQL Server instanceonly, with no other applications or services running on the servers. SQL Serverneeds to fully utilize the server resources, and another application may introducecontention issues that results in undesirable performance.CPU considerationsThe power of a server is not necessarily determined by the CPU speed in terms ofcycles per second. Factors such as the server architecture and number and type ofprocessors and cores can provide a far greater benefit over increasing CPU speed.Hyper-threading technology is claimed to typically provide up to 30% improvementin performance. These processors contain two architectural states on a singleprocessor core, making each physical processor act as two logical processors.However, the two logical processors must share the execution resources of theprocessor core, so performance gains may not be attained and in somecircumstances can even lead to degradation in performance.

Server requirementsHardware considerationsMulti-core technology provides similar performance to a comparable multi-CPUserver. These processors contain multiple complete processor cores, which act ascomplete physical processors. Each physical core has its own architectural state andits own execution resources, so the performance gains are reliable.With the ever-increasing number of processor core combinations and high clockspeeds, the traditional x86 Front Side Bus architecture can start to become abottleneck beyond eight processor cores. A popular and cost-effective method ofscaling up the x86 architecture is to use an architecture that supports non-uniformmemory access (NUMA). Processors and memory are grouped into nodes that havehigh-speed local access. However, access to memory co-located with other processornodes is slower. Therefore, the operating system (and potentially applicationsoftware) needs to be NUMA-aware and optimized to make the best use ofprocessors, cores, and their associated resources. Windows server and SQL Serversupport NUMA. See the MSDN article “How SQL Server supports NUMA”.The recommended number of processor cores can be composed of either physicalCPUs or similar combination of multi-core CPUs, but the sizing should not based onhyper-threaded logical cores.Note: Hyper-threading is not recommended to improve the database performancedue to potential performance problems when the database places a load on thememory. See Microsoft Knowledge Base article 322385http://support.microsoft.com/kb/322385 and the MSDN article "Be aware: To Hyperor not to Hyper" 492119.aspxfor further information. If hyper-threading is to be used, particular attention shouldbe paid to the MAXDOP setting as described in KB322385.In most cases, the SQL Server instance should manage the CPU resources. Do not setthe CPU affinity mask unless absolutely necessary, as this can significantly impactthe performance. When you run multiple SQL Server instances, the most commonreason for setting the CPU affinity mask is to prevent an instance being starved ofresources (see “Multiple SQL Server instances” on page 33).Memory considerationsThe recommended memory should be available at each SQL Server instance toensure the data manipulation does not cause excessive paging to disk both in theEnterprise Vault databases and tempdb, which will quickly degrade theperformance.You can host the databases on either 32-bit or 64-bit (x64 only) platforms. Using anx64-based platform provides more efficient memory utilization and brings manyperformance benefits.13

14Server requirementsHardware considerationsInstall the appropriate edition of Windows Server and SQL Server to support thecapacity of memory you have installed. See the Enterprise Vault compatibilitycharts for supported versions of SQL Server.Under normal circumstances, you should allow SQL Server to manage the memorydynamically. It may be necessary to change the SQL Server minimum and maximummemory to ensure the memory is used appropriately between SQL Server instances,Reporting services or other co-located services.If you plan to use a 32-bit SQL server, tune it carefully to make the best use ofavailable memory. The tuning options depend on using the appropriate edition ofWindows and SQL Server for the installed capacity of memory.If a 32-bit SQL server has more than 4 GB of physical RAM, do the following (thesesettings should not be used on 64-bit servers): Enable the operating system Physical Address Extensions boot flag (/PAE). Use the following script to enable Address Windowing Extensions (AWE)memory in SQL Server:sp configure 'show advanced options', 1RECONFIGUREGOsp configure 'awe enabled', 1RECONFIGUREGONote: This causes SQL Server to reserve all available memory, which has aperformance impact on other applications or in a multi-instance SQL Serverenvironment. If this is not desired, set the max server memory option. See SQLServer books on line: Managing AWE Memory. If the SQL server has between 4 GB and 16 GB of RAM installed, use the /3GBboot flag. Do not use /3GB with more than 16 GB RAM.Network considerationsWe recommend that the Enterprise Vault SQL servers and Enterprise Vault serversare connected via gigabit network technology. The SQL servers may require multiplenetwork interface cards to support the anticipated loads.It is also recommended to disable the TCP Chimney Offload, TCP/IP Offload Engine(TOE) or TCP Segmentation Offload (TSO) to prevent network issues. For guidance indisabling these, see Symantec technical article TECH55653.

Server requirementsStorage considerationsStorage considerationsIt is vital to ensure the storage does not become a bottleneck. By following MicrosoftSQL Server best practices, you can ensure that the SQL server is suitably sized.Avoid using network-based storage for the database files.In most cases, you will need RAID-based storage to achieve your storagerequirements. To maintain performance and reliability, consider hardware-basedRAID rather than software-based RAID. To achieve redundancy on striped arrayswhile maintaining performance, consider the RAID scheme carefully.RAID levels 5 and 6 are popular, cost-effective methods of achieving redundancywhile maintaining striped disk read performance. However, writing incurs a cost offour to six physical operations per write. A poorly sized RAID-5 or 6 implementationcan significantly reduce the performance of write-intensive activity. Correctlysizing a RAID-5 or 6 implementation to maintain write performance may becomemore costly than RAID-1 0, and therefore a RAID-1 0 scheme should be considered.In the case of local or direct attached storage, use multiple controllers supportingmultiple channels to distribute the load between the multiple storage locations andprovide sufficient throughput. The controllers should also provide a battery-backedread and write cache to aid performance. A minimum of 512 MB controller cache isrecommended for local or direct attached storage.Before you use partitions on a storage area network (SAN), consider the I/O loadtogether with any other applications that are already using the SAN to ensure thatthe performance can be maintained. Ideally, discuss the implementation with yourSAN hardware vendor to ensure that you achieve optimum performance. Typically,you should create LUNs across as many suitable disks as possible, using entire disksrather than partial disks to prevent multiple I/O-intensive applications from usingthe same disks. When you configure HBAs on the host, ensure that the Queue Depthis set to an optimal value. This should be discussed with the storage vendor.When you create a basic NTFS volume on a storage device, it is very important toalign the volume with the device sector or stripe unit boundaries to preventunnecessary disk operations that can significantly impact performance. (Dynamicvolumes cannot be aligned at time of publication). See the TechNet article “SQLServer best practices” for more information and using the diskpart tool to createand align volumes. This article also recommends that you format both log and datapartitions with 64 KB allocation unit sizes.In most cases you should only create a single volume on each disk array to avoidcontention at the disks between the partitions.Each database requires the disks to be arranged for two different purposes; thedatabase data files and the transaction log files. The data files require good randomaccess, and therefore a striped array of many disks should be used. The log files15

16Server requirementsStorage considerationsrequire good sequential write performance, so each log file should be placed on itsown high speed array with good transfer rates.To achieve redundancy on the sequential write-intensive disks (log), use a RAID-1 orRAID-1 0 scheme with high speed, 15k rpm disks.Arrange the SQL server storage to accommodate the different types of data,distributing the load as appropriate. The following arrangements of storage mightbe considered for each data requirement:Recommended partitions for SQL serversPartitionRAID arraySystem driveRAID-1 arrayTempdb log fileRAID-1 or 1 0 arrayTempdb data filesRAID-1 0 arrayDirectory Database log fileRAID-1 or 1 0 arrayDirectory Database data fileRAID-1 0 arrayEach vault store database log fileRAID-1 0 arrayEach vault store database data fileRAID-1 0 arrayEach fingerprint database log fileRAID-1 0 arrayEach fingerprint database data files1 or more RAID-1 0 arrays to host the 32filegroup data filesAudit database log fileRAID-1 0 arrayAudit database data fileRAID-1 0 arrayMonitoring database log fileRAID-1, 5, or 1 0 arrayMonitoring database data fileRAID-5, or 1 0 arrayFSA Reporting database log filesRAID-1 0 arrayFSA Reporting database data filesRAID-1 0 arraySQL Server Reporting log fileRAID-1, 5, or 1 0 arraySQL Server Reporting data fileRAID-5, or 1 0 arraySQL Server Reporting TempDB log fileRAID-1, 5, or 1 0 arraySQL Server Reporting TempDB data fileRAID-5, or 1 0 array

Server requirementsVirtualized infrastructureIf multiple database files are located on one partition, it may require regular filedefragmentation to maintain performance.Virtualized infrastructureThere are important aspects to consider when installing SQL Server in a virtualizedinfrastructure. Follow the recommendations of your hypervisor vendor andMicrosoft when you size and configure the environment.The primary objective is to ensure that the resource requirements described aboveare dedicated to the virtual machine to ensure minimum impact to the performancefrom intermediate layers or co-existing guests.The hypervisor should be type-1 (native) to ensure the minimum impact onhardware resource requirements.Note the following general guidelines: In a typical virtualized infrastructure, local disks might be used for thehypervisor and SAN-based storage for the guest operating system images anddata file locations. The operating system and data storage partitions should beindependent dedicated locations, as described above.Disk partitions should be aligned with the device sector or stripe unitboundaries to prevent unnecessary disk operations that can significantlyimpact performance.The disk partitions to be used for the database log files should be created asrecommended by the hypervisor vendor for sequential access (possibly rawhard disks).The disk partitions to be used for the database data files should be created asrecommended by the hypervisor vendor for random access (most likely virtualhard disks). Virtual hard disks should be created as fixed size and not dynamic. Avoid the use of hyper-threading by the hyper-visor. Avoid the use of virtual machine snapshots, which can impact performance. The memory requirements recommended above should be dedicated andprioritized to the virtual machine to prevent dynamic allocation or sharing. The number of processor cores as recommended above should be exclusivelydedicated to the virtual machine, and the processor priority and bandwidth setto provide the virtual machine with full utilization of the selected CPUs.If you want to install the SQL Server instance on a virtualized machine, avoidinstalling multiple instances on the same virtual machine.17

18Server requirementsAnti-virus considerationsAnti-virus considerationsThe use of anti-virus products may be necessary to protect company assets, howeverwithout tuning some anti-virus products can be very invasive and considerablyimpact performance. It is vital to ensure any anti-virus product in use is tunedaccordingly and key disk locations excluded from real-time scanning.See the following article for more 8

Chapter3Database sizingThe storage capacity of the Enterprise Vault databases needs to be carefullyconsidered. There are many factors which will influence the sizes of the databasesand in some cases it is not practical, because the information is not readily available,to incorporate all of those factors to provide an accurate sizing. The followingsections describe calculating a high-level capacity estimate that provides guidancebut in practice the actual sizes may vary.Directory databaseThe Enterprise Vault directory database stores details of the following: Enterprise Vault server configuration Enterprise Vault services configuration Enterprise Vault policies Content source server details and their configuration Target object and provisioning or synchronization configuration Archive and folder structure details Security identifiers and access control lists Index location and index volume configuration Storage sharing group, vault store and partition configuration Archive, PST and Index management tasksEnterprise Vault 10.0.4 onwards also stores: Archive legal hold details Enterprise Vault Extension content source and provider registrations Enterprise Vault Extension custom archive type registrationsThe Directory database is used by all Enterprise Vault servers to co-ordinate allactivities, and therefore can be under considerable load.

20Database sizingDirectory databaseUse the following rule of thumb to size the Directory database:Estimated capacity (MB) ((2.496s) (23.056u) ((fa fd)1.3) (1.613fa) (0.156fdp))/1000Where:sTotal Enterprise Vault serversuTo

The Enterprise Vault databases contain varied information including configuration information, item metadata, and reporting statistics. In many cases the data forms a key part of feature workflow and this can result in high workloads that will struggle to co-exist with any other database application. During Enterprise Vault