oracle 18c dg搭建手册(rman duplicate方式)

其他文档:

oracle18cdg搭建手册完整版(dbca方式)

在安装Oracle18cRAC全网最详细手册

oracle18c单实例安装文档

环境说明

本文档仅用于测试搭建Oracle18cDG,没有任何性能参数方面的调整。而且故意将主备库的数据文件存放目录设置不同,为了之后一些问题的测试。

主库

备库

IP地址

192.168.1.166

192.168.1.167

数据库SID

leidb

leidb

DB_UNIQUE_NAME

leidb_p

leidb_s

数据文件路径

/u01/app/oracle/oradata

/u01/app/oracle/oradata_s

归档路径

/u01/archivelog

/u01/archivelog_s

主备库的数据库安装

主库安装数据库软件和创建数据库

备库只需要安装数据库软件和创建相关目录即可

操作系统环境配置

如果没有特殊说明,下面每一步都需要在主备库上执行。

配置host
cat/etc/
添加用户和组
/usr/sbin/groupadd-g54321oinstall/usr/sbin/groupadd-g54322dba/usr/sbin/groupadd-g54323oper/usr/sbin/useradd-u54321-goinstall-Gdba,operoracle

设置密码

:BADPASSWORD:Thepasswordisshorterthan8charactersRetypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.
关闭防火墙和selinux

防火墙:

'/etc/systemd/system//'rm'/etc/systemd/system/'

SELINUX:

cat/etc/selinux/configSELINUX=cantakeoneofthesethreevalues:=cantakeoneofthesetwovalues:=targeted
创建目录
mkdir-p/u01/app/oracle/product/18.3.0/db_1chown-Roracle:oinstall/u01/chmod-R775/u01/
配置用户环境变量·ORACLE用户

在/home/oracle/.bash_profile中添加以下内容

ORACLE_SID=leidb;exportORACLE_SIDORACLE_BASE=/u01/app/oracle;exportORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/18.3.0/db_1;exportORACLE_HOMEPATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/binPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexportPATHLD_LIBRARY_PATH=$ORACLE_HOME/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexportLD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRECLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexportCLASSPATHexportTEMP=/tmpexportTMPDIR=/tmpumask022
修改资源限制修改/etc/security/
cat/etc/security/024oraclehardnofile65536oraclesoftstack10240oraclehardstack32768oraclesoftmemlock3145728oraclehardmemlock3145728EOF
修改内核参数
vi/etc/=6815744=25032000100128=4096=1073741824=4398046511104_on_oops=1_default=262144_max=4194304_default=262144_max=1048576_filter=2_filter=2=1048576_local_port_range=900065500

生效

sysctl-p
安装必要的包

在Redhat7.*镜像文件中没有了compat-libstdc++-33包,需要单独下载。

yuminstallbinutilscompat-libstdc++-33gccgcc-c++++-
安装数据库软件

由于从12.2开始,Oracle将采用ZIP格式直接将Oracle_HOME下的内容直接压缩到一个ZIP格式文件中,所以直接解压到ORACLE_HOME下即可。例如:

[oracle@lei-psoftware]$unzip-d/u01/app/oracle/product/18.3.0/db_1/_180000_db_[oracle@lei-psoftware]$cd/u01/app/oracle/product/18.3.0/db_1/[oracle@lei-pdb_1]$./runInstaller

如果是单实例则选择第一个

选择企业版

修改为新的ORACLE_BASE目录

默认

安装前检查,内存不符合要求。18c建议的内存为8G

正在安装

执行脚本

DBCA创建数据库

仅在主库执行即可。

启用归档并设置归档目录

主库启动FORCELOGGING

在CDBroot中执行以下命令

SQLalterdatabaseforcelogging;_loggingfromv$database;FORCE_LOGGING--------------------------------------------------------------------------------YES
主库启动归档模式
SQLshutdownimmediateSQLstartupmountSQLalterdatabasearchivelog;Databasealtered.

修改归档目录(建议修改),备库为:/u01/archive_s

SQLaltersystemsetlog_archive_dest_1='location=/u01/archivelog'scope=both;--直接生效bledArchivedestination/u01/archivelogOldestonlinelogsequence2Nextlogsequencetoarchive4Currentlogsequence4SQLalterdatabaseopen;Databasealtered.
在主库添加standbyredolog

在CDBroot中添加standbyredolog,实际上在主库上是用不到standbyredolog的。但是为了方便以后的switchover等操作就直接添加了,而且后面搭建备库时备库也会被创建。

SQLshowcon_nameCON_NAME------------------------------CDB$ROOTSQLselectgroupMEMBERSBYTES------------------------------11209715200--可以看到默认大小以及是200M了,一起是50M。21209715200SQLSQLselectmemberfromv$logfile;MEMBER-------------------------------------------------------------------------------------------------------/u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB/

--要比onlineredolog多一组

alterdatabaseaddstandbylogfile'/u01/app/oracle/oradata/LEIDB/'size200M;alterdatabaseaddstandbylogfile'/u01/app/oracle/oradata/LEIDB/'size200M;alterdatabaseaddstandbylogfile'/u01/app/oracle/oradata/LEIDB/'size200M;alterdatabaseaddstandbylogfile'/u01/app/oracle/oradata/LEIDB/'size200M;SQLselectmemberfromv$logfile;MEMBER--------------------------------------------------------------------------------/u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB//u01/app/oracle/oradata/LEIDB/
在主库创建pfile文件并修改pfile内容
SQLcreatepfile='/tmp/'fromspfile;Filecreated.在pfile中添加如下内容:[oracle@host1dbs]$vi/u01/app/oracle/product/18.1.0/dbhome_1/dbs/*.db_unique_name='leidb_p'*.log_archive_config='dg_config=(leidb_p,leidb_s)'*.log_archive_dest_1='location=/u01/archivelogvalid_for=(all_logfiles,all_roles)db_unique_name=leidb_p'*.log_archive_dest_2='service=leidb_saffirmsyncvalid_for=(online_logfiles,primary_role)db_unique_name=leidb_s'*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enable*.standby_file_management='auto'*.fal_server='leidb_s'*.log_file_name_convert='/u01/app/oracle/oradata_s/LEIDB','/u01/app/oracle/oradata/LEIDB'--如果你的环境主备库数据文件目录相同,可以不需要这两个参数。*.db_file_name_convert='/u01/app/oracle/oradata_s/LEIDB','/u01/app/oracle/oradata/LEIDB'

注意:db_file_name_convert和log_file_name_convert指定的目录先后顺序,前面一个是目标库的数据文件(日志)存放目录,后面一个是源库(本地库)的数据文件(日志)存放目录。

用新参数重启数据库:

SQLshutdownimmediateSQLcreatespfilefrompfile='/tmp/';SQLstartup
主备库配置静态监听并启动

这里最好通过netmgr来配置,因为监听文件对格式要求比较高。

[oracle@lei-padmin]$_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=leidb)(ORACLE_HOME=/u01/app/oracle/product/18.3.0/db_1)(SID_NAME=leidb)))LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=lei-p)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))))ADR_BASE_LISTENER=/u01/app/oracle

重启监听或直接reload

[oracle@host1admin]$lsnrctlreloadLSNRCTLforLinux::41:07Copyright(c)1991,2017,(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))Thecommandcompletedsuccessfully
主备库配置
[oracle@host1admin]$cat/u01/app/oracle/product/18.1.0/dbhome_1/network/admin/主备库添加以下内容:LEIDB_S=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=lei-s)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=leidb)))LEIDB_P=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=lei-p)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=leidb)))

配置完成后,使用tnsping命令检查是否能ping通

[oracle@host1admin]$tnspingpdbcndba_pTNSPingUtilityforLinux::45:32Copyright(c)1997,2017,:UsedTNSNAMESadaptertoresolvethealiasAttemptingtocontact(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.88)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=cndba)))OK(30msec)[oracle@lei-padmin]$tnspingleidb_sTNSPingUtilityforLinux::23:33Copyright(c)1997,2018,:/u01/app/oracle/product/18.3.0/db_1/network/admin/(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=lei-s)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=leidb)))OK(10msec)
将主库的口令文件copy到备库

这里主备库的CDB实例相同,如果不同,可以使用orapwd命令重建。

[oracle@lei-pdbs]$scporapwleidblei-s:/u01/app/oracle/product/18.3.0/db_1/dbs/
将主库的参数文件copy到备库并修改

--主库操作

scp/tmp/:/tmp/

--备库修改参数文件需要修改的内容:

*.control_files='/u01/app/oracle/oradata_s/LEIDB/','/u01/app/oracle/fast_recovery_area/LEIDB/'*.db_unique_name='leidb_s'*.log_archive_config='dg_config=(leidb_p,leidb_s)'*.log_archive_dest_1='location=/u01/archivelog_svalid_for=(all_logfiles,all_roles)db_unique_name=leidb_s'*.log_archive_dest_2='service=leidb_paffirmsyncvalid_for=(online_logfiles,primary_role)db_unique_name=leidb_p'*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enable*.standby_file_management='auto'*.fal_server='leidb_p'*.log_file_name_convert='/u01/app/oracle/oradata_s/LEIDB','/u01/app/oracle/oradata/LEIDB'*.db_file_name_convert='/u01/app/oracle/oradata_s/LEIDB','/u01/app/oracle/oradata/LEIDB'
pfile参数文件的全部内容
[oracle@lei-sadmin]$cat/tmp/__data_transfer_cache_size=0leidb.__db_cache_size=1006632960leidb.__inmemory_ext_roarea=0leidb.__inmemory_ext_rwarea=0leidb.__java_pool_size=16777216leidb.__large_pool_size=33554432leidb.__oracle_base='/u01/app/oracle'fromV$DATAGUARD_PROCESS;NAMETYPROLEACTIONGROUP------------------------------------------------------MRP0KSBmanagedrecoveryAPPLYING_LOG012rowsselected.

注:v$managed_standby视图已被V$DATAGUARD_PROCESS取代。

发布于 2025-01-16
92
目录

    推荐阅读