glibc

中标麒麟上安装配置达梦数据库7

非 Y 不嫁゛ 提交于 2020-05-07 19:56:27
在中标麒麟上安装配置达梦数据库 7 分为如下几步: 检查软硬件配置是否满足要求 规划安装目录及用户 配置环境变量及 limit 文件 挂载安装文件 安装数据库 创建数据库 注册并启动数据库实例服务 下面依次进行介绍。 1. 检查软硬件配置是否满足要求   1) 查看操作系统信息   Cat /etc/issue   Uname -a   Uname -m   需是达梦数据库支持的操作系统类型及版本。   2) 查看相关软件包是否正确安装   Rpm -aq | grep glibc   3) 检查CPU 、内存等硬件信息   Cat /proc/cpuinfo   Free -m   Fdisk -l 2. 规划安装目录及用户   计划将达梦数据库安装在 /dm7 下,使用 dmdba 用户进行安装管理。   1) 创建安装目录   Mkdir /dm7   2) 创建数据库安装管理用户   创建对应的用户组: Groupadd dinstall   创建用户: Useradd -g dinstall dmdba   修改用户密码: Passwd dmdba   查看用户是否创建成功: cat /etc/passwd | grep dmdba   3) 修改安装目录的权限   Chown dmdba:dinstall -R /dm7 3. 配置环境变量及 limit 文件   1)

Xenomai 3 POSIX

谁都会走 提交于 2020-05-06 10:51:36
Xenomai 3在架构设计上确实优先Xenomai 2,至少对开发者来说,少维护了不少东西,看下面两张图就知道了 第一张图是Xenomai2的,第二张图是Xenomai3的,Xenomai3在内核中只有一个cobalt core,并没有POSIX/native/VxWorks等等的封装,内核的代码本来就不易于调试,也就不易于维护(保持正确性),减少内核代码就有利于代码的稳定性。最重要的是只有一个cobalt,大大减轻了维护人员的工作。 注意,第二张图有一个重要的提示, POSIX在Xenomai3中的地位非一般 ,以前大家习惯了native的API,Xenomai3时native的API比POSIX的API要慢一点了,因为native是在POSIX上封装出来的,而不是直接给内核打交道。 另外,POSIX API的好处时,如果PREEPT_RT的真的能达到硬实时性的话,Xenomai用户空间的库就不需要了,看看mercury core的图就知道了 POSIX API直接被glibc支持,Xenomai3的用户空间的库都不需要了。 总体看来,我认为是时候切换到Xenomai3的了,虽然Xenomai3目前并没有Xenomai2稳定,但是架构放在这里,稳定只是时间问题。一旦稳定下来,维护人员就可以花时间去优化实时性了。 来源: oschina 链接: https://my

MySQL 8.0.15 配置 MGR单主多从

筅森魡賤 提交于 2020-05-06 03:21:49
转载自:http://www.cnblogs.com/zhangzihong/p/10443526.html 一、简介 MySQL Group Replication(简称MGR)字面意思是mysql组复制的意思,但其实他是一个高可用的集群架构,暂时只支持mysql5.7和mysql8.0版本. 是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案,提供了高可用、高扩展、高可靠的MySQL集群服务. 也是mysql官方基于组复制概念并充分参考MariaDB Galera Cluster和Percona XtraDB Cluster结合而来的新的高可用集群架构. MySQL Group Replication是建立在基于Paxos的XCom之上的,正因为有了XCom基础设施,保证数据库状态机在节点间的事务一致性,才能在理论和实践中保证数据库系统在不同节点间的事务一致性。 由一般主从复制概念扩展,多个节点共同组成一个数据库集群,事务的提交必须经过半数以上节点同意方可提交,在集群中每个节点上都维护一个数据库状态机,保证节点间事务的一致性。 优点: 高一致性,基于原生复制及paxos协议的组复制技术. 高容错性,有自动检测机制,当出现宕机后,会自动剔除问题节点,其他节点可以正常使用(类似zk集群),当不同节点产生资源争用冲突时,会按照先到先得处理

House of Spirit学习调试验证与实践

随声附和 提交于 2020-05-05 12:51:56
作家: Bug制造机 原文来自: House of Spirit学习调试验证与实践 House of Spirit和其他的堆的利用手段有所不同。它是将存在的指针改写指向我们伪造的块(这个块可以位于堆、栈、bss任何一个位置)并且free掉欺骗glibc达到把伪造块回收到bins中不过在free之前,需要设置当前伪造块和下一个伪造块的size字段,满足free()的安全检测机制,从而欺骗glibc。 下面是一个demo小程序先感性的体会下: # include<stdio.h> # include<stdlib.h> struct fast_chunk { size_t pre_size; size_t size; struct fast_chunk *fd; struct fast_chunk *bk; char buf[ 0x20]; }; int main ( void) { struct fast_chunk fake_chunks[ 2]; void *ptr,*victim; ptr= malloc( 0x30); fake_chunks[ 0].size= sizeof( struct fast_chunk); fake_chunks[ 1].size= sizeof( struct fast_chunk); ptr=( void *)&fake_chunks[ 0]

彻底解释Linux select的1024限制(select真的受1024限制吗?不!)

﹥>﹥吖頭↗ 提交于 2020-05-03 14:38:07
很多很多年前,我被面试 为什么select调用最多只支持1024个文件描述符? 我没有答出来,我甚至不知道select到底是干什么的。 又过了很多年,我用这个问题面试了别人… 在当时,我心里已经有了会令自己满意的预期答案,我预期的大概就是: Linux内核的宏限制了fd_set最多只支持1024… 为了避免talk is cheap,我还能show you the code: // include/uapi/linux/posix_types.h # define __FD_SETSIZE 1024 typedef struct { unsigned long fds_bits [ __FD_SETSIZE / ( 8 * sizeof ( long ) ) ] ; } __kernel_fd_set ; 嗯,是的,那段时间我也和很多人一样,读过几段Linux内核源码,并且读懂了,就开始觉得自己什么都懂了。 言归正传,如果你想突破fd_set此1024的限制,重新编译内核咯! 事情已经过去很多年了,事后想想这事,感觉有点丢人,我竟然曾经以我读过Linux内核源码而唬人,我曾经也是一个源码分析者,在还没有深入理解一个问题时,就片面地以源码为依据信口开河。 竟然扯什么Linux源码,竟然让人家去看文档,还要什么重新定义__FD_SETSIZE的值之后重新编译内核,丢人啊丢人!

Linux内存使用方法详细解析

天大地大妈咪最大 提交于 2020-05-02 05:26:19
我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用。 一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。 Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,它对应我们机器上的物理内存。 这里要提到一个很重要的概念,内存的延迟分配。 Linux内核在用户申请内存的时候,只是给它分配了一个线性区(也就是虚存),并没有分配实际物理内存;只有当用户使用这块内存的时候,内核才会分配具体的物理页面给用户,这时候才占用宝贵的物理内存 。 内核释放物理页面是通过释放线性区,找到其所对应的物理页面,将其全部释放的过程 。 char *p=malloc( 2048 ) //这里只是分配了虚拟内存2048,并不占用实际内存。 strcpy(p,” 123 ”) //分配了物理页面,虽然只是使用了3个字节,但内存还是为它分配了2048字节的物理内存。 free(p) //通过虚拟地址,找到其所对应的物理页面,释放物理页面,释放线性区。 我们知道用户的进程和内核是运行在不同的级别,进程与内核之间的通讯是通过系统调用来完成的。进程在申请和释放内存,主要通过brk,sbrk,mmap,unmmap这几个系统调用(都是虚拟内存)

linux安装mysql5.7.22,tomcat,jdk

こ雲淡風輕ζ 提交于 2020-05-01 19:30:35
1,linux安装MySQL5.7.22 (1)linux上有数据库服务器通过rpm -qa | grep mysql查看,需要先卸载掉本机的数据库服务器rpm -e --nodeps mysql-libs-5.1.73-8.el6_ (2)mkdir /usr/local/mysqls用于存放mysql压缩包 (3)下载mysql安装包:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz (4)解压压缩包:tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz (5)移动压缩包:mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/ (6)重命名:mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql (7)新建data目录:mkdir /usr/local/mysql/data (8)新建mysql用户,mysql用户组:(1)groupadd mysql (2)useradd mysql -g mysql (9)将/usr/local

【转】linux环境内存分配原理 malloc info

荒凉一梦 提交于 2020-05-01 07:17:00
Linux 的虚拟内存管理有几个关键概念 : Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ? Linux 的虚拟内存管理有几个关键概念: 1 、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,获得真正物理地址; 3、如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁盘中。 一、Linux 虚拟地址空间如何分布? Linux 使用虚拟地址空间,大大增加了进程的寻址空间, 由低地址到高地址分别为 : 1 、只读段: 该部分空间只能读,不可写;(包括:代码段、rodata 段(C常量字符串和#define定义的常量) ) 2 、数据段: 保存全局变量、静态变量的空间; 3 、堆 : 就是平时所说的动态内存, malloc/new 大部分都来源于此。其中堆顶的位置可通过函数 brk 和 sbrk 进行动态调整。 4 、文件映射区域: 如动态库、共享内存等映射物理空间的内存,一般是 mmap 函数所分配的虚拟地址空间

centos8上安装mysql8

只谈情不闲聊 提交于 2020-04-30 00:36:34
一,下载并解压mysql8 1,mysql官网 https: // www.mysql.com/ 2,下载到source目录 [root@yjweb source]# wget https: // cdn.mysql.com // Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar 3,解压: [root@yjweb source]# tar -xvf mysql- 8.0 . 19 -linux-glibc2. 12 -x86_64. tar mysql - 8.0 . 19 -linux-glibc2. 12 -x86_64. tar .xz mysql -test- 8.0 . 19 -linux-glibc2. 12 -x86_64. tar .xz mysql -router- 8.0 . 19 -linux-glibc2. 12 -x86_64. tar .xz [root@yjweb source]# xz -d mysql- 8.0 . 19 -linux-glibc2. 12 -x86_64. tar .xz xz: mysql - 8.0 . 19 -linux-glibc2. 12 -x86_64. tar : File exists [root@yjweb source]# mv mysql

MySQL8.0.18通用版本安装

拜拜、爱过 提交于 2020-04-30 00:21:24
环境说明:   系统版本:CentOS release 6.8 (Final)   MySQL版本:mysql-8.0.18   内存:63G   空间:8T 1 配置本地yum仓库 这个只需要拷贝一个镜像,然后挂载镜像到某个目录,最后将哪个目录配置为yum仓库的目录即可 2 下载安装包:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz 3 解压安装包:tar -zxf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql8 4 创建用户,MySQL数据目录和授权 mkdir /data/mysql8 useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql8 chown mysql:mysql /usr/local/mysql8/ -R chown -R mysql:mysql /data/mysql8/ 5 MySQL初始化 cd /usr/local/mysql8/ ### 注意,生产环境中一般要设置忽略表名大小写。这个参数必须在初始化数据库时就要指定,否则在建库完成之后,在修改配置文件会报错 sudo