Deployment - Microsoft

advertisement
Deployment Guide
Migration Service for SQL Server 2012 (Oracle)
Prepared for
Customer Name
December 2012
Version Released
Prepared by
<Insert Author Here - File Properties>
Author Position
authorEmail@partner.com
Contributors
Page 1
[Document Contributors]
Page 2
Table of Contents
Purpose .............................................................................................................................................5
Audience ...........................................................................................................................................8
Deployment .......................................................................................................................................9
Deploying the Database Server..................................................................................................................... 9
Process ................................................................................................................................................... 9
Technology........................................................................................................................................... 11
Automated Deployment ...................................................................................................................... 11
Deploying the Server Side Applications ...................................................................................................... 12
Process ................................................................................................................................................. 12
Technology........................................................................................................................................... 12
Deploying the Client Application ................................................................................................................ 12
Process ................................................................................................................................................. 13
Technology........................................................................................................................................... 13
Change Management .......................................................................................................................... 14
Stabilizing the deployment ......................................................................................................................... 15
Deployment Checklist .......................................................................................................................... 15
Server ................................................................................................................................................... 15
Database .............................................................................................................................................. 16
Application (Client Side or Server Side) ............................................................................................... 17
Additional Considerations ................................................................................................................... 18
Quiet Period ......................................................................................................................................... 18
Transferring Ownership to Operations ....................................................................................................... 19
Project Team Tasks .............................................................................................................................. 19
Operations Team Tasks........................................................................................................................ 19
Page 3
Conclusion ....................................................................................................................................... 21
Page 4
PURPOSE
This document provides a direction towards the deployment of Migration from Oracle Environment to a
SQL Server 2012 Environment.
After envisioning, planning, developing, and stabilizing, the solution is ready to be deployed. The
Deployment Phase implements the tested solution in the production environment. The migration
project release management team deploying the solution works with the operations team to
successfully deploy and stabilize the solution. At the close of the Deployment Phase, customer approval
for the migration is obtained, and the solution is transferred to the operations team. It is also possible
that the operations team handles the deployment with the aid of the project team. Irrespective of which
team does the deployment, the key goal of the Deployment Phase is to successfully migrate the new
solution into the production environment as smoothly as possible, and with the least amount of
disruption to the business environment or the end users.
The deployment rollout should be conducted as a series of activities. Though you can abbreviate or
combine some of these activities, you cannot skip any of them completely without increasing risk to the
project's success.
Nearly all of these activities are performed in conjunction between the project team and the operations
team. Coordination between the two teams is now a critical success factor. All decisions should be
agreed upon by both of the teams to minimize risk. Both teams are involved with completing the tasks
and producing the deliverables:
Major Tasks and Deliverables for the Deployment Phase
Tasks
Deliverables
Roles
Checklist1
Deploy the solution
Deployment
Release Management
Stabilize the deployment
Deployment Checklist
Release Management
Obtain the solution signoff
Customer Sign Off
Product Management
Transfer ownership
Project Documents
Program Management
The Major Tasks and Deliverables of a typical Oracle migration projects are:
Tasks
Deliverables
Migrate the Oracle database architecture
SQL Server instance equivalent in structure to
the source
Migrate the schemas
SQL Server databases housing application
schemas
1
Deployment checklist is typically a spreadsheet or document identifying all the objects by topic (Instance(s), schema(s), tables, views,
procedures, functions, et cetera).
Page 5
Migrate the users
SQL Server users with similar privileges as the
source
Migrate the data
Complete database ready for use
Because they are both relational databases, Oracle and SQL Server have some similarities, but also
have some differences in their features and functions. Both Oracle and SQL Server provide all the core
functionality expected of a RDBMS, including concurrency, security, backup, recovery, scalability,
availability, session management, transaction management, storage management, resource
management, and so on. Both exhibit a moderate degree of compliance to ANSI standards.
Migrating from Oracle to SQL Server poses less of a challenge than migrating from one proprietary
computing system to another. SQL Server is a relational database just like Oracle and, hence, it is not
necessary to redesign the database. It is not necessary to re-architect the application for performance
or security because the two DBMS are different in their architecture. The majority of the work
involved is in accommodating the differences in the implementation of items such as indexes, data
types, SQL syntax, and specific DBMS features, such as physical/logical disk storage considerations,
partitioning, and auditing.
To simplify the migration of the database, the entire process has been organized into four major tasks:
Migrate the Architecture
Migrate the Schema
Migrate the Users
Migrate the Data
Each of the four major tasks includes a set of subtasks:
1.
Migrate the database architecture
1.
Build the SQL Server instance
2.
Configure the server
Page 6
2.
3.
4.
3.
Migrate the storage architecture
Migrate the schemas
1.
Create database for the schema
2.
Create a user for the schema
3.
Create the schema objects
Migrate the users
1.
Create logins
2.
Create roles and grant privileges
Migrate the data
1.
Plan the data migration
2.
Execute the data migration
Page 7
AUDIENCE
The primary audience for this document are delivery consultants. The secondary audience includes
Field Stakeholders and the Roles & Readiness team. Through the development of the document, the
team must verify as completely as possible that everyone has a clear and consistent understanding
regarding the content of the document and therefore the direction for the project.
Page 8
DEPLOYMENT
Once the application and the database have been migrated the database and applications (server side
and client side) are fully tested and are ready for deployment. The release versions of the source code,
executable, scripts, and other installation information are complete and delivered to the deployment
team.
While deployment is often discussed and planned singularly, there are actually three separate
components and technologies that must be deployed into the production environment. These solution
components are:
●
Database servers
●
Server side application(s)
●
Client side application(s)
Each of these components is discussed in this section. Each of these topics is divided into two subtopics:
process and technology.
Deploying the Database Server
The database should be deployed first because the server side and client side applications are
dependent on it. The process and technology required for setting up a database server and
implementing databases are discussed under the following headings.
Process
During the Planning Phase of the migration, all hardware needs are evaluated and any new equipment is
acquired. During the Deployment Phase, the server must be set up and configured for the Windows
Server 2008 or 2012 environment. The following procedure describes the steps for deploying the
database and its server:
1. The server should be built and delivered by your hardware vendor based on specifications
defined during the Planning Phase. If the server will be built from existing equipment,
ensure that the server is available and has the required capacity to host the solution.
2. Install any necessary hardware. Commonly, items such as additional memory, interface
cards, additional storage, tape drives, or FDDA gigabit switches will need to be installed to
meet operational specifications.
3. Install the operating system, including any necessary service packs and patches. This step
can be performed manually or by using imaging software. This topic is discussed in greater
detail in the technology portion of this section.
4. Configure any additional hardware that was installed. For instance, if NIC cards are
installed, they must be configured to match the settings of the network switch they will
connect to.
Page 9
5. Install any additional applications needed for the server, such as monitoring applications,
backup software, asset management software, and software delivery applications.
6. Select the deployment mechanism for the database. Some possible options include:
●
Use automated processes, such as installation and configuration scripts, where
possible.
●
Use manual processes for some installation and configuration. These must have
detailed, step-by-step instructions.
7. Create the database deployment package by putting together the following:
●
SQL Server installation and configuration scripts.
●
Database administration tools and utilities.
●
Database administration scripts and a scripting language such as Perl.
●
User database migration scripts.
●
Database administration tasks and packages, such as a maintenance plan, jobs, and
backup and restore procedures.
●
Windows domain user accounts configuration scripts.
●
Scripts for configuring ODBC data sources, ADO, and OLE DB connection strings.
●
Scripts for configuring COM+ components for database connection.
8. Create rollback scripts to undo or remove changes introduced by the deployment. If a
parallel cutover strategy is being employed, the scripts should disable the replication. Not
every aspect of the fallback can be scripted. A checklist of tasks with detailed instructions
should be prepared.
9. Add the deployment package to the configuration management database (CMDB).
Maintain change control of the release. Where a CMDB does not exist, a simplified one
should be created for release-tracking. The purpose of updating the CMDB is to ensure
that accurate knowledge is stored regarding all of the components or configuration items
that make up the releases.
10. Execute deployment package for the databases being migrated as per the phase-out
strategy.
11. Execute the scripts to create the database and its objects. The serial cutover strategy will
dictate the order in which the databases are migrated.
12. If a straight cutover strategy is used, shut down the Oracle databases. If a parallel cutover
is used, the databases may not be shut down. However, a quiet period is required to
enable the replication and ensure that the replication mechanism is working properly.
Start migrating the data.
13. Monitor the data migration for errors. If the migration has to be aborted, the rollback
scripts and other fallback steps should be performed for each of the databases impacted
by the failure (if the databases are related and have to be migrated together).
Note: If you must deviate from these scripts in the production environment, make sure to
alter the scripts to reflect the change and enter a note in the script or documentation
regarding what was altered, why, and whether you noticed any issues afterward.
Page 10
Technology
Setting up and configuring servers can be time-consuming, especially if additional applications are
needed for operations, monitoring, reporting, or other purposes. Based on the needs of the
deployment, there are two ways to deploy the server; manual deployment or automated deployment
using imaging tools. Imaging tools allow for applications, operating systems, configurations, or drivers to
be installed in one package, instead of as individual installations. However, imaging can only be useful
when setting up identical servers using identical hardware, as in a clustered set.
The following link provides information on Windows Server 2012 and Windows Server 2008 R2:
http://technet.microsoft.com/en-us/library/hh801901.aspx
Manual Deployment
If a manual deployment is a consideration, a few guidelines should be noted. Often, hardware vendors
will provide customized installation CDs that contain specific drivers and software needed for the
configuration. Using these installation discs can reduce the time needed for installation.
Windows Deployment Services is the updated and redesigned version of Remote Installation Services
(RIS). Windows Deployment Services enables you to deploy Windows operating systems over the
network, which means that you do not have to install each operating system directly from a CD or DVD,
refer to:
http://technet.microsoft.com/en-us/library/jj648426.aspxCreation of the databases and database
objects can be performed using Data Definition or even through SSIS packages.
Automated Deployment
There are several ways to deploy Windows Server, depending on the version. Refer to the following for
guidance:
Windows Server 2012:
http://technet.microsoft.com/en-us/library/hh831620.aspx
Deployment Toolkit: http://technet.microsoft.com/enus/solutionaccelerators/dd407791.aspx
System Center:
Windows Server 2008:
http://technet.microsoft.com/library/ee344846(WS.10).aspx
Page 11
Deploying the Server Side Applications
The steps for building the servers described in the previous section can also be used to prepare the
servers for the server-side applications. Detailed guidance for setting up the server-side applications is
discussed under the following headings.
Process
Though the server will be set up to meet the needs of your specific applications, additional steps may be
needed to prepare the hardware for deployment.
 To deploy server-side applications, follow these steps:
1. Install the operating system and third-party components on the server as required by the
application.
2. Configure the server-side application components.
3. Install the server-side components on the server.
4. Add all configuration information into the configuration management database (CMDB)
and maintain change control of the release. If a CMDB does not exist, a simplified one
should be created for release-tracking. Updating the CMDB ensures that accurate
knowledge is stored regarding all of the components or configuration items that make up
the releases.
5. Deploy the applications in conjunction with the deployment strategy being employed for
the databases.
6. Once the database migration has been confirmed, perform configuration changes to the
environment to activate the application.
7. If a fallback is required, then the application should be shut down and the original
configuration that points all users back to the original application should be restored.
Technology
Refer to the TechNet deployment for the latest options, tools and best practices. Links are provided in
the above sections.
Deploying the Client Application
After the server-side applications and databases have been deployed to production and tested, the
client application should be released. Often, this stage of the deployment can be complex due to the
number of users and components involved.
This is usually the point in the deployment process where the end users are affected. In many cases, this
is the first time that they are involved in the migration process. While this guidance focuses on the
application and database aspects of the migration, keep in mind that there are many other items to
consider. For instance, documentation, training, and helpdesk support also need to be in place at the
time of this deployment.
Page 12
It is quite likely that the client computers are already in use. If not, build the hardware for the client
computers and deploy the required software.
Process
As with the other stages of deployment, the client application can be deployed manually or through the
use of automated tools. Consider the following steps when deploying the client application.
1. Create the deployment package, which can include the following:
The complete application, including the binary installation files and any automation files.

Client configuration and support files.

Windows domain user accounts configuration scripts.

Scripts for configuring ODBC data sources, ADO, or OLE DB connection strings.

Scripts for configuring COM+ components for database connection.

Acceptance test scripts and packages.
2. Create rollback scripts to remove changes introduced by the deployment. Rollback scripts
provide an alternate option if an uncorrectable issue arises during the server, database, or
application deployments.
3. Add the deployment package to the configuration management database (CMDB).
Maintain change control of the release. Where a CMDB does not exist, a simplified one
should be created for release-tracking.
4. Once the database and application migration are completed successfully, deploy the client
application. In addition to the database and application deployment strategy, a horizontal
phase-out strategy may be employed for client applications.
5. If a fallback is required, then the application should be rolled back to the previous one and
the original configuration that points all clients back to the original application should be
restored. If the fallback is due to an application issue, then a horizontal phase-out strategy
reduces the rollback effort.
Technology
When deploying the client application, additional tools may be required to efficiently manage the
deployment. Some common tools used for packaging applications and utilizing distribution channels
include:
●
MSI (or Windows Installer) is a Microsoft solution for application packages. This installer
provides additional functionality and integration with the Windows environment,
including elevated privileges for installation and deployment across an Active Directory.
To download Windows Installer or learn more about it, refer to:
http://www.microsoft.com/en-us/download/details.aspx?id=8483.
●
●
InstallShield AdminStudio can also create a scripted package file or an MSI package.
Page 13
For more information about InstallShield, refer to:
http://www.installshield.com/downloads/isas/evalguide/AdminStudio5_Evaluator_Guide.pdf.
●
●
●
Active Directory is a core feature in the Windows server operating system which not only
handles security and privileges of the domain, but also has the capability to distribute MSI
files. Group Policy settings can be set in Active Directory to distribute the required MSI
file. Active Directory can be used efficiently to distribute the files at off hours or weekends
to avoid blocking network congestion. For further information about Active Directory,
refer to: http://technet.microsoft.com/en-us/library/hh831769
●
System Center 2012 is a tool from Microsoft for distributing software packages. SMS has
various features, such as packaging, distributing, deploying applications, and monitoring.
For step-by-step procedures for distributing a package using SMS, refer to:
http://www.microsoft.com/en-us/server-cloud/system-center/configuration-manager2012.aspx.
Note: The tools listed above have not been tested in a lab environment as part of this
solution.
Change Management
Change management is the process for controlling changes to a protected environment. In the
Stabilizing Phase, changes are made to the test environment related to bug fixes and promoting the
builds. Changes made to the solution in the production environment are handled more strictly because
they can affect the end users of the application as well as other users of the production environment.
Any proposed changes must go through the change approval process to ensure that the changes will not
adversely affect the production environment.
Microsoft Operations Framework (MOF) delivers practical guidance for everyday IT practices and
activities, helping users establish and implement reliable, cost-effective IT services. It encompasses the
entire IT lifecycle by integrating:
Community-generated processes for planning, delivering, operating, and managing IT.
Governance, risk, and compliance activities.
Management reviews.
Microsoft Solutions Framework (MSF) best practices.MOF guidance can be found here:
http://technet.microsoft.com/en-us/library/cc506049.aspx
Page 14
Stabilizing the deployment
After the server-side application components, database, and client-side application components are
deployed, every aspect of the deployment must be validated to ensure that the migration has been
performed successfully. Common items to check are included in the deployment checklist discussed in
the following sections.
Deployment Checklist
The product manager and the operations team should ensure that the solution meets the business
requirements and standards determined during the Envisioning Phase. The checklist developed during
the Planning Phase should contain the acceptance criteria that evaluate the performance of the
solution. It should also provide a baseline for the customer to approve the solution. The following
categories should be included in the checklist to test the solution before signoff:
●
Server
●
Database
●
Application (client and server side)
●
Additional considerations
These categories are discussed under the following headings.
Server
The following are some server-related items that should be considered for the checklist:
●
Have all relevant service packs been loaded to the production servers? Are the OS and
installed service pack level well known and documented? You will need this information if
the systems fail and manufacturer support is required.
●
Have the settings from the performance tuning in the test environment during the
Stabilizing Phase been transferred correctly? At the same time, ensure that any
configurations unique to the testing environment have not been transferred to the
production environment.
●
Have backup power systems been fully tested to ensure proper operation?
●
Are an appropriate number of replacement hard disks on hand in case of failure in an
array?
●
Are the default client connection network library settings established on the server?
●
Are all database and application server installation settings documented (sort orders,
default language, and so on)?
●
Has communication between servers been checked to assure that proper DNS resolution
and routing is functioning as expected?
●
Are alerts defined for key problems and conditions? Who monitors the e-mail address to
which these are sent? Are pagers used? Has the alert system been tested?
Page 15
●
Has the team removed guest accounts from the system and checked to ensure that this
does not affect the application?
●
Is the appropriate level of directory security set?
●
Has security logging been implemented?
●
Have all non-essential services and open ports on the server been identified and closed?
●
Has the team tested production integration with third-party systems?
●
Have any and all event log messages been identified and investigated?
●
Does the OS have sufficient client access licenses for the expected peak traffic loads?
●
Are sufficient client access licenses and connections installed for the OS? Is this being
monitored to assure that it does not reach its limit?
●
Are system configurations for all tiers backed up? Were scripts created to reset
configurations in an emergency or to bring up a new server? Are they in a well-known
location?
●
Have server backups been tested? Are procedures in place for proper storage and
retrieval?
●
Have clustering software configuration and failover operations been tested?
Database
The following are some database-related items that should be considered for the checklist:
●
Have all database creation scripts been executed properly and without errors?
●
Were the database statistics updated prior to launch?
●
Have the database backups been tested to ensure that backup mechanisms are operating
properly? Have restoration procedures been tested on the solution server and on
different hardware to test failover procedures? Are off-site backup procedures in place?
●
Has database security been addressed and appropriate logon accounts created? Is the
system administrator's (SA) account password blank? Are applications using the SA
account or other account(s)?
●
Did the team define, test, schedule, and sign-off on maintenance plans?
●
Has a schedule been established for the transaction log dumping that will be sufficient to
recover activity to the satisfaction of the business? Has it been tested?
●
Are sufficient client access licenses installed for the database server? Are these being
monitored to assure that they do not reach their limit?
●
Has the latest build of the database from the development environment been migrated,
installed, tested, and verified within the production environment?
●
The user databases should be checked to ensure that all the data from the database is
transferred from the source solution to the target solution during deployment.
●
Has the database been loaded in the production environment with clean data, and have
initial inventory levels been set? Have feeds from other systems been verified under load
to ensure that system availability is unaffected at the time they run?
Page 16
●
Is the database running on the default port of 1433? If so, can this be changed to another
port or ports to enhance security of the application without affecting proper operation?
●
Are non-essential SQL Server services running (MS Search, OLAP)? Stop them if they are
not required.
●
Are non-essential databases installed on the server? Remove databases such as pubs or
Northwind, but be careful not to remove needed system databases such as model,
tempdb or master.
●
Is the database correctly tuned, and does it have the proper memory usage settings
applied?
●
Is disk space sufficient for the expected size of the data 6-12 months ahead?
●
Have clustering software configuration and failover operations been tested with the
databases?

Are the high availability components in place correctly? SQL Server 2012 introduces a new
high availability functionality in AlwaysOn. Educate yourself on this new technology and
how to enable it in your environments.
o
AlwaysOn
o
Windows Server Failover Clustering
o
Mirroring (note that this functionality is being deprecated.
o
Replication
o
Log Shipping
o
Backup/Restore
o
Database Snapshots
Application (Client Side or Server Side)
The following list offers some client-side or server-side application-related items that should be
considered for the checklist:
●
Are the proper security settings for the applications set and documented?
●
Has application logging been enabled or disabled, as required?
●
Has the golden release of the applications and other components been given a release
number, archived, then deployed? Confirm that the golden release of the source code
matches the version of the application that was released.
●
Are all required environmental settings for the applications set and documented?
●
Are all third-party software or components that are required by the system installed and
documented (version numbers, vendor contact information, and so on)?
●
Ensure that the client application properly connects to the database. Perform cursory
testing of the application that is not intrusive and does not change the production
database. For example, running production reports is a good way to test database
functionality without changing the live data.
●
Has connectivity between the middle-tier system and any back-end systems been tested
under load? Has connection pooling been monitored to assure proper operation?
Page 17
●
Are the activation types for any COM+ applications set properly? Has the application been
tested with the consoles logged on and logged off to assure the proper identity is used?
●
Has the application integration been tested with third-party systems?
●
Have clustering software configuration and failover operations been tested with the
applications?
Additional Considerations
Here are some additional considerations that could apply to your environment. Some of the tasks
performed here are related to operations. Validating these tasks during deployment ensures operations
are prepared to manage the solution and SLAs can be met.
●
Are scheduler jobs defined for common tasks? Jobs like backups, health reporting, etc, is
normally scheduled through a scheduler like cron in Unix. These may have been migrated
over.
●
Is a disaster recovery plan (DRP) established that includes database procedures? Who is
the DRP team leader? Is the leader's contact information well known, and is a contingency
leader appointed?
●
Are the change-control procedures enabled for the operations environment?
●
Are the finalized the operational processes and guidelines in place?
●
Has the team developed, tested, and simulated disaster recovery procedures?
●
Was an external connection used when testing the application against the operations
system? The external connection should be similar to what a customer will use.
●
Was solution training delivered?
●
Is the processing speed acceptable?
●
Have the business objectives and requirements been met?
●
Have operation tests been performed? Steps should be taken to make sure that the
operations team can properly track the servers and services with their monitoring tools.
Quiet Period
The quiet period for the target environment begins after stabilizing the deployed solution and continues
until the deployment is complete. It usually exists for a period of 15 to 30 days. During this period the
operations team manages the deployed solution.
No significant changes should be made to the solution. However, a member from the project team may
aid the operations team to manage and resolve problems that can affect the working of the deployed
solution. This enables the organization to estimate the maintenance costs of the solution and prepare a
budget. Changes made to the solution will be through the process of change management.
During the quiet period the efficiency of the solution can be ascertained by evaluating the
●
Solution's stability
Page 18
●
Solution's downtime
●
Maintenance required by the solution
Transferring Ownership to Operations
The final transition occurs when the project team completes its tasks and transfers the infrastructure,
documentation, and operations to the Operations team. The ownership of the solution is also
transferred to the Operations team.
The Operations team has to understand the functioning of the solution and manage it. The solution's
documentation should supply information required to manage the solution.
The Operations team will require the following documents to handle the solution after migration:
●
User manual. The user manual details the procedures for working with the solution. It
also details the procedures for installation and solution maintenance.
●
Hardware specifications. This document describes the hardware used in the production
environment.
●
Software specifications. This document covers the different applications, such as thirdparty software used by the solution itself or used to stabilize the deployment. The
software specifications also detail the different configurations and settings applied to the
solution during or after the installation and deployment of the solution.
●
Support policies and procedures. This document details the updated business policies
and procedures that need to be followed after the migration is complete.
Project Team Tasks
The project team will examine the deployment to ensure that all areas of the deployment are
successfully completed and functioning as required. A final run of the tests that caused discrepancies
can be used to check that they have been fixed. The project team ensures that:
●
All the procedures of the migration have been followed.
●
Backups are performed as required.
●
All security measures (hardware and software) are in place and operate without issues.
●
All errors and bugs are fixed.
●
Adequate training is provided to operations to manage the solution.
●
Different user accounts have been created and checked for their functionality.
Operations Team Tasks
The operations team will check the solution to ensure that it conforms to the business objectives. The
operations team will:
Page 19
●
Conduct a final run through of the solution to check its performance and stability.
●
Ensure that the project team has completed all the tasks needed to complete the
deployment.
●
Check that the tools to perform routine tasks are set up.
●
Review the documentation.

Decide the frequency for performing routine tasks.
Page 20
CONCLUSION
After the deployment of the solution is complete, the team conducts a review meeting to assess the
migration project. This review covers all the phases of the migration project, including the Envisioning,
Planning, Developing, Stabilizing and Deploying Phases. By taking the time to discuss the entire
migration project, important lessons can be learned and applied to future endeavors. This will also
highlight the positive actions taken to successfully migrate the solution, and the less positive decisions
or actions that delayed or hindered the migration. The project review can also compare the estimated
outcome of the migration project with the actual targets achieved.
The customer sign-off signifies the end of the Deploying Phase. The solution's key stakeholders review
the migrated solution and documentation and confirm that the needs of the project have been met.
Once this sign-off has been received, the project team can be disengaged. The exact terms of this sign
off will depend on the migration requirements for the project.
Page 21
Download