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;