逐步创建Data Guard(四)

2014-11-24 08:46:23 · 作者: · 浏览: 12
==========
background_dump_dest='/oradata/app/oracle/oradata/stddb/bdump'
core_dump_dest='/oradata/app/oracle/oradata/stddb/cdump'
user_dump_dest='/oradata/app/oracle/oradata/stddb/udump'
compatible='11.1.0.0.0'
db_block_size=8192
db_recovery_file_dest='/oradata/app/oracle/flash_recovery_area'
db_recovery_file_dest_size=8G
undo_tablespace='UNDOTBS1'
undo_management=auto

db_name=primdb
db_unique_name=stddb
log_archive_config='dg_config=(primdb,stddb)'
control_files='/oradata/app/oracle/oradata/stddb/control01.ctl','/oradata/app/oracle/oradata/stddb/control02.ctl','/oradata/app/oracle/oradata/stddb/control03.ctl'
log_archive_dest_1='location=/oradata/stddb/ valid_for=(all_logfiles,all_roles) db_unique_name=stddb'
log_archive_dest_2= 'service=primdb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=primdb'
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
remote_login_passwordfile='EXCLUSIVE'
log_archive_format=%t_%s_%r.arc
log_archive_max_processes=30
db_file_name_convert='/oradata/app/oracle/oradata/primdb/','/oradata/app/oracle/oradata/stddb/',/oradata/primdb/ ,/oradata/stddb/
log_file_name_convert= '/oradata/app/oracle/oradata/primdb/','/oradata/app/oracle/oradata/stddb/',/oradata/primdb/ ,/oradata/stddb/
fal_server=primdb
fal_client=stddb
standby_file_management=auto
================================================================
8、修改并保存参数文件后,以SYSDBA登录standby通过pfile创建spfile
create spfile from pfile='/tmp/pfile_pri.ora';

9、启动standby到nomount状态
startup nomount

10、在主库通过RMAN来恢复
rman target / auxiliary sys/123456@orcl --在主库执行该命令,连接到standby数据库,orcl是备库的实例
RMAN> duplicate target database for standby; --连接成功后,执行该命令,来恢复备库,前提要保证能够找到备份文件

11、检查standby数据库状态
select status from v$instance;

12、查看路径转换
show parameter convert

13、在数据字典中查看standby实际识别的数据文件路径,看是否已经转换成功
select name from v$datafile;

如果路径显示正确的话,standby已经可以接受primary的日志了

14、在主库,更改log_archive_dest_state_2参数
ALTER SYSTEM SET log_archive_dest_state_2=enable scope=spfile;

===========================================================
备库日志接收应用
1、下面在主机操作
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

日志发送已经开始

2、查询日志发送接受结果
在主机
select max(sequence#) from v$archived_log;

在备机
select max(sequence#) from v$archived_log;

select sequence#,name from v$archived_log order by sequence# desc;

3、启动备机的redo应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

4、暂停redo应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
打开数据库并查询
ALTER DATABASE OPEN;
select * from scott.tmp;

验证有效性
1、在primary数据库和standby数据库分别输入以下查询语句:
SQL>select switchover_status from v$database;
如果2者输出结果分别为”to standby”和”to primary”,则表示成功。

2、在主库切换日志,备库观察alert文件,确认日志接收到并且应用,表明DG成功。
主库
alter system set logfile;
备库
tail -f /oradata/app/oracle/oradata/stddb/bdump/alert_stddb.log
3、查询数据库的表空间和对应的数据文件
set line 150 pages 1000
col file_name for a50
select file_name,tablespace_name from dba_data_files order by 2;

4、查看联机日志文件
select group#,type,member from v$logfile;
select group#,thread#,sequence#,archived,status from v$standy_log;

5、查看控制文件
select name from v$controlfile;


6、首先查看当前的保护模式 ---primary数据库操作
SQL> select protection_