手工创建dataguard库

主库运行脚本1.sql
--脚本1开始:
alter database force logging;
alter system set db_unique_name='dg1' scope=spfile;
--改了后service_names会自动改成与db_unique_name一致,即dg1,而intance_name,db_name等不变。
alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;
--脚本1结束

关库shutdown immediate;
开库startup mount
开启归档:alter database archivelog;
OPEN库:alter database open;

--关开库后,上述的db_unique_name才 能生效,下述调整才能顺利执行。

--脚本2开始
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2) ' scope=both;

alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
DB_UNIQUE_NAME=dg1' scope=both;

alter system set LOG_ARCHIVE_DEST_2='SERVICE=dg2 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dg2' 
scope=both;

alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;

alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;

alter system set LOG_ARCHIVE_MAX_PROCESSES=30 scope=both;

--下面两个参数是当主库切换为备库的时候用的。

alter system set FAL_SERVER=dg2;

alter system set STANDBY_FILE_MANAGEMENT=AUTO;

--脚本2结束

将两个库的tnsnames.ora配置好,两边起监听,tnsping测试。
创建主库的密码文件,并传送到各个节点:
orapwd file=orapw$ORACLE_SID password=oracle entries=4
主库的参数文件传到备库,备库修改部分参数。
db_unique_name=<s$ORACLE_SID>
control_files='+DATA','+FRA' 
fal_server=<$ORACLE_SID>
fal_client=<s$ORACLE_SID>

备库环境变量的设置。
主库准备RMAN脚本。
RMAN> connect target /
RMAN> show all;
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 4;
RMAN>RUN {
ALLOCATE CHANNEL ch00 TYPE disk; 
ALLOCATE CHANNEL ch01 TYPE disk; 
ALLOCATE CHANNEL ch02 TYPE disk; 
ALLOCATE CHANNEL ch03 TYPE disk; 
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 4;
CONFIGURE BACKUP OPTIMIZATION ON; 
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP section size 4096m FILESPERSET 4 FORMAT='<备份目录>/back_%d_%s_%p_%t' DATABASE;  
BACKUP CURRENT CONTROLFILE for standby FORMAT='<备份目录>/<$ORACLE_SID>_ctl.f';
release channel ch00; 
release channel ch01; 
release channel ch02; 
release channel ch03; 
}



将备库与控制文件都移到目标库机器。
目标库上建立对应文件夹。比如oradata下的orcl文件夹,admin下的orcl文件夹,里面的adump,dpdump,flash_recovery_area里面的

orcl文件夹。

备库建脚本
RMAN> restore controlfile from <$Rman_Backup_Path>/<$ORACLE_SID>_ctl.f';
RMAN> alter database mount;
RUN {
ALLOCATE CHANNEL ch00 TYPE disk; 
ALLOCATE CHANNEL ch01 TYPE disk; 
ALLOCATE CHANNEL ch02 TYPE disk; 
ALLOCATE CHANNEL ch03 TYPE disk; 
restore database;
release channel ch00; 
release channel ch01; 
release channel ch02; 
release channel ch03; 
}

备库alter database convert to physical standby;
shutdown immediate;
startup mount


主库备库增加日志组,都加4组日志组。
alter database add standby logfile size 50m;


此时不能open库,因为要recover。
将两边的监听开启,并注册好。
开启MRP进程
alter database recover managed standby database using current logfile disconnect from session;
开一会后停掉。
停掉MRP进程:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
然后就可以alter database open read only了。
open后继续开启MRP进程。

看MRP进程在做什么
select PROCESS,STATUS,CLIENT_PROCESS,GROUP#,THREAD#,SEQUENCE# , BLOCK# from  v$managed_standby where process='MRP0';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值