Ubuntu Desktop 死机处理
Ubuntu Desktop 死机处理当 Ubuntu Desktop 死机时,除了长按电源键重启,还可以使用如下两种方式处理。
方式1:ctrl+alt+Fn使用 ctrl + alt + F3~F6: 切换到其他 tty 命令行。执行 top 命令查看资源占用最多的进程,然后使用 kill 命令杀死进程即可。然后使用 ctrl + alt + F1 切回到桌面。
方式2:REISUBbuiser 组合键:<Ctrl+Alt> + <Sysrq/PrtSc> + <REISUB>
操作:按住 ctrl + alt + sys rq(prt sc) 键不放,然后依次按下 R、E、I、S、U、B 按键,全部按完之后,系统自动重启。
作用:按住 Sys Rq,此时输入的一切都会直接由 Linux 内核来处理,它可以执行许多低级操作。此时 reisub 中的每一个按键都对应一个独立操作,他们分别表示:nRaw: 将键盘控制从 X Server 那里抢回来,以确保可以与内核通信。tErminate: 给所有进程发送 SIGTERM 信号,让进程可以执行清理操 ...
Ubuntu Desktop 软件包管理
ubuntu desktop 软件包管理ubuntu desktop 常见的包格式有 deb, AppImage, snap, Flatpak 等。本文介绍这几种格式软件的安装方法。
1.deb 格式使用 apt 命令管理 deb 包详细查看 man apt。
apt是一个命令行程序,用于在Ubuntu,Debian和基于Debian的Linux发行版上安装,更新,删除和管理软件。
如果安装包位于您的当前工作目录中,则可以使用相对路径./。否则,apt会尝试从Ubuntu的软件源中检索并安装软件包。
apt软件管理器会自动解决并安装你在安装本地deb文件时所需的依赖软件。
12345678910111213# 安装apt install package_name# 从当前路径下查找安装 deb 包sudo apt install -y ./teamviewer_amd64.deb # 查找包apt list --installed | grep -i chrome# 查看包信息apt info exact_package_name# 移除包sudo apt remove exact_p ...
Ubuntu Desktop 22.04 桌面主题配置
Ubuntu Desktop 22.04 桌面主题配置使用这么久 Ubuntu Desktop,本着不折腾的原则,简单介绍下自己的桌面主题配置。
123安装 tweaks安装 GNOME Shell安装 GNOME theme
安装 gnome-tweaks & chrome-gnome-shell123sudo apt update# 安装 gnome-tweaks 和 chrome-gnome-shellsudo apt install gnome-tweaks chrome-gnome-shell
gnome 插件安装Ubuntu 20.04 默认使用的是 gnome 的桌面环境,gnome 插件的下载地址:gnome extensions直接搜索需要的插件安装即可。
命令行管理 gnome shell extensions12345678910cd ~/.local/share/gnome-shell/extensions# 查看使用说明gnome-extensionsgnome-extensions list# 开启gnome-extensions enable ...
分布式数据库-全局时钟
分布式数据库-全局时钟之前在 ShardingSphere 中基于 TSO 实现了全局逻辑时钟的特性,配合 openGauss 数据库,提供分布式事务实时一致性读能力。下面介绍全局时钟。
全局时钟作用为了实现分布式一致性,需要对分布式环境下的操作排序,所以依赖全局时钟。包括分布式环境下实现分布式数据库全局 MVCC 也要依赖全局时钟。
全局时钟分类分布式系统获取时间有两种方式:物理时钟 与 混合逻辑时钟。
而由于物理时间全局不统一,分布式系统大部分使用逻辑时间。
常见的全局时钟方案如下:
TSO(Timestamp Oracle)单点授时(同时只能有一台服务器提供授时服务)。本质是一个单调递增的全局时间戳。
优点:实现简单,不存在不一致问题。
缺点:存在单点问题。
使用:TIDB,polardbx,OceanBase,GoldenDB
HLC(Hybrid Logical Clock)实现较为复杂。集群内可以有多个服务器同时提供授时服务。
可以保证同一个进程内部事件的时钟顺序,但是解决不了系统外事件发生的逻辑前后顺序与物理时间前后顺序的一致性,会有时间误差。
使用:CockroachD ...
事务异常场景
事务异常场景A Critique of ANSI SQL Isolation Levels 论文里的异常图// TODO image
P0 Dirty Write:脏写
P1 Dirty Read:脏读
P4C Cursor Lost Update:游标丢失更新
P4 Lost Update:丢失更新
P2 Fuzzy Read:不可重复读
P3 Phantom:幻读
A5A Read Skew:读偏序
A5B Write Skew:写偏序
脏读读到另一个事务尚未提交的数据。
不可重复读同一个事务内多次读,读到的数据不同,也就是当前事务读到了其他事务提交的数据。
幻读事务内多次查询一个范围的记录,返回的记录数不同。
脏写当前事务回滚了其他事务提交的数据。T1更新;T2更新;T1回滚,回滚掉了T2的更新
丢失更新当前事务提交覆盖了其他事务提交的数据。T2更新;T1更新;T1提交,覆盖掉了T2的更新。
游标丢失更新本质上就是丢失更新,只是因为发生在游标上,所以称之为游标丢失更新。
读偏序(读倾斜)t0时刻:T1读取x;t1时刻:T2更新x,y;T2 ...
常用的 Zookeeper 命令
常用的 Zookeeper 命令当 zk 出现问题时,可以进入 zookeeper 所在 bin目录,启动zk命令行工具进行相关运维操作。
12# 启动 zkCli, 连接 zk./sh zkCli.sh
新增1234# 1.增# 创建节点:create [-s] [-e] path data aclcreate /zk-node 123
删除1234567# 2.删# 删除节点:delete path [version]delete /zk-node# 级联删除节点deleteall path
修改1234# 3.改# 更新节点里的数据set path data [version] set /zk-node 333
查询1234567891011121314151617181920212223242526272829# 4.查# 4.1.查看指定路径ls path [watch]ls /ls /governance_ds_tablels /governance_ds_table/metadata# 级联查看路径ls -R path# 4.2.查看指定节点的数据内容get pa ...
分布式一致性模型
分布式一致性模型分布式一致性探讨的问题:由于分布式环境 CAP 理论的存在,当用户对数据发生读写操作时可能产生的结果。
线性一致性所有操作被记录在一条时间线上,任意两个事件都可以比较先后顺序.任何客户端一定读取到最新写入的数据(包括从其他客户端写入的)。
实现:依赖全局时钟实现,保证所有操作记录在一条时间线上。
顺序一致性多个写操作全局有序,单个客户端看到的写操作的顺序相同。但是不保证各个客户端一定读取到最新值,只能保证一个客户端读取到写入的新值后,不会再读取到旧值即可。
实现: Zookeeper
因果一致性所有过程必须以相同的顺序看到因果相关的操作。没有因果关系的并发写入可以被不同的进程以不同的顺序观察到。也就是说有因果关系的操作按照因果顺序读取到结果,没有关系的操作之间可能会乱序。
实现:依赖逻辑时钟实现。
参考jepsen
Ubuntu Destktop 22.04 禁用自动更新
Ubuntu Desktop 22.04 禁用自动更新Ubuntu 的自动更新并不稳定,之前的一次推送更新了内核版本,稳定性影响比较大,禁用自动更新的方法如下:1.在设置里禁用软件更新
2.关闭 unattended-upgrades如果只禁用上面的更新,unattended-upgrades 还是会在后台更新软件包,也需要禁止。
12345# unattended-upgrades 更新的内容可以在 /var/log/apt/history.log 里查看systemctl status unattended-upgrades# 禁用自动更新systemctl disable unattended-upgrades
禁用后查看结果如下,后续再查看 /var/log/apt/history.log 就不会有软件自动更新的日志了。
1234➜ ~ systemctl status unattended-upgrades○ unattended-upgrades.service Loaded: masked (Reason: Unit u ...
Narayana 事务回滚流程
Narayana 事务回滚流程当用户手动调用 connection.rollback() 回滚当前全局事务时,会走如下流程。
总体流程1234遍历每个 resource 执行 xa end; 执行 xa rollback;清理缓存
使用1234567TransactionManager transactionManager = jtaPropertyManager.getJTAEnvironmentBean().getTransactionManager();// 开启事务transactionManager.begin();// 执行 sql 语句// ...// 回滚事务transactionManager.rollback();
调用链路1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374com.arjuna.ats.internal.jta ...
Ubuntu Destktop 22.04 设置 ssh 超时时间
Ubuntu Destktop 22.04 设置 ssh 超时时间Ubuntu Destktop 22.04 使用 ssh 连接服务器时,发现一段时间不操作就会自动断开连接,解决方法如下:
打开 /etc/ssh/ssh_config 文件:
1sudo vim /etc/ssh/ssh_config
在文件最后添加:
1234# ssh 客户端会每隔 30 秒发送一个 KeepAlive 请求,保证终端不会因为超时空闲而断开连接ServerAliveInterval 30# ssh 客户端发送请求后,没有收到响应的次数达到指定次数后,才会自动断开连接ServerAliveCountMax 18