1. 设置主站点为FORCE LOGGING模式;
Alter DATABASE FORCE LOGGING;
2. 设置归档模式,在整个DATAGUARD环境中,不允许出现非归档模式,因此以后导数据之类的工作不能改到非归档模式下做,否则dataguard需要重做。
a) 打开/关闭自动归档
alter system set log_archive_start=true scope=spfile;alter system set log_archive_start=false scope=spfile;alter system archive log start; --打开自动归档alter system archive log stop; --关闭自动归档
b) 打开/关闭归档日志状态
Shutdown immediateStartup mountalter database archivelog; --打开alter database noarchivelog; --关闭alter database open;
3. 做数据库的冷备份
a) 关闭数据库;
Shutdown immediate
b) 拷贝数据文件等等;
执行下面的查询,可以看到数据文件的路径,
Select name from v$datafile;
c) 重新打开数据库;
Startup
4. 创建standby控制文件
alter database create standby controlfile as '/orasoft/app/oradata/oracl/control01.ctl';
5. 创建pfile;
create pfile from spfile;
以上3,4,5步骤文件均拷贝至standby服务器上;
6. 在主节点/standby节点分别配制相关的tnsnames.ora
TJJ650 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.72)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orACL)))TJJ570 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.85)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orACL)))
7. standby_archive_dest,log_archive_dest_1,log_archive_dest_2参数
standby_archive_dest
指定来自一个主服务器的归档日志传送到standby服务器的到达位置。
standby_archive_dest=/orasoft/app/archive
log_archive_dest_1
指定本地 (指定 LOCATION) 归档日志的存放目标位置
log_archive_dest_1= 'LOCATION=/orasoft/app/archive'
log_archive_dest_2
指定远程 (指定 SERVICE) 归档日志的存放目标位置,此地SERVICE的配置与tnsnames.ora中相一致
log_archive_dest_2= 'SERVICE=TJJ570'log_archive_dest_2= 'SERVICE=TJJ650'
8. 启动备用数据库
SQL> STARTUP NOMOUNT;SQL> Alter DATABASE MOUNT STANDBY DATABASE;SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
9. 关闭备用数据库
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL> SHUTDOWN IMMEDIATE;
10. 只读方式打开备用数据库
a) 从关闭状态打开;
SQL> STARTUP NOMOUNT;SQL> Alter DATABASE MOUNT STANDBY DATABASE;SQL> Alter DATABASE OPEN READ ONLY;
b) 从正在恢复状态只读打开;
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL> Alter DATABASE OPEN READ ONLY;
c) 切换回到恢复状态;
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
11. 主备数据库切换
a) 正常切换:(即主备服务器均可用的情况下,需维护主服务器的情况下):
主服务器:
SQL> alter database commit to switchover to physical standby;SQL> shutdown immediateSQL> startup nomountSQL> alter database mount standby database;SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
备用服务器:
SQL> alter database commit to switchover to primary;SQL> shutdown immediate;SQL> startup
b) 非正常切换:(即主服务器当机的情况):
备用服务器:
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;SQL> Alter DATABASE COMMIT TO SWITCHOVER TO PRIMARY;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;
12. 验证及测试
SQL> Select SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG orDER BY SEQUENCE#;SQL> Select SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG orDER BY SEQUENCE#;
上述两个SQL是测试standby数据库的归档日志接受和恢复情况
SQL> Select TO_CHAR(TIMESTAMP,'YYYY-MM-DD HH24:MI:SS'), MESSAGE FROM V$DATAGUARD_STATUS order by TIMESTAMP;
上述SQL查看最新STANDBY的状态信息
select database_role from v$database;
上述SQL查看当前数据库的角色状态;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10670663/viewspace-611914/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10670663/viewspace-611914/