创建主数据库的备份。
下面的示例说明了如何使用 Oracle 恢复管理器 (Recovery Man, RMAN) 实用程序来创建可以在备用 cluster-newyork 群集上恢复的主数据库副本。该示例还说明了如何避免执行单独的步骤来创建备用数据库的控制文件。有关完成此步骤的选项的更多信息,请参见 Oracle 文档。
oracle (phys-paris-1)$ rman RMAN> connect target sys/DBA_password@sales-svc; RMAN> connect auxiliary /; RMAN> backup device type disk tag 'mybkup' database include current 2> controlfile for standby; RMAN> backup device type disk tag 'mybkup' archivelog all not backed up; |
将备份文件复制到备用系统。
在 cluster-newyork 群集上创建相应的目录分层结构,并将数据库备份复制到该群集中。您为此示例中所示的文件指定的实际位置取决于您在配置数据库时所做的具体选择。
oracle (phys-newyork-1)$ mkdir -p $ORACLE_BASE/admin/salesdr oracle (phys-newyork-1)$ cd $ORACLE_BASE/admin/salesdr oracle (phys-newyork-1)$ mkdir adump bdump cdump dpdump hdump pfile udump Make the directory for the database backup oracle (phys-newyork-1)$ mkdir -p /oradata/flash_recovery_area/SALES/backupset/date Copy over the files oracle (phys-newyork-1)$ cd /oradata/flash_recovery_area/SALES/backupset/date oracle (phys-newyork-1)$ scp oracle@phys-paris-1:`pwd`/\* . Make the base directory for new database files oracle (phys-newyork-1)$ mkdir -p /oradata/SALESDR |
创建一个 pfile 参数文件。
为备用数据库 (salesdr) 创建一个合适的服务器初始化文件。创建此文件的最简单方法是复制主数据库的参数并进行修改。下面的示例说明如何创建 pfile 参数文件:
oracle (phys-paris-1)$ sqlplus '/ as sysdba' SQL> CREATE PFILE='/tmp/initpfile_for_salesdr.ora' FROM SPFILE; File created. SQL> quit |
修改 pfile 参数文件。
将特定于主群集的所有条目更改为适合于备用群集的条目,如下面的示例所示。修改带 Oracle SID 前缀的条目(即 sales1 或 sales2),以便使用备用数据库实例的 SID 名称(即 salesdr1 和 salesdr2)。您可能还需要进行其他更改,具体取决于您的配置。
请勿更改 db_name 参数,该参数在两个群集上均必须保留为 sales。
You created these directories previously *.audit_file_dest='/oracle/oracle/product/10.2.0/db_1/admin/salesdr/adump' *.background_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/salesdr/bdump' *.user_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/salesdr/udump' *.core_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/salesdr/cdump' Remove the following entry *.control_files='...list primary control files...' Add this entry *.db_unique_name='salesdr' *.dg_broker_config_file1='/oradata/SALESDR/dr1salesdr.dat' *.dg_broker_config_file2='/oradata/SALESDR/dr2salesdr.dat' *.dispatchers='(PROTOCOL=TCP) (SERVICE=salesdrXDB)' Switch the client and server entries around, as shown in the following entries *.fal_client='salesdr-svc' *.fal_server='sales-svc' *.remote_listener='LISTENERS_SALESDR' Switch the log archive destinations *.log_archive_dest_1='location=use_db_recovery_file_dest arch mandatory valid_for=(all_logfiles,all_roles) db_unique_name=salesdr' *.log_archive_dest_2='service=sales-svc lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=sales'
将 pfile 参数文件复制到备用系统。
启动备用数据库,并将 pfile 参数文件转换为 spfile 服务器参数文件。
以 Oracle 用户身份登录到 cluster-newyork 节点之一,并将 pfile 参数文件转换为 spfile 服务器参数文件。
oracle (phys-newyork-1)$ ORACLE_SID=salesdr1 export ORACLE_SID oracle (phys-newyork-1)$ sqlplus '/ as sysdba' SQL> startup nomount pfile='/tmp/initpfile_for_salesdr.ora'; SQL> create spfile='/oradata/SALESDR/spfilesalesdr.ora' 2> from pfile='/tmp/initpfile_for_salesdr.ora'; SQL> shutdown |
在所有 cluster-newyork 节点上创建 ${ORACLE_HOME}/dbs/initsalesdr1.ora 文件,并在该文件中插入以下条目:
oracle (phys-newyork-1) cat ${ORACLE_HOME}/dbs/initsalesdr1.ora SPFILE='/oradata/SALESDR/spfilesalesdr.ora' |
仅在一个节点上重新启动数据库,准备恢复所备份的主数据库。
oracle (phys-newyork-1) sqlplus '/ as sysdba' You are now starting from the spfile SQL> startup nomount ORACLE instance started. Total System Global Area 532676608 bytes Fixed Size 2031416 bytes Variable Size 289407176 bytes Database Buffers 234881024 bytes Redo Buffers 6356992 bytes |
复制主数据库的 Oracle 密码文件以供备用数据库使用。
复制您在 cluster-paris 群集上创建的 Oracle 密码文件,并将其放在 cluster-newyork 群集中的共享存储上。然后,从每个 cluster-newyork 节点创建指向该文件的链接,并再次更改符号链接的名称以反映本地备用节点上的 Oracle SID。