复制数据库是主数据库(产品数据库) 的副本数据库或克隆数据库,它既可以包含主数据库的全部数据文件,也可以只包含主数据库的部分数据文件。
1. 复制数据库的作用
作为产品数据库的副本数据库或克隆数据库,在产品数据库运行的同时,复制数据库可以独立运行。复制数据库具有以下作用:
- 为应用开发小组提供用于编程和测试的摸拟数据库。
- 为经验不足的DBA 提供锻炼数据库管理技能的摸拟数据库。
- 为DBA 提供用于测试和验证备份与恢复的模拟数据库。
2. 复制数据库的文件
当建立复制数据库时,既可以将复制数据库放到与主数据库同一个主机上,也可以将复制数据库放到与主数据库不同的主机上。注意,当在其他主机上建立复制数据库时,要求该主机必须与主数据库所在的机器具有相同的OS 平台。当主数据库和复制数据库在同一台主机上时,主数据库和复制数据库必须使用不同的目录结构。与产品数据库一样,复制数据库也包括数据文件、重做日志和控制文件三种物理文件。
(1) 数据文件。复制数据库既可以包含主数据库的全部数据文件,也可以包含主数据库的部分数据文件。注意,当建立复制数据库时,复制数据库必须包含主数据库SYSTEM 表空间和UNDO 表空间的数据文件。如果使用用户管理方式建立复制数据库,则需要将主数据库的数据文件备份拷贝到复制数据库的相应目录,并且在建立控制文件时通过DATAFILE 选项指定数据文件;如果使用 RMAN 管理方式建立复制数据库,则可以使用SET NEWNAME 命令设置复制数据库的相应数据文件。
(2) 控制文件。复制数据库的控制文件是通过配置初始化参数CONTROL_FILES 来指定其位置和名称的,每个复制数据库至少包含一个控制文件。如果使用用户管理方式建立复制数据库,则必须使用CREATE CONTROLFILE 命令建立复制数据库的控制文件;如果使用RMAN 管理方式建立复制数据库,则RMAN 会自动根据初始化参数CONTROL_FILES 在相应位置建立控制文件。
(3) 重做日志。复制数据库的重做日志组和日志成员个数可以与主数据库不同。如果使用用户管理方式建立复制数据库,那么日志组和日志成员是在建立控制文件时使用LOGFILE 选项指定的,并且当执行SQL 语句 ALTER DATABASE OPEN RESETLOGS 打开复制数据库时会自动建立日志成员;如果使用 RMAN 管理方式建立复制数据库,则在执行DUPLICATE 命令时通过 LOGFILE 选项可以指定日志成员。