关于创建DataGuard Physical Standby数据库

创建DataGuard Physical Standby数据库

os:solaris 10
db:oracle9.2.0.6


1、开启数据库为Forced Logging模式:

SQL>alter database force logging;

强制日志模式:

用于忽略nologging选项不记录redo的请求,一般用于dataguard以及安全要求较高的数据库,要求所有的事务都可以通过归档进行回滚。

2、开启归档模式及定义本地归档目录:

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=LOCATION=/oracle/app/archive' SCOPE=BOTH;


3、确定Primary 数据库数据文件:

SQL> select * from v$dbfile;

FILE# NAME
----------------------------------------------------------------
10 /oracle/app/oradata/test/xdb01.dbf
9 /oracle/app/oradata/test/users01.dbf
2 /oracle/app/oradata/test/undotbs01.dbf
........

4、拷贝主库数据库:

使用冷备份方式拷贝数据库。

4.1、停止primary数据库:

SQL> SHUTDOWN IMMEDIATE;

4.2、拷贝primary数据库:

cp /oracle/app/oradata/test/system01.dbf
/oracle/app/oradata/test/standby/system01.dbf
........

4.3、重启primary数据库:
SQL> STARTUP;

5、创建Physical Standby数据库控制文件:

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oracle/app/control01.ctl';

然后拷贝2份control01.ctl控制文件分别为control02.ctl、control03.ctl。

6、创建Physical Standby数据库用的pfile:

SQL> CREATE PFILE='/oracle/app/product/9.2.0/dbs/inittestdg.ora' FROM SPFILE;


7、从primary数据库拷贝备份的文件至standby 数据库:

--备份的数据库文件(数据文件、临时文件、日志文件)放到/oracle/app/oradata/testdg/
--备份的standby控制文件放到 放到/oracle/app/oradata/testdg/
--备份的pfile初始化参数文件 放到/oracle/app/product/9.2/dbs/

8、修改Physical Standby数据库的pfile文件:

添加如下内容
db_name=test
compatible=9.2.0.0.0
standby_archive_dest='/oracle/app/standby_archive/'
db_file_name_convert=('/oracle/app/oradata/test/','/oracle/app/oradata/testdg/')
log_file_name_convert=('/oracle/app/archive/','/oracle/app/standby_archive/')
log_archive_format=log%d_%t_%s.arc
log_archive_dest_1=('LOCATION=/oracle/app/standby_archive/')
standby_file_management=AUTO
remote_archive_enable=TRUE
instance_name=testdg

# The following parameter is required only if the primary and standby databases
# are located on the same system.
lock_name_space=testdg

9、创建Physical Standby数据库各个日志存放目录及归档日志目录:

$mkdir /oracle/app/admin/testdg/bdump
$mkdir /oracle/app/admin/testdg/cdump
$mkdir /oracle/app/admin/testdg/udump
$mkdir /oracle/app/standby_archive

10、配置primary和standby数据库的listener.ora与tnsnames.ora

primary数据库的listener.ora添加如下:
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = /oracle/app/product/9.2)
(SID_NAME = test)
)
(SID_DESC =
(GLOBAL_DBNAME = testdg)
(ORACLE_HOME = /oracle/app/product/9.2)
(SID_NAME = testdg)
)


primary数据库的tnsnames.ora添加如下:
TESTDG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sol2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdg)
)
)

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sol1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)

standy数据库的listener.ora添加如下:
(SID_DESC =

(GLOBAL_DBNAME = testdg)
(ORACLE_HOME = /oracle/app/product/9.2.0)
(SID_NAME = testdg)

)

standy数据库的tnsnames.ora添加如下:
TESTDG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sol2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdg)
)
)
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sol1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)

然后重启primary、standy数据库的监听:
% lsnrctl stop
% lsnrctl start

11、开启Physical Standby数据库的Connection Detection模式:
修改SQLNET.ORA参数,添加
SQLNET.EXPIRE_TIME=2

12、创建Physical Standby数据库的spfile
SQL> CREATE SPFILE FROM PFILE;

13、启动Physical Standby数据库:
SQL> STARTUP NOMOUNT;
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;

14、开启日志应用服务:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
后台进程服务名为ora_mrp0_testdg

15、启动Physical Standby数据库的归档:
15.1、设置primary数据库的LOG_ARCHIVE_DEST_2参数
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=testdg' SCOPE=BOTH;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;

15.2、尝试开始远程归档:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

16、验证Physical Standby数据库
16.1、在standby数据库查询v$archived_log视图:


SQL> select SEQUENCE#, FIRST_TIME, NEXT_TIME,name from V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIM NEXT_TIME NAME
--------------------------------------------------------------------------------

5 01-AUG-11 01-AUG-11 /oracle/app/standby_archive/log2055914502_1_5.arc

16.2、在primary数据库切换归档:
SQL> alter system archive log current;
System altered.

16.3、验证归档日志是否传送到standby数据库中:

SQL> select SEQUENCE#, FIRST_TIME, NEXT_TIME,name from V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# FIRST_TIM NEXT_TIME NAME
--------------------------------------------------------------------------------

5 01-AUG-11 01-AUG-11 /oracle/app/standby_archive/log2055914502_1_5.arc
6 01-AUG-11 01-AUG-11 /oracle/app/standby_archive/log2055914502_1_6.arc

17、验证新的归档日志是否在standby数据库被应用:

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# APP
---------- ---
5 YES
6 YES

-THE END-

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7417660/viewspace-1053294/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7417660/viewspace-1053294/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值