`
做一行爱一行吧
  • 浏览: 23637 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mnesia的操作(一)

 
阅读更多

      是一个分布式数据库管理系统,这是书上说的,如果我们第一次接触Mnesia肯定多少会感到有些抽象,因为我们往往是想存什么就直接的存了进去,很难具象化数据库的一个格式,例如我们在开发MySql数据库的时候,数据是什么样的我们可以用大脑想象的出来,几个表格类的东西很容易理解

       我们先不说Mnesia到底好在哪里,因为对于经验不多接触的数据库类型少的人来讲,单纯去讲什么数据库优缺点是很无聊的!

       开发的时候总是会给我一种错觉,就是好像我们一直在给数据库做缓存操作一样,然后等到合适的时刻再将数据持久化,和以往的java开发给我的感觉很不同,以前做java的时候层次感很清晰,但是在做erlang的时候就有一种逻辑层和持久层粘在一起的感觉!

       我们现在先在一个节点启动一个数据库来试验一下

        我们直接就从内核中启动了一个Mnesia?这说明了一个问题,就是otp是直接囊括了Mensia的,我们不妨打开erlang的数据管理器来看看,到底是不是kernel实现的Mnesia启动的!



       点击View选项,看到了Mnesia的表选项,我们创建一个简单的表看一下到底在这个管理器里可不可以看到我们的数据结构!



       这里我们生成了一个新表,test1


       我们看到了这个表test1,这个时候其实是该思考一下,内核和mnesia的关系了,从来没有再其他语言中发现这种关系,就像java中,我们都是需要桥接数据库然后才能利用一些方式才能进行数据库操作,这里我们既没有连接代码,也没有数据操作而却可以直接看到表的信息!打开节点管理器来看一下



        哦,原来在这个节点之下有两套监督树,一格是erlang的内核,另一个就是mnesia了,也就是说mnesia是独立于erlang内核的,但是相对的确实在相同的节点之内生成,他还是符合erlang的一些语言规范的例如监督进程等等!也难怪我们有时候会产生错觉,erlang和mnesia简直就是耦合在了一起!

      

        Mnesia存在了哪里我们去哪里找我们的这个test1表?我们先按照执行目录的顺序去找,因为我们并没有制定目录而且我们也并不知道默认目录的路径!



        果然,我们在执行目录内找到了,这样很不方便,我们想要让我们的数据存储在一个方便的地方便于文件的管理,那么我们可以再启动的时候加上路径!



       我们看到的是我们的路径是在文件的更上一层,这样就来看以看是否是存储在了新的文件夹里



        我们找到了这个Test的东西

        这里要讲一下的是关于创建mnesia,create_schema(Node)方法参数的问题。我们启动mnesia的时候一定要指定节点!原因就是mnesia不同与其他数据库,在操作系统中会独立存在,他需要erlang虚拟机的支持,外表上就是需要存活于一个节点之上!

      

       你可以看一下这个方法的介绍,也很好地说明了mnesia的存活创建条件等等,我们往往不会在一个系统内创建几个数据库,因为没有必要,不过这些都是因情况而定!

       在上面的方法中明确指出在本地的节点上,那么我们想通过另一个几点启动数据库可能吗,做了一个实验,使用rpc:call(N,M,F,A)方法!

      

        我们节点之间通信开启数据库



        在1111节点上我们看到了我们的数据库信息也成功开启了数据库,而这之前,我们并没有直接的在1111节点上做任何的操作!

       这些知识我们队mnesia的一个初步认识,不过有一个好的认识可以很好的帮助我们在使用mnesia时具象化我们的数据,否则一直稀里糊涂的去做,总是美中不足

      


 

 

 

 

  • 大小: 5.1 KB
  • 大小: 17.1 KB
  • 大小: 1.2 KB
  • 大小: 859 Bytes
  • 大小: 18 KB
  • 大小: 27.1 KB
  • 大小: 3.5 KB
  • 大小: 8.1 KB
  • 大小: 14.8 KB
  • 大小: 2.5 KB
  • 大小: 5.9 KB
分享到:
评论

相关推荐

    amnesia-开源

    AMNESIA是一个基于Erlang编程语言的开源库,专门设计用于简化与关系数据库管理系统(RDBMS)的交互。Erlang以其并发处理、容错性和高效性能在分布式系统领域备受推崇,而AMNESIA则进一步扩展了Erlang的功能,使...

    erlang——Mnesia用户手册.pdf

    8.附录.A:Mnesia.错误信息 8.1.Mnesia.中的错误 9.附录.B:备份回调函数接口 9.1.Mnesia.备份回调行为 10.附录.C:作业存取回调接口 10.1.Mnnesia.存取回调行为 11.附录.D:分片表哈希回调接口 11.1....

    Amnesia

    "Amnesia"是一个可能与计算机安全或数据丢失相关的主题,暗示了系统或用户可能遭遇了某种形式的记忆丧失,即数据无法访问或丢失的情况。在IT领域,这种情况通常涉及到磁盘故障、病毒攻击、误操作或者软件错误。"Post...

    Mnesia用户手册 4.4.10版.rar

    8 附录 A : Mnesia 错误信息 . . .. . . 75 8.1 Mnesia 中的错误 . . . . .. . 75 9 附录 B :备份回调函数接口 . . .. . .. . . .. . 76 9.1 Mnesia 备份回调行为 . . .. . . . .. . 76 10 附录 C :作业存取...

    进程的控制系统 操作系统

    在操作系统中,进程控制是核心功能之一,它涉及到进程的创建、执行、同步、通信以及结束等生命周期管理。本篇文章将深入探讨操作系统课程设计中关于进程控制系统的相关知识点。 首先,我们要理解进程的概念。进程是...

    RAC日常维护知识

    健忘症(Amnesia)是指在集群配置更新过程中可能出现的问题。每个节点都有配置文件的本地副本,正常情况下,更改会自动同步。但如果在节点A关闭期间,在节点B上修改配置,然后关闭A并启动B,节点A的配置更新将丢失,...

    操作系统课设--分页系统模拟实验

    分页系统是现代操作系统中用于内存管理和虚拟地址空间划分的一种机制。它的主要目的是解决内存碎片问题,提高内存利用率,并为每个进程提供独立的地址空间。在分页系统中,内存被划分为固定大小的页框,而进程的逻辑...

    进程的管道通信实验 操作系统

    在操作系统领域,进程间的通信(IPC,Inter-Process Communication)是一项关键的技术,它允许不同的进程共享数据、协调工作。在本实验“进程的管道通信实验”中,我们将深入理解并实践这一概念,尤其是管道(Pipe)...

    大话Oracle_RAC

    例如,“健忘症”(Amnesia)是指在某个节点正常关闭后,如果在其他节点上修改了配置,再重新启动该节点,其本地配置副本不会包含这些修改,导致配置丢失。为了避免这种情况,Oracle RAC使用集群配置同步机制,确保...

    Oracle_RAC_深度解释

    健忘症(Amnesia)是RAC环境中的一种特殊情况,涉及到集群配置文件的同步问题。在正常情况下,每个节点都有配置文件的副本,更改会自动同步。但如果一个节点在未同步的情况下关闭,然后其他节点进行了配置更改,再...

    zen-relay:Zen的自托管中继服务器:speech_balloon::brain:

    始终镜像此存储库的master分支的公共实例可从relay.amnesia.software ( wss://relay.amnesia.software )获得。 随时使用和测试此实例。 安装 使用软件包管理器npm安装Zen Relay的依赖项。 git clone ...

    操作系统课设 磁盘空间管理模拟实验

    总之,“操作系统课设 磁盘空间管理模拟实验”是一次宝贵的学习体验,它涵盖了操作系统中磁盘管理的重要方面,并提供了实践这些知识的平台。通过这个实验,你将能够从理论到实践全面掌握磁盘空间管理的精髓。

    这是一个在国外比较有名的单人文本RPG游戏代码

    2. Amnesia.dat、Sample.dat:这些可能是数据文件,存储游戏的背景故事、角色信息、地图数据或其他游戏资源。DAT文件格式常用于存储各种类型的数据,不局限于特定的结构或格式。 3. frm*系列.frm和.frx:这些是...

    一起大话OracleRAC.docx

    健忘症(Amnesia)问题:在Oracle RAC集群中,配置文件分散在每个节点上,任何节点的改动都会自动同步。然而,如果一个节点在修改配置后关闭,然后再启动,而其他节点在此期间进行了配置更改,那么这个节点将失去对...

    操作系统课设--进程创建系统

    操作系统课程设计中的“进程创建系统”是一个重要的学习实践环节,旨在深入理解操作系统的内核机制,特别是进程管理方面的概念和技术。在这个项目中,学生需要模拟一个简化版的操作系统,实现进程的创建、调度和销毁...

    操作系统课设 常用页面置换算法模拟实验

    操作系统是计算机科学中的核心课程,其中页面置换算法是内存管理的重要组成部分,特别是在现代多任务环境中。本实验旨在通过模拟各种常见的页面置换算法,帮助学生深入理解这些算法的工作原理及其对系统性能的影响。...

    Oracle RAC 深度解释.docx

    ##### 1.2 健忘症 (Amnesia) 健忘症是指在集群环境中,当某个节点意外下线或者重启后,未能同步最新的配置更改,导致该节点与其他节点的配置不一致的情况。这是因为集群环境中的配置文件通常在每个节点上都有一个...

    操作系统课设 SPOOLING技术模拟实现

    操作系统课程设计中的SPOOLING(Simultaneous Peripheral Operations On-Line)技术模拟实现是一个重要的实践环节,旨在让学生深入理解操作系统核心概念之一:虚拟设备管理。SPOOLING技术是将独占式I/O设备转换为...

    大话ORACLE RAC.docx

    2. **健忘症(Amnesia)**: - 配置文件在每个节点上都有本地副本。在正常操作中,修改配置会自动同步到其他节点。然而,如果一个节点在未同步的情况下关闭,然后在另一个节点上进行了配置更改,再重新启动该关闭的...

Global site tag (gtag.js) - Google Analytics