Concepts of NonStop SQL/MX: Part 4 - Storage.
Upcoming SlideShare
Loading in...5
×
 

Concepts of NonStop SQL/MX: Part 4 - Storage.

on

  • 1,168 views

Part 4 in the series of Concepts of NonStop SQL whitepapers.

Part 4 in the series of Concepts of NonStop SQL whitepapers.
This paper introduces database Storage in NonStop SQL and compares it to Oracle storage

Statistics

Views

Total Views
1,168
Views on SlideShare
1,168
Embed Views
0

Actions

Likes
1
Downloads
34
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Concepts of NonStop SQL/MX: Part 4 - Storage. Concepts of NonStop SQL/MX: Part 4 - Storage. Document Transcript

  • Technical white paperConcepts of NonStop SQL/MXPart 4. Introduction to SQL/MX StorageTable of ContentsIntroduction ............................................................................................................................................................. 2 Intended audience .............................................................................................................................................. 2 Examples............................................................................................................................................................. 2Database storage .................................................................................................................................................... 2 Volume managers ............................................................................................................................................... 2Introduction to SQL/MX storage.............................................................................................................................. 2 Oracle tablespaces compared to NonStop volumes........................................................................................... 2 NonStop SQL subvolumes .............................................................................................................................. 4 Similar but not equal ...................................................................................................................................... 5 Database blocks ............................................................................................................................................. 5 Extents are the allocation units ..................................................................................................................... 5 Creating tables and indexes................................................................................................................................ 5 Table and index partitions .................................................................................................................................. 6 Tables ............................................................................................................................................................. 6 Indexes ........................................................................................................................................................... 9Conclusion ............................................................................................................................................................. 11References............................................................................................................................................................. 11For more information ............................................................................................................................................ 11 Other articles in this series ............................................................................................................................... 11 Other interesting reads ..................................................................................................................................... 11
  • Introduction When customers migrate Oracle applications to NonStop SQL/MX, DBAs with an Oracle background may feel a bit lost, since both products have their specific solutions to common practices such as, for example, disk storage and user access. This article is one in a series, inspired by the Oracle Database: Concepts 11g Release 2 manual, and tries to explain some of those differences in implementation. Other articles will address other differences. Intended audience This article is written for DBAs and developers who know Oracle and want to learn about NonStop SQL/MX. It may also be useful for people who know NonStop, and would like to know about similarities and differences between the two products. Examples In this article, the Oracle examples use the SQL*Plus command interface, and the NonStop SQL/MX examples are made using mxci equivalent. The SQL*Plus commands are indicated by the “SQL>” prompt; those in mxci are indicated by “>>”. Database storage In Oracle there are different ways to manage database storage. It has its own file system, called Oracle Automatic Storage Management (ASM), which can be used to manage database files in a single machine or in a cluster environment. As an alternative to using ASM, which is an extra layer of software, customers have used the Operating System (OS) file system to store the data on a single system or a clustered file system to do the same in a cluster. “Raw partitions” are used to bypass the operating system buffers to provide Oracle full access to the disk. Volume managers The software that manages mass-storage devices is called a Logical Volume Manager (LVM) because it allows a system administrator to view all physical hard disk drives (HDD) or HDD partitions as a single storage source. Oracle ASM is a volume manager for Oracle databases. Others LVM implementations can be found in HP-UX, Linux, IBM AIX, and the VERITAS file system. On NonStop servers, the volume manager is integrated into the OS and the term “volume” refers to a logical disk. A logical disk is a physical disk (RAID 0) or a mirrored pair (RAID 1). Starting with OS releases J06.12 and H06.23 physical disks can be partitioned into multiple logical volumes. When a Storage Area Network (SAN) is connected to a NonStop server, a volume is mapped to a Logical Unit which can be configured with the SAN as a RAID-n volume. A NonStop volume is managed by a fault-tolerant process pair, the Disk Access Manager (DAM) also known as DP2. All access to data on a volume is performed by the DAM; it contains part of the SQL execution engine, it is responsible for the caching of data for the volume and for maintaining row-locks. Introduction to SQL/MX storage This paper may well have been called: “Where are the tablespaces?”, because, unlike Oracle, SQL/MX does not use tablespaces for managing storage. An Oracle tablespace is a logical grouping of one or more data files. When Oracle tables and indexes are created, they are assigned to a tablespace and physically placed inside the files that make-up the tablespace. Conversely, in NonStop SQL/MX, tables and indexes are directly associated with files. The NonStop DBA uses a “LOCATION” clause to assign a database object such as a table, an index, or a partition to a disk volume, and optionally to a physical file. Both products isolate logical data structures, such as tables and indexes from the physical placement of the data on disk. That way, changes in the physical structures, such as accommodation of growth, can be supported without changing the business applications. The next sections describe the differences in more detail. Oracle tablespaces compared to NonStop volumes Tables in Oracle are created within tablespaces. A tablespace is a collection of one or more OS files. A tablespace is also a container of segments; and segments are a logical way of defining Oracle objects that contain data. Different types of segments exist including—tables, indexes, and undo and temporary segments. To facilitate database management, the undo and temporary segments are usually placed in separate tablespaces: a typical Oracle database contains the SYSTEM and SYSAUX tablespaces, one or more user tablespaces, and the UNDO and TEMP tablespaces. Figure 1 shows the relationship between tablespace, OS files, and database objects. The figure shows that a table, T02, can be split over multiple OS files, if the tablespace also spans multiple files.2
  • Figure 1. Oracle tablespace containing two data files and three tablesNonStop SQL does not use tablespaces and segments to contain database objects. Instead it refers to volumes, and thesemap to physical, optionally mirrored, disks. A volume is a container of files, and in NonStop SQL, files are used to store tableand index data. The equivalents to Oracle UNDO tablespaces are the AUDIT volumes that are dedicated to the AUDITTRAILdata, which is used for file and volume recovery. These AUDIT volumes contain recovery data not only for SQL/MX databasesbut also for SQL/MP and Enscribe files. Data recovery on a NonStop system is based on the data volume, independent of thedatabases that are protected by the Transaction Monitoring Facility (TMF). TMF is the system wide, integrated, transactionmonitor, and resource manager that protects the data integrity of all audited files, regardless of the database product.NonStop SQL does not require dedicated temporary space; by default, unallocated space on any volume can be used fortemporary scratch space. However, the system manager can dedicate certain volumes to, or explicitly exclude volumes fromscratch space usage.Every NonStop node has a SYSTEM volume, called $SYSTEM, that is used by the Operating System for all users of thesystem. By common practice, no user data is stored on this volume. Every Oracle database has a SYSTEM tablespace, whichcontains metadata that is used by all users of the database. It is possible, but not common practice to store user data inthis tablespace. 3
  • Figure 2 shows the same three tables placed on volumes on a NonStop server. A table (T02) can span multiple volumes. Note that a volume may also contain objects that belong to another database; it can also contain non-database files. Figure 2. Volumes containing three NonStop SQL tables NonStop SQL subvolumes Part 2 of this series—“Introduction to Catalogs and other Objects”—provides additional information about table locations, such as the role of a subvolume. Subvolumes are logical subdivisions of a volume, used to group database objects by schema, similar to UNIX® subdirectories or Microsoft® Windows® folders. When a schema is created, the name of the subvolume can be defined by the DBA, or the system will assign one. Subvolumes allow the system manager to organize all the data objects of a schema regardless of the volume on which they are placed. Figure 3 shows how a test schema and a production schema can share volumes based on explicitly named subvolumes. Figure 3. Subvolume grouping of NonStop SQL tables If the subvolume names are explicitly specified with meaningful names when a schema is created a system administrator will be able to identify all data objects by their OS subvolume name without having to query database metadata. Note however, that these meaningful names must start with “ZSD”, which identifies the subvolume as SQL/MX specific to the OS. The example uses subvolume “ZSDTEST1” for a test schema and “ZSDPROD1” for a production schema. In this example, all4
  • data objects for the test schema can be located using the following shell command. Note the use of the capital G to directthe shell to the file system that is used for database files. 1 /bin/ls /G/*/zsdtest1/*Similar but not equalReading the above, one might think that NonStop volumes correspond closely to Oracle tablespaces. However, there aresignificant differences.NonStop volumes are similar to tablespaces, because Oracle tables and indexes are located in one or more tablespaces justlike NonStop tables and indexes are placed on one or more volumes.NonStop volumes are different, because one volume can hold data from multiple databases, even owned by different users.For example, the SALES database can have a table created on a volume named $DATA01 and this volume can also holdtables from the INVENTORY database. Volume names are unique for a NonStop node; Oracle tablespaces are uniqueper database. For example, every Oracle database has a SYSTEM tablespace, but tablespaces cannot be sharedbetween databases.Each NonStop node has its own volume names that are unique to the node. For example, a node called EAST can havevolumes called $SYSTEM and $DATA01 and another node, called WEST can use these same volume names: $SYSTEM and$DATA01. When databases outgrow a single node, the volume names remain unique, because the NonStop OS (and NonStopSQL) automatically prefix volume names with the node name in a distributed environment. This way, a table calledINVENTORY can be located (in fact, partitioned) on EAST.$DATA01 and WEST.$DATA01, transparently to the application.A major difference between Oracle tablespaces and NonStop SQL volumes is how they are managed by the system. NonStopSQL is a shared nothing architecture: a server consists of independently operating processors, each with its own memoryand copy of the OS and each with its own storage devices, the volumes. A NonStop server is in fact a cluster providing asingle-system image to the user. Every volume manager, called the Disk Access Manager (DAM), owns all data of thatvolume: the locks, the cache or database buffers: nothing is shared with other DAMs.In contrast, Oracle is a shared everything architecture: multiple processors share a single memory. There is only one copy ofthe OS and it schedules the threads and processes to run, and they share the memory. Oracle maintains one single SystemGlobal Area (SGA), and it contains the database buffers and the locks for all of the data that belongs to a database. WhenOracle uses multiple nodes in a RAC cluster, the data is located on a storage device that is shared by all the nodes in thecluster. The tablespaces on each node map to the same data. There will be multiple SGAs, one on each node, but becauseeach node has an SGA that maps to the data on its node, cached data for a table can be in memory on different nodes andOracle must maintain data consistency across the nodes when this data is updated.Database blocksBefore Oracle9i, all blocks in a database had to be of the same size. Beginning with this release, multiple block sizes arepossible within a database; however, all blocks in a tablespace must be of equal size. NonStop SQL/MX allows tables andindexes to have blocks of either 4 KB or 32 KB. All partitions of a table or index must have the same block size, but the sizeof the cache is configurable at the volume or DAM level, as needed, without application interruption. It is not uncommon todefine a table with small rows to have a block size of 4 KB while its index has a block size of 32K.Extents are the allocation unitsBoth systems use extents as the basic, contiguous allocation unit. An Oracle segment or a NonStop SQL table or indexconsists of an INITIAL or PRIMARY extent and optionally multiple secondary extents. Initially, a contiguous amount of space,the INITIAL (Oracle) or PRIMARY (NonStop SQL) extent, is allocated on the disk. When this first extent is full, more extentscan be allocated as new rows are inserted, but these extents may not reside next to the other extents on the disk. Havingmany extents may therefore cause slowdown of data access; especially in the case of full-table scans. Oracle and NonStopSQL use the value of MAXEXTENTS to define a maximum size for a data object. However, the default value in Oracle is“unlimited”; an SQL/MX DBA must pay attention to setting the values for the extent sizes as well as MAXEXTENTS to preventfiles from becoming full.Creating tables and indexesThe paper “Introduction to catalogs and other objects” introduces NonStop SQL tables and indexes. This section expandsthat discussion to aspects of data storage.When a DBA creates tables and indexes, he or she must also decide where to place them; there must be space to store thedata, and access to this data should not cause bottlenecks in the system.1 The /G filesystem is mapped to the traditional Guardian operating environment. All TMF protected files (NonStop SQL/MP, NonStop SQL/MX, and Enscribe) are located in this filesystem; as are other objects such as control files and source code, Guardian scripts, and program files. 5
  • In Oracle, the DBA must first create tablespaces and map them onto OS files in the file system. In SQL/MX, when tables and indexes are created, they are mapped directly to OS files. An Oracle DBA needs to decide in which tablespace(s) the table or index will be created, and a NonStop DBA needs to decide on which volume(s) a table or index will be created. Both DBMSs will use a default location when nothing is specified at creation time—Oracle uses the user’s default tablespace 2; NonStop SQL will create the table on the user’s default volume. 3 Table and index partitions Database management systems use partitions to spread the data over more locations, either to overcome the size limitations of the storage hardware (to allow for very large tables), or to prevent disks from getting overloaded by a high volume of requests in OLTP systems. A DBA may also choose to partition the data because maintenance operations such as backup, reorganize, and relocate can often be performed at the partition level. NonStop SQL supports partitions, since its first implementation in 1987, to allow a database file to exceed the size of a single volume. Oracle introduced partitions in 1997 with Oracle 8 to accommodate very large tables. Before the partitioning option existed, the size of an Oracle table was limited to that of the tablespace; although its size could be increased by adding more data files. With the partitioning option, a table can be partitioned over multiple tablespaces. The Oracle Partitioning Option is only available in the Enterprise Edition and is a separately priced product. Besides range- and hash-partitioning, the Oracle Partitioning Option allows many more ways to partition data including list partitioning, sub partitions, and interval partitioning. Both systems however, provide range and hash partitioning. Based on the partitioning key column values, the system determines where (in which partition) to store or retrieve a row. In Oracle, the partitioning key can be any column (or combination of columns). SQL/MX requires the partition key columns to be part of the clustering key, and the clustering key columns must have the NOT NULL and NOT DROPPABLE constraints. Tables Oracle’s heap-organized tables do not have an equivalent in SQL/MX because all tables are index-organized using B-tree indexing. SQL/MX differentiates between primary keys and storage, or clustering, keys, although DBAs frequently choose to store SQL/MX tables by their primary keys. Primary key Every row in an SQL/MX table has a unique identifier, the Primary Key. However, if no primary key is specified when a table is created, the system adds a column, called the SYSKEY, to uniquely identify each row. When rows are inserted, SQL/MX automatically generates unique values for this SYSKEY. Clustering and partition keys The clustering key determines the order in which the rows are stored in the table or a partition and the structure of the B-tree index through which they are accessed. In most cases, the clustering key will be the primary key. If no primary key is defined, the STORE BY clause of the CREATE TABLE command allows the rows to be stored together (clustered). In this case, SQL/MX adds a SYSKEY column for uniqueness. The clustering key also determines the partitioning key: the columns that are used to partition the data must be part of the clustering key, but can be in a different order. In Figure 5, the table has a STORE BY clause of order_id, prod_id, time_id, but the partitioning key is time_id. Range partitions In a range-partitioned table, rows are mapped to partitions based on the range of values of the partitioning key. In Oracle, the boundary of a partition is based on the highest value that a partition can contain; SQL/MX determines the partition boundary based on the lowest (or FIRST KEY) value. Both Oracle and SQL/MX allow additional storage parameters, such as the partition name, the location (tablespace or volume), and extents parameters. The examples show how a range-partitioned sales order table might be defined in Oracle 4 (Figure 4) and in SQL/MX (Figure 5). Note that the partition boundaries and the partition keys are defined differently. Also, note that the Oracle definition places all partitions of the table in the user’s default tablespace. 2 When a user is created in Oracle, a default tablespace can be assigned. 3 When a user is created in the NonStop OS, a default volume can be assigned. 4 This is a modified version of the example listed in the Oracle Concepts manual.6
  • Figure 4. DDL for an Oracle partitioned tableSQL> CREATE TABLE sales_orders( prod_id NUMBER(6), order_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10,2))PARTITION BY RANGE (time_id)(PARTITION SALES_1998 VALUES LESS THAN (TO_DATE(01-JAN-1999,DD-MON-YYYY)),PARTITION SALES_1999 VALUES LESS THAN (TO_DATE(01-JAN-2000,DD-MON-YYYY)),PARTITION SALES_2000 VALUES LESS THAN (TO_DATE(01-JAN-2001,DD-MON-YYYY)),PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE));Table created.SQL>Figure 5 shows how the table is defined in NonStop SQL/MX. The LOCATION clause is used to assign partitions to volumesand to give partitions a meaningful name (SALES_1998 through SALES_2001). While it is possible to store all partitions onthe same volume, typically, separate volumes are defined. In SQL/MX, the first partition is implicitly defined (in the example,this is SALES_1998, located on $DATA01) and the other partitions are added using the ADD FIRST KEY clauses.Figure 5. DDL for an SQL/MX partitioned table>> CREATE TABLE sales_orders( prod_id NUMERIC(6) NOT NULL, order_id NUMERIC (6) NOT NULL, cust_id NUMERIC, time_id DATE NOT NULL, channel_id CHAR(1), promo_id NUMERIC(6), quantity_sold NUMERIC(3), amount_sold NUMERIC(10,2), primary key (order_id, prod_id, time_id))STORE BY PRIMARY KEYLOCATION $DATA01 NAME SALES_1998RANGE PARTITION BY (time_id)(ADD FIRST KEY (DATE 1999-01-01) LOCATION $DATA02 NAME SALES_1999 ,ADD FIRST KEY (DATE 2000-01-01) LOCATION $DATA03 NAME SALES_2000 ,ADD FIRST KEY (DATE 2001-01-01) LOCATION $DATA04 NAME SALES_2001);--- SQL operation complete.>>In both tables the time_id columns determines in which partition the row is located; however, SQL/MX requires that thepartition key is also part of the storage key. In SQL/MX, there are different ways to define the table such that it can bepartitioned on the time_id column. One can use the STORE BY (time_id) clause, which adds a SYSKEY to the row. Anotherway is to define a set of columns as a primary key. In this example, the combination of order_id, product_id, and time_id isunique, and therefore these columns are used to form the storage and primary keys.Note that in Oracle you will specify four partitions using the PARTITION clauses, whereas in NonStop SQL, the tabledefinition already includes the first partition and three more are specified using the ADD FIRST KEY clauses. BecauseNonStop SQL tables are always index organized, equivalent to Index Organized Tables (IOT) in Oracle, every partition has itsown index structure included. 7
  • Hash partitions When a table is hash-partitioned, the DBMS applies an internal hash algorithm 5 to the partitioning key, and the outcome of the function determines the number of the partition in which to store the data. The purpose of the hashing algorithm is to evenly distribute the rows across the partitions, such that each partition will contain about the same number of rows. Defining a hash-partitioned table is easier for a DBA, who does not need to consider the distribution of values of the partitioning key that could lead to unequal partition sizes. However, when a new partition is added to a hash-partitioned table, the content of the table must be redistributed over all partitions. When a partition is added to a range-partitioned table, the effect on the existing partitions is limited. For example, adding a new date-range to an existing range might only be a metadata change that involves no data movement. Figure 6. Hash-partitioned table DDL for Oracle and SQL/MX Oracle hash-partitioned table SQL/MX hash-partitioned table SQL> CREATE TABLE hash_sales_orders >> CREATE TABLE hash_sales_orders ( prod_id NUMBER(6) ( prod_id NUMERIC(6) NOT NULL , order_id number(6) , order_id NUMERIC (6) NOT NULL , cust_id NUMBER , cust_id NUMERIC , time_id DATE , time_id DATE , channel_id CHAR(1) , channel_id CHAR(1) , promo_id NUMBER(6) , promo_id NUMERIC(6) , quantity_sold NUMBER(3) , quantity_sold NUMERIC(3) , amount_sold NUMBER(10,2) , amount_sold NUMERIC(10,2) ) , primary key (order_id, prod_id) PARTITION BY hash (prod_id) ) partitions 4 LOCATION $DATA01 NAME PART01 ; STORE BY PRIMARY KEY Table created. HASH PARTITION BY (prod_id) ( ADD LOCATION $DATA02 NAME PART02 , ADD LOCATION $DATA03 NAME PART03 , ADD LOCATION $DATA04 NAME PART04 ); --- SQL operation complete. The table in Figure 6 shows how the earlier sales_orders table is defined in Oracle and in SQL/MX. In this example, Oracle will generate partition names and store them all in the tablespace that has been set up as the user’s default (or the SYSTEM tablespace). In the NonStop example, partitions are added using the ADD partition clause, which requires a LOCATION clause. Notes: • The partition name is optional. • Multiple partitions may be placed on a single volume. This is usually only done to simulate a large database on a small system. • For convenience to Java, ODBC, and mxci users, NonStop SQL/MX supports a feature called Partition Overlay Support (POS), which allows the DBA to use CQDs 6 to define the number of partitions and a range of volumes to choose from. If these CQDs are set, SQL/MX will create a hash partitioned table automatically. 5 The SQL/MX function HASHPARTFUNC (partitioning_key , num_partitions) can be used to determine the partition number where a row would be stored if the partitioning_key would be the hash key for a table with num_partitions partitions. 6 These Control Query Defaults (CQDs) are POS_NUMBER_OF_PARTNS and POS_LOCATIONS.8
  • IndexesAn index is a data structure that improves the speed of data retrieval on a table. The most commonly used type of indexstructure in database management systems is the B-tree. Oracle supports other index types besides B-trees; all NonStopSQL indexes are B-trees. At the bottom of the tree are the leaf nodes that contain a pointer to the data or the data itself. InOracle, the leaf nodes in an index contain the ROWID, which is a pseudo column that returns the address of a row. NonStopSQL does not use ROWIDs; every table must have a primary key (either user- or system supplied) and the leaf nodes of abase table index (the Primary Key index) contain the base table data. Alternate indexes in NonStop SQL are separate datastructures that ultimately contain the primary key columns of the underlying base table.Structurally, SQL/MX indexes are the same as SQL/MX tables. A query that accesses base table data using an index key infact performs a SQL join of the index and its table on the value of the primary key. This implies that, if all base table fieldsthat are required in a query are present in the index, the base table does not need to be accessed and an index-only query isperformed. An index can so be joined with another base table, provided the index columns cover the query.Indexes can be hash- or range partitioned, just like ordinary tables. However, index key columns may contain NULL values,whereas table keys may not be NULL.The primary key data structure of any table is included in the table itself, just like in Oracle’s Index Organized tables. It istherefore not needed to create separate indexes for the primary keys in SQL/MX tables. In many cases, even creation ofindexes on parts of a multi-column primary key is not required because the Multi Dimensional Access Method (MDAM) can beused on all indexes including the primary key.Unique indexesIn fact, all index entries are unique. If a DBA creates a non-unique index on a table, Oracle adds the ROWID and NonStop SQLadds the primary key columns to enforce index uniqueness. Conceptually, NonStop SQL creates a non-unique index on(COL1, COL2) as:CREATE UNIQUE INDEX IX on TAB(COL1, COL2, PKEY);Oracle conceptually creates the same index as:CREATE UNIQUE INDEX IX on TAB(COL1, COL2, ROWID);Partitioned indexesCompared to Oracle’s indexes, all indexes in NonStop SQL/MX are “global indexes”; they are partitioned independently ofthe table on which they are created. The number of partitions can be different from that of the base table and they do nothave to reside on the same volumes, but if so desired, they can be co-located on the same volumes and even partitioned thesame way as the base table. Defining index partitions depends on how the index is used by queries, just as the reason tocreate an index depends on the use of the data by queries.For example, in most cases an index is partitioned on the index key. The database can read one or more index blocks andknows all the primary key values of the base table. However, if an index is partitioned on the same columns as the basetable, SQL/MX will read multiple partitions in parallel to find the primary key values of the base table.Consider a table with primary key Col1 and an index on Col2 with contents, as pictured in Figure 7. If the index is partitionedthe same way as the base table, SQL/MX must read both index partitions to retrieve a given index key. However, if the indexis partitioned based on the values of the index key Col2, as is shown in Figure 8, it only needs to access a single partition tofind all the matching rows. 9
  • Figure 7. Index partitioned on storage key of base table If the index is partitioned the same way as the base table, each index partition will contain as many rows as each base table partition. This could benefit a parallel scan that accesses all the index partitions. If the index is partitioned on the index key, OLTP type queries will benefit because all qualifying index rows are found together in one partition, this minimizes the IO required. Figure 8. Index partitioned on index key10
  • Conclusion This article presented an introduction to the NonStop SQL/MX storage features, comparing them to those of Oracle. It discussed similarities such as Oracle tablespaces when compared to NonStop volumes, at the same time explaining the differences between the two architectures. Volume memory and database locks are managed by the volume manager, the DAM, and this is a distributed management, independent of the databases stored on those volumes. In contrast, Oracle’s resources are managed centrally, in the SGA, and multiple databases have multiple SGAs. When databases are distributed over multiple nodes, Oracle RAC needs to keep multiple SGAs consistent. A distributed NonStop SQL database is no different from a single node database. The “NonStop SQL/MX 3.x Installation and Management Guide” provides more detailed information about table and file structures and further information on managing SQL/MX databases. References The Oracle Database Concepts 11g Release 2 (11.2) can be found in the Oracle Documentation Library at oracle.com/pls/db112/homepage. The following NonStop SQL/MX manuals can be found in the NonStop Technical Library at: hp.com/go/nonstop-docs. NonStop SQL/MX 3.x Reference Manual NonStop SQL/MX 3.x Installation and Management Guide For more information Other articles in this series Connecting and the initial environment July 2011 (Part 1) Introduction to catalogs and other objects July 2011 (Part 2) Introduction to SQL/MX Metadata July 2011 (Part 3) Other interesting reads A Comparison of NonStop SQL/MX and Oracle 11g RAC—Technical white paper, HP document ID: 4AA3-2001ENW.pdfGet connectedhp.com/go/getconnectedCurrent HP driver, support, and security alertsdelivered directly to your desktop© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. The onlywarranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing hereinshould be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.Microsoft and Windows are U.S. registered trademarks of Microsoft Corporation. Oracle and Java are registered trademarks of Oracle and/or itsaffiliates. UNIX is a registered trademark of The Open Group.4AA4-0951ENW, Created May 2012 11