RAC11.2.0.4+单节点物理standby dataguard-rman恢复方式

一、rac主库配置
1.1、db_name、db_unique_name、instance_name、service_name
db_name:数据库名,多节点的数据库名相同,实例名不相同
db_unique_name:HA的应用,它不同于db_name,dg中要求主从库db_name相同;db_unique_name直接决定了service_name,即服务名
创建数据库时会指定全局数据库名和sid,sid直接决定了instance_name;监听中global_name和db_name可以不同

rac主库:db_name=amondbs,db_unique_name=amondbs_primary,ORACLE_SID=amondbs1,amondbs2,service=amondbs_pri_ser
单实例备库:db_name=amondbs,db_unique_name=amondbs_standby,ORACLE_SID=amondbs_phydb,service=amondbs_sta_ser

rac的数据库名相同,但是实例名不同,实例名(instance_name)来源于ORACLE_SID;默认本地服务名也称为动态注册监听默认服务名(service_names,也可以通过lsnrctl status查看)来源于db_unique_name、db_name;配置连接字符串时connect_data配置的service_name,service_name其实就是service_names的值

(0)修改db_unique_name和ORACLE_SID后,会自动创建$ORACLE_BASE/diag/rdbms/db_unique_name/ORACLE_SID/trace
(1)密码文件是以实例名为标识,即ORACLE_SID,与db_unique_name无关
(2)执行backup archivelog all将当前重做日志切换并归档,然后再做备份归档
(3)静态注册中的sid_name:数据库运行的实例名,必须和instance_name相同;global_dbname:可以是任意值,配置tns时service_name跟它相同
(4)一个instance_name可以对应多个service_name
(5)oracle用户安装oracle数据库,指定Global Database Name不会自动填充,它的值默认就是db_name、db_unique_name的值

1.2、rac主库必须置为归档模式
root@node1.localdomain[+ASM1]/root$crsctl start crs
oracle@node1.localdomain[amondbs1]/home/oracle$sqlplus / as sysdba
SQL> select name,open_mode,log_mode,force_logging from gv$database;

NAME      OPEN_MODE            LOG_MODE     FOR
--------- -------------------- ------------ ---
AMONDBS   READ WRITE           ARCHIVELOG   YES
AMONDBS   READ WRITE           ARCHIVELOG   YES

alter database archivelog;
alter database force logging;

1.3、rac主库必须置为force logging模式
SQL> select inst_id,name,log_mode,force_logging from gv$database;

   INST_ID NAME      LOG_MODE     FOR
---------- --------- ------------ ---
         1 AMONDBS   ARCHIVELOG   YES
         2 AMONDBS   ARCHIVELOG   YES

SQL> alter database force logging;

1.4、rac主库执行rman全备尤其是控制文件
oracle@node1.localdomain[amondbs1]/oracle$mkdir /oracle/rman_backup
RMAN> 
run
{delete noprompt obsolete;
allocate channel c1 type disk MAXPIECESIZE 1G;
allocate channel c2 type disk MAXPIECESIZE 1G;
backup AS COMPRESSED BACKUPSET filesperset 2 format '/oracle/rman_backup/db_full_%T_%d_%t_%s_%p' database;
backup AS COMPRESSED BACKUPSET format '/oracle/rman_backup/arch_full_%T_%d_%t_%s_%p' archivelog all delete input;
backup current controlfile for standby format '/oracle/rman_backup/ctl_standby_%T_%d_%t_%s_%p';
release channel c1;
release channel c2;
}

1.5、rac主库创建从库的初始化参数文件到全备目录init+sid
SQL> show parameter pfile
SQL> create pfile='/oracle/rman_backup/initamondbs_phydb.ora' from spfile='+DATADG/amondbs/spfileamondbs.ora';  ##spfile应该指定磁盘组的spfile初始化参数文件

1.6、rac主库修改双节点共享的初始化参数文件,spfile是共享的,每个节点的pfile有指向spfile的路径
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+DATADG/system01.dbf
+DATADG/sysaux01.dbf
+DATADG/undotbs101.dbf
+DATADG/undotbs201.dbf
+DATADG/users.dbf
+DATADG/testtbs01

SQL> shutdown immediate;

##通过共享的spfile产生pfile,修改rac所有节点的参数,dg配置说明了*/oradata/db_unique_name创建目录
*.db_name='amondbs'
*.db_unique_name='amondbs_primary'
*.log_archive_config='dg_config=(amondbs_primary,amondbs_standby)'	
*.log_archive_dest_2='service=amondbs_sta_ser lgwr async affirm valid_for=(online_logfiles,primary_role) db_unique_name=amondbs_standby'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=defer
*.remote_login_passwordfile='EXCLUSIVE'
*.db_file_name_convert='/home/oracle/oracle/oradata/amondbs_standby','+DATADG/amondbs/datafile'  ##standby库oracle用户创建$ORACLE_BASE/oradata
*.log_file_name_convert='/home/oracle/oracle/oradata/amondbs_standby','+DATADG/amondbs'
*.fal_server=amondbs_standby
*.standby_file_managent=auto
还有角色切换后新角色的配置

##rac单个节点生成spfile即可
##关闭双节点数据库shutdown,启动后竟然使用修改的单节点pfile启动数据库,因为create pfile改变了SPFILE=,所以必须create spfile创建双节点共享的初始化参数文件、修改pfile
SQL> create spfile='+DATADG/amondbs/spfileamondbs.ora' from pfile='/oracle/rman_backup/initamondbs_phydb.ora';
oracle@node1.localdomain[amondbs1]/oracle/db11g_11.2.0.4/dbs$vi initamondbs1.ora
SPFILE='+DATADG/amondbs/spfileamondbs.ora'
SQL> startup  
SQL> alter system set log_archive_dest_state_2=defer sid='*' scope=both;   

##此时服务名不再是默认的服务名,@amondbs_primary时报错,如果配置tnsnames,service_name根据db_unique_name
oracle@node1.localdomain[amondbs1]/oracle/db11g_11.2.0.4/dbs$lsnrctl status
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "amondbs_primary" has 1 instance(s).
  Instance "amondbs1", status READY, has 1 handler(s) for this service...

root@node1.localdomain[+ASM1]/root$sqlplus sys/a@amondbs_primary as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 15 10:58:25 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


注意:
(1)rac主库的*.db_unique_name='amondbs_primary'最好不要设置,保持默认避免scan listener起不来,因为tnsnames.ora中配置的服务名是amondbs;db_unique_name和tns服务名必须保持相同
(2)SQL> alter system set log_archive_dest_2='service=amondbs_sta_ser lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=amondbs_standby' sid='*' scope=both;

1.6、rac主库修改口令文件,使双节点sys用户口令相同,dg从库的sys口令与双节点sys口令相同
sqlplus sys/123456@192.168.0.31:1521/amondbs_primary as sysdba

1.7、rac主库配置tnsname.ora资料库,即配置amondbs_pri_ser、amondbs_sta_ser服务名,需要改双节点
##rac主库配置tnsname.ora资料库后,记得使用tnsping测试网络是否可用
oracle@node1.localdomain[amondbs1]/home/oracle$vi $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/db11g_11.2.0.4/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
amondbs_pri_ser =
        (DESCRIPTION =
                (ADDRESS_LIST =
                     (LOAD_BALANCE = on)
                   (FAILOVER = on)
                   (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.0.4)(PORT=1521))
                   (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.0.6)(PORT=1521))
                )
                (CONNECT_DATA =
                        (SERVICE_NAME = amondbs_primary)
                        (FAILOVER_MODE = (METHOD = basic)(TYPE = select)(DELAY = 5)(RETRIES = 3))
                )
        )

amondbs_sta_ser =
        (DESCRIPTION =
                (ADDRESS_LIST =
                        (ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.0.11)(PORT = 1521))
                )
                (CONNECT_DATA =
                        (SERVER = dedicated)
                        (SERVICE_NAME = amondbs_standby)
                )
        )

###测试一下
sqlplus system/123456@amondbs_pri_ser

1.8、为主库添加standby redo,以便主库切换为从
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值