本文主要阐述基于ASM 构建 Oracle 12c RAC数据库的过程说明
安装 Oracle Linux 7,就像安装基本服务器一样,更具体地说,它应该是一个至少具有 4G+ 交换空间、禁用防火墙、selinux为disabled,并安装了如下软件包组:
在Linux 7及以上的网络适配器称为 enp0s3、enp0s8 和 enp0s9,在以前的 Linux 版本中,它们分别是 eth0、eth1 和 eth2。
执行自动设置或手动设置以完成基本先决条件。所有安装都需要附加设置。
如果您计划使用“oracle-database-server-12cR2-preinstall”软件包来执行所有先决条件设置,可以通过执行如下命令。
# yum install oracle-database-server-12cR2-preinstall -y
早期版本的 Oracle Linux 需要按照http://public-yum.oracle.com上的说明手动设置 Yum 存储库。
建议对系统进行全面的更新,但这不是必须的操作。
# yum update -y
如果您尚未使用“
oracle-database-server-12cR2-preinstall”软件包来执行所有先决条件,则需要手动执行以下安装任务。
将以下行添加到“/etc/sysctl.conf”文件或名为“/etc/sysctl.d/98-oracle.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
运行以一下命令使当前修改内核参数生效。
/sbin/sysctl -p # 或/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
将以下行添加到名为“/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf”的文件中。
oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768oracle hard memlock 134217728oracle soft memlock 134217728
除了基本操作系统安装之外,还必须以 root 用户身份登录时安装以下软件包。这包括某些软件包的 64 位和 32 位版本。
# From Public Yum or ULNyum install binutils -yyum install compat-libstdc++-33 -yyum install compat-libstdc++-33.i686 -yyum install gcc -yyum install gcc-c++ -yyum install glibc -yyum install glibc.i686 -yyum install glibc-devel -yyum install glibc-devel.i686 -yyum install ksh -yyum install libgcc -yyum install libgcc.i686 -yyum install libstdc++ -yyum install libstdc++.i686 -yyum install libstdc++-devel -yyum install libstdc++-devel.i686 -yyum install libaio -yyum install libaio.i686 -yyum install libaio-devel -yyum install libaio-devel.i686 -yyum install libXext -yyum install libXext.i686 -yyum install libXtst -yyum install libXtst.i686 -yyum install libX11 -yyum install libX11.i686 -yyum install libXau -yyum install libXau.i686 -yyum install libxcb -yyum install libxcb.i686 -yyum install libXi -yyum install libXi.i686 -yyum install make -yyum install sysstat -yyum install unixODBC -yyum install unixODBC-devel -yyum install zlib-devel -yyum install zlib-devel.i686 -y
groupadd -g 1000 oinstallgroupadd -g 1100 asmadmingroupadd -g 1200 dbagroupadd -g 1300 asmdbagroupadd -g 1301 asmoper groupadd -g 1400 oper/usr/sbin/useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper grid/usr/sbin/useradd -u 1000 -g oinstall -G dba,asmdba,oper oracleecho "grid" | passwd --stdin gridecho "oracle" | passwd --stdin oracle
无论您进行手动设置还是自动设置,都必须执行以下步骤。
127.0.0.1 localhost.localdomain localhost# Public192.168.56.101 ol7-122-rac1.localdomain ol7-122-rac1192.168.56.102 ol7-122-rac2.localdomain ol7-122-rac2# Private192.168.1.101 ol7-122-rac1-priv.localdomain ol7-122-rac1-priv192.168.1.102 ol7-122-rac2-priv.localdomain ol7-122-rac2-priv# Virtual192.168.56.103 ol7-122-rac1-vip.localdomain ol7-122-rac1-vip192.168.56.104 ol7-122-rac2-vip.localdomain ol7-122-rac2-vip# SCAN#192.168.56.105 ol7-122-scan.localdomain ol7-122-scan#192.168.56.106 ol7-122-scan.localdomain ol7-122-scan#192.168.56.107 ol7-122-scan.localdomain ol7-122-scan
SCAN 地址在主机文件中被注释掉,因为它必须使用 DNS 进行解析,因此它可以在与公共 IP 位于同一子网上的 3 个地址之间进行循环。可以使用BIND或Dnsmasq在主机上配置 DNS ,这要简单得多。如果您使用 Dnsmasq,请将 RAC 特定条目放入主机“/etc/hosts”文件中,取消注释 SCAN 条目,然后重新启动 Dnsmasq。
确保“/etc/resolv.conf”文件包含指向正确名称服务器的名称服务器条目。另外,如果“域”和“搜索”条目都存在,请注释掉其中之一。对于此安装,我的“/etc/resolv.conf”如下所示。
#domain localdomainsearch localdomainnameserver 192.168.56.1
通过编辑“/etc/selinux/config”文件,确保selinux设置如下:
SELINUX=disabled
# systemctl stop firewalld# systemctl disable firewalld
# systemctl enable chronyd# systemctl restart chronyd# chronyc -a 'burst 4/4'# chronyc -a makestep
两节点都需要配置,添加如下内容:
cat >> .bash_profile << EOF# Oracle SettingsTMP=/tmp; export TMPTMPDIR=$TMP; export TMPDIRORACLE_HOSTNAME=rac1<-->rac2; export ORACLE_HOSTNAMEORACLE_UNQNAME=orcl; export ORACLE_UNQNAMEORACLE_BASE=/u01/app/oracle; export ORACLE_BASEDB_HOME=$ORACLE_BASE/product/12.2.0.1/db_1; export DB_HOMEORACLE_HOME=$DB_HOME; export ORACLE_HOMEORACLE_SID=orcl1<-->orcl2; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERMBASE_PATH=/usr/sbin:$PATH; export BASE_PATHPATH=$ORACLE_HOME/bin:$BASE_PATH; export PATHexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport PS1=[`hostname`'@$PWD']$LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATHEOFexit
#gridsu - grid.bash_profile ORACLE_SID=+ASM1<-->+ASM2; export ORACLE_SID ORACLE_HOME=/u01/app/12.2.0.1/grid; export ORACLE_HOMEBASE_PATH=/usr/sbin:$PATH; export BASE_PATHPATH=$ORACLE_HOME/bin:$BASE_PATH; export PATHexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport PS1=[`hostname`'@$PWD']$LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
mkdir -p /u01/app/12.2.0.1/gridchown -R grid:oinstall /u01mkdir -p /u01/app/oracle/product/12.2.0.1/db_1chown -R oracle:oinstall /u01/app/oraclechmod -R 775 /u01/
方法二:通过命令创建本次安装使用了oracleasmlib管理asm磁盘首先从linux-kernel安装kmod-oracleasm,这是linux源中自带的,是linux支持oracleasm的软件包然后从oracle官网下载oracleasmlib和oracleasm-support/usr/sbin/oracleasm configure -i #两个节点二、配置ASMlib,再使用ASMlib之前,必须运行配置脚本准备驱动程序:使用root执行:/etc/init.d/oracleasm configure [root@yft 1234]# /etc/init.d/oracleasm configureConfiguring the Oracle ASM library driver.This will configure the on-boot properties of the Oracle ASM librarydriver. The following questions will determine whether the driver isloaded on boot and what permissions it will have. The current valueswill be shown in brackets ('[]'). Hitting <ENTER> without typing ananswer will keep that current value. Ctrl-C will abort.Default user to own the driver interface []: gridDefault group to own the driver interface []: asmadminStart Oracle ASM library driver on boot (y/n) [n]: yScan for Oracle ASM disks on boot (y/n) [y]: yWriting Oracle ASM library driver configuration: doneInitializing the Oracle ASMLib driver: [ OK ]Scanning the system for Oracle ASMLib disks: [ OK ][root@yft 1234]# /etc/init.d/oracleasm enableWriting Oracle ASM library driver configuration: doneInitializing the Oracle ASMLib driver: [ OK ]Scanning the system for Oracle ASMLib disks: [ OK ] /etc/init.d/oracleasm enable #两个节点/etc/init.d/oracleasm start #两个节点/usr/sbin/oracleasm listdisks/usr/sbin/oracleasm querydisks/usr/sbin/oracleasm createdisk NAME /path/usr/sbin/oracleasm scandisks #一个节点创建磁盘后,另一个节点扫描磁盘即可#本次创建的磁盘/etc/init.d/oracleasm createdisk VOLCRS01 /dev/vdb1/etc/init.d/oracleasm createdisk VOLCRS02 /dev/vdc1/etc/init.d/oracleasm createdisk VOLCRS03 /dev/vdd1/etc/init.d/oracleasm createdisk VOLDATA01 /dev/vdb2/etc/init.d/oracleasm createdisk VOLDATA02 /dev/vdc2/etc/init.d/oracleasm createdisk VOLDATA03 /dev/vdd2
附件:asm包下载地址http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html。
export SOFTWARE_LOCATION=/media/sf_12.2.0.1/cd /u01/app/12.2.0.1/gridunzip -q $SOFTWARE_LOCATION/linuxx64_12201_grid_home.zip
我可以使用此编辑的响应文件 ( grid_config.rsp ) 和以下命令以静默模式运行配置。
cd /u01/app/12.2.0.1/grid./gridSetup.sh -silent -responseFile /tmp/grid_config.rsp
相反,这是交互式配置。
cd /u01/app/12.2.0.1/grid./gridSetup.sh
选择“为新集群配置 Oracle Grid Infrastructure”选项,然后单击“下一步”按钮。
单击“下一步”按钮接受“配置 Oracle 独立集群”选项。
输入集群名称“ol7-122-cluster”、SCAN 名称“ol7-122-scan”和 SCAN 端口“1521”,然后单击“下一步”按钮。
在“集群节点信息”屏幕上,单击“添加”按钮。
输入集群中第二个节点的详细信息,然后单击“确定”按钮。
单击“SSH 连接...”按钮并输入“oracle”用户的密码。单击“设置”按钮配置 SSH 连接,完成后单击“测试”按钮进行测试。测试完成后,单击“下一步”按钮。
检查公共和专用网络是否指定正确。如果显示 NAT 接口,请记住将其标记为“不使用”。单击“下一步”按钮。
单击“下一步”按钮接受“使用块设备配置 ASM”选项。
选择“否”选项,因为在这种情况下我们不想为 GIMR 创建单独的磁盘组。单击“下一步”按钮。
将冗余设置为“外部”,单击“更改发现路径”按钮并将路径设置为“/dev/oracleasm/*”。返回主屏幕并选择所有 4 个磁盘。取消选中“Configure Oracle ASM Filter Driver”选项,然后单击“Next”按钮。
输入凭据并单击“下一步”按钮。
单击“下一步”按钮接受默认 IPMI 选项。
不要在 EM 注册。单击“下一步”按钮。
我们使用单个用户和组管理 ASM 添加数据库,因此将组设置为“dba”并单击“下一步”按钮。单击“是”按钮接受后续对话框中的警告。
输入 Oracle Base 位置“/u01/app/oracle”,然后单击“下一步”按钮。我们已经为后面的数据库安装预先创建了目录,因此通过单击“是”按钮忽略后续有关 Oracle Base 不为空的警告。
单击“下一步”按钮接受默认清单目录。
如果您希望根脚本自动运行,请输入相关凭据。我更喜欢手动运行它们。单击“下一步”按钮。
等待先决条件检查完成。如果您有任何问题,请使用“修复并再次检查”按钮。完成可能的修复后,选中“全部忽略”复选框,然后单击“下一步”按钮。对于此类安装,“物理内存”和“网络时间协议 (NTP)”测试可能会失败。还行吧。
如果您对摘要信息感到满意,请单击“安装”按钮。
等待安装进行。
出现提示时,在每个节点上运行配置脚本。
等待配置助手完成。
如果任何配置步骤失败,您应该检查指定的日志,看看该错误是否是一个严重的错误。我收到的唯一错误是时间同步错误(PRVG-13606..
PRVG-13606:chrony 守护进程未与节点上的任何外部时间源同步...
如果您没有任何阻碍,可以通过单击“下一步”按钮安全地忽略错误。
单击“关闭”按钮退出安装程序。
Grid Infrastructure安装现已完成。我们可以使用以下命令检查安装的状态。
$ grid_env$ crsctl stat res -t--------------------------------------------------------------------------------Name Target State Server State details --------------------------------------------------------------------------------Local Resources--------------------------------------------------------------------------------ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.DATA.dg ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.LISTENER.lsnr ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.chad ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.net1.network ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.ons ONLINE ONLINE ol7-122-rac1 STABLE ONLINE ONLINE ol7-122-rac2 STABLEora.proxy_advm OFFLINE OFFLINE ol7-122-rac1 STABLE OFFLINE OFFLINE ol7-122-rac2 STABLE--------------------------------------------------------------------------------Cluster Resources--------------------------------------------------------------------------------ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE ol7-122-rac2 STABLEora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE ol7-122-rac2 STABLEora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE ol7-122-rac2 STABLEora.MGMTLSNR 1 ONLINE ONLINE ol7-122-rac2 169.254.137.110 192. 168.1.102,STABLEora.asm 1 ONLINE ONLINE ol7-122-rac1 Started,STABLE 2 ONLINE ONLINE ol7-122-rac2 Started,STABLE 3 OFFLINE OFFLINE STABLEora.cvu 1 ONLINE ONLINE ol7-122-rac1 STABLEora.mgmtdb 1 ONLINE ONLINE ol7-122-rac2 Open,STABLEora.ol7-122-rac1.vip 1 ONLINE ONLINE ol7-122-rac1 STABLEora.ol7-122-rac2.vip 1 ONLINE ONLINE ol7-122-rac2 STABLEora.qosmserver 1 ONLINE ONLINE ol7-122-rac1 STABLEora.scan1.vip 1 ONLINE ONLINE ol7-122-rac2 STABLEora.scan2.vip 1 ONLINE ONLINE ol7-122-rac2 STABLEora.scan3.vip 1 ONLINE ONLINE ol7-122-rac2 STABLE--------------------------------------------------------------------------------$
我可以使用此编辑的响应文件 ( db_install.rsp ) 和以下命令以静默模式运行 OUI 。
$ db_env $ cd /media/sf_12.2.0.1/database $ ./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /tmp/db_install.rsp
相反,这是交互式视图。
$ db_env $ cd /media/sf_12.2.0.1/database $ ./runInstaller
取消选中安全更新复选框,然后单击“下一步”按钮,然后在随后的警告对话框中单击“是”。
选择“仅安装数据库软件”选项,然后单击“下一步”按钮。
单击“下一步”按钮接受“Oracle Real Application Clusters 数据库安装”选项。
确保两个节点都被选中,然后单击“下一步”按钮。
选择“企业版”选项,然后单击“下一步”按钮。
输入“/u01/app/oracle”作为 Oracle 库,输入“/u01/app/oracle/product/12.2.0.1/db_1”作为软件位置,然后单击“下一步”按钮。
选择所需的操作系统组,然后单击“下一步”按钮。在本例中,我们仅使用“dba”组。
等待先决条件检查完成。如果有任何问题,请单击“修复并再次检查”按钮,或选中“全部忽略”复选框并单击“下一步”按钮。
如果您对摘要信息感到满意,请单击“安装”按钮。
等待安装进行。
出现提示时,在每个节点上运行配置脚本。当脚本在每个节点上运行后,单击“确定”按钮。
单击“关闭”按钮退出安装程序。
确保“ol7-122-rac1”和“ol7-122-rac2”已启动,然后以oracle用户登录“ol7-122-rac1”并启动数据库创建助手(DBCA)。
我可以使用此编辑的响应文件 ( dbca.rsp ) 和以下命令以静默模式运行 DBCA 。
db_env dbca -silent -responseFile /tmp/dbca.rsp
相反,这是交互式模式。
$ db_env $ dbca
选择“创建数据库”选项并单击“下一步”按钮。
选择“典型配置”选项。输入容器数据库名称 (cdbrac)、可插入数据库名称 (pdb1) 和管理员密码。单击“下一步”按钮。
等待先决条件检查完成。如果有任何问题,请修复它们,或选中“全部忽略”复选框并单击“下一步”按钮。如果没有问题,您将直接进入摘要屏幕。如果您对摘要信息感到满意,请单击“完成”按钮。
等待数据库创建发生。
如果您想修改密码,请点击“密码管理”按钮。完成后,单击“关闭”按钮。
至此 RAC 数据库创建完成。
有多种方法可以检查 RAC 的状态。该srvctl实用程序显示 RAC 数据库的当前配置和状态。
$ srvctl config database -d cdbracDatabase unique name: cdbracDatabase name: cdbracOracle home: /u01/app/oracle/product/12.2.0.1/db_1Oracle user: oracleSpfile: +DATA/CDBRAC/PARAMETERFILE/spfile.306.938083453Password file: +DATA/CDBRAC/PASSWORD/pwdcdbrac.285.938081999Domain: Start options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: Disk Groups: DATAMount point paths: Services: Type: RACStart concurrency: Stop concurrency: OSDBA group: dbaOSOPER group: Database instances: cdbrac1,cdbrac2Configured nodes: ol7-122-rac1,ol7-122-rac2CSS critical: noCPU count: 0Memory target: 0Maximum memory: 0Default network number for database services: Database is administrator managed$$ srvctl status database -d cdbracInstance cdbrac1 is running on node ol7-122-rac1Instance cdbrac2 is running on node ol7-122-rac2$
该V$ACTIVE_INSTANCES视图还可以显示实例的当前状态。
$ sqlplus / as sysdba SQL*Plus:2017 年 3 月 8 日星期三 11:04:42 发布 12.2.0.1.0 版本,版权所有 (c) 1982,2016,Oracle。版权所有。连接到:Oracle Database 12c 企业版版本 12.2.0.1.0 - 64 位生产SQL> SELECT inst_name FROM v$active_instances; INST_NAME ------------------------------------------------- ------------------------------- ol7-122-rac1.localdomain:cdbrac1 ol7-122-rac2.localdomain:cdbrac2 SQL >
责任编辑:姜华 来源: 今日头条 OracleLinux 7(责任编辑:知识)
佛慈制药:收到甘肃国投出具的兰州佛慈制药股份有限公司要约收购报告书
国家统计局:10月份货物进出口总额33357亿元 出口19408亿元
聚利宝控股(08527.HK):李朝昌辞任独立非执行董事 3月11日起生效