概要介绍
直接把原数据库进行复制,11g的RMANduplicate可以通过Active databaseduplicate和Backup-based duplicate两种方法实现,这里用Activedatabase duplicate这种方式来搭建DG,主库的停机时间很少,只需要重启一下,使参数生效。也可以用这种方法进行DB迁移。DG搭建好,然后把备库激活就可以了,这样整个迁移中宕机时间也比较短。
环境说明
数据库版本 |
IP地址 |
OS |
DB_NAME |
DB_UNIQUE_NAME |
Service NAME |
11.2.0.4.0 |
192.168.56.10 |
redhat 5.5 |
orcl |
primary |
PORCL |
11.2.0.4.0 |
192.168.56.9 |
redhat 7.1 |
orcl |
standby |
STDB |
primary主目录:/u01/app/oracle/product/11.2.0/dbhome_1 数据文件目录:/u01/app/oracle/oradata/orcl/
standby主目录:/opt/app/oracle/product/11.2.0/dbhome_1 数据文件目录:/data/oradata/orcl/
一. Primary端操作:
1、设置归档模式
这个生产库都是这种模式。
SQL> archive log list;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> archive log list;
2. Primary设置force logging
SQL> alter database force logging;
SQL> select force_logging from v$database;
FORCE_LOG
---------
YES
3. 配置Oracle Net(在Primary 库和Standby 都要修改。也可以使用netca 和netmgr命令配置。)
注意:修改完后记得重启listener。
Listener.ora
[oracle@qs-dmm-rh1 admin]$ cat listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost6.localdomain6)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
-- 配置静态注册
tnsname.ora
[oracle@edrsr12p1 admin]$cd $ORACLE_HOME/network/admin
[oracle@edrsr12p1 admin]$cat tnsnames.ora
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.9)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
PORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
primary和standby都要 测试监听器:(我在做的过程出现了tnsping都没有问题,但是连接时候提示ORA-12514:原因配置listener是SID_NAME写错了)
[oracle@edrsr12p1 admin]$ tnsping STDB
[oracle@edrsr12p1 admin]$tnsping PORCL
[oracle@edrsr12p1 admin]$sqlplus sys/oracle@STDB as sysdba
[oracle@edrsr12p1 admin]$sqlplus sys/oracle@PORCL as sysdba
4、添加data guard 参数
创建pfile
[oracle@edrsr12p1 admin]$ sqlplus / as sysdba
SYS@ora11g>create pfile from spfile;
[oracle@edrsr12p1 admin]$ cd $ORACLE_HOME/dbs
修改参数文件
[oracle@edrsr12p1 admin]$ vi initorcl.ora
--添加如下参数,上面如有重复的参数删除
*.db_unique_name='primary'
*.log_archive_config='dg_config=(primary,standby)'
*.log_archive_dest_1='location=/oralog valid_for=(all_logfiles,all_r