linux如何设置服务器上的系统时间

linux如何设置服务器上的系统时间,第1张

1、点击linux“系统设置”

2、点击“时间和日期”

3、点击“手动”进行调节

4、点击“+ - ”设置时间和日期

5、点击地图上的时区即可设置时区

扩展资料

支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式 *** 作系统,可以运行在掌上电脑、机顶盒或游戏机上。

2001年1月份发布的Linux 24版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

完全免费

Linux是一款免费的 *** 作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的 *** 作系统所做不到的。

正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

完全兼容POSIX10标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行 *** 作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行 *** 作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

介绍

在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。

桌面环境就是桌面图形环境,它的主要目标是为Linux/Unix *** 作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。

一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。

种类

现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。

参考资料:

linux百度百科

点击上方 蓝色字体 ,选择“置顶公众号”

优质文章,第一时间送达

链接 | blogcsdnnet/hayre/article/details/80628431

1MongoDB是什么?用一句话总结

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。

(1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。

使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。

(2)易伸缩,自动故障转移。易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。

(3)数据模型因为是面向对象的,所以可以表示丰富的、有层级的数据结构,比如博客系统中能把“评论”直接怼到“文章“的文档中,而不必像myqsl一样创建三张表来描述这样的关系。

3主要特性

(1)文档数据类型

SQL类型的数据库是正规化的,可以通过主键或者外键的约束保证数据的完整性与唯一性,所以SQL类型的数据库常用于对数据完整性较高的系统。MongoDB在这一方面是不如SQL类型的数据库,且MongoDB没有固定的Schema,正因为MongoDB少了一些这样的约束条件,可以让数据的存储数据结构更灵活,存储速度更加快。 (2)即时查询能力

MongoDB保留了关系型数据库即时查询的能力,保留了索引(底层是基于B tree)的能力。这一点汲取了关系型数据库的优点,相比于同类型的NoSQL redis 并没有上述的能力。 (3)复制能力

MongoDB自身提供了副本集能将数据分布在多台机器上实现冗余,目的是可以提供自动故障转移、扩展读能力。 (4)速度与持久性

MongoDB的驱动实现一个写入语义 fire and forget ,即通过驱动调用写入时,可以立即得到返回得到成功的结果(即使是报错),这样让写入的速度更加快,当然会有一定的不安全性,完全依赖网络。

MongoDB提供了Journaling日志的概念,实际上像mysql的bin-log日志,当需要插入的时候会先往日志里面写入记录,再完成实际的数据 *** 作,这样如果出现停电,进程突然中断的情况,可以保障数据不会错误,可以通过修复功能读取Journaling日志进行修复。

(5)数据扩展

MongoDB使用分片技术对数据进行扩展,MongoDB能自动分片、自动转移分片里面的数据块,让每一个服务器里面存储的数据都是一样大小。

MongoDB核心服务器主要是通过mongod程序启动的,而且在启动时不需对MongoDB使用的内存进行配置,因为其设计哲学是内存管理最好是交给 *** 作系统,缺少内存配置是MongoDB的设计亮点,另外,还可通过mongos路由服务器使用分片功能。

MongoDB的主要客户端是可以交互的js shell 通过mongo启动,使用js shell能使用js直接与MongoDB进行交流,像使用sql语句查询mysql数据一样使用js语法查询MongoDB的数据,另外还提供了各种语言的驱动包,方便各种语言的接入。

mongodump和mongorestore,备份和恢复数据库的标准工具。输出BSON格式,迁移数据库。

mongoexport和mongoimport,用来导入导出JSON、CSV和TSV数据,数据需要支持多格式时有用。mongoimport还能用与大数据集的初始导入,但是在导入前顺便还要注意一下,为了能充分利用好mongoDB通常需要对数据模型做一些调整。

mongosniff,网络嗅探工具,用来观察发送到数据库的 *** 作。基本就是把网络上传输的BSON转换为易于人们阅读的shell语句。

因此,可以总结得到,MongoDB结合键值存储和关系数据库的最好特性。因为简单,所以数据极快,而且相对容易伸缩还提供复杂查询机制的数据库。MongoDB需要跑在64位的服务器上面,且最好单独部署,因为是数据库,所以也需要对其进行热备、冷备处理。

因为本篇文章不是API手册,所有这里对shell的使用也是基础的介绍什么功能可以用什么语句,主要是为了展示使用MongoDB shell的方便性,如果需要知道具体的MongoDB shell语法可以查阅官方文档。

创建数据库并不是必须的 *** 作,数据库与集合只有在第一次插入文档时才会被创建,与对数据的动态处理方式是一致的。简化并加速开发过程,而且有利于动态分配命名空间。如果担心数据库或集合被意外创建,可以开启严格模式。

以上的命令只是简单实例,假设如果你之前没有学习过任何数据库语法,同时开始学sql查询语法和MongoDB 查询语法,你会发现哪一个更简单呢?如果你使用的是java驱动去 *** 作MongoDB,你会发现任何的查询都像Hibernate提供出来的查询方式一样,只要构建好一个查询条件对象,便能轻松查询(接下来会给出示例),博主之前熟悉ES6,所以入手MongoDB js shell完成没问题,也正因为这样简洁,完善的查询机制,深深的爱上了MongoDB。

使用java驱动链接MongoDB是一件非常简单的事情,简单的引用,简单的做增删改查。在使用完java驱动后我才发现spring 对MongoDB 的封装还不如官方自身提供出来的东西好用,下面简单的展示一下使用。

这里只举例了简单的链接与简单的MongoDB *** 作,可见其 *** 作的容易性。使用驱动时是基于TCP套接字与MongoDB进行通信的,如果查询结果较多,恰好无法全部放进第一服务器中,将会向服务器发送一个getmore指令获取下一批查询结果。

插入数据到服务器时间,不会等待服务器的响应,驱动会假设写入是成功的,实际是使用客户端生成对象id,但是该行为可以通过配置配置,可以通过安全模式开启,安全模式可以校验服务器端插入的错误。

要清楚了解MongoDB的基本数据单元。在关系型数据库中有带列和行的数据表。而MongoDB数据的基本单元是BSON文档,在键值中有指向不定类型值的键,MongoDB拥有即时查询,但不支持联结 *** 作,简单的键值存储只能根据单个键来获取值,不支持事务,但支持多种原子更新 *** 作。

如读写比是怎样的,需要何种查询,数据是如何更新的,会不会存在什么并发问题,数据结构化的程度是要求高还是低。系统本身的需求决定mysql还是MongoDB。

在关于schema 的设计中要注意一些原则,比如:

数据库是集合的逻辑与物理分组,MongoDB没有提供创建数据库的语法,只有在插入集合时,数据库才开始建立。创建数据库后会在磁盘分配一组数据文件,所有集合、索引和数据库的其他元数据都保存在这些文件中,查阅数据库使用磁盘状态可通过。

集合是结构上或概念上相似得文档的容器,集合的名称可以包含数字、字母或 符号,但必须以字母或数字开头,完全。

限定集合名不能超过128个字符,实际上 符号在集合中很有用,能提供某种虚拟命名空间,这是一种组织上的原则,和其他集合是一视同仁的。在集合中可以使用。

其次是键值,在MongoDB里面所有的字符串都是UTF-8类型。数字类型包括double、int、long。日期类型都是UTC格式,所以在MongoDB里面看到的时间会比北京时间慢8小时。整个文档大小会限制在16m以内,因为这样可以防止创建难看的数据类型,且小文档可以提升性能,批量插入文档理想数字范围是10~200,大小不能超过16MB。

(2)解析查询时MongoDB通过最优计划选择一个索引进行查询,当没有最适合索引时,会先不同的使用各个索引进行查询,最终选出一个最优索引做查询

(3)如果有一个a-b的复合索引,那么仅针对a的索引是冗余的

(4)复合索引里的键的顺序是很重要的

(2)复合索引

(3)唯一性索引

(4)稀疏索引

如索引的字段会出现的值,或是大量文档都不包含被索引的键。

如果数据集很大时,构建索引将会花费很长的时间,且会影响程序性能,可通过

当使用 mongorestore 时会重新构建索引。当曾经执行过大规模的删除时,可使用

对索引进行压缩,重建。

(1)查阅慢查询日志

(2)分析慢查询

注意新版本的MongoDB 的explain方法是需要参数的,不然只显示普通的信息。

本节同样主要简单呈现MongoDB副本集搭建的简易性,与副本集的强壮性,监控容易性

提供主从复制能力,热备能力,故障转移能力

实际上MongoDB对副本集的 *** 作跟mysql主从 *** 作是差不多的,先看一下mysql的主从数据流动过程

而MongoDB主要依赖的日志文件是oplog

写 *** 作先被记录下来,添加到主节点的oplog里。与此同时,所有从结点复制oplog。首先,查看自己oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的条目;最后,把那些条目添加到自己的oplog里并应用到自己的库里。从节点使用长轮询立即应用来自主结点oplog的新条目。

当遇到以下情况,从节点会停止复制

local数据库保存了所有副本集元素据和oplog日志

可以使用以下命令查看复制情况

每个副本集成员每秒钟ping一次其他所有成员,可以通过rsstatus看到节点上次的心跳检测时间戳和 健康 状况。

这个点没必要过多描述,但是有一个特殊场景,如果从节点和仲裁节点都被杀了,只剩下主节点,他会把自己降级成为从节点。

如果主节点的数据还没有写到从库,那么数据不能算提交,当该主节点变成从节点时,便会触发回滚,那些没写到从库的数据将会被删除,可以通过rollback子目录中的BSON文件恢复回滚的内容。

只能链接到主节点,如果链接到从节点的话,会被拒绝写入 *** 作,但是如果没有使用安全模式,因为mongo的fire and forget 特性,会把拒绝写入的异常给吃掉。

(2)使用副本集方式链接

能根据写入的情况自动进行故障转移,但是当副本集进行新的选举时,还是会出现故障,如果不使用安全模式,依旧会出现写不进去,但现实成功的情况。

分片是数据库切分的一个概念实现,这里也是简单总结为什么要使用分片以及分片的原理, *** 作。

当数据量过大,索引和工作数据集占用的内存就会越来越多,所以需要通过分片负载来解决这个问题

(2)分片的核心 *** 作

分片一个集合:分片是根据一个属性的范围进行划分的,MongoDB使用所谓的分片键让每个文档在这些范围里找到自己的位置

块:是位于一个分片中的一段连续的分片键范围,可以理解为若干个块组成分片,分片组成MongoDB的全部数据

(3)拆分与迁移

块的拆分:初始化时只有一个块,达到最大块尺寸64MB或100000个文档就会触发块的拆分。把原来的范围一分为二,这样就有了两个块,每个块都有相同数量的文档。

迁移:当分片中的数据大小不一时会产生迁移的动作,比如分片A的数据比较多,会将分片A里面的一些块转移到分片B里面去。分片集群通过在分片中移动块来实现均衡,是由名为均衡器的软件进程管理的,任务是确保数据在各个分片中保持均匀分布,当集群中拥有块最多的分片与拥有块最少分片的块差大于8时,均衡器就会发起一次均衡处理。

启动两个副本集、三个配置服务器、一个mongos进程

配置分片

(2)索引

分片集合只允许在_id字段和分片键上添加唯一性索引,其他地方不行,因为这需要在分片间进行通信,实施起来很复杂。

当创建分片时,会根据分片键创建一个索引。

(2)低效的分片键

(3)理想的分片键

根据不同的数据中心划分

(2)最低要求

(3)配置的注意事项

需要估计集群大小,可使用以下命令对现有集合进行分片处理

(4)备份分片集群

备份分片时需要停止均衡器

使用64位机器、32位机器会制约mongodb的内存,使其最大值为15GB

(2)cpu mongodb 只有当索引和工作集都可放入内存时,才会遇到CPU瓶颈,CPU在mongodb使用中的作用是用来检索数据,如果看到CPU使用饱和的情况,可以通过查询慢查询日志,排查是不是查询的问题导致的,如果是可以通过添加索引来解决问题

mongodb写入数据时会使用到CPU,但是mongodb写入时间一次只用到一个核,如果有频繁的写入行为,可以通过分片来解决这个问题 (3)内存

大内存是mongodb的保障,如果工作集大小超过内存,将会导致性能下降,因为这将会增加数据加载入内存的动作

(4)硬盘

mongodb默认每60s会与磁盘强制同步一次,称为后台刷新,会产生I/O *** 作。在重启时mongodb会将磁盘里面的数据加载至内存,高速磁盘将会减少同步的时间

(5)文件系统

使用ext4 和 xfs 文件系统

禁用最后访问时间

(6)文件描述符

linux 默认文件描述符是1024,需要大额度的提升这个额度

(7)时钟

mongodb各个节点服务器之间使用ntp服务器

启动时使用 - -bind_ip 命令

(2)身份验证

启动时使用 - -auth 命令

(3)副本集身份认证

使用keyFile,注意keyFile文件的权限必须是600,不然会启动不起来

搭建副本集至少需要两个节点,其中仲裁结点不需要有自己的服务器

(2)Journaling日志 写数据时会先写入日志,而此时的数据也不是直接写入硬盘,而是写入内存

但是Journaling日志会消耗内存,所以可以在主库上面关闭,在从库上面启动

可以单独为Journaling日志使用一块固态硬盘

在插入时,可以通过驱动确保Journaling插入后再反馈,但是会非常影响性能。

-vvvvv 选项(v越多,输出越详细)

dbrunCommand({logrotare:1}) 开启滚动日志

(2)top

(3)dbcurrentOp

动态展示mongodb活动数据

占用当前mongodb监听端口往上1000号的端口

把数据库内容导出成BSON文件,而mongorestore能读取并还原这些文件

(2)mongorestore

把导出的BSON文件还原到数据库

(3)备份原始数据文件 可以这么做,但是, *** 作之前需要进行锁库处理 dbrunCommand({fsync:1,lock:true}) db$cmdsysunlockfindOne 请求解锁 *** 作,但是数据库不会立刻解锁,需要使用 dbcurrentOp 验证。

dbrunCommand({repairDatabase:1}) 修复单个数据库

修复就是根据Jourling文件读取和重写所有数据文件并重建各个索引 (2)压紧

压紧,会重写数据文件,并重建集合的全部索引,需要停机或者在从库上面运行,如果需要在主库上面运行,需要添加force参数 保证加写锁。

(2)为提升性能检查索引和查询

总的来说,扫描尽可能少的文档。

保证没有冗余的索引,冗余的索引会占用磁盘空间、消耗更多的内存,在每次写入时还需做更多工作

(3)添加内存

dataSize 数据大小 和 indexSize 索引大小,如果两者的和大于内存,那么将会影响性能。

storageSize超过dataSize 数据大小 两倍以上,就会因磁盘碎片而影响性能,需要压缩。

NTP时间同步服务器 主要偏重于NTP时间同步功能

北斗时间同步服务器 主要偏重于北斗卫星时间来源

GPS时间服务器跟北斗时间同步服务器一样也偏重于时间来源是GPS卫星。

目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。随着计算机网络应用的不断涌现,计算机的时间同步问题成为愈来愈重要的事情。以Unix系统为例,时间的准确性几乎影响到所有的文件 *** 作。 如果一台机器时间不准确,例如在从时间超前的机器上建立一个文件,用ls查看一下,以当前时间减去所显示的文件修改时间会得一个负值,这一问题对于网络文件服务器是一场灾难,文件的可靠性将不复存在。为避免产生本机错误,可从网络上获取时间,这个命令就是rdate,这样系统时钟便可与公共源同步了。但是一旦这一公共时间源出现差错就将产生多米诺效应,与其同步的所有机器的时间因此全都错误。

另外当涉及到网络上的安全设备时,同步问题就更为重要了。这些设备所生成的日志必须要反映出准确的时间。尤其是在处理繁忙数据的时候,如果时间不同步,几乎不可能将来自不同源的日志关联起来。 一旦日志文件不相关连,安全相关工具就会毫无用处。不同步的网络意味着企业不得不花费大量时间手动跟踪安全事件。现在让我们来看看如何才能同步网络,并使得安全日志能呈现出准确地时间。

Internet的发展使得电子货币,网上购物,网上证券、金融交易成为可能,顾客可以坐在家里用个人电脑进行上述活动。要保证这些活动的正常进行就要有统一的时间。不能设想用户3点钟汇出一笔钱银行2点50分收到。个人电脑的时钟准确度很低,只有10-4、10-5,一天下来有可能差十几秒。

现在许多在线教学系统的许多功能都使用了时间记录,比如上网时间记录,递交作业时间和考试时间等等。通常在线教学系统记录的用户数据均以网站服务器时间为准。笔者以前就曾出现过因为应用服务器时间还在23点55分,而数据库服务器已跨过24点,导致正在进行的整个批处理日切或数据归档等重要处理失败或根本无法进行的情况,其实应用和数据库服务器时间也只是相差了几分钟而已。为了避免出现这种情况,系统管理员要经常关注服务器的时间,发现时间差距较大时可以手工调整,但由系统管理员手工调整既不准确、并且随着服务器数量的增加也会出现遗忘,因此有必要让系统自动完成同步多个服务器的时间。

上述问题的解决方法,就是需要一个能调整时钟抖动率,建立一个即时缓和、调整时间变化,并用一群受托服务器提供准确、稳定时间的时间管理协议,这就是网络时间协议(NTP)。如果你的局域网可以访问互联网,那么不必安装一台专门的NTP服务器,只需安装NTP的客户端软件到互联网上的公共NTP服务器自动修正时间即可,但是这样时间能同步但不精准还可能因为网络不稳定从而导致时间同步失败的结果,最佳方案则是在网络里安装一台属于自己的NTP服务器硬件设备,将各个计算机时间同步且统一起来,成本也不高即便高相对于大数据服务器来说孰轻孰重,作为网络工程师你更清楚。

总结:

随着网络规模、网上应用不断扩大,网络设备与服务器数量不断增加。网络管理员在查看众多网络设备日志时,往往发现时间不一,即使手工设置时间,也会出现因时区或夏令时等因素造成时间误差;有些二层交换机重启后,时钟会还原到初始值,需要重新设置时间。对于核心网络设备和重要应用服务器而言,它们之间有时需要协同工作,因此时间的准确可靠性显得尤为重要。

NTP服务的配置及使用都非常简单,并且占用的网络资料非常小。NTP时间服务器目前广泛应用于网络安全、在线教学、数据库备份等领域。企业采取措施同步网络和设备的时间非常重要,但确保安全设备所产生的日志能提供精确的时间更应当得到关注。

配置 Windows 时间服务以使用内部硬件时钟
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装 *** 作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
要将 PDC 主机配置为不使用外部时间源,请更改 PDC 主机上的公告标志。PDC 主机是存放域的林根 PDC 主机角色的服务器。这种配置会强制 PDC 主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。要将 PDC 主机配置为使用内部硬件时钟,请按照下列步骤 *** 作:
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
退出注册表编辑器。
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
配置 Windows 时间服务以使用外部时间源
要将内部时间服务器配置为与外部时间源同步,请按照下列步骤 *** 作:
将服务器类型更改为 NTP。为此,请按照下列步骤 *** 作:
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
在右窗格中,右键单击“Type”,然后单击“修改”。
在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。
将 AnnounceFlags 设置为 5。为此,请按照下列步骤 *** 作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。
启用 NTPServer。为此,请按照下列步骤 *** 作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
在右窗格中,右键单击“Enabled”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。
指定时间源。为此,请按照下列步骤 *** 作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
在右窗格中,右键单击“NtpServer”,然后单击“修改”。
在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在步骤 5 中所做的更改将不会生效。
选择轮询间隔。为此,请按照下列步骤 *** 作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
配置时间校准设置。为此,请按照下列步骤 *** 作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
找到并单击下面的注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
退出注册表编辑器。
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。

(1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。

使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。

(2)易伸缩,自动故障转移。易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。

(3)数据模型因为是面向对象的,所以可以表示丰富的、有层级的数据结构,比如博客系统中能把“评论”直接怼到“文章“的文档中,而不必像myqsl一样创建三张表来描述这样的关系。

(1)文档数据类型

SQL类型的数据库是正规化的,可以通过主键或者外键的约束保证数据的完整性与唯一性,所以SQL类型的数据库常用于对数据完整性较高的系统。MongoDB在这一方面是不如SQL类型的数据库,且MongoDB没有固定的Schema,正因为MongoDB少了一些这样的约束条件,可以让数据的存储数据结构更灵活,存储速度更加快。

(2)即时查询能力

MongoDB保留了关系型数据库即时查询的能力,保留了索引(底层是基于B tree)的能力。这一点汲取了关系型数据库的优点,相比于同类型的NoSQL redis 并没有上述的能力。

(3)复制能力

MongoDB自身提供了副本集能将数据分布在多台机器上实现冗余,目的是可以提供自动故障转移、扩展读能力。

(4)速度与持久性

MongoDB的驱动实现一个写入语义 fire and forget ,即通过驱动调用写入时,可以立即得到返回得到成功的结果(即使是报错),这样让写入的速度更加快,当然会有一定的不安全性,完全依赖网络。

MongoDB提供了Journaling日志的概念,实际上像mysql的bin-log日志,当需要插入的时候会先往日志里面写入记录,再完成实际的数据 *** 作,这样如果出现停电,进程突然中断的情况,可以保障数据不会错误,可以通过修复功能读取Journaling日志进行修复。

(5)数据扩展

MongoDB使用分片技术对数据进行扩展,MongoDB能自动分片、自动转移分片里面的数据块,让每一个服务器里面存储的数据都是一样大小。

MongoDB核心服务器主要是通过mongod程序启动的,而且在启动时不需对MongoDB使用的内存进行配置,因为其设计哲学是内存管理最好是交给 *** 作系统,缺少内存配置是MongoDB的设计亮点,另外,还可通过mongos路由服务器使用分片功能。

MongoDB的主要客户端是可以交互的js shell 通过mongo启动,使用js shell能使用js直接与MongoDB进行交流,像使用sql语句查询mysql数据一样使用js语法查询MongoDB的数据,另外还提供了各种语言的驱动包,方便各种语言的接入。

mongodump和mongorestore,备份和恢复数据库的标准工具。输出BSON格式,迁移数据库。

mongoexport和mongoimport,用来导入导出JSON、CSV和TSV数据,数据需要支持多格式时有用。mongoimport还能用与大数据集的初始导入,但是在导入前顺便还要注意一下,为了能充分利用好mongoDB通常需要对数据模型做一些调整。

mongosniff,网络嗅探工具,用来观察发送到数据库的 *** 作。基本就是把网络上传输的BSON转换为易于人们阅读的shell语句。

因此,可以总结得到,MongoDB结合键值存储和关系数据库的最好特性。因为简单,所以数据极快,而且相对容易伸缩还提供复杂查询机制的数据库。MongoDB需要跑在64位的服务器上面,且最好单独部署,因为是数据库,所以也需要对其进行热备、冷备处理。

因为本篇文章不是API手册,所有这里对shell的使用也是基础的介绍什么功能可以用什么语句,主要是为了展示使用MongoDB shell的方便性,如果需要知道具体的MongoDB shell语法可以查阅官方文档。

创建数据库并不是必须的 *** 作,数据库与集合只有在第一次插入文档时才会被创建,与对数据的动态处理方式是一致的。简化并加速开发过程,而且有利于动态分配命名空间。如果担心数据库或集合被意外创建,可以开启严格模式。

以上的命令只是简单实例,假设如果你之前没有学习过任何数据库语法,同时开始学sql查询语法和MongoDB 查询语法,你会发现哪一个更简单呢?如果你使用的是java驱动去 *** 作MongoDB,你会发现任何的查询都像Hibernate提供出来的查询方式一样,只要构建好一个查询条件对象,便能轻松查询(接下来会给出示例),博主之前熟悉ES6,所以入手MongoDB js shell完成没问题,也正因为这样简洁,完善的查询机制,深深的爱上了MongoDB。

使用java驱动链接MongoDB是一件非常简单的事情,简单的引用,简单的做增删改查。在使用完java驱动后我才发现spring 对MongoDB 的封装还不如官方自身提供出来的东西好用,下面简单的展示一下使用。

这里只举例了简单的链接与简单的MongoDB *** 作,可见其 *** 作的容易性。使用驱动时是基于TCP套接字与MongoDB进行通信的,如果查询结果较多,恰好无法全部放进第一服务器中,将会向服务器发送一个getmore指令获取下一批查询结果。

插入数据到服务器时间,不会等待服务器的响应,驱动会假设写入是成功的,实际是使用客户端生成对象id,但是该行为可以通过配置配置,可以通过安全模式开启,安全模式可以校验服务器端插入的错误。

要清楚了解MongoDB的基本数据单元。在关系型数据库中有带列和行的数据表。而MongoDB数据的基本单元是BSON文档,在键值中有指向不定类型值的键,MongoDB拥有即时查询,但不支持联结 *** 作,简单的键值存储只能根据单个键来获取值,不支持事务,但支持多种原子更新 *** 作。

如读写比是怎样的,需要何种查询,数据是如何更新的,会不会存在什么并发问题,数据结构化的程度是要求高还是低。系统本身的需求决定mysql还是MongoDB。

在关于schema 的设计中要注意一些原则,比如:

数据库是集合的逻辑与物理分组,MongoDB没有提供创建数据库的语法,只有在插入集合时,数据库才开始建立。创建数据库后会在磁盘分配一组数据文件,所有集合、索引和数据库的其他元数据都保存在这些文件中,查阅数据库使用磁盘状态可通过。

集合是结构上或概念上相似得文档的容器,集合的名称可以包含数字、字母或 符号,但必须以字母或数字开头,完全。

限定集合名不能超过128个字符,实际上 符号在集合中很有用,能提供某种虚拟命名空间,这是一种组织上的原则,和其他集合是一视同仁的。在集合中可以使用。

其次是键值,在MongoDB里面所有的字符串都是UTF-8类型。数字类型包括double、int、long。日期类型都是UTC格式,所以在MongoDB里面看到的时间会比北京时间慢8小时。整个文档大小会限制在16m以内,因为这样可以防止创建难看的数据类型,且小文档可以提升性能,批量插入文档理想数字范围是10~200,大小不能超过16MB。

(1)索引能显著减少获取文档的所需工作量,具体的对比可以通过 explain()方法进行对比

(2)解析查询时MongoDB通过最优计划选择一个索引进行查询,当没有最适合索引时,会先不同的使用各个索引进行查询,最终选出一个最优索引做查询

(3)如果有一个a-b的复合索引,那么仅针对a的索引是冗余的

(4)复合索引里的键的顺序是很重要的

(1)单键索引

(2)复合索引

(3)唯一性索引

(4)稀疏索引

如索引的字段会出现null的值,或是大量文档都不包含被索引的键。

如果数据集很大时,构建索引将会花费很长的时间,且会影响程序性能,可通过

当使用 mongorestore 时会重新构建索引。当曾经执行过大规模的删除时,可使用

对索引进行压缩,重建。

(1)查阅慢查询日志

(2)分析慢查询

注意新版本的MongoDB 的explain方法是需要参数的,不然只显示普通的信息。

本节同样主要简单呈现MongoDB副本集搭建的简易性,与副本集的强壮性,监控容易性

提供主从复制能力,热备能力,故障转移能力

实际上MongoDB对副本集的 *** 作跟mysql主从 *** 作是差不多的,先看一下mysql的主从数据流动过程

而MongoDB主要依赖的日志文件是oplog

写 *** 作先被记录下来,添加到主节点的oplog里。与此同时,所有从结点复制oplog。首先,查看自己oplog里最后一条的时间戳;其次,查询主节点oplog里所有大于此时间戳的条目;最后,把那些条目添加到自己的oplog里并应用到自己的库里。从节点使用长轮询立即应用来自主结点oplog的新条目。

当遇到以下情况,从节点会停止复制

local数据库保存了所有副本集元素据和oplog日志

可以使用以下命令查看复制情况

每个副本集成员每秒钟ping一次其他所有成员,可以通过rsstatus()看到节点上次的心跳检测时间戳和 健康 状况。

这个点没必要过多描述,但是有一个特殊场景,如果从节点和仲裁节点都被杀了,只剩下主节点,他会把自己降级成为从节点。

如果主节点的数据还没有写到从库,那么数据不能算提交,当该主节点变成从节点时,便会触发回滚,那些没写到从库的数据将会被删除,可以通过rollback子目录中的BSON文件恢复回滚的内容。

(1)使用单节点链接

只能链接到主节点,如果链接到从节点的话,会被拒绝写入 *** 作,但是如果没有使用安全模式,因为mongo的fire and forget 特性,会把拒绝写入的异常给吃掉。

(2)使用副本集方式链接

能根据写入的情况自动进行故障转移,但是当副本集进行新的选举时,还是会出现故障,如果不使用安全模式,依旧会出现写不进去,但现实成功的情况。

分片是数据库切分的一个概念实现,这里也是简单总结为什么要使用分片以及分片的原理, *** 作。

当数据量过大,索引和工作数据集占用的内存就会越来越多,所以需要通过分片负载来解决这个问题

(1)分片组件

(2)分片的核心 *** 作

分片一个集合:分片是根据一个属性的范围进行划分的,MongoDB使用所谓的分片键让每个文档在这些范围里找到自己的位置

块:是位于一个分片中的一段连续的分片键范围,可以理解为若干个块组成分片,分片组成MongoDB的全部数据

(3)拆分与迁移

块的拆分:初始化时只有一个块,达到最大块尺寸64MB或100000个文档就会触发块的拆分。把原来的范围一分为二,这样就有了两个块,每个块都有相同数量的文档。

迁移:当分片中的数据大小不一时会产生迁移的动作,比如分片A的数据比较多,会将分片A里面的一些块转移到分片B里面去。分片集群通过在分片中移动块来实现均衡,是由名为均衡器的软件进程管理的,任务是确保数据在各个分片中保持均匀分布,当集群中拥有块最多的分片与拥有块最少分片的块差大于8时,均衡器就会发起一次均衡处理。

启动两个副本集、三个配置服务器、一个mongos进程

配置分片

(1)分片查询类型

(2)索引

分片集合只允许在_id字段和分片键上添加唯一性索引,其他地方不行,因为这需要在分片间进行通信,实施起来很复杂。

当创建分片时,会根据分片键创建一个索引。

(1)分片键是不可修改的、分片键的选择非常重要

(2)低效的分片键

(3)理想的分片键

(1)部署拓扑

根据不同的数据中心划分

这里写描述

(2)最低要求

(3)配置的注意事项

需要估计集群大小,可使用以下命令对现有集合进行分片处理

(4)备份分片集群

备份分片时需要停止均衡器

(1)部署架构

使用64位机器、32位机器会制约mongodb的内存,使其最大值为15GB

(2)cpu

mongodb 只有当索引和工作集都可放入内存时,才会遇到CPU瓶颈,CPU在mongodb使用中的作用是用来检索数据,如果看到CPU使用饱和的情况,可以通过查询慢查询日志,排查是不是查询的问题导致的,如果是可以通过添加索引来解决问题

mongodb写入数据时会使用到CPU,但是mongodb写入时间一次只用到一个核,如果有频繁的写入行为,可以通过分片来解决这个问题

(3)内存

大内存是mongodb的保障,如果工作集大小超过内存,将会导致性能下降,因为这将会增加数据加载入内存的动作

(4)硬盘

mongodb默认每60s会与磁盘强制同步一次,称为后台刷新,会产生I/O *** 作。在重启时mongodb会将磁盘里面的数据加载至内存,高速磁盘将会减少同步的时间

(5)文件系统

使用ext4 和 xfs 文件系统

禁用最后访问时间

(6)文件描述符

linux 默认文件描述符是1024,需要大额度的提升这个额度

(7)时钟

mongodb各个节点服务器之间使用ntp服务器

(1)绑定IP

启动时使用 - -bind_ip 命令

(2)身份验证

启动时使用 - -auth 命令

(3)副本集身份认证

使用keyFile,注意keyFile文件的权限必须是600,不然会启动不起来

(1)拓扑结构

搭建副本集至少需要两个节点,其中仲裁结点不需要有自己的服务器

(2)Journaling日志

写数据时会先写入日志,而此时的数据也不是直接写入硬盘,而是写入内存

但是Journaling日志会消耗内存,所以可以在主库上面关闭,在从库上面启动

可以单独为Journaling日志使用一块固态硬盘

在插入时,可以通过驱动确保Journaling插入后再反馈,但是会非常影响性能。

logpath 选项指定日志存储地址

-vvvvv 选项(v越多,输出越详细)

dbrunCommand({logrotare:1}) 开启滚动日志

(1)serverStatus

这里写描述

(2)top

(3)dbcurrentOp()

动态展示mongodb活动数据

占用当前mongodb监听端口往上1000号的端口

(1)mongodump

把数据库内容导出成BSON文件,而mongorestore能读取并还原这些文件

(2)mongorestore

把导出的BSON文件还原到数据库

(3)备份原始数据文件

可以这么做,但是, *** 作之前需要进行锁库处理 dbrunCommand({fsync:1,lock:true})

db$cmdsysunlockfindOne() 请求解锁 *** 作,但是数据库不会立刻解锁,需要使用dbcurrentOp()验证。

(1)修复

mongd --repair 修复所有数据库

dbrunCommand({repairDatabase:1}) 修复单个数据库

修复就是根据Jourling文件读取和重写所有数据文件并重建各个索引

(2)压紧

压紧,会重写数据文件,并重建集合的全部索引,需要停机或者在从库上面运行,如果需要在主库上面运行,需要添加force参数 保证加写锁。

(1)监控磁盘状态

(2)为提升性能检查索引和查询

总的来说,扫描尽可能少的文档。

保证没有冗余的索引,冗余的索引会占用磁盘空间、消耗更多的内存,在每次写入时还需做更多工作

(3)添加内存

dataSize 数据大小 和 indexSize 索引大小,如果两者的和大于内存,那么将会影响性能。

storageSize超过dataSize 数据大小 两倍以上,就会因磁盘碎片而影响性能,需要压缩。

参考oracle网站
第 1 部分:安装 Linux
本指南采用具有以下硬件配置的服务器:
两个 800MHz Pentium III CPU
512MB RAM
两个 SCSI 主机适配器 (Ultra SCSI 160)
八个 SCSI 磁盘驱动器 (2 x 9GB + 6 x 36GB)
一个 100Base-T 以太网适配器
一个 1000Base-T 以太网适配器
对磁盘进行配置,使每个 SCSI 主机适配器连接到一个 9GB 磁盘和三个 36GB 磁盘。
请注意,尽管这根本算不上是一个“强大”的设置,但即便是使用再低的设置也可以完成本指南介绍的大部分任务。基本数据库安装只需要一个 CPU、512MB 内存和一个可用空间至少为 65GB 的磁盘驱动器(IDE、SCSI 或 FireWire)。
现在,我们将逐步演示在服务器上安装 Linux *** 作系统的过程。本文假设进行 Linux 系统全新安装(有别于升级),并假设服务器为 Oracle 所专用,且服务器上没有其他 *** 作系统或数据。
Red Hat Enterprise Linux 21
Oracle 10g 经认证可以在 Red Hat Enterprise Linux 21(Advanced Server 和 Enterprise Server)(Update 3) 或更高版本上运行。Red Hat Network (RHN) 提供更新,这些更新可以作为用于创建 CD 的 ISO 文件或作为单个程序包更新下载。
要对全新 Linux 安装应用更新,最简单、最快速的方法是使用更新 CD 执行安装。如果 Linux 已经安装或 CD 上没有更新,则可以通过 RHN 应用这些更新。由于本指南针对的是全新 Linux 安装,因此您将使用更新 CD。
使用更新 CD 集中的第一张 CD 启动服务器。
您可能需要更改 BIOS 设置,以允许从 CD 启动。
启动屏幕上出现时在底部显示 boot:。
选择 Enter,从控制台上执行图形安装。(对于其他安装方法和选项,请参阅 Red Hat 安装指南。)
安装程序扫描硬件,短暂显示 Red Hat 闪屏,然后开始显示一系列屏幕提示。
选择语言
接受默认值。
配置键盘
接受默认值。
配置鼠标
接受默认值。
安装类型
接受默认值。
设置磁盘分区
本文不介绍磁盘分区的详细方法,而是假设您熟悉磁盘分区方法。
(警告:对磁盘进行错误分区是删除硬盘上所有内容的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据的危险!)
本文使用以下分区方案(文件系统均为 ext3):
第一个控制器 (/dev/sda) 上的 9GB 磁盘包含以下分区,用于存放所有 Linux 和 Oracle 软件:
- 100MB /boot 分区(对于 RHEL 21,最小为 50MB)
-1,500MB 交换分区 — 将此分区大小至少设置为系统 RAM 的两倍,但不要超过 2GB(32 位系统不支持大于 2GB 的交换文件)。如果需要大于 2GB 的交换空间,则创建多个交换分区。
-7,150MB 根分区 — 该分区将用于所有目录,包括 /usr、/tmp、/var、/opt、/home 等。这样做纯粹是为了讲解本指南而简化安装。更可靠的分区方案是将这些目录划分到单独的文件系统。
配置启动加载程序
接受默认值。
配置启动加载程序口令
如果要为 GRUB 设置口令,请在此处输入。对于评估系统,无需设置该项。
配置网络
通常情况下,最好使用静态 IP 地址配置数据库服务器。为此,取消选中 Configure using DHCP 并输入服务器的网络配置。确保输入了主机名且已选中 Activate on boot。
配置防火墙
出于本演示的需要,将不配置防火墙。选择 No firewall(安全管理员,请不要生气)。
其他语言支持
接受默认值。
选择时区
选择适合您区域的时间设置。将系统时钟设置为 UTC 对服务器而言通常是一个很好的做法。为此,单击 System clock uses UTC。
配置帐户
为 root 用户选择一个口令,并将其输入所给的域中。为自己创建一个帐户。(不要在此时创建 oracle 帐户;我们将在稍后创建它。)
选择程序包组
选择 Gnome 或 KDE(或两者都选择)图形用户界面(默认为 Gnome)。注意:这两个 GUI 都非常受欢迎,其中 Gnome 在美国使用更普遍。我个人偏爱 KDE,这是因为它的终端模拟器可轻松实现剪切和粘贴,从而可将输入复制到多个连接(例如,当您在多个节点上配置 RAC 时,这将节省键入 *** 作)。
选择 Software Development
未解决的相关性
如果看到此屏幕,只需选择 Install packages to satisfy dependencies(默认值)并继续 *** 作。
配置图形界面 (X)
接受默认值,除非安装程序无法识别您的视频卡。如果您的视频卡无法被识别,则将无法继续 *** 作。
准备安装
单击 Next
安装程序包
软件将被复制到硬盘并被安装。根据提示更改磁盘,然后在安装完成时单击 Next。
创建启动磁盘
如果需要,创建一张启动磁盘,或选择 Skip boot disk creation。
配置监视器
如果安装程序正确识别了您的监视器,则接受默认值。否则,从列表中选择一个兼容的监视器。
恭喜
从系统中取出安装介质,然后单击 Next。
系统自动重新启动,并显示一个图形登录屏幕。如果您是使用基本产品 CD 而非更新 CD 执行的安装,则在继续 *** 作前必须通过 RHN 应用更新。
验证您的安装
如果完成了以上步骤,您应该具备 Oracle 10g 所需的所有程序包和更新。您可以执行以下步骤验证您的安装。
所需内核版本:249-e25(或更高版本)
通过运行以下命令检查内核版本:
uname -r
例如:
# uname -r
249-e27smp
其他所需程序包的版本(或更高版本):
gcc-296-124
make-379
binutils-211
openmotif-2130-11
glibc-224-31
要查看系统上安装了这些程序包的哪些版本,运行以下命令:
rpm -q gcc make binutils openmotif glibc
例如:
# rpm -q gcc make binutils openmotif glibc
gcc-296-11872
make-3791-8
binutils-2119008-12
openmotif-2130-11
glibc-224-328
如果系统上缺少任何程序包版本,或版本比以上指定的版本旧,则可以从 Red Hat Network 下载并安装更新。
Red Hat Enterprise Linux 3
Oracle 10g 经认证可以在不需要更新的情况下运行 Red Hat Enterprise Linux 3(Advanced Server 和 Enterprise Server)的基本版本。如果拥有更新 CD,则可以使用更新版本中的启动 CD 而非基本版本中的启动 CD 在安装过程中自动应用所有更新。Oracle 支持 Red Hat 的所有更新。
使用第一张 CD 启动服务器。
您可能需要更改 BIOS 设置,以允许从 CD 启动。
启动屏幕上出现时在底部显示 boot:。
选择 Enter,从控制台上执行图形安装。(对于其他安装方法和选项,请参阅 Red Hat 安装指南。)
安装程序扫描硬件,短暂显示 Red Hat 闪屏,然后开始显示一系列屏幕提示。
选择语言
接受默认值。
配置键盘
接受默认值。
欢迎屏幕
单击 Next。
配置鼠标
接受默认值。
安装类型
选择 Custom。
设置磁盘分区
本文不介绍磁盘分区的详细方法,而是假设您熟悉磁盘分区方法。
(警告:对磁盘进行错误分区是删除硬盘上所有内容的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据的危险!)
本文使用以下分区方案(文件系统均为 ext3):
第一个控制器 (/dev/sda) 上的 9GB 磁盘包含以下分区,用于存放所有 Linux 和 Oracle 软件:
- 100MB /boot 分区
-1,500MB 交换分区 — 将此分区大小至少设置为系统 RAM 的两倍,但不要超过 2GB(32 位系统不支持大于 2GB 的交换文件)。如果需要大于 2GB 的交换空间,则创建多个交换分区。
-7,150MB 根分区 — 该分区将用于所有目录,包括 /usr、/tmp、/var、/opt、/home 等。这样做纯粹是为了讲解本指南而简化安装。更可靠的分区方案是将这些目录划分到单独的文件系统。
配置启动加载程序
接受默认值。
配置网络
通常情况下,最好使用静态 IP 地址配置数据库服务器。为此,单击 Edit。
出现一个d出窗口。取消选中 Configure using DHCP 复选框,并输入服务器的 IP 地址和网络掩码。确保选中 Activate on boot,然后单击 OK。
在 Hostname 框中,选择 manually 并输入主机名。
在 Miscellaneous Settings 框中,输入其他网络设置。
配置防火墙
出于本演示的需要,将不配置防火墙。选择 No firewall。
其他语言支持
接受默认值。
选择时区
选择适合您区域的时间设置。将系统时钟设置为 UTC 对服务器而言通常是一个很好的做法。为此,单击 System clock uses UTC。
设置 Root 口令
输入 root 的口令,并再次输入以进行确认。
选择程序包组
只选择此处显示的程序包集,其他选项不要选。
桌面
- X Window 系统
- Gnome
- KDE
- 请参阅我在 RHES 21 部分中提供的有关 GUI 选择的意见。
应用程序
- 编辑器
- 图形因特网
服务器
- 不要选择该组中的任何选项。
开发
- 开发工具
系统
- 管理工具
Red Hat Enterprise Linux
- 不要选择该组中的任何选项。
杂项
- 原有软件开发
单击 Next 继续 *** 作。
准备安装
单击 Next。
安装程序包
软件将被复制到硬盘并被安装。根据提示更改磁盘,然后在安装完成时单击 Next。
配置图形界面 (X)
接受默认值,除非安装程序无法识别您的视频卡。如果您的视频卡无法被识别,则将无法继续 *** 作。
配置监视器
如果安装程序正确识别了您的监视器,则接受默认值。否则,从列表中选择一个兼容的监视器。
定制图形配置
接受默认值。
恭喜
从系统中取出安装介质,然后单击 Next。
系统自动重新启动并显示一个新的欢迎屏幕。
单击 Next。
许可协议
阅读许可协议。如果同意其中的条款,则选择 Yes, I agree to the License Agreement 并单击 Next。
日期和时间
设置日期和时间。
如果要使用 NTP 服务器(推荐),则选择 Enable Network Time Protocol 并输入 NTP 服务器的名称。
用户帐户
为自己创建一个帐户。
此时不要为 oracle 创建帐户。本部分稍后将介绍如何创建 oracle 帐户。
Red Hat Network
如果要立即使用或激活 Red Hat Network 帐户,则接受默认值,单击 Next 并遵循 Red Hat 产品附带的产品激活说明。
其他 CD
单击 Next。
完成设置
单击 Next。
出现一个图形登录屏幕。
恭喜!您的 Linux 软件现已安装完毕。
验证您的安装
如果完成了以上步骤,您应该具备 Oracle 10g 所需的所有程序包和更新。您可以执行以下步骤验证您的安装。
所需内核版本:2421-4EL(这是 RHEL 3 的基本版本附带的内核版本。此内核或更新中提供的任何版本的内核均适用于 Oracle 10g。)
通过运行以下命令检查内核版本:
uname -r
例如:
# uname -r
2421-401ELsmp
其他所需程序包的版本(或更高版本):
gcc-323-2
make-379
binutils-211
openmotif-222-16
setarch-13-1
compat-gcc-73-296122
compat-gcc-c++-73-296122
compat-libstdc++-73-296122
compat-libstdc++-devel-73-296122
compat-db-40145(Oracle 10g 数据库安装指南 中将其列为是必需的,但此处并不需要)
要查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
例如:
# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
> openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
gcc-323-20
make-3791-17
binutils-2149004-26
openmotif-222-16
setarch-13-1
package compat-db is not installed
compat-gcc-73-296122
compat-gcc-c++-73-296122
compat-libstdc++-73-296122
compat-libstdc++-devel-73-296122
请注意,尚未安装 compat-db 程序包。安装过程中可用的任何程序包组均不包含此程序包,因此必须在单独的步骤中安装。如果系统上缺少任何其他程序包版本,或版本比以上指定的版本旧(compat-db 除外),则可以从 Red Hat Network 下载并安装更新。
安装 compat-db
插入原始 Red Hat Enterprise Linux 介质的第二张 CD。(Update 2 中未包含该程序包,它仅存在于原始介质中。)
此 CD 自动挂载。
以 root 用户身份运行以下命令:
rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4014-5i386rpm
例如:
# rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4014-5i386rpm
Preparing ########################################### [100%]
1:compat-db ########################################### [100%]
SUSE Linux Enterprise Server 8
Oracle 10g 经认证可以在 Novell SUSE Linux Enterprise Server (SLES) 8 上运行。Novell 通过 CD 或通过其支持门户在线提供 Service Pack 和程序包更新。在本指南中,我们将从 CD 安装 SLES 8 (Service Pack 3)。
使用 SLES 8 CD 启动服务器。
您可能需要更改 BIOS 设置,以允许从 CD 启动。
出现 SUSE Linux Enterprise Server 安装屏幕。
选择 Installation。
安装程序扫描您的硬件并显示 YaST 界面。
选择语言
接受许可协议。
接受默认值 English (US)。
安装设置
选择 New Installation。
分区
本文不介绍磁盘分区的详细方法,而是假设您熟悉磁盘分区方法。
(警告:对磁盘进行错误分区是删除硬盘上所有内容的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据的危险!)
本文使用以下分区方案(文件系统均为 ext3):
第一个控制器 (/dev/sda) 上的 9GB 磁盘包含以下分区,用于存放所有 Linux 和 Oracle 软件:
- 100MB /boot 分区
-1,500MB 交换分区 — 将此分区大小至少设置为系统 RAM 的两倍,但不要超过 2GB(32 位系统不支持大于 2GB 的交换文件)。如果需要大于 2GB 的交换空间,则创建多个交换分区。
-7,150MB 根分区 — 该分区将用于所有目录,包括 /usr、/tmp、/var、/opt、/home 等。这样做纯粹是为了讲解本指南而简化安装。更可靠的分区方案是将这些目录划分到单独的文件系统。
软件
单击 Software 的链接。
出现 Software Selection 屏幕。
单击 Detailed Selection。
左侧窗口显示软件选择列表。单击每个选项旁的复选框以将其选中/取消选中。
选择以下软件(这是推荐的软件集;不要选中其他软件):
- C/C++ 编译器和工具
- KDE(或 Gnome)
- LSB 运行时环境
- 帮助与支持文档
- 图形基本系统
- YaST2 配置模块
- SLES 管理工具
建议不要安装以下项,因为它们可能与提供相同服务的 Oracle 产品冲突:
- 简单 Web 服务器
- 身份验证服务器(NIS、LDAP、Kerberos)
时区
设置您的时区。
单击 Accept。
出现一个警告对话框。准备好继续 *** 作时,单击 Yes, install。
根据安装程序的提示更换 CD。
安装此软件后,将显示一个窗口,提示基本系统已经安装成功。
取出安装 CD,然后单击 OK。
系统重新启动。
输入 root 用户的口令,并再次输入以进行确认。
为自己创建一个帐户。不要在此时创建 oracle 帐户;我们将在稍后创建它。
桌面设置
接受默认值。
出现一个有关自动检测本地打印机的警告窗口。
单击 Skip detection。
配置网络接口,并在准备好继续 *** 作后单击 Next。
建议为服务器设置静态 IP 地址。
构建数据库无需配置打印机、调制解调器、ISDN 适配器或声卡。
出现一个图形登录屏幕。
现在,您需要安装 Service Pack 3。以您自己的身份登录。
插入更新 CD,然后单击 Patch CD Update。
启动 YaST2(SUSE 的系统管理工具)。
选择 SUSE > System > YaST2。(SUSE 是位于屏幕左下部带微笑蜥蜴侧脸的绿色圆按钮。它相当于“开始”。)
出现一个窗口,提示输入 root 用户口令。输入口令,然后单击 OK。
出现 YaST Control Center。
出现 YaST Online Update 窗口。
接受默认值,然后单击 Next。
出现一个窗口,显示一个补丁更新列表。
YaST 在更新系统其他部分之前需要先对自身进行更新。所需程序包已被选中。此时不要选择任何其他程序包。
单击 Accept。
出现一个窗口,提示重新启动在线更新。
单击 OK。
出现一个窗口,提示安装已成功。
单击 OK。
在 YaST Online Update 窗口中,单击 Finish。
在 YaST Control Center 窗口中,单击 Close。
重复步骤 21 和 22。
出现一个窗口,显示一个补丁更新列表。
单击 Accept 接受默认值。
可能出现包含各种提示(如“Make sure you update sendmail”)的小d出窗口。单击 OK 关闭它们。
此步骤需要一些时间。将光标悬停在 Next 按钮上。如果更新仍在运行,则显示一个时钟图标。
出现一个窗口,提示安装已成功。
单击 OK。
在 YaST Online Update 屏幕上,单击 Next。
安装程序写系统配置。
在 YaST Control Center 中,单击 Close。
注销。
SUSE > Logout。
取出更新 CD。
重新启动系统。
在图形登录屏幕上,单击 Menu。
选择 Shutdown。
选择 Restart computer。
输入 root 口令。
单击 OK。
恭喜!您的 Linux 软件现已安装完毕。
验证您的安装
如果完成了以上步骤,您应该具备 Oracle 10g 所需的所有程序包和更新。您可以执行以下步骤验证您的安装。
所需内核版本:2421-138(或更高版本)
通过运行以下命令检查内核版本:
uname -r
例如:
# uname -r
k_smp-2421-138
其他所需程序包的版本(或更高版本):
gcc-322-38
make-379
binutils-212
openmotif-222-124
要查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:
rpm -q gcc make binutils openmotif
例如:
# rpm rpm -q gcc make binutils openmotif
gcc-322-38
make-3791-407
binutils-21290015-50
openmotif-222-124
如果系统上缺少任何程序包版本,或版本比以上指定的版本旧,则可以从 SUSE Linux Portal 下载和安装更新。
--------------------------------------------------------------------------------
第 2 部分:针对 Oracle 配置 Linux
Linux 软件现已安装完毕,您需要针对 Oracle 对其进行配置。本部分将逐步讲解针对 Oracle 数据库 10g 配置 Linux 的过程。
验证系统要求
要验证系统是否满足 Oracle 10g 数据库的最低要求,以 root 用户身份登录并运行以下命令。
要查看可用 RAM 和交换空间大小,运行以下命令:
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
例如:
# grep MemTotal /proc/meminfo
MemTotal:512236 kB
# grep SwapTotal /proc/meminfo
SwapTotal:1574360 kB
所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
Oracle 10g 软件还需要 25GB 的可用磁盘空间,而数据库则另需 12GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。要检查系统上的可用磁盘空间,运行以下命令:
df -h
例如:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 68G 13G 52G 20% /
/dev/sda1 99M 17M 77M 18% /boot


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13467272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-12
下一篇 2023-08-12

发表评论

登录后才能评论

评论列表(0条)

保存