From ced312112cde426dc2481dcdb8ea9132ba95120e Mon Sep 17 00:00:00 2001 From: weic <weichuang059@163.com> Date: Tue, 22 Oct 2024 16:18:41 +0800 Subject: [PATCH] 1 --- docs/study/db/SQL/OpenGauss.md | 89 ++-- ...73\345\244\207\351\203\250\347\275\262.md" | 462 ++++++++++++++++++ .../study/db/SQL/\350\276\276\346\242\246.md" | 461 ----------------- .../Linux\350\277\220\347\273\264-proc.md" | 42 ++ ...15\347\275\256\346\226\207\344\273\266.md" | 19 + 5 files changed, 571 insertions(+), 502 deletions(-) create mode 100644 "docs/study/db/SQL/\350\276\276\346\242\246-\344\270\273\345\244\207\351\203\250\347\275\262.md" create mode 100644 "docs/study/devops/Linux\350\277\220\347\273\264-proc.md" create mode 100644 "docs/study/devops/Linux\350\277\220\347\273\264-\347\263\273\347\273\237\351\205\215\347\275\256\346\226\207\344\273\266.md" diff --git a/docs/study/db/SQL/OpenGauss.md b/docs/study/db/SQL/OpenGauss.md index 29551f955..90cc8cbae 100644 --- a/docs/study/db/SQL/OpenGauss.md +++ b/docs/study/db/SQL/OpenGauss.md @@ -4,6 +4,44 @@ 对标的是PostgreSQL +### 常用的工具 + +- gsql 这是 OpenGauss 数据库的交互式客户端工具,用于连接数据库并执行 SQL 命令。\q(在 gsql 中使用):用于退出gsql交互式客户端。 +- gs_dump 用于备份数据库。 +- gs_dumpall:用于备份整个数据库系统,包括所有数据库和用户信息等。 +- gs_restore:用于恢复数据库备份。 +- gs_om是 OpenGauss 数据库提供的一个重要的运维管理工具。它主要用于数据库***集群***的安装、启动、停止、状态查看以及配置管理等操作,帮助管理员高效地维护 OpenGauss 数据库环境。 + - gs_om --help 不同版本,可能参数不一样,使用此命令具体查看 + - gs_om -t start 它会按照预先配置的方式启动整个 OpenGauss 数据库集群。在启动过程中,gs_om会检查集群节点的状态,依次启动各个节点上的数据库服务。 + - gs_om -t stop 停止集群 + - gs_om -t status 查看集群状态 + - gs_om -t refreshconf 重新加载集群配置 +- gs_ctl gs_ctl是 OpenGauss 数据库中的一个重要的控制工具。它主要用于对单个数据库节点进行管理和控制,包括启动、停止、重启数据库实例,以及检查数据库状态、故障恢复等操作。 + - gs_ctl --help 不同版本,可能参数不一样,使用此命令具体查看 + - gs_ctl start -D DATADIR 启动 + - gs_ctl stop -D DATADIR 停止 + - gs_ctl restart -D DATADIR 重启 + - gs_ctl status -D DATADIR 状态检查 + - gs_ctl reload -D DATADIR 重新加载配置文件,而无需重启 + - cat postgresql.conf|grep -v '^\s*#'|grep -v "^$" 查看配置文件去掉注释行 +- 物理备份 gs_basebackup +- 逻辑备份 gs_dump gs_dumpall,没有增量备份 + +### 如何查看版本 + +执行SQL,select version(); + +### 如何查看最大连接数 + +执行SQL,SELECT * FROM pg_settings WHERE name = 'max_connections'; + +### 如何修改最大连接数 + +修改postgresql.conf文件的max_connections参数 + +不一定会成功,需要查看日志或者再查询一遍看看效果 + + @@ -32,57 +70,26 @@ 2024-05-14 10:02:06.342 [unknown] [unknown] localhost 140450292528512 0[0:0#0] 0 [BACKEND] LOG: FiniNuma allocIndex: 0. ``` -```shell -[root@f37c6d33715e /]# ipcs -ls +上面的报错是因为宿主机的信号量设置的太小了 +```shell +# 在宿主机执行 查看信号量相关设置 +sysctl -a|grep sem +ipcs -ls +cat /proc/sys/kernel/sem +# 结果如下 ------ Semaphore Limits -------- max number of arrays = 128 max semaphores per array = 250 max semaphores system wide = 32000 max ops per semop call = 32 semaphore max value = 32767 - -[root@f37c6d33715e /]# cat /proc/sys/kernel/sem -250 32000 32 128 ``` ```shell -修改 vi /etc/sysctl.conf 的以下参数 +#修改 vi /etc/sysctl.conf 的以下参数 kernel.sem = 50100 128256000 50100 2560 +# sysctl -p 生效 -重启数据库即可 -docker cp ./postgresql.conf f37c6d33715e:/var/lib/opengauss/data/postgresql.conf -docker cp ./sysctl.conf f37c6d33715e:/etc/sysctl.conf -docker restart f37c6d33715e -docker ps -a | grep opengauss -/var/lib/opengauss/data/postgresql.conf +#重启数据库即可 ``` - - -### max_dynamic_memory 内存不足 - -```shell -# -su omm -# -gs_om -t status --detail -gs_om -t start -gs_om -t stop -# -gs_guc reload -N all -I all -c 'default_transaction_read_only = off' -gs_guc reload -N all -I all -c 'default_transaction_read_only = on' -# -gs_ctl stop -D /opt/openGauss5.0/install/data/dn -gs_ctl start -D /opt/openGauss5.0/install/data/dn -gs_ctl restart -D /opt/openGauss5.0/install/data/dn - -gs_ctl start -D /home/omm/data/dn1 -gs_ctl stop -D /home/omm/data/dn1 -# -SHOW data_directory; -# -gsql -d postgres -p 5432 -# -alter system set data_directory='/home/omm/data/dn1'; -alter system set data_directory='/opt/openGauss5.0/install/data/dn'; -``` \ No newline at end of file diff --git "a/docs/study/db/SQL/\350\276\276\346\242\246-\344\270\273\345\244\207\351\203\250\347\275\262.md" "b/docs/study/db/SQL/\350\276\276\346\242\246-\344\270\273\345\244\207\351\203\250\347\275\262.md" new file mode 100644 index 000000000..3d6f92c77 --- /dev/null +++ "b/docs/study/db/SQL/\350\276\276\346\242\246-\344\270\273\345\244\207\351\203\250\347\275\262.md" @@ -0,0 +1,462 @@ + +### 安装带授权(主备) + +```shell +####################################################################################################################################### +######################环境准备 主备都得执行 +# 看下时间是否正确 +date +ntpdate time.nist.gov +# 修改主机名称 +hostnamectl +hostnamectl set-hostname node3 +# 用户组 用户 +su root +groupadd dinstall -g 2001 +useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba +passwd dmdba +#### 修改系统参数 +vi /etc/security/limits.conf +# 内容如下 +# dm +dmdba soft nice 0 +dmdba hard nice 0 +dmdba soft as unlimited +dmdba hard as unlimited +dmdba soft fsize unlimited +dmdba hard fsize unlimited +dmdba soft nproc 65536 +dmdba hard nproc 65536 +dmdba soft nofile 65536 +dmdba hard nofile 65536 +dmdba soft core unlimited +dmdba hard core unlimited +dmdba soft data unlimited +dmdba hard data unlimited +# 重启 +reboot +# 检查参数修改是否OK +su - dmdba +ulimit -a +# 如果不方便重启 临时措施 +su - dmdba +ulimit -n 65536 +ulimit -u 65536 + + +############## 目录规划 +exit +##实例保存目录 +mkdir -p /dmdata/data +##归档保存目录 +mkdir -p /dmdata/arch +##备份保存目录 +mkdir -p /dmdata/dmbak +# 相关目录权限 +chown -R dmdba:dinstall /dmdata/data +chown -R dmdba:dinstall /dmdata/arch +chown -R dmdba:dinstall /dmdata/dmbak +chmod -R 755 /dmdata/data +chmod -R 755 /dmdata/arch +chmod -R 755 /dmdata/dmbak +# +ll /dmdata/ +####################################################################################################################################### + + +####################################################################################################################################### +################## 开始安装 +#root +# 根据自己的安装包路径来 +cd /root/dm8/install +mount -o loop dm8_20240408_x86_rh6_64.iso /mnt +# 注意key文件的路径及权限 最好放到/home/dmdba/下 +cp /root/dm8/key/dm3001108295.key /home/dmdba/dm.key +su - dmdba +cd /mnt +./DMInstall.bin -i +# 切换到root用户,创建 DmAPService,否则会影响数据库备份 +exit +sh /home/dmdba/dmdbms/script/root/root_installer.sh + + +####### !!!!!!!!!!!!!!初始化实例 +su - dmdba +cd /home/dmdba/dmdbms/bin +./dminit help +# 初始化实例 注意目录 +./dminit path=/dmdata/data + +######## 注册服务 +exit +cd /home/dmdba/dmdbms/script/root/ +./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -p DAMENG +cd /home/dmdba/dmdbms/bin +ls | grep DAMENG + +### 启动 停止 数据库 +su - dmdba +cd /home/dmdba/dmdbms/bin +./DmServiceDAMENG start +./DmServiceDAMENG stop +./DmServiceDAMENG restart +./DmServiceDAMENG status +## 注意防火墙是否打开 否则连接不了5236 +exit +# 两种方式 +systemctl stop iptables +systemctl disable iptables +# 两种方式 +systemctl stop firewalld +systemctl disable firewalld +# 修改ENABLE_ENCRYPT=0 否则报错SSL +su - dmdba +vi /dmdata/data/DAMENG/dm.ini +ENABLE_ENCRYPT = 0 +cd /home/dmdba/dmdbms/bin && ./DmServiceDAMENG restart + +# dm环境变量设置 +su - dmdba +cd +vi .bashrc +export PATH=/home/dmdba/dmdbms/bin:$PATH +export LD_LIBRARY_PATH=/home/dmdba/dmdbms/bin:$LD_LIBRARY_PATH +# +source .bashrc +disql +####################################################################################################################################### + + +####################################################################################################################################### +########################## +##########################主库配置 +## +vi /dmdata/data/DAMENG/dmarch.ini +# +[ARCHIVE_LOCAL1] + ARCH_TYPE = LOCAL + ARCH_DEST = /dmdata/arch + ARCH_FILE_SIZE = 128 + ARCH_SPACE_LIMIT = 0 + ARCH_FLUSH_BUF_SIZE = 0 + ARCH_HANG_FLAG = 1 +################ +disql SYSDBA/SYSDBA@127.0.0.1:5236 +-- SQL命令 +alter database mount; +alter database add archivelog 'DEST=/dmdata/arch,TYPE=local, FILE_SIZE=128,space_limit=0'; +-- 如果有错误 Archive config not exist. 先自己建一个文件(后面的命令也会自动创建) +alter database archivelog; +alter database open; +select arch_mode from v$database; +############ +# 使用命令备份主库: +# 错误:[-137]:DM server is running or exist other process which is operating the same database +# 需要关闭数据库 +DmServiceDAMENG stop +dmrman CTLSTMT="BACKUP DATABASE '/dmdata/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" +ll /dmdata/dmbak/BACKUP_FILE_01/ +#或者可以使用联机备份: +disql SYSDBA/SYSDBA@127.0.0.1:5236 +SQL> backup database full backupset '/dmdata/dmbak/BACKUP_FILE_01'; + +#################################### +vi /dmdata/data/DAMENG/dm.ini +# +INSTANCE_NAME = DMSERVER_PRI +ALTER_MODE_STATUS = 0 +ENABLE_OFFLINE_TS = 2 +MAL_INI = 1 #dmmal.ini +ARCH_INI = 1 #dmarch.ini +#################################### IP 需要配置固定IP +#################################### IP 需要配置固定IP +#################################### IP 需要配置固定IP 主库和备库都是一样 +vi /dmdata/data/DAMENG/dmmal.ini +# +MAL_CHECK_INTERVAL = 5 +MAL_COMBIN_BUF_SIZE = 0 +MAL_SEND_THRESHOLD = 2048 +MAL_CONN_FAIL_INTERVAL = 5 +MAL_LOGIN_TIMEOUT = 15 +MAL_BUF_SIZE = 100 +MAL_SYS_BUF_SIZE = 0 +MAL_VPOOL_SIZE = 128 +MAL_COMPRESS_LEVEL = 0 +MAL_TEMP_PATH = +[MAL_INST1] +MAL_INST_NAME = DMSERVER_PRI #与dm.ini中的INSTANCE_NAME一致 +MAL_HOST = 10.20.35.123 #MAL 系统监听 TCP 连接的 IP 地址 +MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 +MAL_INST_HOST = 10.20.35.123 #实例的对外服务 IP 地址 +MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 +MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 +MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 +[MAL_INST2] +MAL_INST_NAME=DMSERVER_STANDBY # 实 例 名 , 和dm.ini中 的 INSTANCE_NAME 一致 +MAL_HOST = 10.20.35.122 #MAL 系统监听 TCP 连接的 IP 地址 +MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 +MAL_INST_HOST = 10.20.35.122 #实例的对外服务 IP 地址 +MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 +MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 +MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 +#################################### 归档配置 +vi /dmdata/data/DAMENG/dmarch.ini +# 归档配置中要包括本地归档及其他几个节点的实时归档 + ARCH_WAIT_APPLY = 0 +[ARCHIVE_LOCAL1] + ARCH_TYPE = LOCAL #本地归档类型 + ARCH_DEST = /dmdata/arch #本地归档文件存放路径 + ARCH_FILE_SIZE = 128 #单位 Mb ,本地单个归档文件最大值 + ARCH_SPACE_LIMIT = 0 #单位 Mb ,0 表示无限制,范围 1024~4294967294M + ARCH_FLUSH_BUF_SIZE = 0 + ARCH_HANG_FLAG = 1 +[ARCHIVE_REALTIME1] + ARCH_TYPE = REALTIME #实时归档类型 + ARCH_DEST = DMSERVER_STANDBY #实时归档目标实例名 + WAIT_APPLY = 0 + ARCH_FAILOVER = 0 +##################################设置 OGUID并配置主库模式 +# 需要启动数据库 mount模式 +DmServiceDAMENG start mount +# +disql SYSDBA/SYSDBA@127.0.0.1:5236 +# +--SQL命令 +SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); +sp_set_oguid(20220607); +ALTER DATABASE PRIMARY; +sp_set_oguid(20220607); +SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); +exit +# 如果显示处于主库配置状态 表示成功 +disql SYSDBA/SYSDBA@127.0.0.1:5236 +-- SQL 处于mount状态 +select STATUS$ from v$instance; +exit +# +DmServiceDAMENG stop +DmServiceDAMENG start +#################################### 守护进程配置 +vi /dmdata/data/DAMENG/dmwatcher.ini +# +[GRP1] #集群组的名称 +DW_TYPE = GLOBAL #全局守护类型 +DW_MODE = MANUAL #手动切换模式,自动切换:AUTO +DW_ERROR_TIME = 10 #远程守护进程故障认定时间 +INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 +INST_ERROR_TIME = 10 #本地实例故障认定时间 +INST_OGUID = 20220607 #守护系统唯一OGUID值 +INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini 配置文件路径 +INST_AUTO_RESTART = 1 #打开实例的自动启动功能 +INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 +RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 +RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭 +### 转换控制文件为文本文件: +dmctlcvt TYPE=1 SRC=/dmdata/data/DAMENG/dm.ctl DEST=/dmdata/data/DAMENG/dmctl.txt +### 启动守护进程: +cd /dmdata/data/DAMENG +nohup dmwatcher /dmdata/data/DAMENG/dmwatcher.ini > w-nohup.out 2>&1 & +# +disql SYSDBA/SYSDBA@127.0.0.1:5236 +-- SQL 处于open状态 +select STATUS$ from v$instance; +####################################################################################################################################### + + +####################################################################################################################################### +########################## +##########################备库配置 +#在主库上 +su - dmdba +scp -r ./BACKUP_FILE_01 dmdba@10.20.35.122:/dmdata/dmbak/ +# 在备库上 +su - dmdba +DmServiceDAMENG stop +dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" +dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" +dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC" +#################################### +vi /dmdata/data/DAMENG/dm.ini +# +INSTANCE_NAME = DMSERVER_STANDBY +ALTER_MODE_STATUS = 0 +ENABLE_OFFLINE_TS = 2 +MAL_INI = 1 #dmmal.ini +ARCH_INI = 1 #dmarch.ini +#################################### IP 需要配置固定IP +#################################### IP 需要配置固定IP +#################################### IP 需要配置固定IP 主库和备库都是一样 +vi /dmdata/data/DAMENG/dmmal.ini +# +MAL_CHECK_INTERVAL = 5 +MAL_COMBIN_BUF_SIZE = 0 +MAL_SEND_THRESHOLD = 2048 +MAL_CONN_FAIL_INTERVAL = 5 +MAL_LOGIN_TIMEOUT = 15 +MAL_BUF_SIZE = 100 +MAL_SYS_BUF_SIZE = 0 +MAL_VPOOL_SIZE = 128 +MAL_COMPRESS_LEVEL = 0 +MAL_TEMP_PATH = +[MAL_INST1] +MAL_INST_NAME = DMSERVER_PRI #与dm.ini中的INSTANCE_NAME一致 +MAL_HOST = 10.20.35.123 #MAL 系统监听 TCP 连接的 IP 地址 +MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 +MAL_INST_HOST = 10.20.35.123 #实例的对外服务 IP 地址 +MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 +MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 +MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 +[MAL_INST2] +MAL_INST_NAME=DMSERVER_STANDBY # 实 例 名 , 和dm.ini中 的 INSTANCE_NAME 一致 +MAL_HOST = 10.20.35.122 #MAL 系统监听 TCP 连接的 IP 地址 +MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 +MAL_INST_HOST = 10.20.35.122 #实例的对外服务 IP 地址 +MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 +MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 +MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 + + +#################################### 归档配置 +vi /dmdata/data/DAMENG/dmarch.ini +# 归档配置中要包括本地归档及其他几个节点的实时归档 + ARCH_WAIT_APPLY = 0 +[ARCHIVE_LOCAL1] + ARCH_TYPE = LOCAL #本地归档类型 + ARCH_DEST = /dmdata/arch #本地归档文件存放路径 + ARCH_FILE_SIZE = 128 #单位 Mb ,本地单个归档文件最大值 + ARCH_SPACE_LIMIT = 0 #单位 Mb ,0 表示无限制,范围 1024~4294967294M + ARCH_FLUSH_BUF_SIZE = 0 + ARCH_HANG_FLAG = 1 +[ARCHIVE_REALTIME1] + ARCH_TYPE = REALTIME #实时归档类型 + ARCH_DEST = DMSERVER_PRI #实时归档目标实例名 + WAIT_APPLY = 0 + ARCH_FAILOVER = 0 +## 启动实例并配置备库模式 +# 需要启动数据库 mount模式 +DmServiceDAMENG start mount +# +disql SYSDBA/SYSDBA@127.0.0.1:5236 +# +--SQL命令 +SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); +sp_set_oguid(20220607); +ALTER DATABASE STANDBY; +SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); +exit +# 如果显示处于主库配置状态 表示成功 +disql SYSDBA/SYSDBA@127.0.0.1:5236 +-- SQL 备库 处于mount状态 +select STATUS$ from v$instance; +exit +# +DmServiceDAMENG stop +DmServiceDAMENG start +#################################### 守护进程配置 +vi /dmdata/data/DAMENG/dmwatcher.ini +# +[GRP1] #集群组的名称 +DW_TYPE = GLOBAL #全局守护类型 +DW_MODE = MANUAL #手动切换模式,自动切换:AUTO +DW_ERROR_TIME = 10 #远程守护进程故障认定时间 +INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 +INST_ERROR_TIME = 10 #本地实例故障认定时间 +INST_OGUID = 20220607 #守护系统唯一OGUID值 +INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini 配置文件路径 +INST_AUTO_RESTART = 1 #打开实例的自动启动功能 +INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 +RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 +RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭 +### 转换控制文件为文本文件: +dmctlcvt TYPE=1 SRC=/dmdata/data/DAMENG/dm.ctl DEST=/dmdata/data/DAMENG/dmctl.txt +### 启动守护进程: +cd /dmdata/data/DAMENG +nohup dmwatcher /dmdata/data/DAMENG/dmwatcher.ini > w-nohup.out 2>&1 & +# +disql SYSDBA/SYSDBA@127.0.0.1:5236 +-- SQL 处于open状态 +select STATUS$ from v$instance; +####################################################################################################################################### + + + +####################################################################################################################################### +####################确认监视器配置 +# 监视器放在备上 +su - dmdba +mkdir -p /dmdata/data/monitor-log +vi /dmdata/data/DAMENG/dmmonitor.ini +# +MON_DW_CONFIRM = 1 #确认监视器模式 +MON_LOG_PATH = /dmdata/data/monitor-log/ #监视器日志文件存放路径,没有则需要创建 +MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 +MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M +MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 +[GRP1] +MON_INST_OGUID = 20220607 #组 GRP1的唯一OGUID值,与之前各节点的sp_set_oguid(20220607)一致 +MON_DW_IP = 10.20.35.123:5239 +MON_DW_IP = 10.20.35.122:5239 + +# 启动监视器 +#主要关注:WSTATUS是否OPEN,RSTAT是否VALID。 +cd /dmdata/data/DAMENG +nohup dmmonitor /dmdata/data/DAMENG/dmmonitor.ini > m-nohup.out 2>&1 & +####################################################################################################################################### + +####################################################################################################################################### +################## 主备同步测试 +# 主库上执行 +disql SYSDBA/SYSDBA@127.0.0.1:5236 +# +CREATE TABLE TAB_FOR_RECOVER(C1 INT,create_time datetime); +INSERT INTO TAB_FOR_RECOVER VALUES(1,sysdate); +INSERT INTO TAB_FOR_RECOVER VALUES(2,sysdate); +INSERT INTO TAB_FOR_RECOVER VALUES(3,sysdate); +commit; +--需要提交事务后才会同步到备节点 +# 备库上执行 +disql SYSDBA/SYSDBA@127.0.0.1:5236 +# +select * from TAB_FOR_RECOVER; +####################################################################################################################################### + +####################################################################################################################################### +####################普通监视器配置 +# 监视器放在备上 +su - dmdba +mkdir -p /dmdata/data/monitor-log-look +vi /dmdata/data/DAMENG/dmmonitor_look.ini +# +MON_DW_CONFIRM = 0 #确认监视器模式 +MON_LOG_PATH = /dmdata/data/monitor-log/ #监视器日志文件存放路径,没有则需要创建 +MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 +MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M +MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 +[GRP1] +MON_INST_OGUID = 20220607 #组 GRP1的唯一OGUID值,与之前各节点的sp_set_oguid(20220607)一致 +MON_DW_IP = 10.20.35.123:5239 +MON_DW_IP = 10.20.35.122:5239 + +# 启动监视器 +#主要关注:WSTATUS是否OPEN,RSTAT是否VALID。 +cd /dmdata/data/DAMENG +dmmonitor /dmdata/data/DAMENG/dmmonitor_look.ini +####################################################################################################################################### + + +####################################################################################################################################### +# +vi /dmdata/data/DAMENG/dm.ini +# 调整这个几个参数 要不然报错 Out of sort buf space, try to adjust SORT_BUF_GLOBAL_SIZE, SORT_BUF_SIZE, SORT +# SORT_FLAG:默认为0,参数含义:0:原排序机制;1:新排序机制。 在内存大于64G时建议使用新排序机制,其他情况使用原排序机制。 +# SORT_BUF_SIZE:默认为2。在内存小于64G时建议设置为10M,大于64G时建议设置为512M。 +# SORT_BUF_GLOBAL_SIZE,默认为1000M。当内存小于16G时,建议设置为500M,大于16G小于64G时建议设置为2000,当内存大于64G时,建议设置为5120M。 +# SORT_BLK_SIZE:默认为 1M,新排序机制下,每个排序分片空间的大小,必须小于 SORT_BUF_GLOBAL_SIZE。 +SORT_BUF_SIZE = 512 #maximum sort buffer size in Megabytes +SORT_BLK_SIZE = 2 #maximum sort blk size in Megabytes +SORT_BUF_GLOBAL_SIZE = 5120 #maximum global sort buffer size in Megabytes +####################################################################################################################################### + + + +``` diff --git "a/docs/study/db/SQL/\350\276\276\346\242\246.md" "b/docs/study/db/SQL/\350\276\276\346\242\246.md" index cc702295f..6144bf854 100644 --- "a/docs/study/db/SQL/\350\276\276\346\242\246.md" +++ "b/docs/study/db/SQL/\350\276\276\346\242\246.md" @@ -36,467 +36,6 @@ SELECT * FROM V$SESSIONS where CLNT_IP like '%103.41%'; CALL SP_CLOSE_SESSION(140149950321128); ``` -### 安装带授权(主备) - -```shell -####################################################################################################################################### -######################环境准备 主备都得执行 -# 看下时间是否正确 -date -ntpdate time.nist.gov -# 修改主机名称 -hostnamectl -hostnamectl set-hostname node3 -# 用户组 用户 -su root -groupadd dinstall -g 2001 -useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba -passwd dmdba -#### 修改系统参数 -vi /etc/security/limits.conf -# 内容如下 -# dm -dmdba soft nice 0 -dmdba hard nice 0 -dmdba soft as unlimited -dmdba hard as unlimited -dmdba soft fsize unlimited -dmdba hard fsize unlimited -dmdba soft nproc 65536 -dmdba hard nproc 65536 -dmdba soft nofile 65536 -dmdba hard nofile 65536 -dmdba soft core unlimited -dmdba hard core unlimited -dmdba soft data unlimited -dmdba hard data unlimited -# 重启 -reboot -# 检查参数修改是否OK -su - dmdba -ulimit -a -# 如果不方便重启 临时措施 -su - dmdba -ulimit -n 65536 -ulimit -u 65536 - - -############## 目录规划 -exit -##实例保存目录 -mkdir -p /dmdata/data -##归档保存目录 -mkdir -p /dmdata/arch -##备份保存目录 -mkdir -p /dmdata/dmbak -# 相关目录权限 -chown -R dmdba:dinstall /dmdata/data -chown -R dmdba:dinstall /dmdata/arch -chown -R dmdba:dinstall /dmdata/dmbak -chmod -R 755 /dmdata/data -chmod -R 755 /dmdata/arch -chmod -R 755 /dmdata/dmbak -# -ll /dmdata/ -####################################################################################################################################### - - -####################################################################################################################################### -################## 开始安装 -#root -# 根据自己的安装包路径来 -cd /root/dm8/install -mount -o loop dm8_20240408_x86_rh6_64.iso /mnt -# 注意key文件的路径及权限 最好放到/home/dmdba/下 -cp /root/dm8/key/dm3001108295.key /home/dmdba/dm.key -su - dmdba -cd /mnt -./DMInstall.bin -i -# 切换到root用户,创建 DmAPService,否则会影响数据库备份 -exit -sh /home/dmdba/dmdbms/script/root/root_installer.sh - - -####### !!!!!!!!!!!!!!初始化实例 -su - dmdba -cd /home/dmdba/dmdbms/bin -./dminit help -# 初始化实例 注意目录 -./dminit path=/dmdata/data - -######## 注册服务 -exit -cd /home/dmdba/dmdbms/script/root/ -./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -p DAMENG -cd /home/dmdba/dmdbms/bin -ls | grep DAMENG - -### 启动 停止 数据库 -su - dmdba -cd /home/dmdba/dmdbms/bin -./DmServiceDAMENG start -./DmServiceDAMENG stop -./DmServiceDAMENG restart -./DmServiceDAMENG status -## 注意防火墙是否打开 否则连接不了5236 -exit -# 两种方式 -systemctl stop iptables -systemctl disable iptables -# 两种方式 -systemctl stop firewalld -systemctl disable firewalld -# 修改ENABLE_ENCRYPT=0 否则报错SSL -su - dmdba -vi /dmdata/data/DAMENG/dm.ini -ENABLE_ENCRYPT = 0 -cd /home/dmdba/dmdbms/bin && ./DmServiceDAMENG restart - -# dm环境变量设置 -su - dmdba -cd -vi .bashrc -export PATH=/home/dmdba/dmdbms/bin:$PATH -export LD_LIBRARY_PATH=/home/dmdba/dmdbms/bin:$LD_LIBRARY_PATH -# -source .bashrc -disql -####################################################################################################################################### - - -####################################################################################################################################### -########################## -##########################主库配置 -## -vi /dmdata/data/DAMENG/dmarch.ini -# -[ARCHIVE_LOCAL1] - ARCH_TYPE = LOCAL - ARCH_DEST = /dmdata/arch - ARCH_FILE_SIZE = 128 - ARCH_SPACE_LIMIT = 0 - ARCH_FLUSH_BUF_SIZE = 0 - ARCH_HANG_FLAG = 1 -################ -disql SYSDBA/SYSDBA@127.0.0.1:5236 --- SQL命令 -alter database mount; -alter database add archivelog 'DEST=/dmdata/arch,TYPE=local, FILE_SIZE=128,space_limit=0'; --- 如果有错误 Archive config not exist. 先自己建一个文件(后面的命令也会自动创建) -alter database archivelog; -alter database open; -select arch_mode from v$database; -############ -# 使用命令备份主库: -# 错误:[-137]:DM server is running or exist other process which is operating the same database -# 需要关闭数据库 -DmServiceDAMENG stop -dmrman CTLSTMT="BACKUP DATABASE '/dmdata/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" -ll /dmdata/dmbak/BACKUP_FILE_01/ -#或者可以使用联机备份: -disql SYSDBA/SYSDBA@127.0.0.1:5236 -SQL> backup database full backupset '/dmdata/dmbak/BACKUP_FILE_01'; - -#################################### -vi /dmdata/data/DAMENG/dm.ini -# -INSTANCE_NAME = DMSERVER_PRI -ALTER_MODE_STATUS = 0 -ENABLE_OFFLINE_TS = 2 -MAL_INI = 1 #dmmal.ini -ARCH_INI = 1 #dmarch.ini -#################################### IP 需要配置固定IP -#################################### IP 需要配置固定IP -#################################### IP 需要配置固定IP 主库和备库都是一样 -vi /dmdata/data/DAMENG/dmmal.ini -# -MAL_CHECK_INTERVAL = 5 -MAL_COMBIN_BUF_SIZE = 0 -MAL_SEND_THRESHOLD = 2048 -MAL_CONN_FAIL_INTERVAL = 5 -MAL_LOGIN_TIMEOUT = 15 -MAL_BUF_SIZE = 100 -MAL_SYS_BUF_SIZE = 0 -MAL_VPOOL_SIZE = 128 -MAL_COMPRESS_LEVEL = 0 -MAL_TEMP_PATH = -[MAL_INST1] -MAL_INST_NAME = DMSERVER_PRI #与dm.ini中的INSTANCE_NAME一致 -MAL_HOST = 10.20.35.123 #MAL 系统监听 TCP 连接的 IP 地址 -MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 -MAL_INST_HOST = 10.20.35.123 #实例的对外服务 IP 地址 -MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 -MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 -MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 -[MAL_INST2] -MAL_INST_NAME=DMSERVER_STANDBY # 实 例 名 , 和dm.ini中 的 INSTANCE_NAME 一致 -MAL_HOST = 10.20.35.122 #MAL 系统监听 TCP 连接的 IP 地址 -MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 -MAL_INST_HOST = 10.20.35.122 #实例的对外服务 IP 地址 -MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 -MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 -MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 -#################################### 归档配置 -vi /dmdata/data/DAMENG/dmarch.ini -# 归档配置中要包括本地归档及其他几个节点的实时归档 - ARCH_WAIT_APPLY = 0 -[ARCHIVE_LOCAL1] - ARCH_TYPE = LOCAL #本地归档类型 - ARCH_DEST = /dmdata/arch #本地归档文件存放路径 - ARCH_FILE_SIZE = 128 #单位 Mb ,本地单个归档文件最大值 - ARCH_SPACE_LIMIT = 0 #单位 Mb ,0 表示无限制,范围 1024~4294967294M - ARCH_FLUSH_BUF_SIZE = 0 - ARCH_HANG_FLAG = 1 -[ARCHIVE_REALTIME1] - ARCH_TYPE = REALTIME #实时归档类型 - ARCH_DEST = DMSERVER_STANDBY #实时归档目标实例名 - WAIT_APPLY = 0 - ARCH_FAILOVER = 0 -##################################设置 OGUID并配置主库模式 -# 需要启动数据库 mount模式 -DmServiceDAMENG start mount -# -disql SYSDBA/SYSDBA@127.0.0.1:5236 -# ---SQL命令 -SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); -sp_set_oguid(20220607); -ALTER DATABASE PRIMARY; -sp_set_oguid(20220607); -SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); -exit -# 如果显示处于主库配置状态 表示成功 -disql SYSDBA/SYSDBA@127.0.0.1:5236 --- SQL 处于mount状态 -select STATUS$ from v$instance; -exit -# -DmServiceDAMENG stop -DmServiceDAMENG start -#################################### 守护进程配置 -vi /dmdata/data/DAMENG/dmwatcher.ini -# -[GRP1] #集群组的名称 -DW_TYPE = GLOBAL #全局守护类型 -DW_MODE = MANUAL #手动切换模式,自动切换:AUTO -DW_ERROR_TIME = 10 #远程守护进程故障认定时间 -INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 -INST_ERROR_TIME = 10 #本地实例故障认定时间 -INST_OGUID = 20220607 #守护系统唯一OGUID值 -INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini 配置文件路径 -INST_AUTO_RESTART = 1 #打开实例的自动启动功能 -INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 -RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 -RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭 -### 转换控制文件为文本文件: -dmctlcvt TYPE=1 SRC=/dmdata/data/DAMENG/dm.ctl DEST=/dmdata/data/DAMENG/dmctl.txt -### 启动守护进程: -cd /dmdata/data/DAMENG -nohup dmwatcher /dmdata/data/DAMENG/dmwatcher.ini > w-nohup.out 2>&1 & -# -disql SYSDBA/SYSDBA@127.0.0.1:5236 --- SQL 处于open状态 -select STATUS$ from v$instance; -####################################################################################################################################### - - -####################################################################################################################################### -########################## -##########################备库配置 -#在主库上 -su - dmdba -scp -r ./BACKUP_FILE_01 dmdba@10.20.35.122:/dmdata/dmbak/ -# 在备库上 -su - dmdba -DmServiceDAMENG stop -dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" -dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'" -dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC" -#################################### -vi /dmdata/data/DAMENG/dm.ini -# -INSTANCE_NAME = DMSERVER_STANDBY -ALTER_MODE_STATUS = 0 -ENABLE_OFFLINE_TS = 2 -MAL_INI = 1 #dmmal.ini -ARCH_INI = 1 #dmarch.ini -#################################### IP 需要配置固定IP -#################################### IP 需要配置固定IP -#################################### IP 需要配置固定IP 主库和备库都是一样 -vi /dmdata/data/DAMENG/dmmal.ini -# -MAL_CHECK_INTERVAL = 5 -MAL_COMBIN_BUF_SIZE = 0 -MAL_SEND_THRESHOLD = 2048 -MAL_CONN_FAIL_INTERVAL = 5 -MAL_LOGIN_TIMEOUT = 15 -MAL_BUF_SIZE = 100 -MAL_SYS_BUF_SIZE = 0 -MAL_VPOOL_SIZE = 128 -MAL_COMPRESS_LEVEL = 0 -MAL_TEMP_PATH = -[MAL_INST1] -MAL_INST_NAME = DMSERVER_PRI #与dm.ini中的INSTANCE_NAME一致 -MAL_HOST = 10.20.35.123 #MAL 系统监听 TCP 连接的 IP 地址 -MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 -MAL_INST_HOST = 10.20.35.123 #实例的对外服务 IP 地址 -MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 -MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 -MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 -[MAL_INST2] -MAL_INST_NAME=DMSERVER_STANDBY # 实 例 名 , 和dm.ini中 的 INSTANCE_NAME 一致 -MAL_HOST = 10.20.35.122 #MAL 系统监听 TCP 连接的 IP 地址 -MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口 -MAL_INST_HOST = 10.20.35.122 #实例的对外服务 IP 地址 -MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的 PORT_NUM 一致 -MAL_INST_DW_PORT = 5237 #实例监听守护进程TCP 连接的端口 -MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口 - - -#################################### 归档配置 -vi /dmdata/data/DAMENG/dmarch.ini -# 归档配置中要包括本地归档及其他几个节点的实时归档 - ARCH_WAIT_APPLY = 0 -[ARCHIVE_LOCAL1] - ARCH_TYPE = LOCAL #本地归档类型 - ARCH_DEST = /dmdata/arch #本地归档文件存放路径 - ARCH_FILE_SIZE = 128 #单位 Mb ,本地单个归档文件最大值 - ARCH_SPACE_LIMIT = 0 #单位 Mb ,0 表示无限制,范围 1024~4294967294M - ARCH_FLUSH_BUF_SIZE = 0 - ARCH_HANG_FLAG = 1 -[ARCHIVE_REALTIME1] - ARCH_TYPE = REALTIME #实时归档类型 - ARCH_DEST = DMSERVER_PRI #实时归档目标实例名 - WAIT_APPLY = 0 - ARCH_FAILOVER = 0 -## 启动实例并配置备库模式 -# 需要启动数据库 mount模式 -DmServiceDAMENG start mount -# -disql SYSDBA/SYSDBA@127.0.0.1:5236 -# ---SQL命令 -SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); -sp_set_oguid(20220607); -ALTER DATABASE STANDBY; -SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); -exit -# 如果显示处于主库配置状态 表示成功 -disql SYSDBA/SYSDBA@127.0.0.1:5236 --- SQL 备库 处于mount状态 -select STATUS$ from v$instance; -exit -# -DmServiceDAMENG stop -DmServiceDAMENG start -#################################### 守护进程配置 -vi /dmdata/data/DAMENG/dmwatcher.ini -# -[GRP1] #集群组的名称 -DW_TYPE = GLOBAL #全局守护类型 -DW_MODE = MANUAL #手动切换模式,自动切换:AUTO -DW_ERROR_TIME = 10 #远程守护进程故障认定时间 -INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 -INST_ERROR_TIME = 10 #本地实例故障认定时间 -INST_OGUID = 20220607 #守护系统唯一OGUID值 -INST_INI = /dmdata/data/DAMENG/dm.ini #dm.ini 配置文件路径 -INST_AUTO_RESTART = 1 #打开实例的自动启动功能 -INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 -RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 -RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭 -### 转换控制文件为文本文件: -dmctlcvt TYPE=1 SRC=/dmdata/data/DAMENG/dm.ctl DEST=/dmdata/data/DAMENG/dmctl.txt -### 启动守护进程: -cd /dmdata/data/DAMENG -nohup dmwatcher /dmdata/data/DAMENG/dmwatcher.ini > w-nohup.out 2>&1 & -# -disql SYSDBA/SYSDBA@127.0.0.1:5236 --- SQL 处于open状态 -select STATUS$ from v$instance; -####################################################################################################################################### - - - -####################################################################################################################################### -####################确认监视器配置 -# 监视器放在备上 -su - dmdba -mkdir -p /dmdata/data/monitor-log -vi /dmdata/data/DAMENG/dmmonitor.ini -# -MON_DW_CONFIRM = 1 #确认监视器模式 -MON_LOG_PATH = /dmdata/data/monitor-log/ #监视器日志文件存放路径,没有则需要创建 -MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 -MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M -MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 -[GRP1] -MON_INST_OGUID = 20220607 #组 GRP1的唯一OGUID值,与之前各节点的sp_set_oguid(20220607)一致 -MON_DW_IP = 10.20.35.123:5239 -MON_DW_IP = 10.20.35.122:5239 - -# 启动监视器 -#主要关注:WSTATUS是否OPEN,RSTAT是否VALID。 -cd /dmdata/data/DAMENG -nohup dmmonitor /dmdata/data/DAMENG/dmmonitor.ini > m-nohup.out 2>&1 & -####################################################################################################################################### - -####################################################################################################################################### -################## 主备同步测试 -# 主库上执行 -disql SYSDBA/SYSDBA@127.0.0.1:5236 -# -CREATE TABLE TAB_FOR_RECOVER(C1 INT,create_time datetime); -INSERT INTO TAB_FOR_RECOVER VALUES(1,sysdate); -INSERT INTO TAB_FOR_RECOVER VALUES(2,sysdate); -INSERT INTO TAB_FOR_RECOVER VALUES(3,sysdate); -commit; ---需要提交事务后才会同步到备节点 -# 备库上执行 -disql SYSDBA/SYSDBA@127.0.0.1:5236 -# -select * from TAB_FOR_RECOVER; -####################################################################################################################################### - -####################################################################################################################################### -####################普通监视器配置 -# 监视器放在备上 -su - dmdba -mkdir -p /dmdata/data/monitor-log-look -vi /dmdata/data/DAMENG/dmmonitor_look.ini -# -MON_DW_CONFIRM = 0 #确认监视器模式 -MON_LOG_PATH = /dmdata/data/monitor-log/ #监视器日志文件存放路径,没有则需要创建 -MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 -MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M -MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 -[GRP1] -MON_INST_OGUID = 20220607 #组 GRP1的唯一OGUID值,与之前各节点的sp_set_oguid(20220607)一致 -MON_DW_IP = 10.20.35.123:5239 -MON_DW_IP = 10.20.35.122:5239 - -# 启动监视器 -#主要关注:WSTATUS是否OPEN,RSTAT是否VALID。 -cd /dmdata/data/DAMENG -dmmonitor /dmdata/data/DAMENG/dmmonitor_look.ini -####################################################################################################################################### - - -####################################################################################################################################### -# -vi /dmdata/data/DAMENG/dm.ini -# 调整这个几个参数 要不然报错 Out of sort buf space, try to adjust SORT_BUF_GLOBAL_SIZE, SORT_BUF_SIZE, SORT -# SORT_FLAG:默认为0,参数含义:0:原排序机制;1:新排序机制。 在内存大于64G时建议使用新排序机制,其他情况使用原排序机制。 -# SORT_BUF_SIZE:默认为2。在内存小于64G时建议设置为10M,大于64G时建议设置为512M。 -# SORT_BUF_GLOBAL_SIZE,默认为1000M。当内存小于16G时,建议设置为500M,大于16G小于64G时建议设置为2000,当内存大于64G时,建议设置为5120M。 -# SORT_BLK_SIZE:默认为 1M,新排序机制下,每个排序分片空间的大小,必须小于 SORT_BUF_GLOBAL_SIZE。 -SORT_BUF_SIZE = 512 #maximum sort buffer size in Megabytes -SORT_BLK_SIZE = 2 #maximum sort blk size in Megabytes -SORT_BUF_GLOBAL_SIZE = 5120 #maximum global sort buffer size in Megabytes -####################################################################################################################################### - - - -``` ### 参考 diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-proc.md" "b/docs/study/devops/Linux\350\277\220\347\273\264-proc.md" new file mode 100644 index 000000000..4abab72fe --- /dev/null +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-proc.md" @@ -0,0 +1,42 @@ +### /proc/ + +/proc是一个虚拟文件系统,它提供了一种机制来访问内核内部数据结构、进程信息以及系统硬件信息等内容。它是 Linux 操作系统特有的,在其他类 Unix 系统中也可能有类似的实现。这个目录下的文件和子目录并不是存储在磁盘上的真实文件,而是由内核在运行时动态生成的,用于向用户空间提供系统的各种实时信息。 + +### 主要内容和功能 + +#### 进程相关信息 + +```shell +# 包含了启动该进程的完整命令行参数。 +cat /proc/[PID]/cmdline +# 提供了关于该进程的状态信息,如进程 ID、进程状态(运行、睡眠、僵尸等)、父进程 ID、用户 ID、组 ID、虚拟内存大小、物理内存大小等。这些信息对于监控和管理进程非常有用。 +cat /proc/[PID]/status +# 这是一个目录,其中包含了进程打开的文件描述符的链接。每个文件描述符对应的文件或设备都可以通过这些链接访问,这有助于了解进程正在使用的文件资源。 +ll /proc/[PID]/fd +``` + +#### 系统信息 + +```shell +# 包含了关于 CPU 的详细信息,如 CPU 型号、核心数、缓存大小、CPU 频率等。通过查看这个文件,可以了解系统的 CPU 性能和特性。例如,在多核处理器系统中,可以查看每个核心的详细参数。 +cat /proc/cpuinfo +# 提供了系统内存的总体信息,包括总内存、已使用内存、空闲内存、缓存内存、交换空间大小等。这些信息对于系统性能调优和内存管理非常重要。 +cat /proc/meminfo +# 记录了系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。平均负载是指单位时间内系统处于可运行状态和不可中断状态的平均进程数,它可以帮助判断系统的繁忙程度。 +cat /proc/loadavg +``` + +#### 内核参数相关信息 + +/proc/sys目录下的内容与/etc/sysctl.conf文件相关。这个目录下的文件用于查看和修改内核参数。例如,/proc/sys/net/ipv4/ip_forward文件对应net.ipv4.ip_forward内核参数,通过读取或写入这个文件可以查看或修改该参数的值。 + +#### 设备驱动信息(部分) + +在/proc目录下还可能存在一些与设备驱动相关的信息,这些信息的具体内容和位置可能因设备和驱动的不同而有所差异。例如,/proc/bus/目录下可能包含了关于系统总线和连接到总线上的设备的信息。 + +### 其他类似/proc的虚拟文件系统 + +- sysfs(/sys/) sysfs 是 Linux 内核提供的另一个重要的虚拟文件系统,挂载点通常是/sys。它主要用于将内核中的设备驱动模型导出到用户空间,让用户能够方便地访问和管理系统中的设备相关信息。 +- devpts(/dev/pts)devpts 是用于管理伪终端(pseudo - terminal)的虚拟文件系统,挂载点通常是/dev/pts。伪终端主要用于实现终端模拟,例如在远程登录、终端复用器(如 screen 和 tmux)等场景中使用。 +- tmpfs(挂载点多样)tmpfs 是一种基于内存的文件系统,它将文件存储在内存中,而不是磁盘上。tmpfs 的挂载点可以根据需要进行设置,常见的挂载点有/dev/shm。 + diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\347\263\273\347\273\237\351\205\215\347\275\256\346\226\207\344\273\266.md" "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\263\273\347\273\237\351\205\215\347\275\256\346\226\207\344\273\266.md" new file mode 100644 index 000000000..317d3395f --- /dev/null +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\263\273\347\273\237\351\205\215\347\275\256\346\226\207\344\273\266.md" @@ -0,0 +1,19 @@ +### /etc/sysctl.conf + +/etc/sysctl.conf是一个重要的 Linux 系统配置文件。 + +这个文件用于设置和调整 Linux 内核的各种参数。这些参数控制着系统的行为、性能和资源分配。 + +```shell +# 修改 +vi /etc/sysctl.conf +# 修改完文件之后,执行此命令,立即生效 +sysctl -p +# 查询 +sysctl -a +# 临时修改,并没有落盘到/etc/sysctl.conf文件,重启后失效 +sysctl -w xxxxx=yyy +``` + +常用的内核参数 +