首页 文章 精选 留言 我的

精选列表

搜索[计费相关],共10005篇文章
优秀的个人博客,低调大师

PostgreSQL 2017 2月份 相关新闻

背景 PostgreSQL近几年的发展有目共睹,从GIS到物联网、流式计算、多维分析、高并发在线事务处理、服务端编程、任意数据类型的抽象处理、扩展索引方法、GPU运算能力的利用等各个方面体现了PostgreSQL的强大功能和性能。从dbranking的分值也可以得到证明,毫无疑问是2016年度发展最快的数据库。 2016年发布的PostgreSQL 9.6新特性还历历在目,比如多核并行计算、针对流式数据的块级索引、同步多副本等等。2017年将要发布的10.0又装配了更多的核武器,到底有些啥呢? PostgreSQL在向量化运算、列存储、动态编译等极致优化的领域又有什么新动作呢? AWS、阿里云等众多云厂商在PostgreSQL这块又有什么样的布局呢? 1 PostgreSQL成为2016年度增速最快的数据库 http://db-engines

优秀的个人博客,低调大师

Linux自建yum仓及相关知识详解

一、使用场景 很多企业都会自建yum仓来便于企业内部的rpm包安装,这样在安装软件时就可以利用局域网内的高速带宽进行下载和安装rpm包,缩短了通过公网下载的长时间等待。 二、yum与rpm的说明 首先需要对yum与rpm包本身以及他们之间的关系进行一些说明。rpm本身是一个包管理器,所以它具备一个管理器的打包、安装查询、升级、卸载、校验、数据库管理这些基本功能,这就解释了为什么我们在安装一个rpm包前使用rpm -qpi /path/name.rpm能查到这个包中的信息,其中如果出现Relocations:(notrelocatable)这个提示,说明这个rpm包再安装过程中是不允许更改安装位置的。 使用rpm命令安装最让人头疼的问题就是软件包之间的依赖关系,使用yum工具会自动处理我们安装过程中包之间依赖关系 ,它只是一个前端的工具,并不能替代rpm包管理器。我们有没有想过,yum为什么会知道包之间的相互依赖关系呢?yum本身并不会知道包之间的依赖关系,而包之间的依赖关系等元数据,会存放在repodata这个文件中。以光盘为例,当我们使用mount /dev/cdrom /media命令后,就会在/media/下看到该目录,所以这就解释了在自定义yum仓时为什么repodata文件的路径就是yum仓baseurl的所在路径。 repodata文件中的repomd.xml就存放着各个rpm包之间的关联信息,而TRANS.TBL存放着rpm包的分组信息 而客户端在使用yum命令时,会先下载yum的配置文件,从中找到yum仓的路径,再下载repodate里的元数据,而后安装rpm包 三、yum配置文件详解 通过上面,我们知道yum是一个前端工具程序,和其他程序一样自身都有配置文件,其中就包含了yum仓的位置指向。yum的配置文件分为主配置段(/etc/yum.conf),和仓库配置段(/etc/yum.repos.d/*.repo),这么设计是因为yum仓可以有多个,如果都写在/etc/yum.conf文件中,不便于查看,所以有了仓库配置段,yum工具会将所有在/etc/yum.repos.d/目录内,以.repo结尾的文件来作为配置文件。我们可以在/etc/yum.repos.d/下为每一个yum仓定义一个.repo文件,或者在一个.repo文件中分段表示多个yum仓,.repo文件中第一行为repoID,且此repoID不能重复,这就是为什么上图下载的yum配置文件名为base的原因。 四、搭建步骤 通过上面可以知道,使用yum安装rpm包需要有repodata目录,该目录可以通过yum createrepo <director>来创建,但是有时本地服务器可能没有安装createrepo命令,又没有yum仓,以下,我们就以这种情况为例来介绍yum仓的搭建: 1.使用本地光盘充当yum源安装createreop命令 (1)放入光盘,使用mount /dev/cdrom /media 将光盘内的目录挂载到/media目录下, (2)使用vim /etc/yum.repos.d/dvd.repo 创建一个名为dvd.repo的配置文件 [base]——repoID 不能重复 name——任意字符串 baseurl——指定yum仓的位置,本地文件使用协议未file://,后面的/media为yum仓路径(repodata在/media/目录下) enable——是否启用此yum仓,1表示启用;0禁用 gpgcheck——gpg检测,1为检测;0为不检测,出于安全rpm包在发行时会用自己的私钥加密,并发布公钥,/media/目录下RPM-GPG-KEY-CentOS-6就为用户的公钥,如果gpgcheck值为1,就需要导入公钥,否则无法安装,公钥位置为前一张图所示 cost——开销值,也可以不写,不写默认为1000。前面说过yum仓可以有多个,通过cost值大小来设置yum仓的优先顺序 (3)创建好后,输入yum repolist,可以看到yum仓已经被识别 2.安装并启动httpd服务 使用yum install httpd 安装httpd程序,安装完后并启用httpd服务,通过netstat -ntl查看80端口是否正常侦听,需要通过http协议访问的安装包必须放在/var/www/html目录内。 3.复制二进制rpm包到/var/www/html目录内,并创建repodate (1)使用mirror命令从公网下载一个镜像,放置/var/www/html/内,下载后的目录为openstact-juno (2)进入/var/www/html/openstact-juno 目录删除镜像本身自带的repodata(此步骤是为测试createrepo) (3)使用createrepo/var/www/html/openstact-juno 创建新的repodata目录,创建过程中可以看到他在抽取生成新的元数据 (4)此时,局域网内通过浏览器输入 http://ip/filename就能看到结果了 五、本地yum仓验证 验证本地yum仓是否正常对外提供服务,可以在局域网内另找一台host或使用本host来进行验证,本例继续使用原有host 1.输入 vim /etc/yum.repos.d/openstack-juno.repo 创建一个配置文件,为方便测试,不检测gpgcheck 2.此时yum repolist中就包含新的openstack-juno 3.使用yum list all | less 找一个openstack-juno内的yum包,再使用 yum installopenstack-ceilometer-compute.noarch 安装,可以从repository看到,openstack-juno已被使用,此致,操作完成

优秀的个人博客,低调大师

数据库知识:SQLServer变量相关知识介绍

1、概述 SQLServer变量对应内存中的一个存储空间。它和常量不同,变量的值可以在执行过程中改变。 2、分类 SQLServer变量根据作用范围不同主要分为局部变量和全局变量。 2.1.局部变量 局部变量是用户在程序中定义的变量,它仅在定义的程序范围内有效。局部变量可以用来保存从表中读取的数据,也可以作为临时变量保存计算的中间结果。 注意:局部变量名称的第一个字符必须为一个@。 示例: --定义两个局部变量 DECLARE@mint,@nint; --赋值 SET@m=9; SET@n=1; --查询 SELECT@m+@n; 2.2 全局变量 全局变量通常以@@开头。这些变量一般都是SQL Server中的系统函数,它们的语法遵循函数的规则。用户可以在程序中使用这些函数测试系统特性和SQL命令的执行情况。常用的全局变量如下: @@ERROR--最后一个SQL错误的错误号 @@IDENTITY--最后一次插入的标识值 @@LANGUAGE--当前使用的语言的名称 @@MAX_CONNECTIONS--可以创建的同时连接的最大数目 @@ROWCOUNT--受上一个SQL语句影响的行数 @@SERVERNAME--本地服务器的信息 @@TRANSCOUNT--当前连接打开的事物数 @@VERSION--查看SQLServer的版本信息 3.声明变量 3.1、简单声明 变量只有在声明后才能使用,可以使用DECLARE语句来声明变量。在声明变量时可以指定变量的数据类型和长度。 DECLARE@namenvarchar(30); 3.2 声明多个变量 声明多个局部变量,需要在定义的局部变量后使跟上一个逗号,然后指定下一个局部变量名称和数据类型。 DECLARE@Namenvarchar(30),@Ageint; 3.3 变量作用域 在使用变量时,需要注意变量的作用域。变量具有局部作用域,只在定义它们的批处理或过程中可见。作用域范围从声明变量的地方开始到声明变量的批处理或存储过程的结尾。 USEDB; GO DECLARE@Ageint; SET@Age=30; GO--结束符 select@Age--报错 4.变量赋值 在声明变量后,变量值被默认设置为NULL。可以使用SET或SELECT语句。SET是为变量赋值的首选方法。 变量也可以通过选择列表中当前所引用的值赋值。如果在选择列表中引用变量,则它应当被赋以标量值或者SELECT语句应仅返回一行。 示例: DECLARE@Ageint; --SELECT语句赋值 SELECT@Age=agefromt_userORDERBYagedesc;--返回最后一行的值 select@Age;

优秀的个人博客,低调大师

与线程同步以及线程调度相关的方法

wait():使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁; sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常; notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关; notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态; 补充:Java 5通过Lock接口提供了显式的锁机制(explicit lock),增强了灵活性以及对线程的协调。Lock接口中定义了加锁(lock())和解锁(unlock())的方法,同时还提供了newCondition()方法来产生用于线程之间通信的Condition对象;此外,Java 5还提供了信号量机制(semaphore),信号量可以用来限制对某个共享资源进行访问的线程的数量。在对资源进行访问之前,线程必须得到信号量的许可(调用Semaphore对象的acquire()方法);在完成对资源的访问后,线程必须向信号量归还许可(调用Semaphore对象的release()方法)。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册