Oracle database 靜默安裝 oracle 11g 一鍵安裝

基于oracle安裝包中應答文件實現一鍵安裝

支持環境:

Linux :centerOS 7
oracle :11.2.0


Oracle應答文件

runInstaller應答文件
/database/response/db_install.rsp
netca應答文件
/database/response/netca.rsp
dbca應答文件
/database/response/dbca.rsp

解壓oracle安裝包后在生成database目錄
靜默安裝需先編輯對應應答文件
編輯完成后執行安裝程序指定對應應答文件


一鍵安裝腳本

基于oracle可以實現靜默安裝的前提、
我們可以將安裝oracle的步驟整合為shell腳本、
同時增加命令行控制、
增加可自定義項、

#!/bin/bash
#Create by:zhangyongze
#為什么不問問神奇的海螺呢丶
#oracle一鍵安裝腳本
#############################
#變量初始化
oracle_version=11.2.0
oracle_base=/oracledata/app/oracle
oracle_instance_name=orcl
oracle_file=""
oracle_unzip=/oracledata
oracle_log_file=`pwd`/oracle_install.log
oracle_password="sysadmin"
help_str="參數說明:--oracleversion, -v:  oracle版本(支持11.2.0)--oraclebase,    -b  : oracle_base  選填 默認 /oracledata/app/oracle--oraclesid,     -s  : oracle_sid 選填 默認 orcl--installfile,   -f  : 安裝文件(絕對路徑) 必填--installdir,    -d  : 安裝文件存放目錄(絕對路徑)選填 默認 /oracledata--installlog,    -l  : 安裝日志(絕對路徑) 選填 默認當前目錄--syspasswd,     -p  : sys用戶密碼  選填 默認 sysadmin--help,          -h   : 幫助oracle_home =\${oracle_base}/product/\${oracle_version}/dbhome_1"# 定義命令執行選項
getopt_cmd=$(getopt -o v:b:s:f:d:l:p:h --long oracleversion:,oraclebase::,oraclesid::,installfile:,installdir:,installlog::,syspasswd::,help  -n $(basename $0) -- "$@")
[ $? -ne 0 ] && exit 1
# 將規范化后的命令行參數分配至位置參數($1,$2,...)
eval set -- "$getopt_cmd"# 接受執行選項;賦值給變量
while [ -n "$1" ] 
do
case "$1" in
-h|--help)echo -e "$help_str"exit ;;
-v|--oracleversion)oracle_version="$2"shift ;;
-b|--oraclebase)oracle_base="$2"shift ;;
-s|--oraclesid)oracle_instance_name="$2"shift ;;
-f|--installfile)oracle_file="$2"shift ;;
-d|--installdir)oracle_unzip="$2"shift ;;
-l|--installlog)oracle_log_file="$2"shift ;;
-p|--syspasswd)oracle_password="$2"shift ;;
--) shiftbreak ;;
*)          echo "$1 is not an option"exit 1 ;;  # 發現未知參數,直接退出esacshift
done##########變量################
oracle_home=${oracle_base}/product/${oracle_version}/dbhome_1
host_name=`hostname`
host_ip=`ip addr | grep inet | grep -v 127 | grep -v inet6 |awk '{print $2}'| grep -Eo "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"|head -n 1`###########函數區#############
#打印輸出
function wlog()
{content_str=$1var_color=$2var_curr_timestamp=`date "+%Y-%m-%d %H:%M:%S.%N" | cut -b 1-23`content_echo_str=""## 判斷參數1 是否是空字符串if [ "x${content_str}" == "x" ];thenreturnelsecontent_str="[${var_curr_timestamp}] ${content_str}"ficontent_echo_str="${content_str}"## 判斷顏色if [ "${var_color}" == "green" ];thencontent_echo_str="\033[32m${content_str}\033[0m"elif [ "${var_color}" == "yellow" ];thencontent_echo_str="\033[33m${content_str}\033[0m"elif [ "${var_color}" == "red" ];thencontent_echo_str="\033[1;41;33m${content_str}\033[0m"fi## 打印輸出echo -e "${content_echo_str}"echo "${content_str}" >> ${oracle_log_file}
}
#判斷/dev/shm是否足夠2G,不夠予以添加
addShm(){swap_zize=`df | grep /dev/shm | awk '{print $2 / 1024 / 1024}'`swap_zize=${swap_zize%.*}if [ ${swap_zize} -lt 2 ]then wlog '/dev/shm空間小于2G,正在為您擴充/dev/shm空間...'mount -o size=2000M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shmecho 'tmpfs                /dev/shm             tmpfs   defaults,size=1200M        0 0' >>  /etc/fstabmount -o remount /dev/shmfi
}#判斷交換空間是否足夠,不夠予以添加
addSwap(){swap_zize=`free | grep Swap | awk '{print $2 / 1024 / 1024}'`swap_zize=${swap_zize%.*}if [ ${swap_zize} -lt 1 ]then wlog '交換空間小于1G,正在為您擴充交換空間...'dd if=/dev/zero of=/root/swap bs=1024k count=1024 >> ${oracle_log_file} 2>&1mkswap /root/swap >> ${oracle_log_file} 2>&1swapon /root/swap >> ${oracle_log_file} 2>&1echo "/sbin/swapon /root/swap" >> /etc/rc.d/rc.localfi
}#添加oracle12c需要的依賴
installDependence(){wlog "正在安裝數據庫依賴環境..."yum -y install libnsl.x86_64 binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33* elfutilslibelf-devel gcc gcc-c++ glibc* glibc glibc-devel glibc-devel* ksh libgcc* libgcc libstdc++ libstdc++ libstdc++-devel libstdc++-devel* libaio libaio* libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC* unixODBC-devel unixODBCdevel* libXp unzip wget vim epel-release >> ${oracle_log_file} 2>&1wlog "數據庫依賴環境已完成"
}#添加oracle用戶組以及用戶
addOracleUserAndGroup(){groupadd oinstallgroupadd dbagroupadd operuseradd -g oinstall -G dba,oper oraclewlog "oracle用戶以及用戶組已創建,使用oracle用戶時自行修改密碼"
}#修改環境變量
modifyEnvironment(){echo "${host_ip} ${host_name}" >> /etc/hostssed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0wlog "已關閉selinux"cp /etc/sysctl.conf /etc/sysctl.conf.bak_`date "+%Y-%m-%d_%H:%M:%S"`echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.confecho "fs.file-max = 6815744" >> /etc/sysctl.confecho "kernel.shmall = 1073741824" >> /etc/sysctl.confecho "kernel.shmmax = 4398046511104" >> /etc/sysctl.confecho "kernel.shmmni = 4096" >> /etc/sysctl.confecho "kernel.sem = 250 32000 100 128" >> /etc/sysctl.confecho "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.confecho "net.core.rmem_default = 262144" >> /etc/sysctl.confecho "net.core.rmem_max = 4194304" >> /etc/sysctl.confecho "net.core.wmem_default = 262144" >> /etc/sysctl.confecho "net.core.wmem_max = 1048576" >> /etc/sysctl.confsysctl -p >> ${oracle_log_file} 2>&1wlog "/etc/sysctl.conf文件已經備份且修改為oracle官方要求的最小值"cp /etc/security/limits.conf /etc/security/limits.conf.bak_`date "+%Y-%m-%d_%H:%M:%S"`echo "oracle soft nproc 10240" >> /etc/security/limits.confecho "oracle hard nproc 10240" >> /etc/security/limits.confecho "oracle soft nofile 65536" >> /etc/security/limits.confecho "oracle hard nofile 65536" >> /etc/security/limits.confwlog "/etc/security/limits.conf文件已經備份且修改為oracle官方要求的最小值"cp /etc/pam.d/login /etc/pam.d/login_`date "+%Y-%m-%d_%H:%M:%S"`echo "session  required      pam_limits.so" >>  /etc/pam.d/loginwlog "/etc/pam.d/login已修改,添加session  required      pam_limits.so"# echo "if [ $USER = ""oracle"" ]; then" >>  /etc/profile# echo "  if [ $SHELL = ""/bin/ksh"" ]; then" >>  /etc/profile# echo "    ulimit -p 16384" >>  /etc/profile# echo "    ulimit -n 65536" >>  /etc/profile# echo "  else" >>  /etc/profile# echo "    ulimit -u 16384 -n 65536" >>  /etc/profile# echo "  fi" >>  /etc/profile# echo "fi" >>  /etc/profile# source /etc/profile# wlog "/etc/profile已修改,限制其他用戶使用"
}showBar(){i=$1jj=0((jj=i+3))jj=`echo "$i $jj"|awk '{printf "%d\n",$1/$2*100}'`msg=$2b=`echo "" | sed ":a; s/^/-/; /-\{${jj}\}/b; ta"`b="${b}>"if [ $msg == "執行中" ]then	  printf "[%-101s] %d%% %3s \r" "$b" "$jj" "$msg";elsejj=100b=`echo "" | sed ":a; s/^/-/; /-\{${jj}\}/b; ta"`b="${b}>"printf "[%-101s] %d%% %3s \n" "$b" "$jj" "$msg";fi
}function installOracle(){wlog "#########開始安裝oracle數據庫#########" "green"rm -rf ${oracle_unzip}/database >> ${oracle_log_file} 2>&1wlog "開始解壓oracle數據庫文件..."unzip ${oracle_file} -d ${oracle_unzip}/ >> ${oracle_log_file} 2>&1chown oracle:oinstall -R ${oracle_unzip}# mkdir -p ${oracle_home}# chown -R oracle:oinstall ${oracle_home}# chmod -R 775 ${oracle_home}wlog "oracle數據庫文件解壓完畢"echo "export TMP=/tmp" >>  /home/oracle/.bash_profileecho "export TMPDIR=\$TMP" >>  /home/oracle/.bash_profileecho "export ORACLE_HOSTNAME=${host_name}" >>  /home/oracle/.bash_profileecho "export ORACLE_UNQNAME=${oracle_instance_name}" >>  /home/oracle/.bash_profileecho "export ORACLE_BASE=${oracle_base}" >>  /home/oracle/.bash_profileecho "export ORACLE_HOME=${oracle_home}" >>  /home/oracle/.bash_profileecho "export ORACLE_SID=${oracle_instance_name}" >>  /home/oracle/.bash_profileecho "export PATH=/usr/sbin:$PATH" >>  /home/oracle/.bash_profileecho "export PATH=\${ORACLE_HOME}/bin:\$PATH" >>  /home/oracle/.bash_profileecho "export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib" >>  /home/oracle/.bash_profileecho "export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib" >>  /home/oracle/.bash_profileecho "export NLS_LANG=\"SIMPLIFIED CHINESE_CHINA.ZHS16GBK\"" >>  /home/oracle/.bash_profilesource /home/oracle/.bash_profilewlog "oracle環境變量已經配置"  wlog "正在修改安裝文件......"a[0]="oracle.install.option=INSTALL_DB_SWONLY"a[1]="UNIX_GROUP_NAME=oinstall"a[2]="INVENTORY_LOCATION=${oracle_base}/oraInventory"a[3]="ORACLE_HOME=${oracle_home}"a[4]="ORACLE_BASE=${oracle_base}"a[5]="oracle.install.db.InstallEdition=EE"a[6]="oracle.install.db.DBA_GROUP=dba"a[7]="oracle.install.db.OPER_GROUP=oper"a[8]="oracle.install.db.BACKUPDBA_GROUP=dba"a[9]="oracle.install.db.DGDBA_GROUP=dba"a[10]="oracle.install.db.KMDBA_GROUP=dba"a[11]="oracle.install.db.RACDBA_GROUP=dba"a[12]="oracle.install.db.config.starterdb.type=GENERAL_PURPOSE"a[13]="oracle.install.db.config.starterdb.globalDBName=${oracle_instance_name}"a[14]="oracle.install.db.config.starterdb.SID=${oracle_instance_name}"a[15]="oracle.install.db.config.starterdb.characterSet=ZHS16GBK"a[16]="SECURITY_UPDATES_VIA_MYORACLESUPPORT=false"a[17]="DECLINE_SECURITY_UPDATES=true"for i in ${a[*]}; dosed -i "s#^${i%%=*}=.*#${i}#" "${oracle_unzip}/database/response/db_install.rsp"donewlog "修改安裝文文件完畢......"#rm -rf ${oracle_file}wlog "開始安裝數據庫..."su - oracle <<EOF cd ${oracle_unzip}/databaseif [ -f oracle_install_log.out ]thenrm oracle_install_log.outfinohup ./runInstaller -force -silent -noconfig -responseFile ${oracle_unzip}/database/response/db_install.rsp -ignorePrereq >> oracle_install_log.out &
EOFii=0while truedosleep 1egrep -e "FATAL|Failed" ${oracle_unzip}/database/oracle_install_log.outmsg=$?if [ "$msg" == '0' ]thenshowBar ${ii} "失敗"exitfigrep "Successfully Setup Software." ${oracle_unzip}/database/oracle_install_log.out >> ${oracle_log_file} 2>&1msg=$?	if [ "$msg" == '0' ]thenshowBar 100 "成功"wlog "oracle數據庫安裝成功" "green"breakfishowBar ${ii} "執行中"((ii=ii+2))done`grep "orainstRoot.sh" ${oracle_unzip}/database/oracle_install_log.out  >> ${oracle_log_file} 2>&1``grep "root.sh" ${oracle_unzip}/database/oracle_install_log.out  >> ${oracle_log_file} 2>&1`su - oracle -c "netca /silent /responsefile ${oracle_unzip}/database/response/netca.rsp" >> ${oracle_log_file} 2>&1wlog "oracle數據庫初始化完成" "green"}function installIntance(){wlog "#########開始安裝oracle數據庫單實例#########" "green"wlog "正在修改數據庫實例配置文件......"rm -rf ${oracle_unzip}/database/response/dbca.rspecho "[GENERAL]" >>  ${oracle_unzip}/database/response/dbca.rspecho "RESPONSEFILE_VERSION = "11.2.0" " >>  ${oracle_unzip}/database/response/dbca.rspecho "OPERATION_TYPE =  "createDatabase"" >>  ${oracle_unzip}/database/response/dbca.rspecho "[CREATEDATABASE]" >>  ${oracle_unzip}/database/response/dbca.rspecho "GDBNAME=${oracle_instance_name}" >>  ${oracle_unzip}/database/response/dbca.rspecho "SID=${oracle_instance_name}" >>  ${oracle_unzip}/database/response/dbca.rspecho "TEMPLATENAME =  "General_Purpose.dbc"" >>  ${oracle_unzip}/database/response/dbca.rspecho "SYSPASSWORD=${oracle_password}" >>  ${oracle_unzip}/database/response/dbca.rspecho "SYSTEMPASSWORD=${oracle_password}" >>  ${oracle_unzip}/database/response/dbca.rspecho "DATAFILEJARLOCATION=${ORACLE_HOME}/assistants/dbca/templates/" >>  ${oracle_unzip}/database/response/dbca.rspecho "AUTOMATICMEMORYMANAGEMENT=TRUE" >>  ${oracle_unzip}/database/response/dbca.rspecho "CHARACTERSET=ZHS16GBK" >>  ${oracle_unzip}/database/response/dbca.rspecho "NATIONALCHARACTERSET=AL16UTF16" >>  ${oracle_unzip}/database/response/dbca.rspecho "TOTALMEMORY=30000" >>  ${oracle_unzip}/database/response/dbca.rspecho "RECOVERYAREADESTINATION=${ORACLE_BASE}/flash_recovery_area" >>  ${oracle_unzip}/database/response/dbca.rspecho "STORAGETYPE="FS"" >>  ${oracle_unzip}/database/response/dbca.rspecho "LISTENERS=LISTENER" >>  ${oracle_unzip}/database/response/dbca.rsp# a[1]="GDBNAME=${oracle_instance_name}"# a[2]="SID=${oracle_instance_name}"# a[3]="RESPONSEFILE_VERSION=11.2.0"# a[4]="OPERATION_TYPE=createDatabase"# a[5]="TEMPLATENAME=General_Purpose.dbc"# a[6]="SYSPASSWORD=${oracle_password}"# a[7]="SYSTEMPASSWORD=${oracle_password}"# a[8]="DATAFILEJARLOCATION=${ORACLE_HOME}/assistants/dbca/templates/"# a[9]="DATAFILEDESTINATION=${ORACLE_BASE}/oradata/"# a[10]="CHARACTERSET=ZHS16GBK"# a[11]="NATIONALCHARACTERSET=AL16UTF16"# a[12]="MEMORYPERCENTAGE=40"# a[13]="AUTOMATICMEMORYMANAGEMENT=FALSE"# a[14]="TOTALMEMORY=30000"# a[15]="RECOVERYAREADESTINATION=${ORACLE_BASE}/flash_recovery_area"# a[16]="LISTENERS=LISTENER"# a[17]="STORAGETYPE="FS""# for i in ${a[*]}; do#   sed -i "s#^${i%%=*}=.*#${i}#" "${oracle_unzip}/database/response/dbca.rsp"# donewlog "修改數據庫實例配置文件完畢......"su - oracle -c "dbca -silent   -responseFile ${oracle_unzip}/database/response/dbca.rsp" >> ${oracle_log_file} 2>&1su - oracle -c "mkdir -p ${oracle_home}/oradata/${oracle_instance_name}/" >> ${oracle_log_file} 2>&1wlog "oracle數據庫實例安裝完成!" "green"
}
addBootstrap(){sed -i "s/^ORACLE_HOME_LISTNER=.*/ORACLE_HOME_LISTNER=\$ORACLE_HOME/" ${oracle_home}/bin/dbstartsed -i "s/^ORACLE_HOME_LISTNER=.*/ORACLE_HOME_LISTNER=\$ORACLE_HOME/" ${oracle_home}/bin/dbshutrm -rf /etc/oratab echo "${oracle_instance_name}:${oracle_home}:Y" >>  /etc/oratabcat >>/etc/rc.d/init.d/oracle<<EOF
#!/bin/bash
# whoami # root 
# chkconfig: 345 51 49  
# description: starts the oracle dabasedeamons 
# 
ORACLE_HOME=${oracle_home}
ORACLE_OWNER=oracle 
ORACLE_DESC=oracledatabase
case "\$1" in 
'start') 
echo -n \"Starting \${ORACLE_DESC}:\" 
runuser - \$ORACLE_OWNER -c '\$ORACLE_HOME/bin/lsnrctl start' 
runuser - \$ORACLE_OWNER -c '\$ORACLE_HOME/bin/dbstart' 
runuser - \$ORACLE_OWNER -c '\$ORACLE_HOME/bin/emctl start dbconsole' 
touch \${ORACLE_LOCK} 
echo 
;; 
'stop') 
echo -n "shutting down \${ORACLE_DESC}: " 
runuser - \$ORACLE_OWNER -c '\$ORACLE_HOME/bin/lsnrctl stop' 
runuser - \$ORACLE_OWNER -c '\$ORACLE_HOME/bin/dbshut' 
rm -f \${ORACLE_LOCK} 
echo  
;; 
'restart') 
echo -n "restarting \${ORACLE_DESC}:" 
\$0 stop 
\$0 start 
echo 
;; 
*)  
echo "usage: \$0 { start | stop | restart }" 
exit 1 
esac 
exit 0
EOFchmod 755 /etc/rc.d/init.d/oraclechkconfig --add oracle
}main(){clearcat null > ${oracle_log_file}chmod 777 ${oracle_log_file}wlog "開始為您一鍵安裝oracle數據庫,請確認一下信息" "green"wlog "Oracle版本號:${oracle_version}"wlog "Oracle主目錄:${oracle_base}"wlog "Oracle安裝目錄:${oracle_home}"wlog "Oracle數據庫實例名稱:${oracle_instance_name}"wlog "Oracle數據庫系統用戶初始密碼:${oracle_password}"wlog "Oracle數據庫解壓目錄:${oracle_unzip}"wlog "Oracle數據庫安裝文件:${oracle_file}"wlog "安裝詳細日志文件:${oracle_log_file}"wlog "確認以此參數安裝,請輸入Y,開始安裝,修改參數請按其他任意鍵結束安裝:" "red"read -t 10 confirm_strif [ "$confirm_str" != 'y' ] && [ "$confirm_str" != 'Y' ];thenecho ""wlog "一鍵安裝oracle數據庫已停止,您可以再修改完參數后再次執行。" "red"exitfiif [ $(id -u) != "0" ];then wlog "Oracle數據庫安裝需要以root用戶執行!" "red"exitfiif [ ! -f ${oracle_file} ];then wlog "Oracle數據庫文件不存在!" "red"exit fiwlog "#########開始初始化安裝環境#########" "green"  installDependencemodifyEnvironmentaddSwapaddShmaddOracleUserAndGroupinstallOracleinstallIntanceaddBootstrapwlog "已為您添加自啟動腳本..." "green"wlog "安裝程序已全部結束,請留意防火墻狀態并嘗試連接數據庫進行測試" "red"wlog "關閉防火墻命令:    systemctl stop firewalld" "green"wlog "關閉數據庫命令:    service oracle stop" "green"wlog "開啟數據庫命令:    service oracle start" "green"wlog "重啟數據庫命令:    service oracle restart" "green"wlog "您的數據庫連接地址:${host_ip}:1521/${oracle_instance_name}" "green"wlog "管理員用戶名:      system" "green"wlog "初始密碼:          ${oracle_password}" "green"
}main

執行腳本 -h 查看幫助文檔

在這里插入圖片描述

oracle11g一鍵安裝腳本

尋找缺失的依賴包

解決思路

找同系統版本未安裝Oracle的數據庫

配置網絡yum源

使用yum downloadonly 命令 下載包

yum install --downloadonly binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686 unzip wget vim epel-release --downloaddir=/oralcepkg

打包傳輸到需要安裝Oracle的服務器

解壓后 yum -y install *

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35432.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序保留2位小數據,不四舍五入

方法1&#xff1a; parseInt toFixed /* * 保留2位小數&#xff0c;不四舍五入 * 5.992550 >5.99 , 2 > 2.00 * */ const toFixed2Decimal (value) > {return (parseInt(value*100)/100).toFixed(2) } console.log(587.67*100) console.log(toFixed2Decimal(587.67…

python中的運算符號含義,python基本運算符的操作

本篇文章給大家談談python的運算符號有哪些類型&#xff0c;以及python各運算符號的功能說明&#xff0c;希望對各位有所幫助&#xff0c;不要忘了收藏本站喔。 1.算數運算符&#xff08;最常見的&#xff09; 標準算數運算符&#xff08;加減乘除&#xff09; 取余運算…

(provider: SSL Provider, error: 0 - 證書鏈是由不受信任的頒發機構頒發的。)

問題描述 NET6 Code First 使用Update-database時 報錯&#xff1a;A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 證書鏈是由不受信任的頒發機構頒發的。) 解決方…

UML-狀態圖

目錄 狀態圖 狀態圖的圖符 狀態機 狀態 ?轉換 電話機狀態圖 活動圖和狀態圖區別&#xff1a; 狀態圖 狀態圖(Statechart Diagram)是描述一個實體基于事件反應的動態行為&#xff0c;顯示了該實體如何根據當前所處的狀態對不同的事件做出反應。通常我們創建一個UML狀態…

Jmeter設置中文的兩種方式,建議使用第二種

方案一 進入jmeter圖像化界面&#xff0c;選擇Options下的Choose Language&#xff0c;再選擇Chinese(Simplified)。這個就是選擇語言為簡體中文&#xff08;缺陷&#xff1a;這個只是在本次使用時為中文&#xff0c;下次打開默認還是英文的&#xff09; 方案二&#xff08;…

Mybatis框架

Mybatis框架 Mybatis的含義&#xff1a;Mybatis框架是一個持久層框架&#xff0c;幾乎解決了jdbc代碼在手動設置參數和對結果集的手動獲取問題&#xff0c;原本是apache公司的開源項目&#xff0c;最后轉給Google公司。Mybatis會將參數封裝在一個對象中傳遞給數據庫&am…

數學建模(二)線性規劃

課程推薦&#xff1a;6 線性規劃模型基本原理與編程實現_嗶哩嗶哩_bilibili 目錄 一、線性規劃的實例與定義 1.1 線性規劃的實例 1.2 線性規劃的定義 1.3 最優解 1.4 線性規劃的Mathlab標準形式 1.5 使用linprog函數 二、線性規劃模型建模實戰與代碼 2.1 問題提出 2.2…

機器學習深度學習——seq2seq實現機器翻譯(詳細實現與原理推導)

&#x1f468;?&#x1f393;作者簡介&#xff1a;一位即將上大四&#xff0c;正專攻機器學習的保研er &#x1f30c;上期文章&#xff1a;機器學習&&深度學習——seq2seq實現機器翻譯&#xff08;數據集處理&#xff09; &#x1f4da;訂閱專欄&#xff1a;機器學習&…

機器學習編譯系列

機器學習編譯MLC 1. 引言2. 機器學習編譯--概述2.1 什么是機器學習編譯 1. 引言 陳天奇目前任教于CMU&#xff0c;研究方向為機器學習系統。他是TVM、MXNET、XGBoost的主要作者。2022年夏天&#xff0c;陳天奇在B站開設了《機器學習編譯》的課程。 ??《機器學習編譯》課程共分…

立即開始使用 3D 圖像

一、說明 這個故事介紹了使用這種類型的數據來訓練機器學習3D模型。特別是&#xff0c;我們討論了Kaggle中可用的MNIST數據集的3D版本&#xff0c;以及如何使用Keras訓練模型識別3D數字。 3D 數據無處不在。由于我們希望構建AI來與我們的物理世界進行交互&#xff0c;因此使用3…

了解 Langchain?是個啥?:第 1 部分

一、說明 在日常生活中&#xff0c;我們主要致力于構建端到端的應用程序。我們可以使用許多自動 ML 平臺和 CI/CD 管道來自動化 ml 管道。我們還有像Roboflow和Andrew N.G.的登陸AI這樣的工具來自動化或創建端到端的計算機視覺應用程序。 如果我們想在OpenAI或擁抱臉的幫助下創…

Day 26 C++ list容器(鏈表)

文章目錄 list基本概念定義結構雙向迭代器優點缺點List和vector區別存儲結構內存管理迭代器穩定性隨機訪問效率 list構造函數——創建list容器函數原型示例 list 賦值和交換函數原型 list 大小操作函數原型示例 list 插入和刪除函數原型示例 list 數據存取函數原型注意示例 lis…

論文詳解 ——《SNR-Aware Low-light Image Enhancement》

文章目錄 Abstract1.Introduction2. Related Work3. Our Method3.1 Long- and Short-range Branches3.2 SNR-based Spatially-varying Feature Fusion3.3 SNR-guided Attention in Transformer3.4 Loss Function 4. Experiments4.1. Datasets and Implementation Details4.2 Co…

SpringBoot | 使用newWorkStealingPool和CompletableFuture進行并發異步處理

關注wx&#xff1a; CodingTechWork 需求 一個列表操作需要異步處理每個元素&#xff0c;最終需要將列表各個元素的操作結果統一返回&#xff0c;無需關注該列表中的順序執行。這個線程池不會保證任務的順序執行&#xff0c;即為WorkStealing搶占式的工作。 開發模板 線程池…

基于SpringBoot實現MySQL備份與還原

基于SpringBoot實現MySQL備份與還原&#xff0c;需求是在頁面上對所有的平臺數據執行備份和恢復操作&#xff0c;那么就需要使用代碼去調用MySQL備份和恢復的指令&#xff0c;下面是具體實現步驟&#xff1b; MySQL備份表設計 CREATE TABLE IF NOT EXISTS mysql_backups (id …

6.1 安全漏洞與網絡攻擊

數據參考&#xff1a;CISP官方 目錄 安全漏洞及產生原因信息收集與分析網絡攻擊實施后門設置與痕跡清除 一、安全漏洞及產生原因 什么是安全漏洞 安全漏洞也稱脆弱性&#xff0c;是計算機系統存在的缺陷 漏洞的形式 安全漏洞以不同形式存在漏洞數量逐年遞增 漏洞產生的…

前端開發:數組對象判斷重復的方法詳解

前言 在前端開發過程中,關于數據處理是非常常用的操作,尤其是通過算法處理從后端獲取的數據甚為重要。而且在前端開發中,兩大類型的數據處理是必備的:數組和對象。與其說是數據處理,不如說是數組和對象的處理。實際開發中,關于數組數據的處理所占比例更高,尤其是涉及到表…

使用Flask.Request的方法和屬性,獲取get和post請求參數(二)

1、Flask中的request 在Python發送Post、Get等請求時&#xff0c;我們使用到requests庫。Flask中有一個request庫&#xff0c;有其特有的一些方法和屬性&#xff0c;注意跟requests不是同一個。 2、Post請求&#xff1a;request.get_data() 用于服務端獲取客戶端請求數據。注…

理解ConcurrentSkipListMap(有點類似于并發的TreeMap)

是一個分層的結構。 從最上面開始查找&#xff0c;最后層層往下查。 插入和刪除有可能會引起節點Level的變更。 key是有序的&#xff0c;因此可以看做是并發的TreeMap