暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

oracle 19c adg部署文档

原创 游湖 2022-11-15
1557

保证dbname一样,其余不一样

19c 单机ADG部署
前提:主库安装数据库,备库只安装oracle软件即可。
1.DG基础环境
oracle 主库ip:10.10.98.131 ORACLE_SID:orcl db_name='orcl' 主机名:sentry
oracle 备库ip:10.10.98.132 ORACLE_SID:orclst db_name='orcl' 主机名:sentryst

2.主库开启强制归档以及开启归档模,以及修改主库初始化参数
①开启强制归档
alter database force logging;
select force_logging from v$database;
②初始化参数
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLST)' scope=both sid='*';
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCL' scope=spfile;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=ORCLST LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLST' scope=both sid='*';
#主动补归档,丢失归档的话,自己是客户端的时候去哪个server去取归档
alter system set FAL_CLIENT='ORCL' scope=both sid='*';
alter system set FAL_SERVER='ORCLST' scope=both sid='*';
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both sid='*';
#,两个一组,备库在前主库再后
alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/ORCLST','/u01/app/oracle/oradata/ORCL'scope=spfile sid='*';
alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/ORCLST','/u01/app/oracle/oradata/ORCL' scope=spfile sid='*';
③开启归档,开启归档需要重启数据库。



3.主库添加standby redo logfile(连接到CDB$ROOT中执行)
添加规则:创建standby日志组,个数是源日志个数+1再与实例数的积,size不能小于原来日志的大小

SQL> select thread#,group#,members,bytes,bytes/1024/1024 from v$log;

THREAD# GROUP# MEMBERS BYTES BYTES/1024/1024
---------- ---------- ---------- ---------- ---------------
1 1 1 209715200 200
1 2 1 209715200 200
1 3 1 209715200 200

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/ORCL/redo04.log') size 200M;
alter database add standby logfile group 5 ('/u01/app/oracle/oradata/ORCL/redo05.log') size 200M;
alter database add standby logfile group 6 ('/u01/app/oracle/oradata/ORCL/redo06.log') size 200M;
alter database add standby logfile group 7 ('/u01/app/oracle/oradata/ORCL/redo07.log') size 200M;

SQL> select group#,status,type,member from v$logfile;

4.主库和备库监听配置以及TNS配置(主备库tns一样),保证防火墙关闭
主库:listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.12)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19c/db_1)
(SID_NAME = orcl)
)
)

主库:tnsname.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)


ORCLST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.13)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclst)
)
)

备库:listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.13)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orclst)
(ORACLE_HOME = /u01/app/oracle/product/19c/db_1)
(SID_NAME = orclst)
)
)

备库:tnsname.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)



ORCLST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.198.13)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orclst)
)
)

注意:配置完毕再主备库互相访问数据库查看连接情况。





5.主库创建pfile以及cpoy创建好的pfile和口令文件到备库对应位置
主库:
create pfile='/u01/app/oracle/product/19c/db_1/dbs/init20211202.ora' from spfile;
cd $ORACLE_HOME/dbs
scp init20211202.ora oracle@192.168.198.13:/u01/app/oracle/product/19c/db_1/dbs
scp orapworcl oracle@192.168.198.13:/u01/app/oracle/product/19c/db_1/dbs/orapworclst

[oracle@oracle19c dbs]$ more initorcl.ora
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=603979776
orcl.__inmemory_ext_roarea=0
orcl.__inmemory_ext_rwarea=0
orcl.__java_pool_size=83886080
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=385875968
orcl.__sga_target=1157627904
orcl.__shared_io_pool_size=67108864
orcl.__shared_pool_size=335544320
orcl.__streams_pool_size=33554432
orcl.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/app/oracle/oradata/ORCL/control02.ctl'
*.db_block_size=8192
*.db_name='orcl'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers=''
*.local_listener=''
*.log_archive_dest_1='location=/arch'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=365m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='orcl,a'
*.sga_target=1092m
*.shared_servers=0
*.undo_tablespace='UNDOTBS1'




6.备库修改init202009024.ora文件
mkdir -p /u01/app/oracle/admin/orclst/adump

[oracle@oracle19c dbs]$ more init20211202.ora
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=587202560
orcl.__inmemory_ext_roarea=0
orcl.__inmemory_ext_rwarea=0
orcl.__java_pool_size=83886080
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=385875968
orcl.__sga_target=1157627904
orcl.__shared_io_pool_size=67108864
orcl.__shared_pool_size=352321536
orcl.__streams_pool_size=33554432
orcl.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orclst/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/ORCLST/control01.ctl','/u01/app/oracle/oradata/ORCLST/control02.ctl'
*.db_block_size=8192
*.db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCLST'
*.db_name='orcl'
*.db_unique_name='orclst'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers=''
*.fal_client='ORCLST'
*.fal_server='ORCL'
*.local_listener=''
*.log_archive_config='DG_CONFIG=(ORCL,ORCLST)'
*.log_archive_dest_1='LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ORCLST'
*.log_archive_dest_2='SERVICE=ORCL LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
*.log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCLST'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=365m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1092m
*.shared_servers=0
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'


7.备库用init202009024.ora启动到nomount
startup pfile='/u01/app/oracle/product/19c/db_1/dbs/init20211202.ora' nomount;


8.duplicate开始,在备库通过rman进行复制 备库
注意修改备库的oracle_sid
rman target sys/oracle@ORCL auxiliary sys/oracle@ORCLST

run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate auxiliary channel c4 type disk;
allocate auxiliary channel c5 type disk;
allocate auxiliary channel c6 type disk;
duplicate target database for standby from active database nofilenamecheck;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
}
或者:duplicate target database for standby from active database nofilenamecheck dorecover;



9.查看备库数据库状态
select open_mode from v$database;
OPEN_MODE
-------------
MOUNTED

把备库启动到open only下:
alter database open read only;
在备库启动数据库到恢复管理模式,并开始准备从主库接受日志的传输:
alter database recover managed standby database using current logfile disconnect from session;


10.主库检查LNS进程:
select process,status from v$managed_standby;
如果没有LNS进程,则需要检查DG环境。
LNS CONNECTED
LNS WRITING



11.检查主备库角色和其他信息
备库:
select database_role,protection_mode,open_mode from v$database;

主库:
select database_role,open_mode from gv$database;

12.在备库查看data guard为那种日志接受方式:
select process,client_process,sequence#,status from v$managed_standby;
MRP0 N/A 6 APPLYING_LOG

13.检查主备库sequence#
select max(sequence#) from v$archived_log;
select sequence#,name,standby_dest,applied,deleted from v$archived_log where archived='YES' order by sequence# desc;


14.检查日志队列是否正常传输
select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;

检查两边的日志同步情况:
alter system archive log current;
select sequence# from v$archived_log where applied='YES';

注意:备库需要重新创建spfile文件,否则关闭数据库以后重启会找不到参数文件而报错。语句:create spfile from pfile='$ORACLE_HOME/dbs/init20221202.ora';




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论