Linux
文章平均质量分 61
db_murphy
杨磊,墨天轮社区MVP,DBASK技术专家、OCMU联盟成员;某央企研发部,职位数据架构师;一直在数据库领域坚持耕耘近10年,多年从事数据架构设计,具有一线部署实施经验。精通关系型数据库:Oracle、MySQL;对开源数据库、国产数据库、NoSQL、NewSQL、大数据、云计算、云原生等新技术有持续关注和极大兴趣。
展开
-
问题排查 | bash: $’\r’: command not found报错处理
问题描述在Windows下编写好sh文件后,在Linux下运行会报错:bash: $’\r’: command not found问题解决这是因为Windows系统的文件换行使用的是\r\n,而Unix系统是\n有两种解决方法:方式一安装dos2unix来进行文件转换[root@mysqlSlave ~]# yum install -y dos2unix[root@mysqlSlave ~]# dos2unix your_file.sh方式二使用vim打开文件,然后使用命令:set原创 2021-09-23 18:48:47 · 1117 阅读 · 1 评论 -
知识点 | SQL标准协议有哪些?
简介:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名,包括了增删改查,安全性完整性定义控制等一系列功能。SQL语言分为五类DDL:Data Definition Language,数据定义语言,包括了:create,drop,alter,truncate(这是删除并新建表,可消除自增的历史最大值);DML:Data Manipul原创 2021-07-26 14:50:39 · 1977 阅读 · 0 评论 -
知识分享 | MySQL InnoDB 日志缓冲区(Log Buffer)讲解
InnoDB有两个非常重要的日志:undo log、redo log(1)通过undo log可以看到数据较早版本,实现MVCC,或回滚事务等功能。(2)通过redo log用来保证事务持久性。Mini-Transaction是用来实现InnoDB的物理逻辑日志的写入和页恢复的。通过Mini-Transaction来保证并发事务操作和数据库异常时页的一致性。Mini-Transaction主要用于innodb redo log和undo log写入,保证两种日志的ACID特性。(注意:是日志的AC原创 2021-05-09 13:49:42 · 2866 阅读 · 0 评论 -
知识分享 | MySQL innodb存储引擎中的事务是如何通过日志来实现
**问题:**MySQL innodb存储引擎中的事务是如何通过日志来实现的?基本流程如下:因为事务在修改页时,要先记undo(数据被修改前的前镜像),在记undo之前要记undo的redo;原因:undo的中保存数据被修改前的前镜像数据这一行为,也会涉及undo保存前镜像数据而导致的修改页的操作,故会有redo数据的产生;这和Oracle的redo机制一致:只要发生数据块的改变,redo日志就会记录;MySQL对应的是数据页,Oracle对应的是数据块(默认8k);然后修改数据页,再记数据页修改原创 2021-05-08 23:35:29 · 162 阅读 · 0 评论 -
理论学习 | MySQL 8.0.18 +的hash join学习
在MySQL 8.0.18之前,表的join方式只有嵌套循环(nested loop)这一种方式;8.0.18推出了hash join的方式以替代嵌套循环。hash join的原理概括为:选择占用空间较小的表t1(不一定是行数)作为驱动表,计算其join字段的hash值,在内存中build一个hash table,将t1的join字段的hash值存放至hash table。然后对被驱动表t2的join字段计算hash值,并与内存中的hash table进行查找匹配。使hash join方式生效的前提原创 2021-05-08 12:55:46 · 335 阅读 · 0 评论 -
知识点 | Oracle存储过程和触发器之学习
存储过程:存储过程就是编译好了的一组sql语句。存储过程因为SQL语句已经预编绎过,因此执行速度较快。可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。可以降低网络的通信量。存储过程主要是在服务器上运行,减少对客户机的压力。存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装原创 2021-05-05 11:02:39 · 546 阅读 · 0 评论 -
知识点 | Mysql InnoDB Cluster 工作原理和流程
MySQL InnoDB集群提供了一个集成的,本地的,HA解决方案。Mysq Innodb Cluster是利用组复制的 pxos 协议,保障数据一致性,组复制支持单主模式和多主模式。MySQL InnoDB集群由以下几部分组成:- MySQL Servers with Group Replication:向集群的所有成员复制数据,同时提供容错、自动故障转移和弹性。- MySQL Router:确保客户端请求是负载平衡的,并在任何数据库故障时路由到正确的原创 2021-04-29 20:28:45 · 808 阅读 · 0 评论 -
知识点 | Oracle CPU/PSU补丁有啥不同?!
有些亲,对于Oracle的补丁包CPU/PSU,傻傻分不清楚;今天就介绍下CPU和PSU到底都是干啥用的?什么是CPU/PSU?1. Oracle CPU全称Critical Patch Update;Oracle官方每个季度会对Oracle产品发行一次安全补丁包,通常为了修复产品中安全隐患。2. Oracle PSU全称是Patch Set Update,是每季度发行一次补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。每个P原创 2021-04-15 19:51:01 · 1370 阅读 · 0 评论 -
知识点 | 数据仓库中的 ods ,dw,dm分别是个啥?
先看一下数据中心的整体架构以及数据流向:DB 是现有的数据来源,可以为mysql、SQLserver、Oracle、Mongodb、PostgreSQL、文件日志等,为数据仓库提供数据来源的一般存在于现有的业务系统之中。ETL的是 Extract-Transform-Load 的缩写,用来描述将数据从来源迁移到目标的几个过程:Extract,数据抽取:把数据从数据源读出来。Transform,数据转换:把原始数据转换成期望的格式和维度。如果用在数据仓库的场景下,Transform也包含数据清洗原创 2021-04-07 14:46:34 · 2159 阅读 · 0 评论 -
知识篇 | Oracle之环境上下文信息的预定义函数sys_context介绍
sys_context函数是Oracle提供的一个获取环境上下文信息的预定义函数。该函数用来返回一个指定namespace下的parameter值;可以在sql和PL/SQL语言中使用。sys_context实际是一个Oracle存储和传递参数的容器访问函数。Session会话在登入Oracle时,是带有会话信息和其他一些属性信息的。其中,有一些是Oracle预定义的,登录系统的时候自动填入到指定的变量中。另一个函数userenv()保留与之兼容。SYS_CONTEXT函数的用法如下:SYS_CON原创 2021-03-24 20:37:26 · 1064 阅读 · 0 评论 -
排故篇 | You (oracle) are not allowed to access to (crontab) because of pam configuration
oracle用户下编辑计划任务时(crontab -e),报错如下:[oracle@crm-ethanDB ~]$ crontab -lYou (oracle) are not allowed to access to (crontab) because of pam configuration.什么鬼?明明前几天还使用过crontab命令,问了下运维同事,最近也没有任何改动。OK, 按照常规流程排查下,顺序如下:1)查看/bin/crontab的SSID位是否标记S2)检查/etc/cron原创 2021-03-04 16:28:06 · 7280 阅读 · 1 评论 -
Linux环境下任意数量的服务器之间如何配置互信脚本_sshUserSetup.sh
#!/bin/sh# Nitin Jerath - Aug 2005#Usage sshUserSetup.sh -user <user name> [ -hosts \"<space separated hostlist>\" | -hostfile <absolute path of cluster configuration file> ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile <desir原创 2021-02-18 14:39:14 · 387 阅读 · 0 评论 -
Linux运行win编辑执行文件时报错:bash: $‘\r‘: command not found
【问题】在Windows下用ultraedit编了一个.sh文件,sftp到Linux环境下运行报错,报错信息如下:bash: $’\r’: command not found【分析】是因Windows系统的文件换行使用的是\r\n,而Unix系统是\n【解决】方式一安装dos2unix来进行文件转换yum install -y dos2unixdos2unix file_name.sh方式二使用vim打开文件,然后使用命令:set ff=unix,保存文件#使用vim打开文件vi原创 2021-01-14 10:31:30 · 131 阅读 · 0 评论 -
Configuring Kernel Parameters about SHMMAX on HP
【引言】本文讲述了HP-UX服务器因系统参数shmmax参数设置不适当,导致修改Oracle 11g的SGA失败报错protection key fault的原因分析,及相对应的解决方案;因平时不常遇到HP-UX操作系统,且shmmax参数修改和LINUX系统完全不一样,故做此文以便回溯。问题现象为:HP-UX的一台服务器部署了Oracle 11g,SGA由原来的8GB调整为30GB后,使用如下命令进行调整后;因上述参数为Oracle静态参数,故还需要停启下Oracle的实例,重启实例...原创 2020-07-10 16:41:01 · 447 阅读 · 0 评论 -
CentOS能不能替换RHEL?!
【引言】随着开源化的从上到下的要求,Centos开始被重视和研究起来,本文主要描述Centos是个啥,和Red Hat Enterprise Linux有啥区别,能不能替换RHEL。CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成,由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Re原创 2020-07-08 00:05:14 · 322 阅读 · 0 评论 -
彻底搞明白find命令mtime含义和用法
【引言】大家知道,在写shell脚本时,经常会crontab定时删除一些文件,会经常用到find命令的-mtime参数,之前只是在用,没具体理解,今天集中时间学习下。Linux里面一切皆文件,想了解文件状态时间,就得熟悉find命令中的-atime, -ctime,-mtime这三个参数,其中-mtime用的更多。使用命令stat先看下文件或者目录的信息:[root@localhost products]# stat oracle19c/File: ‘oracle...原创 2020-07-01 00:03:32 · 24589 阅读 · 3 评论 -
linux last命令:说,前几天你是不是登陆某台服务器误操作了?
**【引言】**最近碰到一个诉求,在排查一数据库异常时,需要查看最近或者某短时间内都有哪些人登录过服务器,以便问题回溯。那么,怎么才能查看到在一段时间内都有哪些用户登录过服务器呢?本文将介绍了如何使用last命令查看哪些用户登录过服务器。该命令用来列出目前与过去登录系统的用户相关信息。指令英文原义:show listing of last logged in users。last是一个命令行实用程序,用于显示有关系统用户的最后登录会话的信息。当你需要跟踪用户活动,或调查可能的安全漏洞时,此功能非常有用原创 2020-06-16 22:38:56 · 605 阅读 · 0 评论 -
LINUX环境下如何重建yum源并更新
【引言】今天做一个实验,要用到yum方式安装一个资源组。因自己的笔记本使用vmware虚拟的linux7.2环境,且超出两周没升级过yum源,因此需先行升级下yum,本文记录之,以备存。操作步骤如下:1. 备份默认的yum#mv /etc/yum.repos.d /etc/yum.repos.d.backup2. 设置新的yum目录#mkdir /etc/yum.repos.d...原创 2020-03-09 21:38:49 · 2289 阅读 · 0 评论 -
linux下如何让.bash_profile立即生效
【引言】在 Linux 管理中,常有需求需要修改根目录下 ~/.bash_profile 文件,更改环境变量,内容更改后如何让其生效呐?文件修改后,为了是参数生效,笨的方法是是重新发起一个新的会话,或者重新启动机器;取巧的方法为使用命令让环境变量的修改生效,主要有三种方法:1.source ~/.bash_profile2… ~/.bash_profile3.exec bash --...原创 2020-02-10 22:35:48 · 18601 阅读 · 0 评论 -
【生产篇】_RHEL7环境下19c RAC安装之udev规则配置ASM共享存储
【引言】最近RHEL7.6环境下安装了一套oracle 19C的环境,其中最基础的asm前期共享存储UDEV配置,配置时有点意思,故特此记录下,以备后续查看。Step 1: 取得多路径融合的UUID#udevadm info --query=all --name=/dev/mapper/mpatha | grep -i DM_UUIDE: DM_UUID=mpath-360002ac000...原创 2019-11-08 15:26:50 · 2117 阅读 · 0 评论 -
LINUX环境下三节点服务器如何配置互信
Theme:LINUX环境下三节点服务器如何配置互信三节点:# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo)db1 192.168.10.111db2 192.168.10.112db3 192.168.10.113三个节点分别执行 : # ssh-keygen -t ...原创 2019-10-28 11:42:32 · 721 阅读 · 0 评论