Oracle Dataguard配置(一)oracle数据库安装

背景:由于业务需要,我们这边需要使用主备库,可以满足读写分离,降低服务器的压力;还可以数据实时备份,如果主库挂掉,可以很快用备库顶上。我们以前都是在windows系统上安装oracle,现在服务器资源有限,将运行环境改为Centos7.7或7.9。实际使用环境中服务器无法连网安装,我是在测试环境中把依赖包下载完了之后,又传到服务器上手动安装依赖包。我自己安装时候遇到过不少坑,找的资料也是东拼西凑,没做过的还是真是得费一些时间,我自己记录一下整个过程,也是温故而知新,下面进入正题。

运行环境:

系统版本CentOS7.7或以上
CPU4核
内存4G(其实1G也可以)                                                        不小于1G
分区

sda      8:0    0   30G  0 disk
|-sda1   8:1    0  500M  0 part /boot
|-sda2   8:2    0    2G  0 part [SWAP]   
|-sda3   8:3    0 27.5G  0 part / 

如果没有swap安装oracle可能会报错,swap不小于150M
主机名mydb01
IP192.168.110.138
oracle安装包

linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

远程管理MobaXterm 20.1

安装准备工作:

1.查看硬盘安装安装到数据盘 df -H,oracle要安装到/data目录下

2.设置主机名vi /etc/hostname

 3.查看当前系统版本cat /etc/redhat-release,将版本改为redhat-7

 [root@mydb01 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

 [root@mydb01 ~]#vi /etc/redhat-release

redhat-7

4.关闭防火墙

# systemctl status firewalld.service    #查看firewalld防火墙状态
# systemctl stop firewalld.service      #关闭firewalld防火墙
# systemctl disable firewalld.service   #禁止开机使用firewalld防火墙

5.设置hosts,ip地址与主机名对应关系,往备库拷数据时可用主机名代替,此处不设置可能会导致开机很慢。

[root@mydb01 ~]#vi /etc/hosts

6.查看内存和swap

[root@mydb01 ~]#free

 或grep MemTotal /proc/meminfo,grep SwapTotal /proc/meminfo,如果swap分区忘记创建,后面安装oracle会报错Checking swap space: 0 MB available, 150 MB required. 

如不报错,跳过创建swap

解決方法
 1.cd /tmp
 dd if=/dev/zero of=swapfree bs=96k count=65515#创建swap大小为bs*count
 2.将创建的文件用于交换分区
 [root@mydb01 tmp]# mkswap swapfree
Setting up swapspace version 1, size = 6289436 KiB
no label, UUID=246342f4-d736-44d7-a0ce-4c1a7c394f1e
3.开启交换空间
[root@mydb01 tmp]# swapon swapfree
swapon: /tmp/swapfree: insecure permissions 0644, 0600 suggested.
4.查看交换空间大小
[root@glphmdb01 tmp]# free
              total        used        free      shared  buff/cache   available
Mem:       32778384     1146536    14179812         556    17452036    31219840
Swap:       6289436           0     6289436
5.在/etc/fstab中加入开机启动命令

/tmp/swapfree swap swap defaults 0 0

7.下载依赖包

yum install --downloadonly --downloaddir=/soft/yumRepository binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz

centos7中的Packages复制到服务器上/soft/Packages中,oracle依赖包也复制到Packages目录中,后面会用到。

8.修改内核参数,修改文件:  /etc/sysctl.conf   添加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

修改完后,启用新的配置:

# sysctl -p

9.开始安装依赖包

  [root@mydb01 Packages] 
rpm -ivh  binutils*     --nodeps --force
rpm -ivh  compat-libcap1* --nodeps --force
rpm -ivh  compat-libstdc++*     --nodeps --force
rpm -ivh  gcc*     --nodeps --force
rpm -ivh  gcc-c++*     --nodeps --force
rpm -ivh  glibc*     --nodeps --force
rpm -ivh  glibc-devel*     --nodeps --force
rpm -ivh  ksh* libaio*     --nodeps --force
rpm -ivh  libaio-devel*     --nodeps --force
rpm -ivh  libgcc*     --nodeps --force
rpm -ivh  libstdc++*     --nodeps --force
rpm -ivh  libstdc++-devel*     --nodeps --force
rpm -ivh  libXi*     --nodeps --force
rpm -ivh  libXtst*     --nodeps --force
rpm -ivh  make*     --nodeps --force
rpm -ivh  sysstat*     --nodeps --force
rpm -ivh  elfutils*     --nodeps --force
rpm -ivh  unixODBC*     --nodeps --force
rpm -ivh  unzip*    --nodeps --force
rpm -ivh  lrzsz    --nodeps --force

10.创建用户以及组

# groupadd oinstall                         #创建安装oracle程序用户组 
# groupadd dba                              #创建DBA用户组
# useradd -g dba -m oracle                  #创建用户oracle 并加入到dba组
# usermod -a -G oinstall oracle             #将用户oracle加入到oinstall组
# passwd oracle                             #修改用户oracle的密码
# id oracle                                 #查看用户oracle的信息

11.创建安装目录

# mkdir -p /data/oracle                         #创建oracle主目录
# mkdir -p /data/inventory                      #创建oralce配置目录
# mkdir -p /data/src                            #创建oracle压缩包解压目录
# chown -R oracle:oinstall /data/oracle         #修改目录权限
# chown -R oracle:oinstall /data/inventory                           
# chown -R oracle:oinstall /data/src
# ll /data/ 

12.修改oracle用户的安全性能设置

修改文件:   /etc/security/limits.conf
在文件最后一行前,追加以下内容
#@student        -       maxlogins       4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

# End of file

13.修改用户环境变量

修改文件:   /home/oracle/.bashrc
追加以下内容export PATH
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
 

修改完后立即启用:

# source /home/oracle/.bashrc

14.解压缩zip包到/data/src
# unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
# unzip linux.x64_11gR2_database_2of2.zip -d /data/src/
# chown -R oracle:oinstall /data/src/
# ll /data/src/

15.关闭selinux

修改文件:  /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 three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

16.编辑数据库安装文件 /data/src/database/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY                # 安装类型
ORACLE_HOSTNAME=oracle.server                            # 主机名称
UNIX_GROUP_NAME=oinstall                                   # 安装组
INVENTORY_LOCATION=/data/inventory                         # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN                                # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1               # oracle_home
ORACLE_BASE=/data/oracle                                   # oracle_base
oracle.install.db.InstallEdition=EE                        # oracle版本
oracle.install.db.DBA_GROUP=dba                            # dba用户组
oracle.install.db.OPER_GROUP=oinstall                      # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE    # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl       # globalDBName
oracle.install.db.config.starterdb.SID=orcl                # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8   # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800         # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle     # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true                              # 设置安全更新

至此准备配置工作差不多可以了,正面进行软件安装。

安装Oracle及配置:

1.开始安装oracle
切换到oracle用戶
su oracle
[oracle@mydb01 root]$ /data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 39158 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 6142 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2021-07-27_09-01-38AM. Please wait ...[oracle@glphmdb01 root]$ You can find the log of this install session at:
 /data/inventory/logs/installActions2021-07-27_09-01-38AM.log
The following configuration scripts need to be executed as the "root" user.
 #!/bin/sh
 #Root scripts to run

/data/inventory/orainstRoot.sh
/data/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
         1. Open a terminal window
         2. Log in as "root"
         3. Run the scripts
         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.
##############

如果执行data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq时报错###############
[oracle@mydb01 soft]$ MoTTY X11 proxy: Unsupported authorisation protocol
进行以下步骤
[root@mydb01 ~]# cp /root/.Xauthority /home/oracle/
再更改/home/oracle/.Xauthority的权限 chmod -R 777 .Xauthority
之后再重新切到oracle账号执行/data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq

2.切换到root账号执行以下命令

/data/inventory/orainstRoot.sh
/data/oracle/product/11.2.0/db_1/root.sh

3.配置Oracle监听程序
编辑监听配置文件  /data/src/database/response/netca.rsp
修改以下参数

INSTALL_TYPE=""custom""                               # 安装的类型
LISTENER_NUMBER=1                                     # 监听器数量
LISTENER_NAMES={"LISTENER"}                           # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"}                       # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER""                           # 监听器启动的名称
执行命令:

[oracle@mydb01 root]$/data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp

-------查看监听程序是否运行
[oracle@mydb01 root]$ netstat -tnulp | grep 1521
tcp6       0      0 :::1521                 :::*                    LISTEN      17943/tnslsnr

4.添加数据库实例

编辑数据库实例文件  /data/src/database/response/dbca.rsp
修改以下参数

RESPONSEFILE_VERSION ="11.2.0"                              // 不要变哦
OPERATION_TYPE ="createDatabase"                            // 操作为创建实例  
GDBNAME ="ORCL"                                             // 数据库实例名
SID ="ORCL"                                                 // 实例名字
TEMPLATENAME = "General_Purpose.dbc"                        // 建库用的模板文件
SYSPASSWORD = "oracle"                                      // SYS管理员密码
SYSTEMPASSWORD = "oracle"                                   // SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/data/oracle/oradata                   // 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area    // 恢复数据存放目录
CHARACTERSET ="AL32UTF8"                                    // 字符集
NATIONALCHARACTERSET= "AL16UTF16"                           // 字符集
TOTALMEMORY ="3096"                                         // 物理内存*80%。

------創建實例
[oracle@mydb01 root]$ /data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp
Copying database files
1% complete
3% complete

100% complete

-------查看实例是否运行


[oracle@glphmdb01 root]$ ps -ef | grep ora_ | grep -v grep

 5.修改启动和关闭实例的程序
修改文件:   /data/oracle/product/11.2.0/db_1/bin/dbstart
     /data/oracle/product/11.2.0/db_1/bin/dbshut

将ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

6.修改文件:  /etc/oratab

将orcl:/data/oracle/product/11.2.0:N
修改为
orcl:/data/oracle/product/11.2.0:Y

至此,使用plsql已经可以连接到此服务器。

7.启动或者关闭实例命令
启动实例:
/data/app/oracle/product/11.2.0/db_1/bin/dbstart
关闭实例:
/data/app/oracle/product/11.2.0/db_1/bin/dbshut

8.设置开机启动oracle

Root用户模式下:

# chmod +x /etc/rc.d/rc.local

修改文件 /etc/rc.d/rc.local
在文件最后追加以下内容:

su oracle -lc "/data/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/app/oracle/product/11.2.0/db_1/bin/dbstart"

重启操作系统,再用plsql连接,能连上,说明基本配置已经完成,这只是完成了配置dataguard的第一步,dataguard配置的我会再写一篇。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值