Go to main content
1/24
Contents
List of Tables
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Changes in This Release for Oracle Real Application Clusters Administration and Deployment Guide
Changes in Oracle Real Application Clusters 12
c
Release 2 (12.2)
Changes in Oracle Real Application Clusters 12
c
Release 1 (12.1)
Changes in Oracle Real Application Clusters 12
c
Release 1 (12.1.0.2)
Changes in Oracle Real Application Clusters 12
c
Release 1 (12.1.0.1)
Deprecated Features
Desupported Features
1
Introduction to Oracle RAC
Overview of Oracle RAC
Overview of Installing Oracle RAC
Understanding Compatibility in Oracle RAC Environments
Oracle RAC Database Management Styles and Database Installation
Oracle RAC Database Management Styles and Database Creation
Overview of Extending an Oracle RAC Cluster
Overview of Oracle Real Application Clusters One Node
Overview of Oracle Clusterware for Oracle RAC
Overview of Oracle Flex Clusters
Overview of Reader Nodes
Overview of Local Temporary Tablespaces
Overview of Oracle RAC Architecture and Processing
Understanding Cluster-Aware Storage Solutions
Oracle RAC and Network Connectivity
Overview of Using Dynamic Database Services to Connect to Oracle Databases
Overview of Virtual IP Addresses
Restricted Service Registration in Oracle RAC
About Oracle RAC Software Components
About Oracle RAC Background Processes
Overview of Automatic Workload Management with Dynamic Database Services
Overview of Server Pools and Policy-Managed Databases
Introduction to Server Pools
Examples of Using Server Pools
Deploying Policy-Managed Databases
Managing Policy-Managed Databases
Policy-Based Cluster Management
Overview of Oracle Database Quality of Service Management
Overview of Hang Manager
Overview of Oracle Multitenant with Oracle RAC
Overview of Database In-Memory and Oracle RAC
Overview of Managing Oracle RAC Environments
About Designing and Deploying Oracle RAC Environments
About Administrative Tools for Oracle RAC Environments
About Monitoring Oracle RAC Environments
About Evaluating Performance in Oracle RAC Environments
2
Administering Storage in Oracle RAC
Overview of Storage Management for Oracle RAC
Data File Access in Oracle RAC
NFS Server for Storage
Redo Log File Storage in Oracle RAC
Automatic Undo Management in Oracle RAC
Oracle Automatic Storage Management with Oracle RAC
Storage Management in Oracle RAC
Modifying Disk Group Configurations for Oracle ASM
Oracle ASM Disk Group Management
Configuring Preferred Mirror Read Disks in Extended Distance Clusters
Converting Nonclustered Oracle ASM to Clustered Oracle ASM
Administering Oracle ASM Instances with SRVCTL in Oracle RAC
3
Administering Database Instances and Cluster Databases
Overview of Oracle RAC Database Administration
Tools for Administering Oracle RAC
Administering Oracle RAC with SRVCTL
Administering Oracle RAC with Oracle Enterprise Manager
Administering Oracle RAC with SQL*Plus
How SQL*Plus Commands Affect Instances
Starting and Stopping Instances and Oracle RAC Databases
Starting One or More Instances and Oracle RAC Databases Using SRVCTL
Stopping One or More Instances and Oracle RAC Databases Using SRVCTL
Stopping All Databases and Instances Using CRSCTL
Starting and Stopping Individual Instances Using SQL*Plus
Starting and Stopping PDBs in Oracle RAC
Verifying That Instances are Running
Using SRVCTL to Verify That Instances are Running
Using SQL*Plus to Verify That Instances are Running
Terminating Sessions On a Specific Cluster Instance
Overview of Initialization Parameter Files in Oracle RAC
Setting SPFILE Parameter Values for Oracle RAC
Parameter File Search Order in Oracle RAC
Backing Up the Server Parameter File
Initialization Parameter Use in Oracle RAC
Parameters That Must Have Identical Settings on All Instances
Parameters That Have Unique Settings on All Instances
Parameters That Should Have Identical Settings on All Instances
Converting an Administrator-Managed Database to a Policy-Managed Database
Managing Memory Pressure for Database Servers
Quiescing Oracle RAC Databases
Administering Multiple Cluster Interconnects on Linux and UNIX Platforms
Use Cases for Setting the CLUSTER_INTERCONNECTS Parameter
Customizing How Oracle Clusterware Manages Oracle RAC Databases
Advanced Oracle Enterprise Manager Administration
Using Oracle Enterprise Manager Cloud Control to Discover Nodes and Instances
Other Oracle Enterprise Manager Capabilities
Administering Jobs and Alerts in Oracle RAC
Administering Jobs in Oracle RAC
Administering Alerts in Oracle RAC with Oracle Enterprise Manager
Using Defined Blackouts in Oracle Enterprise Manager
4
Administering Oracle RAC One Node
Creating an Oracle RAC One Node Database
Converting Databases
Converting a Database from Oracle RAC to Oracle RAC One Node
Converting a Database from Oracle RAC One Node to Oracle RAC
Online Database Relocation
5
Workload Management with Dynamic Database Services
Connection Load Balancing
Server-Side Load Balancing
Generic Database Clients
Client-Side Connection Configuration for Older Clients
JDBC-Thin Clients
OCI Clients
Client-Side Load Balancing
Load Balancing Advisory
Overview of the Load Balancing Advisory
Configuring Your Environment to Use the Load Balancing Advisory
Load Balancing Advisory FAN Events
Monitoring Load Balancing Advisory FAN Events
Enabling Clients for Oracle RAC
Overview of Oracle Integrated Clients and FAN
Enabling JDBC-Thin Clients for Fast Connection Failover
Oracle Notification Service for JDBC-Thin Clients
Configuring FCF for JDBC/OCI and JDBC-Thin Driver Clients
Enabling JDBC Clients for Run-time Connection Load Balancing
Configuring JDBC-Thin Clients for Application Continuity for Java
Configuring JDBC-Thin Clients for Transaction Guard
Enabling OCI Clients for Fast Connection Failover
Enabling OCI Clients for Run-time Connection Load Balancing
Configuring OCI Clients to use Transaction Guard
Enabling ODP.NET Clients to Receive FAN High Availability Events
Enabling ODP.NET Clients to Receive FAN Load Balancing Advisory Events
Configuring ODP.NET Clients to use Transaction Guard
Distributed Transaction Processing in Oracle RAC
Overview of XA Transactions and Oracle RAC
Using Global Transactions and XA Affinity for XA Transactions
Using Services with XA Transactions on Oracle RAC
Configuring Services for XA Applications
Relocating Services in Administrator-Managed Databases
Automatic Workload Repository
Measuring Performance by Service Using the Automatic Workload Repository
Automatic Workload Repository Service Thresholds and Alerts
Example of Services and Thresholds Alerts
Enable Service, Module, and Action Monitoring
Using Oracle Services
Service Deployment Options
Service Usage in an Oracle RAC Database
Oracle Clusterware Resources for a Service
Database Resource Manager Consumer Group Mappings for Services
Performance Monitoring by Service with AWR
Parallel Operations and Services
Oracle Streams and Oracle RAC
Service Characteristics
Service Name
Service Edition
Service Management Policy
Database Role for a Service
Instance Preference
Server Pool Assignment
Load Balancing Advisory Goal for Run-time Connection Load Balancing
Connection Load Balancing Goal
Distributed Transaction Processing
Default Service Connections
Restricted Service Registration
Administering Services
Overview of Service Administration
Administering Services with Oracle Enterprise Manager
Administering Services with SRVCTL
Creating Services with SRVCTL
Creating Services for Application Continuity and Transaction Guard
Starting and Stopping Services with SRVCTL
Enabling and Disabling Services with SRVCTL
Relocating Services with SRVCTL
Obtaining the Status of Services with SRVCTL
Obtaining the Configuration of Services with SRVCTL
Global Services
Service-Oriented Buffer Cache Access
Connecting to a Service: An Example
6
Ensuring Application Continuity
Fast Application Notification
Overview of Fast Application Notification
Managing Unplanned Outages
Managing Planned Maintenance
Managing Planned Maintenance Without User Interruption
Managing a Group of Services for Maintenance
Starting Services
Pluggable Database-Level Operations
Relocating Services
Stopping Services
Fast Application Notification High Availability Events
Subscription to High Availability Events
Using Fast Application Notification Callouts
About Application Continuity
Key Concepts for Application Continuity
Application Continuity Operation and Usage
How Application Continuity Works for Applications
Actions for Using Application Continuity
When Application Continuity is Transparent
Configuring Oracle Application Continuity
Configuring Oracle Database for Application Continuity
Establishing the Initial State Before Application Continuity Replays
FAILOVER_RESTORE = LEVEL1
FAILOVER_RESTORE = NONE and No Callback
Connection Labeling
Connection Initialization Callback
Delaying the Reconnection in Application Continuity
Creating Services on Oracle RAC with Application Continuity
Modifying Services on Single-instance Databases to use Application Continuity
Using Application Continuity with SQL*Plus
Using Application Continuity for Planned Maintenance
Running Without Application Continuity
Disabling Replay in Application Continuity
Application Calls Autonomous Transactions, External PL/SQL, or Java Actions that Should Not Be Repeated
Application Synchronizes Independent Sessions
Application Uses Time at the Middle Tier in the Execution Logic
Application Assumes that ROWIds Do Not Change
Application Assumes that Location Values Do Not Change
Terminating or Disconnecting a Session Without Replay
Mutable Functions and Application Continuity
Administering Mutable Values
Session State Consistency
Dynamic Session State Consistency
Static Session State Consistency
Potential Side Effects of Application Continuity
Restrictions and Other Considerations for Application Continuity
Transaction Guard for Improving Client Failover
Transaction Guard Configuration Checklist
Configuring Services for Transaction Guard
Failing Over OCI Clients with TAF
7
Configuring Recovery Manager and Archiving
Overview of Configuring RMAN for Oracle RAC
Archiving Mode in Oracle RAC
Configuring the RMAN Snapshot Control File Location
Configuring RMAN to Automatically Backup the Control File and SPFILE
Crosschecking on Multiple Oracle RAC Nodes
Configuring Channels for RMAN in Oracle RAC
Configuring Channels to Use Automatic Load Balancing
Configuring Channels to Use a Specific Node
Managing Archived Redo Logs Using RMAN in Oracle RAC
Archived Redo Log File Conventions in Oracle RAC
RMAN Archiving Configuration Scenarios
Oracle Automatic Storage Management and Cluster File System Archiving Scheme
Advantages of the Cluster File System Archiving Scheme
Initialization Parameter Settings for the Cluster File System Archiving Scheme
Location of Archived Logs for the Cluster File System Archiving Scheme
Noncluster File System Local Archiving Scheme
Considerations for Using Noncluster File System Local Archiving
Initialization Parameter Settings for Noncluster File System Local Archiving
Location of Archived Logs for Noncluster File System Local Archiving
File System Configuration for Noncluster File System Local Archiving
Monitoring the Archiver Processes
8
Managing Backup and Recovery
RMAN Backup Scenario for Noncluster File System Backups
RMAN Restore Scenarios for Oracle RAC
Restoring Backups from a Cluster File System
Restoring Backups from a Noncluster File System
Using RMAN or Oracle Enterprise Manager to Restore the Server Parameter File (SPFILE)
Instance Recovery in Oracle RAC
Single Node Failure in Oracle RAC
Multiple-Node Failures in Oracle RAC
Using RMAN to Create Backups in Oracle RAC
Channel Connections to Cluster Instances with RMAN
Node Affinity Awareness of Fast Connections
Deleting Archived Redo Logs after a Successful Backup
Autolocation for Backup and Restore Commands
Media Recovery in Oracle RAC
Parallel Recovery in Oracle RAC
Parallel Recovery with RMAN
Disabling Parallel Recovery
Disabling Instance and Crash Recovery Parallelism
Disabling Media Recovery Parallelism
Using a Fast Recovery Area in Oracle RAC
9
Cloning Oracle RAC to Nodes in a New Cluster
Introduction to Cloning Oracle RAC
Preparing to Clone Oracle RAC
Deploying Oracle RAC Clone to Nodes in a Cluster
Locating and Viewing Log Files Generated During Cloning
10
Using Cloning to Extend Oracle RAC to Nodes in the Same Cluster
About Adding Nodes Using Cloning in Oracle RAC Environments
Cloning Local Oracle Homes on Linux and UNIX Systems
Cloning Shared Oracle Homes on Linux and UNIX Systems
Cloning Oracle Homes on Windows Systems
11
Adding and Deleting Oracle RAC from Nodes on Linux and UNIX Systems
Adding Oracle RAC to Nodes with Oracle Clusterware Installed
Adding Policy-Managed Oracle RAC Database Instances to Target Nodes
Adding Administrator-Managed Oracle RAC Database Instances to Target Nodes
Using DBCA in Interactive Mode to Add Database Instances to Target Nodes
Using DBCA in Silent Mode to Add Database Instances to Target Nodes
Deleting Oracle RAC from a Cluster Node
Deleting Instances from Oracle RAC Databases
Using DBCA in Interactive Mode to Delete Instances from Nodes
Using DBCA in Silent Mode to Delete Instances from Nodes
Removing Oracle RAC
Deleting Nodes from the Cluster
12
Adding and Deleting Oracle RAC from Nodes on Windows Systems
Adding Oracle RAC to Nodes with Oracle Clusterware Installed
Adding Administrator-Managed Oracle RAC Database Instances to Target Nodes
Using DBCA in Interactive Mode to Add Database Instances to Target Nodes
Using DBCA in Silent Mode to Add Database Instances to Target Nodes
Deleting Oracle RAC from a Cluster Node
Deleting Instances from Oracle RAC Databases
Using DBCA in Interactive Mode to Delete Instances from Nodes
Using DBCA in Silent Mode to Delete Instances from Nodes
Removing Oracle RAC
Deleting Nodes from the Cluster
13
Design and Deployment Techniques
Deploying Oracle RAC for High Availability
About Designing a High Availability System
Best Practices for Deploying Oracle RAC in a High Availability Environment
Consolidating Multiple Applications in a Database or Multiple Databases in a Cluster
Managing Capacity During Consolidation
Managing the Global Cache Service Processes During Consolidation
Using a Database Cloud for Consolidation
Scalability of Oracle RAC
General Design Considerations for Oracle RAC
General Database Deployment Topics for Oracle RAC
Tablespace Use in Oracle RAC
Object Creation and Performance in Oracle RAC
Node Addition and Deletion and the SYSAUX Tablespace in Oracle RAC
Distributed Transactions and Oracle RAC
Deploying OLTP Applications in Oracle RAC
Flexible Implementation with Cache Fusion
Deploying Data Warehouse Applications with Oracle RAC
Speed-Up for Data Warehouse Applications on Oracle RAC
Parallel Execution in Data Warehouse Systems and Oracle RAC
Data Security Considerations in Oracle RAC
Transparent Data Encryption and Keystores
Windows Firewall Considerations
14
Monitoring Performance
Overview of Monitoring and Tuning Oracle RAC Databases
Monitoring Oracle RAC and Oracle Clusterware
The Cluster Database Home Page
The Interconnects Page
The Cluster Database Performance Page
Tuning Oracle RAC Databases
Verifying the Interconnect Settings for Oracle RAC
Influencing Interconnect Processing
Performance Views in Oracle RAC
Creating Oracle RAC Data Dictionary Views with CATCLUST.SQL
Oracle RAC Performance Statistics
Automatic Workload Repository in Oracle RAC Environments
Active Session History Reports for Oracle RAC
Overview of ASH Reports for Oracle RAC
ASH Report for Oracle RAC: Top Cluster Events
ASH Report for Oracle RAC: Top Remote Instance
Monitoring Oracle RAC Statistics and Wait Events
Oracle RAC Statistics and Events in AWR and Statspack Reports
Oracle RAC Wait Events
Monitoring Performance by Analyzing GCS and GES Statistics
Analyzing the Effect of Cache Fusion in Oracle RAC
Analyzing Performance Using GCS and GES Statistics
Analyzing Cache Fusion Transfer Impact Using GCS Statistics
Analyzing Response Times Based on Wait Events
Block-Related Wait Events
Message-Related Wait Events
Contention-Related Wait Events
Load-Related Wait Events
15
Converting Single-Instance Oracle Databases to Oracle RAC and Oracle RAC One Node
Administrative Issues for Converting Databases to Oracle RAC
Converting to Oracle RAC and Oracle RAC One Node Using DBCA
Converting Oracle Database Installations to Oracle RAC Using DBCA
Use DBCA to Create an Image of the Single-Instance Database
Complete the Oracle Clusterware Installation
Validate the Cluster
Copy the Preconfigured Database Image
Install Oracle Database 12
c
Software with Oracle RAC
Converting Single Instance on a Cluster to Oracle RAC One Node Using DBCA
Converting Single Instance on a Cluster to Oracle RAC Using DBCA
Single-Instance Database on a Cluster Running from an Oracle RAC-Enabled Home
Automated Conversion Procedure Using DBCA
Manual Conversion Procedure
Single-Instance Database on a Cluster Running from an Oracle RAC-Disabled Home
Preparing to Convert with rconfig and Oracle Enterprise Manager
Prerequisites for Converting to Oracle RAC Databases
Configuration Changes During Oracle RAC Conversion Using rconfig
Converting Databases to Oracle RAC Using rconfig or Oracle Enterprise Manager
Converting Databases to Oracle RAC Using Oracle Enterprise Manager
Converting Databases to Oracle RAC Using rconfig
Example of rconfig XML Input Files for ConvertToRAC
Postconversion Steps
A
Server Control Utility Reference
SRVCTL Usage Information
Specifying Command Parameters as Keywords Instead of Single Letters
Character Set and Case Sensitivity of SRVCTL Object Values
Summary of Tasks for Which SRVCTL Is Used
Using SRVCTL Help
SRVCTL Privileges and Security
Additional SRVCTL Topics
Deprecated SRVCTL Subprograms or Commands
Single Character Parameters for all SRVCTL Commands
Miscellaneous SRVCTL Commands and Parameters
SRVCTL Command Reference
srvctl add database
srvctl config database
srvctl convert database
srvctl disable database
Syntax and Parameters
Example
srvctl disable diskgroup
Syntax and Parameters
Example
srvctl add instance
srvctl disable instance
Syntax and Parameters
Example
srvctl add listener
srvctl disable listener
Syntax and Parameters
Example
srvctl config listener
srvctl add network
srvctl config network
srvctl add nodeapps
srvctl config nodeapps
srvctl disable nodeapps
Syntax and Parameters
Example
srvctl add ons
srvctl config ons
srvctl disable ons
srvctl config qosmserver
srvctl add scan
srvctl config scan
srvctl disable scan
Syntax and Parameters
Example
srvctl add scan_listener
srvctl config scan_listener
srvctl disable scan_listener
Syntax and Parameters
Example
srvctl add service
srvctl config service
srvctl disable service
Syntax and Parameters
Examples
srvctl add srvpool
srvctl config srvpool
srvctl add vip
srvctl config vip
srvctl disable vip
Syntax and Parameters
Example
srvctl config volume
srvctl disable volume
Syntax and Parameters
Usage Notes
Example
srvctl downgrade database
Syntax and Parameters
enable
srvctl enable database
Syntax and Parameters
Example
srvctl enable diskgroup
Syntax and Parameters
Example
srvctl enable instance
Syntax and Parameters
Example
srvctl enable listener
Syntax and Parameters
Example
srvctl enable nodeapps
Syntax and Parameters
Example
srvctl enable ons
Syntax and Parameters
Example
srvctl enable scan
Syntax and Parameters
Example
srvctl enable scan_listener
Syntax and Parameters
Example
srvctl enable service
Syntax and Parameters
Examples
srvctl enable vip
Syntax and Parameters
Example
srvctl enable volume
Syntax and Parameters
Usage Notes
Example
getenv
srvctl getenv database
Syntax and Parameters
Example
srvctl getenv listener
Syntax and Parameters
Example
srvctl getenv nodeapps
Syntax and Parameters
Example
srvctl getenv vip
Syntax and Parameters
Example
modify
srvctl modify database
srvctl modify instance
srvctl modify listener
Syntax and Parameters
Example
srvctl modify network
Syntax and Parameters
Usage Notes
Examples
srvctl modify nodeapps
Syntax and Parameters
Example
srvctl modify ons
Syntax and Parameters
srvctl modify scan
srvctl modify scan_listener
srvctl modify service
srvctl modify srvpool
Syntax and Parameters
Example
srvctl modify vip
Syntax and Parameters
Example
predict
srvctl predict database
srvctl predict diskgroup
Syntax and Parameters
Example
srvctl predict listener
Syntax and Parameters
Example
srvctl predict network
Syntax and Parameters
Example
srvctl predict scan
Syntax and Parameters
Example
srvctl predict scan_listener
Syntax and Parameters
Example
srvctl predict service
Syntax and Parameters
Example
srvctl predict vip
Syntax and Options
Example
relocate
srvctl relocate database
Syntax and Parameters
Usage Notes
Example
srvctl relocate scan
Syntax and Parameters
Example
srvctl relocate scan_listener
Syntax and Parameters
Example
srvctl relocate server
Syntax and Parameters
Example
srvctl relocate service
srvctl relocate vip
Syntax and Options
Example
remove
srvctl remove database
srvctl remove diskgroup
Syntax and Parameters
Example
srvctl remove instance
Syntax and Parameters
Example
srvctl remove listener
Syntax and Parameters
Examples
srvctl remove network
Syntax and Parameters
Example
srvctl remove nodeapps
Syntax and Parameters
Usage Notes
Example
srvctl remove ons
Syntax and Parameters
srvctl remove scan
srvctl remove scan_listener
srvctl remove service
Syntax and Parameters
Examples
srvctl remove srvpool
Syntax and Parameters
Usage Notes
Example
srvctl remove vip
Syntax and Parameters
Example
srvctl remove volume
Syntax and Parameters
Usage Notes
Example
setenv
srvctl setenv database
Syntax and Parameters
Example
srvctl setenv listener
Syntax and Parameters
Example
srvctl setenv nodeapps
Syntax and Parameters
Example
srvctl setenv vip
Syntax and Parameters
Example
start
srvctl start database
Syntax and Parameters
Example
srvctl start diskgroup
Syntax and Parameters
Example
srvctl start home
Syntax and Parameters
Example
srvctl start instance
srvctl start listener
srvctl start nodeapps
Syntax and Parameters
Example
srvctl start ons
Syntax and Parameters
srvctl start scan
Syntax and Parameters
Example
srvctl start scan_listener
Syntax and Parameters
Example
srvctl start service
srvctl start vip
Syntax and Parameters
Example
srvctl start volume
Syntax and Parameters
Usage Notes
Example
status
srvctl status database
srvctl status diskgroup
Syntax and Parameters
Example
srvctl status home
Syntax and Parameters
Example
srvctl status instance
srvctl status listener
Syntax and Parameters
Example
srvctl status nodeapps
Syntax and Parameters
srvctl status ons
Syntax and Parameters
srvctl status scan
Syntax and Parameters
Example
srvctl status scan_listener
Syntax and Parameters
Example
srvctl status server
Syntax and Parameters
Example
srvctl status service
Syntax and Parameters
Example
srvctl status srvpool
Syntax and Parameters
Usage Notes
Example
srvctl status vip
Syntax and Parameters
Example
srvctl status volume
Syntax and Parameters
Usage Notes
Examples
stop
srvctl stop database
srvctl stop diskgroup
Syntax and Parameters
Example
srvctl stop home
Syntax and Parameters
Example
srvctl stop instance
srvctl stop listener
srvctl stop nodeapps
Syntax and Parameters
Example
srvctl stop ons
Syntax and Parameters
Example
srvctl stop scan
Syntax and Parameters
Example
srvctl stop scan_listener
Syntax and Parameters
Example
srvctl stop service
srvctl stop vip
Syntax and Parameters
Example
srvctl stop volume
Syntax and Parameters
Usage Notes
Example
unsetenv
srvctl unsetenv database
Syntax and Parameters
Example
srvctl unsetenv listener
Syntax and Parameters
Example
srvctl unsetenv nodeapps
Syntax and Parameters
Example
srvctl unsetenv vip
Syntax and Parameters
Example
update
srvctl update database
srvctl update gns
Usage Notes
Example
srvctl update instance
srvctl update listener
srvctl update scan_listener
srvctl upgrade database
Syntax and Parameters
B
Troubleshooting Oracle RAC
Where to Find Files for Analyzing Errors
Managing Diagnostic Data in Oracle RAC
Using Instance-Specific Alert Files in Oracle RAC
Enabling Tracing for Java-Based Tools and Utilities in Oracle RAC
Resolving Pending Shutdown Issues
How to Determine If Oracle RAC Instances Are Using the Private Network
Database Fails to Start after Private NIC Failure
Glossary
Index
Scripting on this page enhances content navigation, but does not change the content in any way.