分类目录归档:ORACLE 12C

Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2

在配置ADG或者使用oracle 的集群管理应用的HA时(比如OGG),我们可能希望使用不同的网络,以避免ADG传输日志等对主生产网络的造成影响。 从11.2开始,我们可以使用crs管理多个网络资源(缺省只有network1),但是SCAN只能在多个网络中的一个上活动(缺省是network1,后续可以指定到不同网络上)。 然后,我们通常会配置专门为ADG传输日志的network2网络,但是在配置连接串时,只能使用vip(因为SCAN通常给主生产上的network1使用)。 . 从12.1开始,我们可以配置多个网络上的多个SCAN,比如我们配置ADG时,在network2上配置SCAN2。 具体配置如下: –检查网卡接口对应的IP地址: –添加新的public网络 –检查网络定义,缺省只有一个网络定义:network1 –添加新的网络集群资源(a new network cluster resource) 这时集群的网络资源中已经配置了两个网络(包括新增加的网络),如果使用“crsctl status res -t”查看,可以看到: –添加vip –启动vip,查看vip资源 –检查新创建的vip是否运行了: –添加网络2上的监听: 在network2上配置SCAN: –启动network2上的监听 –在network2上启动SCAN –在network2上添加SCAN LISTENER –检查监听状态 配置ORACLE数据库实例支持多个网络: 配置客户端连接串 —检查数据库是否可以登录: 至此已经全部完成。 Oracle 12.1 RAC 系列: Oracle 12.1 RAC … 继续阅读

发表在 Installation and Deinstall, Linux, network, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库

在11.2中模拟主机损坏,使用重新安装新主机识别老存储并恢复数据库。 11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库 这里的测试也同样是模拟主机损坏,安装新主机识别老存储来恢复数据库,不同之处在于,这里假设老存储的ocr和vf是保存在单独的crsdg的,客户没有新的磁盘来创建新的crsdg,因此,我们需要将最前面的3块盘(除去sda后,是sdb~sdd)使用dd清除其前面50M的数据,然后用这3块盘组成后续安装GI时的CRSDG。 别的过程几乎都一样,添加数据库资源的时候,注意一下12.1跟11.2的命令不同,尽管12.1中如果使用11.2的添加数据库的命令也可以执行,并且没有报错信息(貌似兼容),但后续使用时可能会有问题,比如在ocr中识别的dbunique的信息是不正确的。 . 具体步骤如下(因为先在12.1中测试,然后才在112.测试,因此这里的测试记录了发现的一些问题和处理方法,而11.2中模拟主机损坏,直接使用了这里的经验,因此没有任何报错信息): 1,安装12.1.0.2的GI软件,如果需要也apply最新的PSU,然后查看磁盘和磁盘组: 创建ASM的spfile 查找spfile: 这里看到有两个spfile,哪一个是我们需要的呢? 或者如果这个存储上有多个数据库时,怎么确定哪个数据库使用哪个spfle? 我们知道ASM内部是使用OMF管理数据文件的,因此,它的命名规则是: 因此,根据dbuniquename我们就可以确定哪个数据库使用哪个spfile。 +group/DB_UNIQUE_NAME/file_type/file_type_tag.file#.incarnation# 文件类型是datafile, controlfile, onlinelog等等 我们将spifle从ASM中复制到文件系统,然后查看其中信息是否正确: 查看spfile 这时,启动是数据库会报错: alert中报错如下: 根据报错信息,我们知道,是因为oracle没有访问asm磁盘组的权限造成的,因此需要修改oracle权限: 再次mount数据库,依然报错: 报错信息如下: 具体的trace文件如下: 这里看到,应该是数据库还是不能访问磁盘组,将磁盘组注册到ocr中的过程如下: 再次查看,ocr中已经包含了这些磁盘组 将数据库注册到ocr中: 在12.1中如果沿用11.2的配置数据库命令,那么数据库可以启动,但是可以发现配置信息是有问题的: 例如,“Database name: lunarrac”这里显示lunarrac是我的主机名,而数据库名是lunar,因此使用112.的命令注册数据库到ocr会有其他未知问题 … 继续阅读

发表在 ASM, ORACLE 12C, RAC | 标签为 , , , | 留下评论

Oracle 12.2的Sharding-1-基础概念

2015年8月份内部release了Oracle 12.2beta版本(目前内部最新release的版本是2016年2月份发布的,windows和Linux都有了),目前根据12.2beta文档的介绍,Oracle推出了sharding的功能,跟其他NOSQL型的sharding结构相比,Oracle Sharding提供的是企业级的RDBMS的分片技术。 . Oracle Sharding的优点: • Relational schemas • Database partitioning • ACID properties and read consistency • SQL and other programmatic interfaces • Complex data types • Online schema changes • Multi-core scalability • Advanced security • Compression … 继续阅读

发表在 ORACLE 12C | 标签为 , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-9-Linux 7.2上的virbr0设备

当我们安装了Linux 7.2(CentOS 7.2和 OEL 7.2都有下面的现象),缺省会安装一个虚拟网卡virbr0。 查看当前的IP信息: 这里我们看到Linux7开始使用enp0s3作为第一个缺省的网络接口名,类似于以前的eth0,当然,你后面可以修改这个缺省的网络接口名。 enp0s8是第二个网络接口名,而enp0s9就是我们新添加的第三个网络接口名。 enp0s3和enp0s8我们在安装时已经配置了网络连接和IP地址,设置了启动自动连接,因此没有问题。 enp0s9需要我们手工配置。 . 可以看出来,Linux7中缺省还有一个virbr0网络接口。 . 从网上摘录了virbr0的部分相关解释: virbr0 是一种虚拟网络接口,这是由于安装和启用了 libvirt 服务后生成的 libvirt 在服务器(host)上生成一个 virtual network switch (virbr0),host 上所有的虚拟机(guests)通过这个 virbr0 连起来。 默认情况下 virbr0 使用的是 NAT 模式(采用 IP Masquerade),所以这种情况下 guest 通过 host 才能访问外部。 . 可以看出来,virbr0是一个虚拟网卡,并且由于在Linux7.2中(CentOS … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-9-Linux 7.2上的virbr0设备

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-8-在Linux7上安装11.2 RAC和12.1 RAC需要禁用哪些服务

安装Oracle RAC的时候,通常我们会禁用一些服务,比如:防火墙,avahi-daemon等等。 avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范,它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。 一般安装Oracle RAC,建议禁用该服务。 . 我们看一下,在Linux7(Linux5和Linux6中)以前我们一般禁用的服务列很多 例如: 等等 然后,在linux7下,已经不适用chkconfig命令了,而且很多以前的服务名称和启动配置都变化了(参考blog中Linux7管理开机启动服务的相关文章) 那么我们现在怎么禁用服务,禁用哪些呢? 首先,看看系统中当前运行了哪些服务: 在前面的blog中已经有了禁用防火墙的描述,这里不赘述。 安装Oracle,除了防火墙和SELINUX以外,通常还需要禁用以下服务 Linux7以前的命令: 在Linux7中使用systemctl stop和systemctl disable: 在Linux6以前,我们使用chkconfig –list查看当前的服务,但是在Linux7中,大部分情况我们使用systemctl 如果使用chkconfig –list,则输出类似如下: 执行chkconfig的命令提示很清晰,他告诉我们,使用chkconfig将只显示SysV的服务,不包含原生 systemd服务。 我们查询一下在Linux5和6时,咱们经常禁用的服务,在Linux7中的状态: 根据上面输出,可以总结出来,还需要禁用下面这些开机自动启动的服务: (systemctl disable的作用类似于以前的chkconfig –level 2345 avahi-daemon off) … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-8-在Linux7上安装11.2 RAC和12.1 RAC需要禁用哪些服务

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务

测试目的:研究一下Linux7中,如何设置服务的开机自动启动或者不自动启动 当前的OS版本: CRS版本: Linux7使用systemd替换了SysV,Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程并行加载必要的服务。 支持并行化任务 同时采用socket式与D-Bus总线式激活服务; 按需启动守护进程(daemon); 利用 Linux 的 cgroups 监视进程; 支持快照和系统恢复; 维护挂载点和自动挂载点; 各服务间基于依赖关系进行精密控制 . systemd可以创建不同的状态,状态提供了灵活的机制来设置启动时的配置项。 这些状态是由多个unit文件组成的,状态又叫做启动目标(target),unit文件可以控制服务、设备、套接字和挂载点。 systemd配置文件被称为unit单元,使用man systemd可以查看这些unit(单元)的具体定义。 根据类型不同,unit以不同的扩展名结尾。 .service系统服务; .target一组系统服务; .automount自动挂载点; .device能被内核识别的设备; .mount挂载点; .path文件系统的文件或者目录; .scope外部创建的进程; .slice一组分层次管理的系统进程; .snapshot系统服务状态管理; .socket进程间通讯套接字; .swap定义swap文件或者设备; .timer定义定时器。 . 所有可用的unit(单元文件)存放在下面的两个目录下: /etc/systemd/system/ —–优先级更高(这个目录中的内容很少,一般只有十几个) 例如: /usr/lib/systemd/system/ —这个目录是一些Unit的socket,targt等等 … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C | 标签为 , , , , , | Comments Off on Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙

一般安装Oracle,我们会禁用防火墙和SELINUX等一些列服务,并设置开机不自动启动(disable这些服务)。 比如,防火墙,在Linux7以前的命令: service NetworkManager stop service iptables stop service ip6tables stop 还可以使用systemctl查看防火墙服务: 当前防火墙的服务是开启的,并且开机自动启动,开机自动启动时读取/usr/lib/systemd/system/firewalld.service定义文件。 关闭防火墙: 设置开机不自动启动防火墙服务: 这里看到开机不自动启动的本质是在/etc/systemd/system/中删除防火墙服务的定义文件 再次查看防火墙状态: 上述说明防火墙服务已经被安装了,但是没有设置为自动启动。 可以看到,在Linux7中,systemctl disable一个服务,其本质是将该服务的配置文件的link删除。 然后,将该服务实际的配置文件内容修改为开机不启动进程: 其中: 这个表示firewalld.service要先于上面3个服务启动: 下面的设置表示不fork进程,没有pid: 检查iptables和ip6tables: 可以看到当前服务没有启动,且没有安装这个服务: 如果安装的服务会有类似下面的信息: Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–1-简介 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–4-target(图形界面和字符界面) Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–5-防火墙 Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–6-开机自动启动或者禁用服务 Linux7(CentOS,RHEL,OEL)和Oracle … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–4-target(图形界面和字符界面)

systemd可以创建不同的状态,状态提供了灵活的机制来设置启动时的配置项。这些状态是由多个unit文件组成的,状态又叫做启动目标(target)。 unit文件可以控制服务、设备、套接字和挂载点,这些文件存放在下面的两个目录下: /etc/systemd/system/ /usr/lib/systemd/system/ 其中/etc/systemd/system/的优先级更高。 如果需要创建自己的unit,可以修改第一个目录中的文件来进行自定义配置,而第二个目录中的文件是package安装时保存的备份。 比如在Linux7.2(CentOS,RHEL,OEL)12.1.0.2和12.2beta版本的Oracle GI程序就需要自己手工创建ohasd的服务(这是bug),后续文章陆续会讲解到。 目录/etc/systemd/system/目录中只有很少的配置文件,在这里面配置的服务优先级高于配置在/usr/lib/systemd/system/中的服务: 基本target中,只有微码服务: sysinit的目标: 缺省目标: 多用户字符界面的目标(runlevel 3): 而/usr/lib/systemd/system下面定义的unit就太多了: 从Linux7开始,不使用inittab作为启动配置文件,其内容仅仅是个说明: 从上面的说明不难看出,systemd不使用inittab作为配置文件,因此在这里添加的服务将不会生效 systemd使用’targets’代替了runlevels,我们常用的两个targets(启动到图形界面和启动到字符界面): 其中,multi-user.target类似于以前的runlevel 3,也就是字符界面的多用户模式 graphical.target就是以前的runlevel 5,即图形界面模式。 可以使用systemctl get-default来查看缺省的target,也可以使用systemctl set-default来设置缺省的target。 . 查看当前正处在哪个target中: 查看默认target: 也就是当前运行在多用户字符集面的模式。 查看当前所有的运行级别的定义: 这里我们看到了熟悉的 运行级别的身影: 查看当前的正处在哪个target中: 可以看到当前处在runlevel的运行界别类似于以前的level 3 ,即字符界面启动的 我们切换到图形界面启动的运行级别(类似于以前的runlevel 5): 这时候我们可以看到关键字:graphical.target 查看当前缺省的运行级别: … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列–3-systemd(d.bin和ohasd守护进程)

Linux的系统启动大致有3种主要模式: (1)Linux5和以前的版本:SystemV style的runlevel式启动 (2)Linux6中:以upstart(例如,在ubuntu中)代表的event-based启动方式 (3)Linux7中:以systemd模式并行启动的模式 . 前面两种启动模式的大致都有如下过程: 1,内核引导(内核被载入内存并运行,初始化所有的设备驱动程序和数据结构等) 2,启动/sbin/init,它是一个由内核启动的用户级进程 3,由/sbin/init启动其他用户级的进程或服务(这些进程大多数是各种daemon进程,即各种服务进程),最终完成系统启动的全部过程 所以,init始终是第一个进程,其PID始终为1,它是系统所有进程的父进程. . 第三种方式就是Linux7中采用的sytemd的方式,systemd不通过init脚本来启动,而是采用一种并行启动服务的机制(用缓存机制解决服务的依赖关系)。 这种方式的特点是与 sysvinit 完全兼容、更清晰的服务依赖关系、开机系统初始化服务并行启动、更少的shell开销。 systemd使用 socket 和 D-Bus 来开启服务,提供基于守护进程的按需启动策略 每个服务就是一个 unit,对应于运行级别,systemd有一个 target (multi-user.target)。 . 在Linux4和5中: 在Linux6中: 在Linux7中已经不适用init进程启动了: 这里面的3个“/usr/bin/ssh-agent /etc/X11”进程是Linux7中配置了自动启动VNC。 . 这3种模式的不同在于: 1,SystemV style的runlevel式启动 在Linux5和以前的版本,init进程会读取/etc/inittab的内容,/etc/inittab中包含了很多启动其他用户进程和服务的指令。 因此,/etc/inittab的内容就决定系统进入哪一个runlevel,然后去/etc/rcN.d/(N代表runlevel的数字表示)去找相应的启动脚本。 即: /sbin/init => … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , | 留下评论

Linux7(CentOS,RHEL,OEL)和Oracle RAC环境系列-2-修改主机名和hostnamectl工具的使用

测试目的: 熟悉Linux7中修改主机名的机制和hostnamectl工具的使用 测试环境:CentOS Linux release 7.2.1511 (Core) 主机名的配置,在Linux7以下的版本主机名一般是看: 1,配置文件/etc/sysconfig/network 2,命令hosntame 但在Linux7中(这里是CentOS 7.2)中,很多系统管理工具都被替换了,包括主机名的配置。 . Linux7中采用新的配置文件/etc/hostname,替代了Linux7以前(Linux2~Linux6)中使用的/etc/sysconfig/network文件 不过,/etc/sysconfig/network文件还在,只是其内容只剩下一行标注为Linux安装管理程序的“# Created by anaconda”: 这里看到的Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序的名字,其大部分模块用Python编写,有少许的载入模块用C编写。 . 从Linux7开始使用/etc/hostname来管理主机名的配置信息: 在Linux中,有三种定义的主机名: 静态的(static),“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。 瞬态的(transient),“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。 灵活的(pretty)。“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan’s Computer)。 静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。 . 只查看静态、瞬态或灵活主机名,分别使用“–static”,“–transient”或“–pretty”选项。 例如: 但是在Linux7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。 我们看一下hostnamectl的帮助信息: 修改配置文件/etc/hostname,注释掉缺省的第一行,添加我们以前习惯的不带域名的主机名lunar: [root@localhost ~]# 再次查看: 修改完配置文件/etc/hostname后,这里看到我们修改后的信息: Static hostname以前的“localhost.localdomain”变成注释的,也就是/etc/hostname中被注释的一行 Transient … 继续阅读

发表在 Installation and Deinstall, Linux, ORACLE 12C, RAC | 标签为 , , , , , , | 留下评论