linux服务器装了oracle,共享存储是什么意思?简单举个例子说明下
共享存储主要用于RAC架构下的
单节点数据库,如果实例宕机了,如果一个业务、在实例上面,那么这个业务就中断了这个时候系统就不具有可用性了,那么这个时候单节点的可用性是很差的。
对于RAC来说,和单实例一样,还是一份数据文件,都是相同的存储上面放着oracle的文件,但是是由三个实例共用同一份数据文件。这样的好处是在三个实例之间做了冗余,在上面三个实例当中任意两个坏了业务都可以连剩下的一个实例,都可以正常的工作。RAC提供了在实例级别的冗余。
一般每个实例都放在不同的服务器上面,这样可以起到冗余作用。所有的数据库文件都放在共享存储上面,但是还有一些文件放在每个实例自己的本地的磁盘上面,比如参数文件,每一个实例都可以有自己的参数文件,这个参数文件既可以放在本地也可以放在共享存储上面,多个实例都使用同一个参数文件。
RAC不能够解决在数据的安全,尽管有多个实例,但是只有一份数据文件,这样只要数据文件损坏了,那么整个数据库就损坏了。
共享内存是什么意思?
共享内存也说显卡显存,指在多处理器的计算机系统中,可以被不同中央CPU访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。
共享内存的原理
享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据一次从输入文件到共享内存区,另一次从共享内存区到输出文件。事实上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存中的内容往往是在解除映射时才写回文件的。
大家什么是共享内存
共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。
无状态容器为什么不需要共享存储?虚拟机需要共享存储的原因是什么?
共享存储,指的是多台服务器访问(写)同一个存储设备的同一个分区
通俗一点讲就是说系统允许多个用户(进程)共享同一份文件
如果不提供此功能,就意味着凡是需要该文件的用户,都须各自备有此文件的副本,显然造成空间的浪费