设为首页 加入收藏

TOP

Oracle11gDataGuard物理备库快速配置指南(上)(二)
2015-11-21 01:56:54 来源: 作者: 【 】 浏览:2
Tags:Oracle11gDataGuard 物理 快速 配置 指南
)中的服务名(Service Names)找到对方。具体配置应类似下例。

主库(dev-db1)的监听配置:

SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = JED)
(ORACLE_HOME = /oracle/product/11.2.0)
(SID_NAME = JED)
)
)

备库(dev-db2)的的监听配置:

SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = JED2)
(ORACLE_HOME = /oracle/product/11.2.0)
(SID_NAME = JED2)
)
)

主库的 TNS 名字文件配置:

JED2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = JED2)
)
)

备库的 TNS 名字文件配置:

JED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = JED)
)
)

重做日志传输配置
现在主备库之间依旧可以互相通信了,下一步是配置归档位置和重做日志传输。我们将先在主库上进行配置,然后等备库创建好后,修改备库的配置。

配置归档位置:

SQL> alter system set log_archive_dest_1 = 'location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=JED';

这个命令指定快速恢复区作为归档位置,此归档位置用于在所有数据库角色下归档所有的日志文件。官方文档里说使用 valid_for=(online_logfiles, all_roles),这将导致备库无法归档备用日志文件,因为它们不是在线日志。但如果使用 all_logfiles 选项,主备库将都能归档在线以及备用日志。如果你想在备库进行备份,并同时备份归档日志的话,必须使用 all_logfiles。

然后配置重做日志传输到备库:

SQL> alter system set log_archive_dest_2 = 'service=JED2 async valid_for=(online_logfile,primary_role) db_unique_name=JED2';

这条语句说,如果这是主库,就使用服务名 JED2 传输在线日志,目标库名叫 JED2。

要注意STANDBY_ARCHIVE_DEST 参数不需要,已经被官方弃用。当调试时,不少人好心建议我设置此参数,但设置此参数后启动数据库,只会报 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance 错。

另一个要设置的参数是 FAL_SERVER。这个参数指定当日志传输出现问题时,备库到哪里去找缺少的归档日志。它用在备库接收的到的重做日志间有缺口的时候。这种情况会发生在日志传输出现中断时,比如你需要对备库进行维护操作。在备库维护期间,没有日志传输过来,这时缺口就出现了。设置了这个参数,备库就会主动去寻找那些缺少的日志,并要求主库进行传输。

SQL> alter system set fal_server = 'JED2';

注意 FAL_CLIENT 参数在11g里已经弃用。

然后我们要让主库知道 Data Guard 配置里的另外一个库的名字:

SQL> alter system set log_archive_config = 'dg_config=(JED,JED2)';

这一步做完后,我们就可以准备好备库的环境,并开始创建备库了。

备库环境准备
现在开始准备备库环境。有很多种方法来执行这些步骤。我这里写的是我觉得最适合我的方法。你应该实验多种方法,看哪种比较适合你。

首先,我们要为备库创建密码文件和参数文件(spfile)。密码文件可以直接复制过去,只需要改下名字就行。比如,主库上的密码文件是 $ORACLE_HOME/dbs/orapwJED。我们把它复制到备库服务器的相同位置,用备库的 SID 取代主库,修改其名字为 orapwJED2。

为了创建备库 spfile,先创建一个启动参数文件(pfile):

SQL> create pfile from spfile;

我想介绍一个看起来挺不错新功能,使用 RMAN 创建备库 SPFILE。我不使用这个功能的理由是:

反正我也需要复制密码文件到备库服务器,所以它并没有节省我复制文件的时间。
要使用这个功能,你仍然需要使用 parameter_value_convert 参数做很多替换工作,还有使用 SPFILE 语句和多个 SET 语句以确保一切正确。
我发现复制 pfile 过去更容易(你甚至可以直接粘贴复制),只要改下名字,然后改几个里面的参数就行。这很容易,你也可以在手动修改和调试的过程中学到很多。我发现手动改比用 RMAN 的 SPFILE创建功能更快。

创建好了主库的 pfile 后,将其复制到备库服务器的相同位置,使用备库的 SID 修改其名字。你需要对 pfile 做如下修改:

根据你备库的配置和文件位置,你可能需要修改 AUDIT_FILE_DEST,CONTROL_FILES 和 DISPATCHERS 参数(也许还有其他需要修改的参数)。
LOG_ARCHIVE_DEST_1 参数中的 db_unique_name 修改为备库的相应唯一名(这里是 JED2)。
LOG_ARCHIVE_DEST_2 参数,修改为主库对应的服务名和数据库唯一名(这里是 JED)。
FAL_SERVER 参数修改指向主库的服务名。
增加如下参数:
db_unique_name=JED2
db_file_name_convert 和 log_file_name_convert。如果主备库的数据文件、日志文件位置不同,需要设置这两个参数。
然后在备库服务器上创建所需目录结构和修改相关文件。至少需要修改如下创建目录和文件:

$ORACLE_BASE/admin/$ORACLE_SID
$ORACLE_BASE/admin/$ORACLE_SID/adump(audit_file_dest配置的目录)
数据文件目录
控制文件目录
日志文件目录
快速恢复区目录
将备库信息加到 /etc/oratab 文件
现在可以准备启动备库实例来创建数据库了。在启动过程中创建一个 spfile。

SQL> startup nomount pfile=initJED2.ora
SQL> create spfile from pfile;
SQL> shutdown
SQL> startup nomount
SQL> show parameter spfile
SQL> exit

show parameter spfile 显示 spfile 的位置,这时备库处于 NOMOUNT 状态。

备库创建

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OracleORA-01555快照过旧说明 下一篇ORACLEAUTOMATICSTORAGEMANAGEMEN..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: