linux下dataguard使用rman备份

来源:互联网 发布:40本网络禁书txt下载 编辑:程序博客网 时间:2024/06/05 21:08

 

oracle dataguard是指一种数据库级别的HA方案,最主要的功能是容灾,数据保护,故障恢复等
在生产数据库的事务一致性时,使用产生的物理全备份创建备库,备库通过传输过来的归档日志自动维护备用数据库
将重做的数据应用到备用库上。

1,前提:
 primary:192.168.18.1;
   oracle_SID:db1
 db_unique_name=db1
 
 standby: 192.168.18.2
   oracle_sid:standby
 db_unique_name=standby
  

主数据库的准备
 1,设置主数据库的force logging
 alter database force logging;
 
 2,,创建密码文件
  cd $ORACLE_HOME/DBS/ orapwdfile=orapwdb1 password=123 force=yes
 
 3,修改主库的初始化参数
  alter system set log_archive_config='dg_config=(db1,standby)' scope=both;

  alter system set log_archive_dest1='location=/../db1/arch/ scope=both;

  alter system db_unique_name='db1' scope=both;

 4,生成数据库备份,
  conn target sys/123
  backup database format='/oracle/rmanback/%d_%s.dbf' plus archivelog;
  
 5,生成备库的control file

  alter database create standby controlfile as '/../oracle/rmanback/ctontrol01.ctl';

 6,配置listener.ora 和tnsname.ora文件
  
  启动listener.ora 
  
  lsnrctl status
  配置tnsname.ora
  vi $ORACLE_HOME/network/admin/tnsname.ora

  
db1 =(DESCRIPTION =(ADDRESS_LIST =       
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.1)(PORT = 1521)))
     (CONNECT_DATA = (SERVICE_NAME = db1) 
standby =(DESCRIPTION =(ADDRESS_LIST =       
(ADDRESS=(PROTOCOL = TCP)(HOST = 192.168.18.2)(PORT = 1521)))     
     (CONNECT_DATA =(SERVICE_NAME = standby)))


配置standby database

1,设置环境变量,并且安装oracle软件
环境变量和主库是一样的
只需要安装软件,不需要安装数据库


 ./runinstall -silent -respancefile /tmp/instanlloracle.rsp

2,建立相关的目录,

 
  
3,建立密码文件

 cd $ORACLE_home/dbs/ orapwdfile=orapwSID password=123 force=y
  注意密码要与主库的一致,否则会归档失败。
4,建立参数文件pfile

db_name = standby  
shared_pool_size = 120M 
undo_management = AUTO 
undo_tablespace = undotbs 
sga_max_size = 200M 
sga_target = 160M 
db_2k_cache_size = 4M    
standby_file_management=AUTO 
fal_server='db1'
fal_client='standby'
log_archive_dest_1='location=/u01/app/oracle/product/10.2.0/dbs/arch'
log_archive_dest_2='SERVICE=db1 REOPEN=300'
log_archive_dest_state_1='ENABLE'
log_archive_dest_state_2='ENABLE'

4,拷贝主数据库的rman备份及控制文件到备库
 备库的存放位置要与primary database rman备份文件的位置相同,控制文件存放位置要与生成standby database controlfile的位置相同

scp /oracle/rmanback/*.dbf root@192.168.18.2:/oracle/rmanback/
scp /oracle/rmanback/*.ctl root@192.168.18.2:/oracle/oracle/oradata/standby/

5,利用备用的控制文件,把备用数据库启动到mount

 connect / as sysdba
 startup nomount pfile=$ORACLE_HOME/dbs/initstandby.ora
 alter database mount standby database


6,配置listener.ora 和tnsname.ora文件
 与主库相同启动listener,tnsname.ora 也与主库配置的一样

 当主备库的监听都启动后,进行测试,以例下面可以顺利进行

 tnsping db1;
 tnsping standby;

 sqlplus sys/123@db1
 sqlplus sys/123@standby

7,转储数据库
 
 进入rman阶段
 connect target /
 restore database;
 
8,恢复数据库
 recover managed standby database disconnect from session;
 如果需要应用的日志并想手工应用,可以使用如下命令:
  recover automatic standby database;

9,检查standby,database 是否创建成功
 a,在primary database 切换日志
  alter system switch logfile
 b, 在primary database上运行下面语句
  select max(sequence#)from v$archived_log;

 c,在standby database上运行下面命令
  select sequence#,applied from v$archived_log order by sequence#;
 
  
10, 以spfile文件启动并设为是只读的
 create spfile from pfile;
 shutdown immediate
 startup mount
 alter database recover managed standby database disconnect from session;
 alter database open read only;
 

原创粉丝点击