DataGuard配置
来源:互联网 发布:mac重装后是英文界面 编辑:程序博客网 时间:2024/05/17 02:31
Primary设置:
C:\Windows\system32>e:
E:\>cd E:\oracle\product\10.2.0\db_1
E:\oracle\product\10.2.0\db_1>set ORACLE_SID=ORCL
1.设置主数据库为force logging模式
SQL>sqlplus "/as sysdba"
SQL>select force_logging from v$database;
SQL>alter database force logging; ////强制记录日志,即对数据库中的所有操作都产生日志信息,并将该信息写入到联机重做日志文件。
2.设置主数据库为归档模式
SQL> archive log list;
SQL> shutdown immediate ;
SQL> startup mount ;
SQL> alter database archivelog;
SQL> archive log list;
3.添加"备用联机日志文件"
先查看日志文件位置:
SQL>select * from v$logfile; ( select group#,type,memberfrom v$logfile;)
再添加:
SQL> alter database add standby logfile group 4('E:\oracle\product\10.2.0\db_1\oradata\orcl\orcl\redo04.log') size200m;
SQL> alter database add standby logfile group 5('E:\oracle\product\10.2.0\db_1\oradata\orcl\orcl\redo05.log') size200m;
SQL> alter database add standby logfile group 6('E:\oracle\product\10.2.0\db_1\oradata\orcl\orcl\redo06.log') size200m;
SQL> alter database add standby logfile group 7('E:\oracle\product\10.2.0\db_1\oradata\orcl\orcl\redo07.log') size200m;
4.创建主库的初始化参数给备库用
SQL>Create pfile from spfile; //spfile是2进制文件,无法直接编辑。所以通过创建初始化文件pfile
产生的文件名为initorcl.ora存放目录默认放在E:\oracle\product\10.2.0\db_1\database下
5.在主库创建备库的控制文件
SQL>Alter database create standby controlfile as'E:\oracle\product\10.2.0\db_1\control01.ctl';
6. 在主库创建监听和配置tnsnams.ora
7. 在initorcl.ora添加内容
8. 参数文件拷贝(用Rman拷贝,不用停机)
$ rman target /
RMAN> backup full format'E:\oracle\product\10.2.0\db_1\oradata\backup\FULL_%d_%T_%s.bak'database include current controlfile for standby;
RMAN> sql 'alter system archive log current';
RMAN> Backup ArchiveLog allformat='E:\oracle\product\10.2.0\db_1\oradata\backup\arch_%d_%T_%s.bak';
9.启动主数据库
SQL>shutdown immediate;
SQL>startup
----------------------------------------------------------------------
Standby操作:
///可以进行设置新的SQL标识符SQL>set sqlprompt 'scofy>'///1.C;>oradim -new -sid scofy //创建一个名为scofy的oraclesrvice ///数据库为归档模式
C:>set ORACLE_SID=scofy
SQL>sqlplus "/as sysdba"
SQL>startup nomountpfile='E:\oracle\product\10.2.0\db_1\database\initscofy.ora';
SQL>create spfile from pfile;
SQL>select open_mode from v$database;
1.在此standby端进行Rman还原数据库:
$rman target orcl/oracle@orcl auxiliary / //////////sys/admin@primary auxiliary /
//////////这里必须是连接到primary,不要擅作主张改成standby,如果primary无法连接,尝试在前面加上primary所在的IP地址
RMAN> duplicate target database for standby dorecovernofilenamecheck; ///整个复制过程,会自动进行,先复制控制文件,然后再复制数据文件,再复制日志。 ///alterdatabase mount standby database ;这个语句会自动执行//必须指定NOFILENAMECHECK参数,避免覆盖primary数据库的当前的数据文件。DORECOVER并不是必选的,如果不指定,则duplicate仅修复数据文件到目标服务器,不过并不会Recover数据文件,最后将standby数据库打开到MOUNT状态,此时新创建的物理standby有可能与primary相差较远(因为备份后所有的redologs均未在standby数据库上应用过),指定DORECOVER参数后,DUPLICATE在修复数据文件到目标路径下后,就会自动对这些文件执行RECOVER。
2.添加"备用机日志文件"<如果是采用RMAN的方式进行数据库的复制的话,则添加备份联机日志文件要放在RMAN恢复数据库之后>
SQL>startup mount
先查看日志文件位置:
SQL>select * from v$logfile;
在添加:
SQL> alter database add standby logfile group 4('E:\oracle\product\10.2.0\db_1\oradata\scofy\redo04.log') size200m;
SQL> alter database add standby logfile group 5('E:\oracle\product\10.2.0\db_1\oradata\scofy\redo05.log') size200m;
SQL> alter database add standby logfile group 6('E:\oracle\product\10.2.0\db_1\oradata\scofy\redo06.log') size200m;
SQL> alter database add standby logfile group 7('E:\oracle\product\10.2.0\db_1\oradata\scofy\redo07.log') size200m;
3.在备库创建监听和配置tnsnams.ora ///若tnanams.ora发生修改,必须重启监听服务才有效 C:>lsnrctlstop C:>lsnrctl start
4.测试主备之间网络连通
standby:
5..配置备库初始化参数
6.启动备用数据库
----------------------------------------------------------------------------
四、测试
注意Data Guard 启动顺序: 启动顺序:先standby ,后primary;
在备库启动监听: $lsnrctl start
主库进行日志切换:
SQL>Alter system switch logfile;
select max(sequence#) from v$archived_log;
select max(sequence#) from v$log_history;
select group#,sequence#,archived,status fromv$log;
select name,sequence#,applied from v$archived_log;
select sequence#,applied fromv$archived_log;
若不同步,
1.看log日志,archive是否有丢失
2.可以在备库坐如下操作:
SQL>alter database recover managed standby databasecancel;///暂停redo应用,在查询数据之前执行
SQL>alter database recover managed standby databasedisconnect from session; ///启动redo应用
------------------------------------------------------------------------
主备库切换
1. switchover
一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATAGUARD环境不会被破坏, 原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。 在进行DATAGUARD的物理STANDBY切换前需要注意:
2 确认主库和从库间网络连接通畅;
2 确认没有活动的会话连接在数据库中;
2 PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;
2 确保STANDBY数据库处于ARCHIVELOG模式;
2 如果设置了REDO应用的延迟,那么将这个设置去掉;
2 确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。
主库上的操作:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROMV$DATABASE;
附:A: switchover_status出现session active/notallowed
2.切换成备库
SQL>Alter database commit to switchover to physical standbywith session shutdown; ////如果通过查询switchover_status的状态不是tostandby的话,就用上面的命令,如果是的话上面的命令去掉最后的with session sthudown>
3.启动到mount和应用日志状态
SQL> shutdown immediate;
SQL> startup nomount;
SQL> alter database mount standbydatabase;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASEDISCONNECT FROM SESSION;
4.查看数据库模式
SQL>selectdest_name,status,database_mode,recovery_mode,protection_mode fromv$archive_dest_status;
SQL>select status,database_mode fromv$archive_dest_status;
SQL>select SWITCHOVER_STATUS FROMV$DATABASE;
备库上的操作:
1.查看switchover状态
SQL> SELECT SWITCHOVER_STATUS FROMV$DATABASE;
2.切换成主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TOPRIMARY;
/////如果上面查出的结果不是to primary,则用此语句切换:ALTER DATABASE COMMIT TOSWITCHOVER TO PRIMARY with session shutdown ;
Database altered.
SQL> shutdown immediate;
SQL> startup;
SQL> alter system switch logfile;
3.查看数据库模式
SQL>selectdest_name,status,database_mode,recovery_mode,protection_mode fromv$archive_dest_status;
SQL>select status,database_mode fromv$archive_dest_status;
----------------------------------------------------
failover
1.查看是否有日志GAP,没有应用的日志:
如果有,则拷贝过来并且注册
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路径';///加入到数据字典中
重复查看直到没有应用的日志
2.然后停止应用归档:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASECANCEL;
Database altered.
3.下面将STANDBY数据库切换为PRIMARY数据库:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASEFINISH FORCE; ///force会停止当前活动的RFS进程,以便立刻执行failover,///RFS是日志推送,根据配置不同,推送的进程可能是ARCH或者LGWR
Database altered.
SQL> SELECT DATABASE_ROLE FROMV$DATABASE;
DATABASE_ROLE
----------------
PRIMARY
至此,FAILOVER切换完成。这个时候应该马上对新的PRIMARY数据库进行备份。
0 0
- DataGuard配置
- Dataguard配置StepbyStep
- 配置Oracle physical DataGuard
- oracle10g DataGuard配置手册
- DATAGUARD详细配置
- oracle dataguard配置步骤
- Oracle DataGuard 简单配置~
- DATAGUARD详细配置
- 配置dataguard (oracle10g)
- oracle win2003 dataguard配置
- Dataguard参数配置
- Oracle dataguard 配置
- linux oracle11g dataguard配置
- 数据迁移:DataGuard配置
- DATAGUARD 参数配置
- 自己动手配置oracle dataguard
- DataGuard参数配置详解
- DataGuard参数配置详解
- leetcode_解题_reorder list
- Android之Adapter用法总结
- JVM参数总结
- 9i数据库的RMAN备份恢复
- 数据迁移
- DataGuard配置
- 大熊市中的准确判断与果断离场
- 自己出的题:唐学长的蜜月之旅(数论:欧拉函数)
- Grep命令详解-9个经典使用场景
- java线程池
- Maven项目多模块拆分
- Android APK反编译详解(附图)
- UVA10405 (DP)
- uva 10405(最长公共子序列)