CentOS Linux 7.4下静默安装Oracle 11gR2
mhr18 2024-09-17 23:24 15 浏览 0 评论
一、实验环境
操作系统:CentOS Linux 7.4
Oracle数据库版本:11.2.0.1.0
虚拟机配置:2vCPU、8GB MEM、100GB系统盘,100GB数据盘
二、准备工作
1、软件包需求
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC
2、创建用户和组
groupadd oinstall groupadd dba useradd -m -g oinstall -G dba oracle echo oracle | passwd --stdin oracle
3、配置oracle安装所有者的shell 限制
cp /etc/security/limits.conf /etc/security/limits.conf.bak`date +%Y%m%d` cat >> /etc/security/limits.conf << EOF #oracle shell limit oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle hard stack 10240 EOF
要使limits.conf文件配置生效,必须确保pam_limits.so文件被加入到启动文件中
cp /etc/pam.d/login /etc/pam.d/login.bak`date +%Y%m%d` cat >> /etc/pam.d/login << EOF #ORACLE SETTING session required pam_limits.so EOF
4、修改内核参数
cp /etc/sysctl.conf /etc/sysctl.conf.bak`date +%Y%m%d` cat >> /etc/sysctl.conf << EOF #ORACLE SETTING fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304 EOF #即时生效 /sbin/sysctl -p #列出所有配置 /sbin/sysctl -a
5、配置基本环境变量
cat >> /etc/profile.d/oracle.sh <<EOF #ORACLE SETTING if [ \$USER = "oracle" ] ; then if [ \$SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi EOF
6、创建目录
mkdir -p /data/oracle/oracle mkdir -p /data/oracle/oraInventory chown -R oracle:oinstall /data/oracle/ chmod -R 775 /data/oracle/
7、配置Oracle用户环境变量
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak`date +%Y%m%d` cat >> /home/oracle/.bash_profile << EOF #Oracle Settings export ORACLE_BASE=/data/oracle/oracle; export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_SID=ocrl; export PATH=\$ORACLE_HOME/bin:\$PATH; export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib; export ORACLE_OWNER=oracle export ORACLE_UNQNAME=\$ORACLE_SID EOF source /home/oracle/.bash_profile
8、Oracle安装包准备
上传并解压
cd /opt/ unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
修改安装目录权限
chown -R oracle:oinstall /opt/database/ ll -d /opt/database/
三、开始安装
1、oracle用户登录
打开另外一个终端,用oracle用户登录
2、初步处理应答文件
2.1 先备份原应答文件
cd /opt/database/response mkdir rspbak cp *.rsp ./rspbak
2.2 删除应答文件中的注释行(以#开头)
sed -i 's/^#.*$//g' *.rsp
2.3 刪除沒有內容的空行(^$)
sed -i '/^$/d' *.rsp
3、静默安装软件
3.1 编辑db_install.rsp文件
[root@oracle response]# cat db_install.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY #修改 ORACLE_HOSTNAME=oracle #修改 UNIX_GROUP_NAME=oinstall #修改 INVENTORY_LOCATION=/data/oracle/oraInventory #修改 SELECTED_LANGUAGES=en,zh_CN #修改 ORACLE_HOME=/data/oracle/oracle/product/11.2.0/db_1 #修改 ORACLE_BASE=/data/oracle/oracle #修改 oracle.install.db.InstallEdition=EE #修改 oracle.install.db.isCustomInstall=false oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0 oracle.install.db.DBA_GROUP=dba #修改 oracle.install.db.OPER_GROUP=oinstall #修改 oracle.install.db.CLUSTER_NODES= oracle.install.db.config.starterdb.type= oracle.install.db.config.starterdb.globalDBName= oracle.install.db.config.starterdb.SID= oracle.install.db.config.starterdb.characterSet=ZHS16GBK #修改 oracle.install.db.config.starterdb.memoryOption=true oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL= oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false oracle.install.db.config.starterdb.dbcontrol.emailAddress= oracle.install.db.config.starterdb.dbcontrol.SMTPServer= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT= DECLINE_SECURITY_UPDATES=true #修改 PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= [root@oracle response]#
3.2 执行静默数据库软件安装命令
cd /opt/database/ ./runInstaller -force -silent -noconfig -responseFile /opt/database/response/db_install.rsp
执行结果:
[oracle@oracle database]$ ./runInstaller -silent -noconfig -responseFile /opt/database/response/db_install.rsp -ignorePrereq Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 29560 MB Passed Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-10-21_01-52-11AM. Please wait ...[oracle@oracle database]$ You can find the log of this install session at: /data/oracle/oraInventory/logs/installActions2018-10-21_01-52-11AM.log The following configuration scripts need to be executed as the "root" user. #!/bin/sh #Root scripts to run /data/oracle/oraInventory/orainstRoot.sh /data/oracle/oracle/product/11.2.0/db_1/root.sh To execute the configuration scripts: 1. Open a terminal window 2. Log in as "root" 3. Run the scripts 4. Return to this window and hit "Enter" key to continue Successfully Setup Software. [oracle@oracle database]$
3.3 登录root,执行上面两个脚本
[root@oracle opt]# cd /data/oracle/oraInventory [root@oracle oraInventory]# ./orainstRoot.sh Changing permissions of /data/oracle/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /data/oracle/oraInventory to oinstall. The execution of the script is complete. [root@oracle oraInventory]# cd /data/oracle/oracle/product/11.2.0/db_1/ [root@oracle db_1]# ./root.sh Check /data/oracle/oracle/product/11.2.0/db_1/install/root_oracle_2018-10-21_02-40-12.log for the output of root script
4、静默安装监听
4.1 编辑netca.rsp文件(保持默认)
[oracle@oracle response]$ cat netca.rsp [GENERAL] RESPONSEFILE_VERSION="11.2" CREATE_TYPE="CUSTOM" [oracle.net.ca] INSTALLED_COMPONENTS={"server","net8","javavm"} INSTALL_TYPE=""typical"" LISTENER_NUMBER=1 LISTENER_NAMES={"LISTENER"} LISTENER_PROTOCOLS={"TCP;1521"} LISTENER_START=""LISTENER"" NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"} NSN_NUMBER=1 NSN_NAMES={"EXTPROC_CONNECTION_DATA"} NSN_SERVICE={"PLSExtProc"} NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
4.2 静默创建监听
[oracle@oracle response]$ /data/oracle/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /opt/database/response/netca.rsp Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /opt/database/response/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Running Listener Control: /data/oracle/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0
5、静默创建oracle数据库
5.1 编辑dbca.rsp文件
[oracle@oracle response]$ cat dbca.rsp [GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "orcl" #修改 SID = "orcl" #修改 TEMPLATENAME = "General_Purpose.dbc" SYSPASSWORD = "oracle" #修改 SYSTEMPASSWORD = "oracle" #修改 EMCONFIGURATION = "LOCAL" #修改 SYSMANPASSWORD = "oracle" #修改 DBSNMPPASSWORD = "oracle" #修改 CHARACTERSET = "ZHS16GBK" #修改 [createTemplateFromDB] SOURCEDB = "myhost:1521:orcl" SYSDBAUSERNAME = "system" TEMPLATENAME = "My Copy TEMPLATE" [createCloneTemplate] SOURCEDB = "orcl" TEMPLATENAME = "My Clone TEMPLATE" [DELETEDATABASE] SOURCEDB = "orcl" [generateScripts] TEMPLATENAME = "New Database" GDBNAME = "orcl11.us.oracle.com" [CONFIGUREDATABASE] [ADDINSTANCE] DB_UNIQUE_NAME = "orcl11g.us.oracle.com" NODELIST= SYSDBAUSERNAME = "sys" [DELETEINSTANCE] DB_UNIQUE_NAME = "orcl11g.us.oracle.com" INSTANCENAME = "orcl11g" SYSDBAUSERNAME = "sys" [oracle@oracle response]$
5.2 执行静默安装数据库命令
[oracle@oracle response]$ dbca -silent -responseFile /opt/database/response/dbca.rsp Copying database files 1% complete 3% complete 11% complete 18% complete 26% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 60% complete 62% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/data/oracle/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
四、简单测试
1、检查监听状态
[oracle@oracle ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-OCT-2018 03:09:07 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 21-OCT-2018 02:42:45 Uptime 0 days 0 hr. 26 min. 21 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/oracle/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /data/oracle/oracle/diag/tnslsnr/oracle/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
2、检查Oracle进程
[oracle@oracle ~]$ ps -ef |grep ora_ |grep -v grep oracle 15028 1 0 02:58 ? 00:00:00 ora_pmon_orcl oracle 15030 1 0 02:58 ? 00:00:01 ora_vktm_orcl oracle 15034 1 0 02:58 ? 00:00:00 ora_gen0_orcl oracle 15036 1 0 02:58 ? 00:00:00 ora_diag_orcl oracle 15038 1 0 02:58 ? 00:00:00 ora_dbrm_orcl oracle 15040 1 0 02:58 ? 00:00:00 ora_psp0_orcl oracle 15042 1 0 02:58 ? 00:00:00 ora_dia0_orcl oracle 15044 1 0 02:58 ? 00:00:01 ora_mman_orcl oracle 15046 1 0 02:58 ? 00:00:00 ora_dbw0_orcl oracle 15048 1 0 02:58 ? 00:00:00 ora_lgwr_orcl oracle 15050 1 0 02:58 ? 00:00:00 ora_ckpt_orcl oracle 15052 1 0 02:58 ? 00:00:00 ora_smon_orcl oracle 15054 1 0 02:58 ? 00:00:00 ora_reco_orcl oracle 15056 1 0 02:58 ? 00:00:00 ora_mmon_orcl oracle 15058 1 0 02:58 ? 00:00:00 ora_mmnl_orcl oracle 15060 1 0 02:58 ? 00:00:00 ora_d000_orcl oracle 15062 1 0 02:58 ? 00:00:00 ora_s000_orcl oracle 15160 1 0 02:58 ? 00:00:00 ora_qmnc_orcl oracle 15174 1 0 02:58 ? 00:00:00 ora_cjq0_orcl oracle 15289 1 0 02:58 ? 00:00:00 ora_q000_orcl oracle 15291 1 0 02:58 ? 00:00:00 ora_q001_orcl oracle 15297 1 0 02:59 ? 00:00:00 ora_smco_orcl oracle 15299 1 0 02:59 ? 00:00:00 ora_w000_orcl oracle 23718 1 3 03:11 ? 00:00:00 ora_j000_orcl oracle 23720 1 0 03:11 ? 00:00:00 ora_j001_orcl
3、sqlplus连接测试
[oracle@oracle ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sun Oct 21 04:22:38 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
五、配置Oracle开机启动
1、编辑oratab文件
编辑 /etc/oratab ,将N改为Y
[oracle@oracle ~]$ cat /etc/oratab # This file is used by ORACLE utilities. It is created by root.sh # and updated by the Database Configuration Assistant when creating # a database. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third filed indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # #orcl:/data/oracle/oracle/product/11.2.0/db_1:N orcl:/data/oracle/oracle/product/11.2.0/db_1:Y
2、创建oracle启动脚本
在 /etc/init.d/ 下创建文件oracle,内容如下:
#!/bin/sh # chkconfig: 35 80 10 # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. ORA_HOME=/data/oracle/oracle/product/11.2.0/db_1 #修改 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: echo "Starting Oracle Databases ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle echo "Done" # Start the Listener: echo "Starting Oracle Listeners ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle echo "Done." echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Finished." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; 'stop') # Stop the Oracle Listener: echo "Stoping Oracle Listeners ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle # Stop the Oracle Database: echo "Stoping Oracle Databases ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle echo "Done." echo "" echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Finished." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle ;; 'restart') $0 stop $0 start ;; esac
3、配置脚本可执行权限
[root@oracle ~]# chmod a+x /etc/init.d/oracle [root@oracle ~]# ll /etc/init.d/oracle -rwxr-xr-x. 1 root root 2504 Oct 21 04:42 /etc/init.d/oracle
4、添加启动服务
[root@oracle ~]# chkconfig oracle on [root@oracle ~]# chkconfig --list | grep oracle oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off# chkconfig --level 35 oracle on
5、使用方法
# service oracle start //启动oracle # service oracle stop //关闭oracle # service oracle restart //重启oracle
6、测试启动效果
6.1 关闭数据库
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.
6.2 以root登录,执行 service oracle start
[root@oracle ~]# service oracle start Starting Oracle Databases ... Done Starting Oracle Listeners ... Done.
6.3 检查数据库是否运行、监听是否正常
[oracle@oracle ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-OCT-2018 04:55:55 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 21-OCT-2018 02:42:45 Uptime 0 days 2 hr. 13 min. 9 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/oracle/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /data/oracle/oracle/diag/tnslsnr/oracle/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
[oracle@oracle ~]$ sqlplus / as sysdba SQL> startup ORA-01081: cannot start already-running ORACLE - shut it down first # oracle已在运行
6.4 以root登录,执行 service oracle stop
[root@oracle ~]# service oracle stop Stoping Oracle Listeners ... Done. Stoping Oracle Databases ... Done.
6.5 检查监听和数据库都已关闭
[oracle@oracle ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-OCT-2018 05:00:04 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 2: No such file or directory Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused
[oracle@oracle ~]$ sqlplus / as sysdba SQL> shutdown immediate ORA-01034: ORACLE not available # oracle处于关闭状态 ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory
相关推荐
- B站收藏视频失效?mybili 收藏夹备份神器完整部署指南
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:羊刀仙很多B站用户都有过类似经历:自己精心收藏的视频突然“消失”,点开一看不是“已被删除”,就是“因UP主设置不可见”。而B站并不会主动通知...
- 中间件推荐初始化配置
-
Redis推荐初始化配置bind0.0.0.0protected-modeyesport6379tcp-backlog511timeout300tcp-keepalive300...
- Redis中缓存穿透问题与解决方法
-
缓存穿透问题概述在Redis作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从Redis缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都...
- 后端开发必看!Redis 哨兵机制如何保障系统高可用?
-
你是否曾在项目中遇到过Redis主服务器突然宕机,导致整个业务系统出现数据读取异常、响应延迟甚至服务中断的情况?面对这样的突发状况,作为互联网大厂的后端开发人员,如何快速恢复服务、保障系统的高可用...
- Redis合集-大Key处理建议
-
以下是Redis大Key问题的全流程解决方案,涵盖检测、处理、优化及预防策略,结合代码示例和最佳实践:一、大Key的定义与风险1.大Key判定标准数据类型大Key阈值风险场景S...
- 深入解析跳跃表:Redis里的"老六"数据结构,专治各种不服
-
大家好,我是你们的码农段子手,今天要给大家讲一个Redis世界里最会"跳科目三"的数据结构——跳跃表(SkipList)。这货表面上是个青铜,实际上是个王者,连红黑树见了都要喊声大哥。...
- Redis 中 AOF 持久化技术原理全解析,看完你就懂了!
-
你在使用Redis的过程中,有没有担心过数据丢失的问题?尤其是在服务器突然宕机、意外断电等情况发生时,那些还没来得及持久化的数据,是不是让你夜不能寐?别担心,Redis的AOF持久化技术就是...
- Redis合集-必备的几款运维工具
-
Redis在应用Redis时,经常会面临的运维工作,包括Redis的运行状态监控,数据迁移,主从集群、切片集群的部署和运维。接下来,从这三个方面,介绍一些工具。先来学习下监控Redis实时...
- 别再纠结线程池大小 + 线程数量了,没有固定公式的!
-
我们在百度上能很轻易地搜索到以下线程池设置大小的理论:在一台服务器上我们按照以下设置CPU密集型的程序-核心数+1I/O密集型的程序-核心数*2你不会真的按照这个理论来设置线程池的...
- 网络编程—IO多路复用详解
-
假如你想了解IO多路复用,那本文或许可以帮助你本文的最大目的就是想要把select、epoll在执行过程中干了什么叙述出来,所以具体的代码不会涉及,毕竟不同语言的接口有所区别。基础知识IO多路复用涉及...
- 5分钟学会C/C++多线程编程进程和线程
-
前言对线程有基本的理解简单的C++面向过程编程能力创造单个简单的线程。创造单个带参数的线程。如何等待线程结束。创造多个线程,并使用互斥量来防止资源抢占。会使用之后,直接跳到“汇总”,复制模板来用就行...
- 尽情阅读,技术进阶,详解mmap的原理
-
1.一句话概括mmapmmap的作用,在应用这一层,是让你把文件的某一段,当作内存一样来访问。将文件映射到物理内存,将进程虚拟空间映射到那块内存。这样,进程不仅能像访问内存一样读写文件,多个进程...
- C++11多线程知识点总结
-
一、多线程的基本概念1、进程与线程的区别和联系进程:进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程;线程:是运行中的实际的任务执行者。可以说,进程中包含了多...
- 微服务高可用的2个关键技巧,你一定用得上
-
概述上一篇文章讲了一个朋友公司使用SpringCloud架构遇到问题的一个真实案例,虽然不是什么大的技术问题,但如果对一些东西理解的不深刻,还真会犯一些错误。这篇文章我们来聊聊在微服务架构中,到底如...
- Java线程间如何共享与传递数据
-
1、背景在日常SpringBoot应用或者Java应用开发中,使用多线程编程有很多好处,比如可以同时处理多个任务,提高程序的并发性;可以充分利用计算机的多核处理器,使得程序能够更好地利用计算机的资源,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)