其他文档:
- oracle 18c dg搭建手册完整版(dbca方式)
- 在Redhat 7.x安装Oracle 18c RAC全 最详细手册
- oracle 18c单实例安装文档
环境说明
主库 |
备库 |
|
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/hosts127.0.0.1 localhost192.168.1.166 lei-p192.168.1.167 lei-s
添加用户和组
/usr/sbin/groupadd -g 54321 oinstall/usr/sbin/groupadd -g 54322 dba/usr/sbin/groupadd -g 54323 oper/usr/sbin/useradd -u 54321 -g oinstall -G dba ,oper oracle
设置密码
passwd oracleChanging password for user oracle.New password:BAD PASSWORD: The password is shorter than 8 charactersRetype new password:passwd: all authentication tokens updated successfully.
关闭防火墙和selinux
防火墙:
systemctl stop firewalld.servicesystemctl disable firewalld.servicerm '/etc/systemd/system/basic.target.wants/firewalld.service'rm '/etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service'
SELINUX:
cat /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mls - Multi Level Security protection.SELINUXTYPE=targeted
创建目录
mkdir -p /u01/app/oracle/product/18.3.0/db_1chown -R oracle:oinstall /u01/chmod -R 775 /u01/
配置用户环境变量·
ORACLE用户
在
/home/oracle/.bash_profile中添加以下内容
ORACLE_SID=leidb;export ORACLE_SIDORACLE_BASE=/u01/app/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/18.3.0/db_1; export ORACLE_HOMEPATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/binPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexport PATHLD_LIBRARY_PATH=$ORACLE_HOME/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRECLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport CLASSPATHexport TEMP=/tmpexport TMPDIR=/tmpumask 022
修改资源限制
修改/etc/security/limits.conf
cat >> /etc/security/limits.conf <<EOForacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768oracle soft memlock 3145728oracle hard memlock 3145728EOF
修改内核参数
vi /etc/sysctl.conf fs.file-max = 6815744kernel.sem = 250 32000 100 128kernel.shmmni = 4096kernel.shmall = 1073741824kernel.shmmax = 4398046511104kernel.panic_on_oops = 1net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576net.ipv4.conf.all.rp_filter = 2net.ipv4.conf.default.rp_filter = 2fs.aio-max-nr = 1048576net.ipv4.ip_local_port_range = 9000 65500
生效
sysctl -p
安装必要的包
在Redhat 7.*镜像文件中没有了compat-libstdc++-33包,需要单独下载。
yum install binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc.i686 glibc-devel ksh libgcc.i686 libstdc++-devel libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat unixODBC unixODBC-devel zlib-devel zlib-devel.i686 compat-libcap1 -y
安装数据库软件
由于从12.2开始,Oracle将采用ZIP格式直接将Oracle_HOME下的内容直接压缩到一个ZIP格式文件中,所以直接解压到ORACLE_HOME下即可。例如:
[oracle@lei-p software]$ unzip -d /u01/app/oracle/product/18.3.0/db_1/ LINUX.X64_180000_db_home.zip[oracle@lei-p software]$ cd /u01/app/oracle/product/18.3.0/db_1/[oracle@lei-p db_1]$ ./runInstaller
如果是单实例则选择第一个
选择企业版
修改为新的ORACLE_BASE目录
默认
安装前检查,内存不符合要求。18c建议的内存为8G
正在安装
执行root.sh脚本
DBCA创建数据库
仅在主库执行即可。
启用归档并设置归档目录
主库启动FORCE LOGGING
在CDB root中执行以下命令
SQL> alter database force logging;Database altered.SQL> select force_logging from v$database;FORCE_LOGGING--------------------------------------------------------------------------------YES
主库启动归档模式
SQL> shutdown immediateSQL> startup mountSQL> alter database archivelog;Database altered.
修改归档目录(建议修改),备库为:/u01/archive_s
SQL> alter system set log_archive_dest_1='location=/u01/archivelog' scope=both;--直接生效System altered.SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /u01/archivelogOldest online log sequence 2Next log sequence to archive 4Current log sequence 4SQL> alter database open;Database altered.
在主库添加 standby redo log
在CDB root中添加standby redo log,实际上在主库上是用不到standby redo log的。但是为了方便以后的switchover等操作就直接添加了,而且后面搭建备库时备库也会被创建。
SQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> select group#, members, bytes from v$log;GROUP# MEMBERS BYTES---------- ---------- ----------1 1 209715200 --可以看到默认大小以及是200M了,一起是50M。2 1 2097152003 1 209715200SQL>SQL> select member from v$logfile;MEMBER-------------------------------------------------------------------------------------------------------/u01/app/oracle/oradata/LEIDB/redo01.log/u01/app/oracle/oradata/LEIDB/redo02.log/u01/app/oracle/oradata/LEIDB/redo03.log
–要比online redo log多一组
alter database add standby logfile '/u01/app/oracle/oradata/LEIDB/stdredo01.log' size 200M;alter database add standby logfile '/u01/app/oracle/oradata/LEIDB/stdredo02.log' size 200M;alter database add standby logfile '/u01/app/oracle/oradata/LEIDB/stdredo03.log' size 200M;alter database add standby logfile '/u01/app/oracle/oradata/LEIDB/stdredo04.log' size 200M;SQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/u01/app/oracle/oradata/LEIDB/redo03.log/u01/app/oracle/oradata/LEIDB/redo02.log/u01/app/oracle/oradata/LEIDB/redo01.log/u01/app/oracle/oradata/LEIDB/stdredo01.log/u01/app/oracle/oradata/LEIDB/stdredo02.log/u01/app/oracle/oradata/LEIDB/stdredo03.log/u01/app/oracle/oradata/LEIDB/stdredo04.log7 rows selected
在主库创建pfile 文件并修改pfile 内容
SQL> create pfile='/tmp/initleidb.ora' from spfile;File created.在pfile中添加如下内容:[oracle@host1 dbs]$ vi /u01/app/oracle/product/18.1.0/dbhome_1/dbs/initcndba.ora*.db_unique_name='leidb_p'*.log_archive_config='dg_config=(leidb_p,leidb_s)'*.log_archive_dest_1='location=/u01/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=leidb_p'*.log_archive_dest_2='service=leidb_s affirm sync valid_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指定的目录先后顺序,前面一个是目标库的数据文件(日志)存放目录,后面一个是源库(本地库)的数据文件(日志)存放目录。
用新参数重启数据库:
SQL> shutdown immediateSQL> create spfile from pfile='/tmp/initleidb.ora';SQL> startup
主备库配置静态监听并启动
这里最好通过netmgr来配置,因为监听文件对格式要求比较高。
[oracle@lei-p admin]$ cat listener.ora# listener.ora Network Configuration File: /u01/app/oracle/product/18.3.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_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@host1 admin]$ lsnrctl reloadLSNRCTL for Linux: Version 18.0.0.0.0 - Production on 17-JUL-2018 11:41:07Copyright (c) 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!