在主库:
创建一个pfile文件:
create pfile from spfile;(生成的文件与spfile在同一个目录)
修改参数:(需重启)
从主库发往从库
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(cdecdb1,cdedg)' scope=spfile
自己的归档存放在哪里
alter system set LOG_ARCHIVE_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=cdecdb1' scope=both;
对方归档存放在哪里,采用lgwr与异步方式
alter system set LOG_ARCHIVE_dest_2='SERVICE=cdedg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cdedg' scope=both;
解决归档丢失问题,自动补全
alter system set fal_client='cdecdb1' scope=both;
alter system set fal_server='cdedg' scope=both;
alter system set db_file_name_convert='CDEDG','CDECDB1' scope=spfile;
alter system set LOG_file_name_convert='CDEDG','CDECDB1' scope=spfile;
alter system set standby_file_management=AUTO scope=both;
重启数据库
shutdown immediate
startup
把之前创建的pfile文件发生到对方对应目录
scp initcdecdb1.ora ol76test87:/opt/oracle/product/19c/dbhome_1/dbs/
mv initcdecdb1.ora initcdedg.ora
vim initcdedg.ora
只保留*开头的,再继续修改
把cdb1(大小写都改)改为dg,但db_name那个不要改
删除local_listener项
再写入以下参数:
*********************************************
db_unique_name='cdedg'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(cdedg,cdecdb1)'
LOG_ARCHIVE_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=cdedg'
LOG_ARCHIVE_dest_2='SERVICE=cdecdb1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cdecdb1'
fal_client='cdedg'
fal_server='cdecdb1'
db_file_name_convert='CDECDB1','CDEDG'
LOG_file_name_convert='CDECDB1','CDEDG'
standby_file_management=AUTO
********************************************
创建配置文件里提到的目录:
mkdir -p /opt/oracle/admin/cdedg/adump
mkdir -p /opt/oracle/oradata/CDEDG
登陆sqlplus sys/whoami@cdedg
startup pfile='/opt/oracle/product/19c/dbhome_1/dbs/initcdedg.ora' nomount;
create spfile from pfile;
shutdown immediate;
startup nomount; |