你知道什么是Oracle嘛

news2024/10/7 20:27:51

文章目录

  • Oracle数据简介
  • 环境准备
  • 安装配置
  • 安装Oracle
  • 设置Oracle开机自启
  • Oracle核心概念
  • 创建用户
    • 修改用户密码
    • 用户授权
    • 查看用户
  • 数据备份
  • 总结

Oracle数据简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

环境准备

使用CentOS7.9模板机克隆一个新的名为Oracle虚拟机,要求如下

  • 内存至少4096M(4G)
  • 硬盘空间至少20G
  • 交换空间至少2048M (2G)

虚拟机配置基础环境,修改主机名,分配IP地址

[root@localhost ~]# hostnamectl set-hostname oracle
[root@oracle ~]# nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes 
[root@oracle ~]# nmcli connection up  ens33

查看虚拟机交换空间大小,默认2G,所以仅查看即可

[root@oracle ~]# grep SwapTotal /proc/meminfo 
SwapTotal:       2097148 kB

Oracle默认不支持CentOS,将系统标识改为redhat-7

[root@oracle ~]# echo 'redhat-7' > /etc/redhat-release		#修改系统标识为redhat-7
[root@oracle ~]# cat /etc/redhat-release					#查看验证
redhat-7

修改 /etc/sysctl.conf配置,调整系统内核参数以满足Oracle数据库的要求。

每个参数具体作用如下(了解):

  • fs.aio-max-nr:用于指定系统异步IO的最大请求数量。
  • fs.file-max:用于指定系统可以打开的文件描述符的最大数量。
  • kernel.shmmni:用于指定系统中共享内存标识符的最大数量。
  • kernel.sem:用于设置信号量的参数,包括信号量数组最大值、单个信号量集中的最大信号量数、按需分配的信号量数组最大值、防止出现死锁的SEMMSL参数。
  • kernel.shmall:用于指定系统中所有共享内存段总共占用的物理页框的数量。
  • kernel.shmmax:用于指定系统中单个共享内存段的最大大小。
  • net.ipv4.ip_local_port_range:用于指定系统分配本地端口的范围。
  • net.ipv4.icmp_echo_ignore_broadcasts:用于禁止系统回应广播ICMP echo请求。
  • net.ipv4.conf.all.rp_filter:用于开启反向路径过滤。
  • net.core.rmem_default:用于指定接收缓冲区的默认大小。
  • net.core.rmem_max:用于指定接收缓冲区的最大大小。
  • net.core.wmem_default:用于指定发送缓冲区的默认大小。
  • net.core.wmem_max:用于指定发送缓冲区的最大大小。
[root@oracle ~]# vim /etc/sysctl.conf
...此处省略一万字...在最后一行下方追加即可
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

刷新生效

[root@oracle ~]# sysctl -p

创建oracle用户和用户组

[root@oracle ~]# groupadd oinstall					#创建安装oracle程序用户组
[root@oracle ~]# groupadd dba						#创建DBA用户组
[root@oracle ~]# useradd -g dba -m oracle			#创建用户oracle 并加入到dba组
[root@oracle ~]# usermod -a -G oinstall oracle		#将用户oracle加入到oinstall组
[root@oracle ~]# id oracle 							#验证用户是否创建成功

将oracle用户密码设置为"oracle"

[root@oracle ~]# passwd oracle						#为oracle用户设置密码为oracle
更改用户 oracle 的密码 。
新的 密码:											 #输入密码不显示
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

准备oracle安装目录

[root@oracle ~]# mkdir -p /data/oracle				#创建oracle主目录
[root@oracle ~]# mkdir -p /data/inventory			#创建oralce配置目录
[root@oracle ~]# mkdir -p /data/src					#创建oracle压缩包解压目录

修改目录归属关系

[root@oracle ~]# chown -R oracle:oinstall /data/oracle
[root@oracle ~]# chown -R oracle:oinstall /data/inventory
[root@oracle ~]# chown -R oracle:oinstall /data/src

[root@oracle ~]# ls -l /data/						#查看Oracl目录的归属关系
总用量 0
drwxr-xr-x 2 oracle oinstall 6 827 15:20 inventory
drwxr-xr-x 2 oracle oinstall 6 827 15:20 oracle
drwxr-xr-x 2 oracle oinstall 6 827 15:20 src

配置oracle用户shell权限

  • 设置操作系统对于Oracle数据库的资源限制
  • 这些资源限制的目的是为了保证Oracle数据库在运行时可以充分利用系统资源,提高数据库的运行性能。
  • oracle soft nproc 2047:这条配置限制了运行用户oracle的最大进程数(nproc),软限制为2047。软限制表示该值可以通过修改来调整。确保用户oracle在运行时有足够数量的进程资源。
  • oracle hard nproc 16384:这条配置限制了运行用户oracle的最大进程数,硬限制为16384。硬限制表示该值只能由系统管理员通过修改配置文件来调整。
  • oracle soft nofile 1024:这条配置限制了运行用户oracle的最大文件描述符数(nofile),软限制为1024。确保Oracle数据库可以同时打开足够数量的文件描述符。
  • oracle hard nofile 65536:这条配置限制了运行用户oracle的最大文件描述符数,硬限制为65536。确保Oracle数据库可以打开更多的文件描述符。
[root@oracle ~]# vim /etc/security/limits.conf
...第51行下方添加下方内容...其他任容不要动
 52 oracle soft nproc 2047
 53 oracle hard nproc 16384
 54 oracle soft nofile 1024
 55 oracle hard nofile 65536
...此处省略一万字...

修改用户变量

[root@oracle ~]# vim /home/oracle/.bashrc
...最后一行下方追加下方内容...其他地方不要动
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

[root@oracle ~]# source /home/oracle/.bashrc			#执行文件,使用配置生效 

将学习资料中的oracle-install上传至oracle虚拟机的/root/

安装oracle依赖包

[root@oracle ~]# cd /root/oracle-install
[root@oracle oracle-install]# unzip rpms.zip			#将依赖包解压到当前路径
[root@oracle ~]# cd rpms/								#切换至解压目录
[root@oracle rpms]# yum -y localinstall *.rpm			#安装依赖包

验证ksh是否安装

[root@oracle rpms]# ls -l /bin/ksh*
lrwxrwxrwx 1 root root      21 Aug 27 15:53 /bin/ksh -> /etc/alternatives/ksh
-rwxr-xr-x 1 root root 1519032 Aug 11  2022 /bin/ksh93

注:如果安装不正确,执行ksh安装: rpm -ivh /root/oracle-install/rpms/ksh-20120801-144.el7_9.x86_64.rpm

解压缩Oracle安装包

[root@oracle ~]# cd /root/oracle-install/
[root@oracle oracle-install]# unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
[root@oracle oracle-install]# unzip linux.x64_11gR2_database_2of2.zip -d /data/src/
[root@oracle oracle-install]# chown -R oracle:oinstall /data/src/
[root@oracle oracle-install]# ls -l /data/src/
total 0
drwxr-xr-x 8 oracle oinstall 128 Aug 21  2009 database

关闭SELinux(已经在安装模板机的时候关闭过了,如果没有关闭,请按照如下方式关闭)

[root@oracle ~]# vim /etc/selinux/config
...其他内容不要动,只修改第七行内容...
7 SELINUX=disabled
...此处省略一万字...

重启

[root@oracle ~]# reboot

安装配置

  • 配置文件修改比较复杂,因此直接使用教学环境中修改完毕的即可

  • 从学习环境资料里将配置文件dbca.rsp、db_install.rsp、netca.rsp上传至oracle虚拟机的/data/src/database/response/

  • 上传之后无需再次编辑,上传的文件就是编辑好的。配置文件修改部分说明如下

[root@oracle ~]# vim /data/src/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY        				#安装类型
ORACLE_HOSTNAME=oracle.server     							  #主机名称
UNIX_GROUP_NAME=oinstall 										#安装组
INVENTORY_LOCATION=/data/inventory 								#INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN 									#选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1 					#oracle_home
ORACLE_BASE=/data/oracle 										#oracle_base
oracle.install.db.InstallEdition=EE 							#oracle版本
oracle.install.db.DBA_GROUP=dba 								#dba用户组
oracle.install.db.OPER_GROUP=oinstall 							#oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE 		#数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl 			#globalDBName
oracle.install.db.config.starterdb.SID=orcl 					#SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8 		#默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 				#自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle 	#设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true 									#设置安全更新
[root@oracle ~]# vim /data/src/database/response/netca.rsp
INSTALL_TYPE=""custom"" 										#安装的类型
LISTENER_NUMBER=1 												#监听器数量
LISTENER_NAMES={"LISTENER"} 									#监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} 								#监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" 									#监听器启动的名称
[root@oracle ~]# vim /data/src/database/response/dbca.rsp
RESPONSEFILE_VERSION ="11.2.0" 									#版本号
OPERATION_TYPE ="createDatabase" 								#操作为创建实例 
GDBNAME ="orcl" 												#数据库实例名
SID ="orcl" 													#实例名字
TEMPLATENAME = "General_Purpose.dbc" 							#建库用的模板文件
SYSPASSWORD = "oracle" 											#SYS管理员密码
SYSTEMPASSWORD = "oracle" 										#SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/data/oracle/oradata 						#数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area 		#恢复数据存放目录
CHARACTERSET ="AL32UTF8" 										#字符集
NATIONALCHARACTERSET= "AL16UTF16" 								#字符集
TOTALMEMORY ="1638" 											#1638MB,物理内存2G*80%

安装Oracle

使用oracle用户进行安装,提示Successfully即可

[root@oracle ~]# su - oracle
[oracle@oracle ~]# /data/src/database/runInstaller -silent -responseFile \ /data/src/database/response/db_install.rsp -ignorePrereq

在这里插入图片描述

重新打开一个远程连接窗口,使用root登录

[root@oracle ~]# /data/inventory/orainstRoot.sh
[root@oracle ~]# /data/oracle/product/11.2.0/db_1/root.sh

返回使用oracle登录的窗口,按回车

安装监听

[oracle@oracle ~]# /data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile \ /data/src/database/response/netca.rsp

如果提示下面的错误,则使用下方方法解决,如果没有报错,则忽略

在这里插入图片描述

[root@oracle ~]# find / -name libclntsh.so.11.1			#使用root用户搜索

在这里插入图片描述

复制备份文件到上面报错的文件

[root@oracle ~]# cp /data/oracle/product/11.2.0/db_1/inventory/backup/2023-05-13_06-04-35PM/Scripts/ext/lib/libclntsh.so.11.1  \ /data/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1

安装数据库实例

[oracle@oracle ~]# /data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile \ /data/src/database/response/dbca.rsp

查看是否安装成功

[oracle@oracle ~]$ ps -ef | grep ora_ | grep -v grep

登录数据库测试

[oracle@oracle ~]$ sqlplus / as sysdba
SQL> select instance_name, status from v$instance;		#查看实例状态	

INSTANCE_NAME    STATUS
---------------- ------------
orcl             OPEN
SQL> exit												#退出

设置Oracle开机自启

修改启动配置

[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/db_1/bin/dbstart
#修改第80行,指定监听器安装目录
80 ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

修改关闭配置

[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/db_1/bin/dbshut
#修改第50行,指定监听器安装目录
 50 ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

修改/etc/oratab,将文件最后一行末尾的N改为Y

[oracle@oracle ~]$ vim /etc/oratab

#最后一行末尾改成Y
orcl:/data/oracle/product/11.2.0/db_1:Y

用root用户设置开机启动,先 exit退出oracle用户

[oracle@oracle ~]$ exit								#退出oracle用户
[root@oracle ~]# vim /etc/rc.d/rc.local
# 文件最后一行后追加
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart"

[root@oracle ~]# chmod +x /etc/rc.d/rc.local		#赋予执行权限	

配置listener.ora

[root@oracle ~]# vim /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
...
#第9行下方添加这些配置
 10 SID_LIST_LISTENER =
 11   (SID_LIST =
 12     (SID_DESC =
 13           (GLOBAL_DBNAME = ORCL)
 14       (SID_NAME = orcl)
 15       (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
 16     )
 17   )
 ...

重启监听器(使用oracle用户执行)

[root@oracle ~]# su - oracle
[oracle@oracle ~]$ lsnrctl stop
[oracle@oracle ~]$ lsnrctl start

使用oracle用户登录数据库,创建用户,用于登录数据库

[oracle@oracle ~]$ sqlplus / as sysdba
SQL> create user orcl identified by orcl;			#创建用户orcl,密码orcl
SQL> grant connect,resource,dba to orcl;			#授权
SQL> grant create session to orcl;					#授权

安装Dbeaver,用于连接Oracle数据库(安装包在教学环境中)

在这里插入图片描述

选择数据库类型为Oracle
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Oracle核心概念

  • 实例:oracle的数据库
  • 用户(User、Schema):用户是数据库中的账户,用于连接和访问数据库。每个用户可以拥有不同的权限和角色。
  • 表空间(Tablespace):表空间是数据库中逻辑存储结构的组成部分,它是一组数据文件的集合,用于存储用户数据和索引等对象。
  • 数据文件(Datafile):数据文件是数据库中存储数据和索引等对象的实际物理文件,每个数据文件属于一个表空间。
  • 段(Segment):段是逻辑存储结构,是一组相同类型的数据的集合,可以是表、索引、簇等对象。
MySQLOracle
MySQL实例
Database、Schema用户、Schema
表空间
数据文件数据文件
Segment

在Dbeaver中执行SQL语句

CREATE tablespace orcldata
datafile '/data/oracle/oradata/orcl/orcldata.dbf'
SIZE 50m
AUTOEXTEND ON
NEXT 20m
segment space management auto

在服务器上查看文件列表

[oracle@oracle ~]$ ls -lh /data/oracle/oradata/orcl/
total 1.5G
-rw-r----- 1 oracle dba 9.3M Aug 27 19:15 control01.ctl
-rw-r----- 1 oracle dba  51M Aug 27 19:13 orcldata.dbf
-rw-r----- 1 oracle dba  51M Aug 27 19:14 redo01.log
-rw-r----- 1 oracle dba  51M Aug 27 18:04 redo02.log
-rw-r----- 1 oracle dba  51M Aug 27 18:04 redo03.log
-rw-r----- 1 oracle dba 481M Aug 27 19:09 sysaux01.dbf
-rw-r----- 1 oracle dba 671M Aug 27 19:09 system01.dbf
-rw-r----- 1 oracle dba  30M Aug 27 19:04 temp01.dbf
-rw-r----- 1 oracle dba  76M Aug 27 19:09 undotbs01.dbf
-rw-r----- 1 oracle dba 5.1M Aug 27 18:04 users01.dbf

增加表空间

alter tablespace orcldata
add datafile '/data/oracle/oradata/orcl/orcldata2.dbf'
size 30m
autoextend off	

在服务器上查看文件列表

[oracle@oracle ~]$ ls -lh  /data/oracle/oradata/orcl/

在Dbeaver中执行SQL语句

  • 查看表空间 查看表空间状态
select tablespace_name,block_size,status,contents,logging from dba_tablespaces

查看表空间数据文件

select file_id,file_name,tablespace_name,status,bytes from dba_data_files

临时表空间和undo表空间

  • 临时表空间:处理计算或者排序,临时需要的
  • undo:和事务有关
create temporary tablespace temp1
tempfile '/data/oracle/oradata/orcl/temp1.dbf'
size 5m
autoextend off
create undo tablespace orcl_undo
datafile '/data/oracle/oradata/orcl/orcl_undo.dbf'
size 20m
autoextend off

删除表空间

DROP tablespace orcldata
DROP tablespace orcldata INCLUDING contents AND datafiles

查询表空间的使用率 以下两个复杂的查询都可以得到表空间使用率数据

select upper(f.tablespace_name) "TS-name",
d.tot_grootte_mb "TS-bytes(m)",
d.tot_grootte_mb - f.total_bytes "TS-used (m)",
f.total_bytes "TS-free(m)",
to_char(round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,2),'990.99') "TS-per"
from (select tablespace_name,
round(sum(bytes) / (1024 * 1024), 2) total_bytes,
round(max(bytes) / (1024 * 1024), 2) max_bytes
from sys.dba_free_space
group by tablespace_name) f,
(select dd.tablespace_name,
round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
from sys.dba_data_files dd
group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name
order by 5 desc

创建用户

  • 创建用户zhangsan,密码为ora1234
  • zhangsan用户的数据存放在neworcldata表空间,临时表空间存放在temp2表空间
CREATE tablespace neworcldata
datafile '/data/oracle/oradata/orcl/orcldatanew.dbf'
SIZE 50m
AUTOEXTEND ON
NEXT 20m
segment space management auto

create temporary tablespace temp2
tempfile '/data/oracle/oradata/orcl/temp2.dbf'
size 5m
autoextend off

create user zhangsan 
identified by ora1234 
default tablespace neworcldata
temporary tablespace temp2

在这里插入图片描述

修改用户密码

alter user zhangsan identified by zhangsan1234

用户授权

授予用户 connect,dba 角色

grant CONNECT,dba to zhangsan;

收回用户DBA角色的权限

revoke dba from zhangsan;

授予用户 能查询SCOTT 下的 EMP 表的权限

grant select on scott.emp to zhangsan;

授予用户能查询所有表的权限

grant select any table to zhangsan;
grant update any table to zhangsan;
grant insert any table to zhangsan;
grant DELETE any table to zhangsan;
grant alter any table to zhangsan;
grant CREATE any table to zhangsan;
grant DROP any table to zhangsan;

查看用户

select username,created from dba_users;

数据备份

Oracle Data Pump是Oracle提供的一种高性能,可扩展的数据导入/导出工具。它是一种逻辑备份和恢复数据库的方法,也是逻辑备份中的一种常用方法。

Oracle Data Pump提供了两个主要的工具:expdp和impdp。expdp用于将数据库对象和数据导出为一个或多个数据文件,impdp用于将数据文件导入到数据库中。

添加数据

#新建表并插入数据
CREATE TABLE tb1(id int, name varchar2(20))

CREATE INDEX idx_name ON tb1(name)

INSERT INTO tb1 values(1, 'A')

备份数据

# 查询数据备份目录
select * from dba_directories;

OWNER  DIRECTORY_NAME         DIRECTORY_PATH
------ ---------------------- -------------------------------------------
SYS    ORACLE_OCM_CONFIG_DIR  /data/oracle/product/11.2.0/db_1/ccr/state
SYS    DATA_PUMP_DIR          /data/oracle/admin/orcl/dpdump/
SYS    XMLDIR                 /ade/b/2125410156/oracle/rdbms/xml

后续使用data_pump_dir

在这里插入图片描述

备份:

[oracle@oracle ~]$ expdp orcl/orcl@orcl \
schemas=orcl directory=DATA_PUMP_DIR \
dumpfile=backup.dmp include=table,index

expdp - 数据泵实用程序的命令,用于导出数据库对象和数据

orcl/orcl@orcl - 数据库的用户名和密码。orcl是用户名,orcl是密码,@orcl是数据库实例名

schemas=orcl - 要导出的数据库模式,即用户

directory=DATA_PUMP_DIR - 数据库中已经创建的一个目录对象,用于指定导出文件的保存路径

dumpfile=backup.dmp - 导出的备份文件名为backup.dmp

include=table,index - 导出时包含的对象类型,这里包括表和索引。只会导出包含指定对象类型的数据和结构

查看备份文件

[oracle@oracle ~]$ ls -l /data/oracle/admin/orcl/dpdump/

模拟数据丢失

drop table tb1;

恢复数据

impdp orcl/orcl@orcl \
directory=DATA_PUMP_DIR dumpfile=backup.dmp \
include=table,index

总结

  • 掌握Oracle数据库安装过程
  • 掌握Oracle核心概念
  • 掌握数据库备份

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1221182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DDD落地:从腾讯视频DDD重构之路,看DDD极大价值

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 谈谈你的DDD落地经验? 谈谈你对DDD的理解&#x…

Python 如何实现 Mediator 中介者设计模式?什么是中介者设计模式?Python 设计模式示例代码

什么是中介者设计模式? 中介者(Mediator)设计模式是一种行为型设计模式,其主要目的是通过将对象之间的直接交互转变为通过中介者对象进行的间接交互,从而减少对象之间的耦合度。中介者模式通过集中控制对象之间的通信…

【基础算法】筛质数

文章目录 问题描述解决方法朴素筛法线性筛法 问题描述 给定一个正整数 n n n,请你求出 1 ∼ n 1∼n 1∼n 中质数的个数。 输入格式 共一行,包含整数 n。 输出格式 共一行,包含一个整数,表示 1∼n 中质数的个数。 数据范围 …

关于python中内存分配的问题,运行一些操作可能会导致为新结果分配内存,用Python的id()函数演示

一、考虑背景: 一般在python中不会考虑像C中的内存问题,但是在一些高级应用中会考虑,例如有一个特别特别大的矩阵,最好不要不断的赋值,导致内存问题产生。 二、python中的id: 在python中有个id&#xff…

Postman:API测试之Postman使用完全指南

Postman是一个可扩展的API开发和测试协同平台工具,可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。 Postman工具有Chrome扩展和独立客户端,推荐安装独立客户端。 Postman有个workspace的概念,workspace分personal和team类型…

Java JVM虚拟机

加载字节码文件.class 1字节一般为8位 字节码结构: 第一部分 4字节 cafebaby 第二部分 版本号 00 00 00 32, 第三部分 常量数量 count 第四部分常量池 常量类型表示: 继承关系改变 1.1以后 后面是属性方法 等参数 通过javap 反编译class ,javap xx.class javap -c xxx.…

redis实战篇(2)

优惠卷秒杀 通过本章节,我们可以学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列 3、优惠卷秒杀 3.1 -全局唯一ID 每个店铺都可以发布优惠券: 当用户抢…

京东数据采集与挖掘(京东大数据):2023年10月京东冰箱品牌销售排行榜

鲸参谋监测的京东平台10月份冰箱市场销售数据已出炉! 10月份,冰箱市场的销售额有小幅上涨。鲸参谋数据显示,在京东平台上,今年10月冰箱市场的销量为94万,销售额将近23亿,同比增长超过1%。从价格上看&#x…

【Java 进阶篇】揭秘 JQuery 广告显示与隐藏:打造令人惊艳的用户体验

在当今互联网时代,广告已经成为网页中不可忽视的一部分。然而,如何通过巧妙的交互设计,使广告既能吸引用户的眼球,又不会给用户带来干扰,成为了许多前端开发者需要思考的问题之一。在这篇博客中,我们将深入…

vscode文件夹折叠问题

今天发现一个vscode的文件夹显示的问题,首先是这样的,就是我的文件夹里又一个子文件夹,子文件夹里有一些文件,但是我发现无法折叠起这个子文件夹,总是显示全部的文件,这让我备份很难,具体参考 h…

pipeline agent分布式构建

开启 agent rootjenkins:~/learning-jenkins-cicd/07-jenkins-agents# docker-compose -f docker-compose-inbound-agent.yml up -d Jenkins配置添加 pipeline { agent { label docker-jnlp-agent }parameters {booleanParam(name:pushImage, defaultValue: true, descript…

vscode中vue项目引入的组件的颜色没区分解决办法

vscode中vue项目引入的组件的颜色没区分解决办法 图中引入组件和其他标签颜色一样没有区分,让开发者不易区分,很蓝瘦 这个就很直观,解决办法就是你当前的vscode版本不对,你得去找找其他版本,我的解决办法就是去官网历…

Python入门简介及下载安装,超详细教学!

文章目录 一、Python简介:Python解释器的类型Python的运行机制1、查看 Python 版本2、第一个Python3.x程序3、Python 应用 二、Python安装(windows)1、下载2、安装步骤: 三、运行Python1、交互式解释器:扩展&#xff1…

美团外卖APP如何查看使用美团外卖红包优惠券?

美团外卖APP如何查看美团外卖红包优惠券? 1、手机打开美团外卖APP; 2、点击底部我的>我的资产>红包/神券,即可查看到美团外卖红包优惠券; 美团外卖红包优惠券怎么免费领取? 关注「草柴」公众号,回复…

JAVA深化篇_42—— 正则表达式

3 正则表达式 3.1正则表达式介绍 3.1.1 什么是正则表达式 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),是计算机科学的一个概念。正则表达式通常被用来…

【Linux】:进程间通信

进程间通信 一.基本概念二.简单的通信-管道1.建立通信信道2.通信接口 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在,导致进程间的通信成本比较高。 为什么 因为我们有多进程协同的需求。 怎么办 a.进程间通信的本质:必须让不…

新手必看!!STM32定时器简介

一、定时器有哪些? 定时器分为三大类:基本定时器、通用定时器和高级定时器。 二、每个定时器的功能以及使用场景 1. 基本定时器(Basic Timers): 功能: 基本定时器具有较为简单的功能,通常用于…

2023.11.17 hadoop之HDFS进阶

目录 HDFS的机制 edits和fsimage文件 HDFS的存储原理 写入数据原理: 读取数据原理: 元数据简介 元数据存储流程 HDFS安全机制 HDFS归档机制 HDFS垃圾桶机制 接着此前的内容 https://blog.csdn.net/m0_49956154/article/details/134298109?spm1001.2014.3001.5501 …

三菱FX3U小项目—传输带定分级控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连,为了避免运送的物料在1号运输线上堆积,所以启动时,1号运输带开始运行,5S后2号运输带自动启动。停机时顺序与启动刚好相反&#xff0c…

基于数据库(MySQL)与缓存(Redis)实现分布式锁

分布式锁 分布式锁:分布式锁是在分布式的情况下实现互斥类型的一种锁 实现分布式锁需要满足的五个条件 可见性:多个进程都能看到结果互斥性:只允许一个持有锁的对象的进入临界资源可用性:无论何时都要保证锁服务的可用性&#x…