grid单实例创建dataguard

PR操作

1、srvctl删除已有的数据库资源

查看db_unique_name

sql>show parameter name

sql>create pfile='/oracle/pfilecc.ora' from spfile;

如果db_unique_name 与需要修改的dbname不相同,需要修改

oracle:srvctl config database -d cc 记录下当前cc的-spfile,-pwfile,-diskgroup

#主备机都需要删除

oracle:srvctl remove database -d cc -f

2、核查sys密码

oracle:rman target sys/*****@cc #是否能登录

复制密码文件到asm磁盘(复制密码文件后不能修改sys密码)

oracle:cd $ORACLE_HOME/dbs

oracle:pwd /oracle/product/19c/dbs

grid:asmcmd

cd CCSYS/CC

cp /oracle/product/19c/dbs/orapwcc .

3、添加db

#主机备机都需要执行

oracle:srvctl add database -d pr_cc -dbname cc -oraclehome /oracle/product/19c -instance cc -spfile +CCSYS/CC/PARAMETERFILE/spfile.265.1089433541 -pwfile +CCSYS/CC/orapwcc -diskgroup CCSYS,CCDATA01,CCDATA02

oracle:srvctl config database -d pr_cc

4、重启pr_cc,开启归档,修改参数,并重启

srvctl stop database -d pr_cc

srvctl start database -d pr_cc -o mount

sql>alter database archivelog;

sql>show parameter name;

sql> alter system set db_unique_name='pr_cc' scope=spfile;

sql> alter system set LOG_ARCHIVE_DEST_1='location=+CCARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=pr_cc' scope=spfile;

sql> alter system set log_file_name_convert = 'CC','CC' scope=spfile;

srvctl stop database -d pr_cc

srvctl start database -d pr_cc

sqlplus / as sysdba

show parameter convert

show parameter name

5、配置静态监听(grid下listener.ora添加),主备机都需要添加,并reload

#主机备机都需要添加

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = cc)

(ORACLE_HOME = /oracle/product/19c)

(SID_NAME = cc)

)

)

lsnrctl reload

6、tnsnames.ora添加pr_cc,dr_cc

#主备机都需要添加

添加pr_cc,dr_cc到/oracle/product/19c/network/admin/tnsnames.ora,pr_cc的配置与cc相同

7、复制密码文件和pfile到DR

[/oracle/product/19c/dbs]$scp /oracle/pfilecc.ora 10.54.201.1:/oracle

[/oracle/product/19c/dbs]$scp /oracle/product/19c/dbs/orapwcc ip:/oracle/product/19c/dbs/ #密码文件

8、添加standby redo ,比当前redo多一组

export ORACLE_SID=cc

sqlplus / as sysdba

alter database add standby logfile thread 1 group 9 ('+CCSYS/CC/redo_009_1.dbf','+CCSYS/CC/redo_009_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 10 ('+CCSYS/CC/redo_010_1.dbf','+CCSYS/CC/redo_010_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 11 ('+CCSYS/CC/redo_011_1.dbf','+CCSYS/CC/redo_011_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 12 ('+CCSYS/CC/redo_012_1.dbf','+CCSYS/CC/redo_012_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 13 ('+CCSYS/CC/redo_013_1.dbf','+CCSYS/CC/redo_0013_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 14 ('+CCSYS/CC/redo_014_1.dbf','+CCSYS/CC/redo_0014_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 15 ('+CCSYS/CC/redo_015_1.dbf','+CCSYS/CC/redo_0015_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 16 ('+CCSYS/CC/redo_016_1.dbf','+CCSYS/CC/redo_0016_2.dbf') size 2048M;

alter database add standby logfile thread 1 group 17 ('+CCSYS/CC/redo_017_1.dbf','+CCSYS/CC/redo_0017_2.dbf') size 2048M;

9、配置参数(无需重启)

sql> ALTER DATABASE FORCE LOGGING;

sql> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(pr_cc,dr_cc)' scope=both;

sql> alter system set LOG_ARCHIVE_DEST_2='SERVICE=dr_cc ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=dr_cc' scope=both;

sql> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

sql> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

SQL> alter system set fal_client=pr_cc scope=both;

SQL> alter system set fal_server=dr_cc scope=both;

SQL> alter system set standby_file_management='AUTO' scope=both;

DR操作:

1、生成spfile

su - oracle

mkdir -p /oracle/admin/cc/adump

[/oracle/prccuct/19c/dbs]$ export ORACLE_SID=cc

[/oracle/prccuct/19c/dbs]$sqlplus / as sysdba

create spfile='+CCSYS/CC/spfilecc.ora' from pfile='/oracle/pfilecc.ora';

2、密码文件添加

复制密码文件到asm磁盘(复制密码文件后不能修改sys密码)

oracle:cd $ORACLE_HOME/dbs

oracle:pwd /oracle/product/19c/dbs

grid:asmcmd

cd CCSYS/CC

cp /oracle/product/19c/dbs/orapwcc .

3、添加db

oracle:srvctl config database -d cc 记录下当前cc的-spfile,-pwfile,-diskgroup

#主备机都需要删除

oracle:

srvctl remove database -d cc -f

#主备机都需要添加

oracle:srvctl add database -d dr_cc -dbname cc -oraclehome /oracle/product/19c -instance cc -spfile +CCSYS/CC/spfilecc.ora -pwfile +CCSYS/CC/orapwcc -diskgroup CCSYS,CCDATA01,CCDATA02

oracle:srvctl config database -d pr_cc

4、配置静态监听(grid下listener.ora添加),主备机都需要添加,并reload

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = cc)

(ORACLE_HOME = /oracle/product/19c)

(SID_NAME = cc)

)

)

lsnrctl reload

5、tnsnames.ora添加pr_cc,dr_cc

#主备机都需要添加

添加pr_cc,dr_cc到/oracle/product/19c/network/admin/tnsnames.ora,dr_cc的配置与cc相同

7、测试sys密码

srvctl start database -d dr_cc -o nomount

oracle:rman target sys/****@dr_cc #是否能登录

8、修改参数

export ORACLE_SID=cc

sqlplus / as sysdba

alter system set db_unique_name='dr_cc' scope=spfile;

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(pr_cc,dr_cc)' scope=both;

alter system set LOG_ARCHIVE_DEST_1='location=+CCARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) db_unique_name=dr_cc' scope=both;

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

alter system set log_file_name_convert = 'CC','CC' scope=spfile;

alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

alter system set fal_client=dr_cc scope=both;

alter system set fal_server=pr_cc scope=both;

alter system set standby_file_management='AUTO' scope=both;

shutdown immediate

srvctl start database -d dr_cc -o nomount

9、开始复制

rman target sys/ZTEsoft123@pr_cc auxiliary sys/ZTEsoft123@dr_cc

duplicate target database for standby from active database nofilenamecheck;

10、复制完成后开启MRP进程

$sqlplus / as sysdba

alter database recover managed standby database using current logfile disconnect from session;

检查归档是否正常传输和应用:

dr_cc的alert日志

select process ,status , sequence# from v$managed_standby;

如果alert报如下错,需要执行clear unarchived log,手动生成redo:

ORA-00313,ORA-00312

select 'alter database clear unarchived logfile group '|| group#||';' from v$log;

再开启MRP进程

alter database recover managed standby database using current logfile disconnect from session;

select process ,status , sequence# from v$managed_standby;

再次检查alert,保证无报错

11、临时文件自动生成

duplicate之后需要open read only生成临时文件,否则mount状态下临时文件无法自动生成(但是临时文件是在controlfile里的,select name from v$tempfile存在,所以open后能自动生成)

open之前,控制文件里有,文件系统没有:

alter database recover managed standby database cancel ;

alter database open read only;

open之后文件系统自动生成temp:

恢复standby库:

shutdown immediate

startup mount

alter database recover managed standby database disconnect from session;

注意:pr添加temp文件不会自动同步到dr,需要手动在dr添加,如:

alter tablespace temp2 add tempfile '/ccdata02/cc/temp06.dbf' size 32767m;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值