ITPub博客

首页 > 数据库 > Oracle > Data Guard之Physical Standby Database

Data Guard之Physical Standby Database

原创 Oracle 作者:danghuagood 时间:2014-03-02 21:17:18 0 删除 编辑
1、检查数据库是否支持Data Guard(企业版才支持),是否归档模式,Enable force logging
SQL> select * from v$option where parameter = 'Managed Standby';

确认主库处于归档模式
SQL> archive log list;
若显示为No Archive Mode
Database log mode No Archive Mode
Automatic archival Disabled
则需要转为Archive Mode模式
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/data/archive_dest/march' scope=spfile;
SQL> alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log list;
SQL> alter database open;

进行日志切换,查看/data/archive_dets/march目录下是否有归档日志
SQL> alter system switch logfile;

将primary数据库置为FORCE LOGGING模式
SQL> alter database force logging;

2、如果主库没有密码文件则建立密码文件,从而可以OS验证的方式登陆
[oracle@oracle-db1 ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5

3、配置standby redolog(最佳性能模式可以忽略,若变成备库且要转为其它两种模式则要建立)
SQL> alter database add standby logfile group 4 '/data/app/oracle/oradata/boss/sredo04.log' size 50M;
SQL> alter database add standby logfile group 5 '/data/app/oracle/oradata/boss/sredo05.log' size 50M;
(maximum number of logfiles for each thread + 1) * maximum number of threads
单机线程数为1,RAC一般为2。standby redolog的组成员数和大小也尽量和online redolog一样

4、设置主库初始化参数
DB_UNIQUE_NAME=boss
INSTANCE_NAME=boss
LOG_ARCHIVE_CONFIG='DG_CONFIG=(boss,bosstdy)'
LOG_ARCHIVE_DEST_1='LOCATION=/data/archive_dest/march VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=boss'
LOG_ARCHIVE_DEST_2='SERVICE=bosstdy LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=bosstdy'
LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'
LOG_ARCHIVE_DEST_STATE_1=enable
LOG_ARCHIVE_DEST_STATE_2=enable
REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'
LOG_ARCHIVE_MAX_PROCESSES=4
FAL_SERVER=bosstdy
FAL_CLIENT=boss

若主备数据库之间数据目录不一致,则添加下面参数
#DB_FILE_NAME_CONVERT='/data/app/oracle/oradata/boss','/data/app/oracle/oradata/boss'
#LOG_FILE_NAME_CONVERT='/data/app/oracle/oradata/boss','/data/app/oracle/oradata/boss'
STANDBY_FILE_MANAGEMENT=AUTO

5、备份主库数据文件
RMAN> backup full database format '/data/xchtmp/backup/backup_%T_%s_%p.dbf';
RMAN> sql "alter system archive log current";
RMAN> backup archivelog all format '/data/xchtmp/backup/backup_%T_%s_%p.arc';

6、创建 standby 数据库控制文件
SQL> alter database create standby controlfile as '/data/xchtmp/backup/standby.ctl';

7、为备库准备init参数
DB_UNIQUE_NAME=bosstdy
INSTANCE_NAME=bosstdy
LOG_ARCHIVE_CONFIG='DG_CONFIG=(boss,bosstdy)'
LOG_ARCHIVE_DEST_1='LOCATION=/letv/archivelog_dest/march VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=bosstdy'
LOG_ARCHIVE_DEST_2='SERVICE=boss LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boss'
LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'
LOG_ARCHIVE_MAX_PROCESSES=4
FAL_SERVER=boss
FAL_CLIENT=bosstdy

若主备数据库之间数据目录不一致,则添加下面参数
#DB_FILE_NAME_CONVERT='oradata/boss','oradata/bosstdy'
#LOG_FILE_NAME_CONVERT='oradata/boss','oradata/bosstdy'
STANDBY_FILE_MANAGEMENT=AUTO

8、拷贝上面生成的文件backup_%T_%s_%p.dbf、standby.ctl、backup_%T_%s_%p.arc到备库所在主机

9、建立主库监听和主备库的网络服务名(必须是dedicated的),并启动监听
BOSS =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db1)(PORT = 1521))
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = boss)
    )
)

BOSSTDY =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db2)(PORT = 1521))
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = bosstdy)
    )
)

分别启动主库和备库的监听
[oracle@oracle-db1~]$ lsnrctl start
[oracle@oracle-db2~]$ lsnrctl start

10、备库建立密码文件,从而可以OS验证的方式登陆,注意密码与主库相同
[oracle@oracle-db2~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle

11、备库利用参数文件启动到nomount状态
[oracle@oracle-db2 ~]$ sqlplus /nolog
SQL> conn /as sysdba
SQL> create spfile from pfile;
SQL> startup nomount;

12、利用RMAN恢复备库
[oracle@oracle-db1 ~]$ rman target sys/oracle@boss auxiliary sys/oracle@bosstdy

在主库上执行上面命令时报错
RMAN-04006: error from auxiliary database: 
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
是由于备库bosstdy只是启动到nomount状态,没有启动到mount状态,只是实例属于BLOCKED状态
Instance "bosstdy", status BLOCKED, has 1 handler(s) for this service...

换一种思维,在备库执行以上恢复
[oracle@oracle-db2 ~]$ rman target sys/oracle@boss auxiliary /
RMAN> duplicate target database for standby;
如执行以上duplicate命令报错时
RMAN-05001: auxiliary filename xxx conflicts with a file used by the target database
添加nofilenamecheck参数
RMAN> duplicate target database for standby nofilenamecheck;

或者监听注册为静态的


13、备库添加standby redolog(日志组号、成员个数、日志大小等规则均与主库相同)
SQL> alter database add standby logfile group 4 '/data/app/oracle/oradata/boss/sredo04.log' size 50M;
SQL> alter database add standby logfile group 5 '/data/app/oracle/oradata/boss/sredo05.log' size 50M;

14、启动redo应用
--启动redo应用
SQL> alter database recover managed standby database disconnect from session;

--启动实时redo应用
SQL> alter database recover managed standby database using current logfile disconnect from session;

--停止redo应用的命令
SQL> alter database recover managed standby database cancel;

15、查看同步情况
--primary database
SQL> show parameter instance_name;
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;

--standby database
SQL> show parameter instance_name;
SQL> select max(sequence#) from v$archived_log;

16、验证redo log是否传输到standby database
--primary database
SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;
SQL> alter system switch logfile;

--standby database
SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;

--验证standby redo是否应用
SQL> select sequence#,applied from v$archived_log order by sequence#;

17、主备库关闭与启动顺序
启动顺序:先standby,后primary
关闭顺序:先primary,后standby

18、错误的查找
--primary database
SQL> col dest_name for a30
SQL> col error for a20
SQL> select dest_name,status,error,target,process from v$archive_dest where substr(dest_name,-1) in (1,2);

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

上一篇: mysql5.1的安装
请登录后发表评论 登录
全部评论

注册时间:2012-04-02

  • 博文量
    6
  • 访问量
    19660