Skip to main content.

Web Based Programming Tutorials

Homepage | Forum - Join the forum to discuss anything related to programming! | Programming Resources

Teach Yourself Oracle 8 In 21 Days

Teach Yourself Oracle 8 In 21 Days -- Ch 18 -- Administering Oracle Replication


Teach Yourself Oracle 8 In 21 Days

Previous chapterNext chapterContents


- Day 18 -
Administering Oracle Replication

Today's lesson completes the three-day section on maximizing uptime and securing your data. On Day 16, "Understanding Effective Backup Techniques," you learned how to back up your database; on Day 17, "Recovering the Database," you learned how to restore that data in the event of a system failure. Today you will learn how to use other techniques to maximize uptime and minimize recovery time.



Not all replication is used for maximizing uptime. It is convenient, however, to include all the benefits and uses of replication in this lesson. Replication can be used for many different purposes, such as read-only copies in satellite locations and multiple access points.

Today you will learn about replication and other methods for reducing downtime, such as the backup database and Oracle failover.

What Is Replication?

New Term: Replication is the facility that allows you to copy database data to multiple local and remote systems. This data can be accessed and modified in certain instances. In many cases, systems are designed so that the remote data is read-only and updates are processed on the master system. There are various options available.

A replicated database might consist of the entire database or of certain tables or tablespaces. This is completely up to you. With Oracle replication, you can configure a number of options to provide whatever features you want.

Replication Options

Oracle provides several replication options; the most basic of these is the read-only table snapshot. This basic method of replication allows you to copy a table to a remote site as a read-only table. Any updates to the table must be made on the master database. This method is described as a "snapshot" because it is a picture of the database at a certain point in time. Unlike other replication options, the read-only table snapshot refreshes the remote copy only on a periodic basis, which you control.

Another option for replication is Oracle advanced replication. With advanced replication it is possible for all replicated objects to be updated. Advanced replication is much more complex than the read-only table snapshot because conflict resolution must be programmed. The advanced replication option can be quite powerful, but it is more difficult to maintain.

Read-Only Table Snapshots

Read-only table snapshots are used when a read-only copy is all that is needed. You might think this method is quite limiting, but in reality it is very useful. Indeed, there are quite a few applications where the read-only table snapshot is sufficient, and even desirable:

Telemarketing--A list of clients should be maintained at a central location and downloaded periodically to each sales office. It is desirable for all offices to have the same client list.

These are just a few examples of places where a read-only replicated table is quite sufficient for the satellite location. With this type of replication, the data on the local or master database is periodically updated to the replicated sites, as shown in Figure 18.1.

Figure 18.1.

Read-only snapshots.

This snapshot can be an entire table or a selected view of that table. In this manner you can keep information in the master table that is not propagated to the replicated sites, such as item costs or sales figures. With replication you have many options for what data you want to replicate and when you want to replicate it.

In some cases you must update the data on each replicated site. This is where the advanced replication option is necessary.

Advanced (Symmetric) Replication

New Term: The Oracle advanced replication option, sometimes known as symmetric replication or updateable snapshots, allows each of the replicated databases to be updated. The updates are typically batched and periodically sent to the other replicated objects. You can, however, configure Oracle to propagate updates immediately. This is known as synchronous data propagation or realtime data replication.

The updateable snapshot method is usually sufficient, but with certain applications it is necessary to use realtime data replication.

With the advanced replication option, the system is sometimes described as having multiple masters. These masters can each have read-only table snapshots if desired. An advanced replication system is shown in Figure 18.2.

Figure 18.2.

An advanced replication system.

With the advanced replication option, you can have multiple sites throughout the country, and each can be used as an independent database. Each of these databases can be updated independently and on a regular basis--and can even be deferred to off hours.

How Does Replication Work?

Replication is quite straightforward. The data to be replicated is defined by a defining query, which determines the data that is to be replicated. After the query is defined, the data is selected from the master and copied to the replicated site.

The defining query is set up so that each row in the replicated table corresponds to one row or part of one row in the master table. The defining query cannot contain an aggregate function or GROUP BY clause.

New Term: After the defining query is set up, it will be executed on a regular basis and its result will be propagated to the replicate systems. This propagation of fresh replicated data is called the snapshot refresh. The snapshot refresh can operate in a couple different modes:

New Term: If multiple tables are involved in the snapshot, you can use a snapshot group. When you define a snapshot group, several different tables can be linked together so that there is transaction consistency within the snapshot (that is, the tables are in sync).

The snapshot refresh can occur manually or automatically, depending on how you configure the master and the replicated site. With an automatic refresh, no operator intervention is required. The snapshots are automatically refreshed on a regular time interval. With manual refresh, the operator determines when the refresh should occur and manually initiates the refresh. If changes to the tables are rare, manual refresh might work for you.

Configuring Replication

Replication can be configured through Replication Manager or manually via SQL commands. What method you use is up to you.

Configuring Using Replication Manager

To configure replication using Replication Manager, you should first make sure the database was created with the advanced replication option. This option is available through the Oracle Database Assistant installation process.


NOTE: If your database was not built with the advanced replication option, you must run the administrative SQL script \orant\rdbms80\admin\ catrep.sql to install the replication packages.

Replication Manager can be invoked from the Enterprise Manager toolbar or from the Oracle Replication Manager program group. After you invoke Replication Manager, you will see the main screen (shown in Figure 18.3).

Figure 18.3.

Oracle Replication Manager.

If you have never run Replication Manager, you might find yourself in the Setup wizard. From here you can create the master and snapshot sites. If you click the Cancel button, you will see that no database connections are set up, so no information can be displayed.

If you had specified advanced replication when you were building the database from the Database Assistant, this would already be set up for you. To invoke the Setup wizard, click Create (see Figure 18.4).

Figure 18.4.

Create the database connection.

After you click Create, the Create DB Connection dialog (shown in Figure 18.5) prompts you to supply information to connect to a database.

Figure 18.5.

The Create DB Connection dialog.

You will also be prompted to set up a propagator. To do so, highlight the database connection from the Replication Manager main screen (system@dogs in this case) and pull down the Edit menu to select properties. To select a propagator, click the Propagator tab (see Figure 18.6). You can choose any of the users you have defined; DBSNMP is a good choice.

Figure 18.6.

The Edit DB Connection dialog.

The next step is to invoke the Setup wizard. Do so by selecting File | Setup Wizard. From here you will be led through a series of screens that will help you configure a replicated system. The first is the Master or Snapshot Site Setup screen, shown in Figure 18.7.

Figure 18.7.

The Master or Snapshot Site Setup screen of the Setup wizard.

Here you can specify whether you are setting up a database as a master site or as a snapshot site. Both require initial setup.

Configuring the Master Site

Configuring the master site involves setting up a replication account and privileges as well as setting up scheduling for the snapshots. To do so, perform these steps:

1. First you'll see the Select Master Sites screen, shown in Figure 18.8. Here you set up the database that will serve as the master.

Figure 18.8.

The Select Master Sites screen of the Setup wizard.

2. Clicking the New button invokes the New Master Site screen, shown in Figure 18.9. Enter the database connection name and the SYSTEM password on this screen.

Figure 18.9.

The New Master Site screen of the Setup wizard.

3. After you select the master site, you will be prompted for the default administrator and the propagator/receiver, as shown in Figure 18.10. I prefer to use the default settings in this case.

Figure 18.10.

The Default Admin/Propagator/Receiver screen of the Setup wizard.

4. If a propagator already exists, you will be prompted for a password (see Figure 18.11). By default you will be prompted for the password for the default propagator DBSNMP. If you don't know the password, try DBSNMP.

Figure 18.11.

The Existing Propagator's Password screen of the Setup wizard.

5. In the New Replicated Object Schema screen, shown in Figure 18.12, you can choose to create a new schema to hold replicated objects. It is not necessary to choose any schemas at this point but this is a convenient place to do it.

6. The next screen schedules the time for replication and a replication interval. You can leave the default to replicate once per day or change it, as shown in Figure 18.13.


NOTE: The values entered here represent the username and password of the account that does the replication. This account will be created by the Setup wizard.

Figure 18.13.

The Defaults for Scheduled Links screen of the Setup wizard.

7. The next screen, which resembles the one shown in Figure 18.13, allows you to schedule default purging. The purge schedule lets you ordain what time the deferred transaction queues are purged.

8. The Master Site Customizations screen, shown in Figure 18.14, allows you to customize the master site as desired. Select a site and click the Customize button to modify users, the using clause, and so on.

Figure 18.14.

The Master Site Customizations screen of the Setup wizard.

9. The Finish screen, shown in Figure 18.15, consists of an option to record the actions to be taken to a PL/SQL script. Enabling this option is a good idea if you want to be able to re-create these actions in the future.

Figure 18.15.

The Finish screen of the Setup wizard.

10. After you complete the Finish screen, you will be presented with a summary of the actions to be taken in the Setup Wizard Finish screen. If everything looks fine, click OK; the master setup will commence (see Figure 18.16).

Figure 18.16.

The Setup Wizard Finish screen of the Setup wizard.

Configuring the Snapshot Site

Configuring the snapshot site is similar to configuring the master site. The Setup wizard leads you through a series of screens to help you set up the snapshot site correctly:

1. First you'll see the Master Site Selection screen, where you select the site that will be the master for this snapshot site and provide the SYSTEM password.

2. After you have selected the master site, the Setup wizard connects to it to obtain information it needs for the configuration and to validate the connection.

3. Select the snapshot site via the Select Snapshot Sites screen, which resembles the Select Master Sites screen shown in Figure 18.8. From here you select one or more snapshot sites.

4. Clicking the New button invokes the New Snapshot Site screen, where you enter the site name and the SYSTEM password (see Figure 18.17).

Figure 18.17.

The New Snapshot Site screen of the Setup wizard.

5. After you select the master and the snapshot site, you must set up the propagator and the replication administrator. This is done in the Snapshot Site Defaults screen, shown in Figure 18.18. The defaults usually work very well.

Figure 18.18.

The Snapshot Site Defaults screen of the Setup wizard.

6. You will be presented with the Defaults for Scheduled Links screen, which allows you to customize the update schedule just as you did in the previous section. Change this schedule to update at a faster or slower rate.

7. As with the master setup, you must also set the default purge schedule. This is done in the Default Purge Scheduling screen, which enables you to select an interval expression and rollback segment.

8. As with the master setup, you are given the opportunity to customize the snapshot site with the Snapshot Site Customizations screen, shown in Figure 18.19. Select a snapshot site and click the Customize button to modify users, the using clause, link scheduling, and the schema.

9. In the Finish screen, you have the option of running the setup or writing the steps to a script. If you write them to a script, you can get an idea of what steps are performed and you have a record of the operation.

10. After you finish the Setup wizard, you are presented with the Setup Wizard Finish screen (see Figure 18.20), which summarizes all the actions to be taken. When you are satisfied with the steps, click OK and the setup will begin.

Figure 18.19.

The Snapshot Site Customizations screen of the Setup wizard.

Figure 18.20.

The Setup Wizard Finish screen of the Setup wizard.

Both the master and snapshot setups offer a variety of different options. If you don't know which options to use, click the Help button for an explanation of the option. The online help is fairly complete and can be quite useful.

Creating the Snapshots Using Replication Manager

Now that you have set up the replication master (replicated from) and replication slave (replicated to), the final step is to set up the replication objects. To do so, follow these steps:

1. From the main screen of Replication Manager, select the master, then select File | Create New | Snapshot. This invokes the Snapshot wizard, where you can select what type of snapshot to create. I have chosen a simple snapshot, as shown in Figure 18.21.

Figure 18.21.

The Basic Type screen of the Snapshot wizard.


NOTE: Before you can create the snapshot, you must create a database link from the menu where you chose the Create Snapshot option. This link is scheduled between the master and the slave. It is also necessary to create a snapshot log on the database object on the master if you intend to do fast updates. This can be done through Replication Manager.
2. After you have selected the type of snapshot, you will be asked for the database link. Select the database link you scheduled from the Master Link screen shown in Figure 18.22.

Figure 18.22.

The Master Link screen of the Snapshot wizard.

3. Select the master table on which to create the snapshot by selecting the schema and then the table, as shown in Figure 18.23.

Figure 18.23.

The Master Table screen of the Snapshot wizard.

4. You are given the option of restricting the data in the snapshot via a WHERE clause. You can define this WHERE clause in the Where Clause screen, shown in Figure 18.24.

Figure 18.24.

The Where Clause screen of the Snapshot wizard.

5. Define the refresh group in the Refresh Group screen, shown in Figure 18.25. If you do not yet have refresh groups, you can create one by clicking the Create New button.

Figure 18.25.

The Refresh Group screen of the Snapshot wizard.

6. To create a refresh group, type the refresh group name in the Create Refresh Group screen, as shown in Figure 18.26.

Figure 18.26.

The Create Refresh Group screen of the Snapshot wizard.

7. The Tablespace and Extent Characteristics screen, shown in Figure 18.27, allows you to change the tablespace and extent characteristics. Leave these at the default unless you have a reason to change them.

Figure 18.27.

The Tablespace and Extent Characteristics screen of the Snapshot wizard.

8. You have completed all the necessary steps and have reached the Finish screen. As with most Oracle wizards, you must click Finish on the final screen to proceed with the operation.

9. The Finish Snapshot Wizard screen (see Figure 18.28) summarizes all the operations to be performed. At this point you should review the snapshot-creation operation to determine whether all the options have been set up correctly. If you are satisfied, click OK.

Figure 18.28.

The Finish Snapshot Wizard screen of the Snapshot wizard.

After the snapshot is configured, the database link refreshes the snapshot on a regular basis. You can set many small details and options; I have not gone into all of them here. Consult the Oracle documentation or the online help to better use all the options.

Configuring Using the CREATE SNAPSHOT Command

You can define a snapshot via the CREATE SNAPSHOT SQL statement, which is sometimes more useful if the query is complex. Use the CREATE SNAPSHOT command in conjunction with a query to create the snapshot-defining query. An example of a defining query is shown in Listing 18.1.

INPUT:

Listing 18.1. Creating a snapshot.

CREATE SNAPSHOT etw.dogs AS
SELECT name, owner_name
FROM dogs, dog_owners
WHERE dogs.owner_id = dog_owner.id; 

ANLYSIS:

This creates a snapshot using a join between the dogs table and the dog_owners table. This snapshot can then be used to set up replicated sites.

Using Advanced Replication

Advanced replication can be used for a variety of different uses: for remote disconnected sites (portable computers), for distributing application loads, and to create failover sites in the event of system failure. Oracle's advanced replication option does not work in quite the same way as the snapshot-replication method. Because multiple sites might be modifying data, it would not work to simply copy the database on a regular basis. Instead, changes are saved and queued to be run on other replication sites.

New Term: Oracle replicates changes on a row basis; this is known as row-level replication. These row changes are saved and queued to run at a later time on the replicated systems. I suggest that you read the Oracle documentation if you want a detailed description of the steps taken to perform advanced replication.

Using Advanced Replication for Disconnected Sites

Advanced replication can be used in a disconnected environment where some of the replicated systems are periodically disconnected and reconnected. For example, these systems can be used with portable computers where they are used on the road (disconnected) and reconnected to the network nightly via modem.

In this manner, the snapshot can be refreshed each night, causing the database to be resynced with other masters. The portable data and the data on the home system can be synced every night, providing the traveling user with regular updated access to corporate data.

Using Advanced Replication for Distributed Workloads

When your database's workload is spread across different areas of the country, it might be beneficial to use advanced replication to allow local access to your corporate data. If the replicated databases are local, access times will be reduced and the data will be available regardless of the state of the wide area network.

If you use advanced replication, each site can perform its own updates and the changes can be propagated nightly to the other systems. There are a few problems, however, if the same records are updated at multiple sites. You must address this when you configure the conflict-resolution setup for advanced replication.

If your database handles a large number of updates that typically involve the same records, replication might not be suitable for your configuration. But if you have only a few updates, and if they do not typically involve the same data, replication might be suitable.

Using Advanced Replication for Quick Recoverability

Advanced replication can serve a variety of different purposes, one of which is quick recovery in the event of a catastrophic system failure. If you use the advanced replication option, an entire database can be replicated. Not only can the database be used during normal operations, but if one of the systems should happen to fail, the users can use one of the available replicated sites.

Using a Standby Database

New Term: Another method sometimes used for quick recovery is the Oracle standby database. A standby database is a complete copy of your primary database, but it is constantly in recovery mode. Each time a log switch occurs on your primary database, the archived log file is applied to the standby database, bringing it up to date.

In the event of a catastrophic system failure, the standby database can be used as the primary database. In the event of a failure on the primary system, you can archive the current log files using the ALTER SYSTEM ARCHIVE LOG CURRENT command. This creates an archive log file of the current redo log file. In this manner, the standby database can be made current with the primary database.

The standby database is designed to be used only as a recovery mechanism. After the standby database has been activated, it becomes the primary database. The original database can later be re-created as the standby database, but you cannot switch back to the original. More details on the standby database can be found in Oracle8 Server Backup and Recovery Guide.

Using Read-Only Tablespaces

By using read-only tablespaces in areas where updates are not necessary, you can reduce downtime spent in recovery. Because the RDBMS knows that a tablespace marked as read-only cannot be updated, the normal recovery process will be skipped. In the event of media failure on the volume containing the read-only tablespace, you must restore the damaged datafiles, but no instance recovery is necessary.

All tablespaces are created read-write and must be populated with data to be considered useful. After the data and indexes have been created to your specifications, the tablespace can be made read-only. This can happen in several ways. For example, Enterprise Manager or Storage Manager can be used to modify a tablespace to be read-only, as described in the previous section. Simply go to the Tablespace Modification screen, shown in Figure 18.29, and click the Read Only box. Invoke this screen by selecting the desired tablespace from the Storage Manager.

Figure 18.29.

Making a tablespace read-only.

The tablespace can also be made read-only via the ALTER TABLESPACE command. The syntax will look something like this:

ALTER TABLESPACE DOGS READONLY;

There are several uses for the read-only tablespace, but they are fairly specific. Whether you can take advantage of it depends on your applications. If you have a large amount of static data that can be put on slower media, the read-only tablespace might be advantageous. Also, if you want to guarantee that archival data is not modified, a read-only tablespace might work.

Summary

Today you learned how Oracle replication works and how to configure it via Replication Manager. You also learned a few ways to reduce downtime by using replication and by using the standby database feature. You learned how using read-only tablespaces can reduce the amount of time it takes to recover a tablespace, because Oracle knows that no changes have been made to it.

Replication is a very specific option and is useful only in very specific cases. If you can take advantage of replication with your system, you will see very good results.

What's Next?

In tomorrow's lesson, "Advanced Oracle Options," you will learn about some of the advanced options available to Oracle, including the Oracle Parallel Server (OPS) and Oracle Parallel Query options.

The Oracle Parallel Server option, an add-on feature, allows more than one instance of Oracle to share the same database. This allows two or more systems to simultaneously access the same data, providing a performance boost and failover capabilities. This linking of systems to form one larger system has traditionally been called a cluster.

The Parallel Query option can provide a good-to-outstanding performance improvement over traditional query operations by splitting some operations into multiple processes or threads. Tomorrow you will learn how the Parallel Query option works and how to use it.

Q&A

Q What is replication?

A Replication is a feature that allows a database or schema object(s) to be copied to another system.

Q What types of replication does Oracle offer?

A Oracle offers several types of replication: read-only table snapshots, updateable snapshots, and realtime data replication.

Q What is a standby database?

A The standby database is a database that is constantly in recovery mode, recovering archived log files from the primary database. In the event of a failure, the standby database can immediately substitute for the primary database.

Q How does a read-only tablespace help speed up recovery?

A Because a tablespace is marked read-only, Oracle knows that no instance recovery is necessary. That tablespace can then be skipped.

Workshop

The workshop provides quiz questions to help you solidify your understanding of the material covered and exercises to provide you with experience in using what you've learned. Find answers to the quiz questions in Appendix A, "Answers."

Quiz

1. What is a read-only table snapshot?

2. What is an updateable snapshot?

3. What is realtime data replication?

4. What is a master site?

5. What is a snapshot site?

6. What are some uses of read-only table snapshots?

7. What are some uses of advanced replication?

8. What is the difference between a complete refresh and a fast refresh?

9. What is a standby database used for?

10. Why would you use a read-only tablespace?

Exercises

1. Use Replication Manager to set up a master site.

2. Use Replication Manager to set up a snapshot site.

3. Use Storage Manager to make a tablespace read-only.

4. Set that tablespace back to read-write.


Previous chapterNext chapterContents


© Copyright, Macmillan Computer Publishing. All rights reserved.