ORACLE 19C 单实例ADG 主备配置的详细过程

ORACLE 19C ADG的搭建:

所需环境:两台服务器

主库:192.168.100.19 主机名:oracle19c 预装了oracle19c-db软件 监听和库都是正常的
备库:192.168.100.20 主机名:oracle19c-dg 预装了oracle19c-db软件 (无监听,无数据库)

0 最重要的一步,关闭主备库所在操作系统的防火墙和SELINUX


1 修改/etc/hosts文件,将主从的ip和主机名添加进去(主备两边都要做)
192.168.100.19 oracle19c
192.168.100.20 oracle19c-dg

1.1 ping对方主机名看看是否连通
主:ping oracle19c-dg
备:ping oracle19c

2 主库启动到FORCE LOGGING(强制日志)

简单点来说:强制日志就是对数据库中所有的操作都产生日志信息,并将该信息写入到联机重做日志文件中(ONLINE REDO LOG)。FORCE LOGGING默认是不开启的。如果你要是配置ADG的话,那么强制日志必须处于开启状态。

alter database force logging;

select force_logging from v$database;

FORCE_LOGGING
---------------------------------------
YES

看到YES就成功了

如何关闭强制日志:

alter database no force logging;

select force_logging from v$database;

FORCE_LOGGING
---------------------------------------
NO

3 检查主库是否在归档模式下
archive log list;

如果不是的话就设置到归档模式:
使用oracle用户执行下面的创建目录命令
 mkdir -p /u01/app/oracle/oradata/ORCL/arch
 
进入到ORACLE数据库
sqlplus / as sysdba

设置归档目录
alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/ORCL/arch' scope=both;

关闭数据库
shutdown immediate

将数据库启动到mount状态
startup mount

开启归档模式 
alter database archivelog;

启动数据库
alter database open;

再次检查归档状态

archive log list;

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/oradata/ORCL/arch
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5

看到上面信息证明已经开启了。

3.1 给主库添加stand by备用日志组 ,要比现有的日志组多一组。
select  group#, members,  bytes  from v$log;

    GROUP#    MEMBERS      BYTES
---------- ---------- ----------
         1          1  209715200
         2          1  209715200
         3          1  209715200
         
现在我有三组,按照上面的说法那么我的standby日志组就要有四组。standby日志组是给切换以后的备库用的。

select member from v$logfile;(找到你的redo的位置)

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo03.log
/u01/app/oracle/oradata/ORCL/redo02.log
/u01/app/oracle/oradata/ORCL/redo01.log

添加standby日志
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo01.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo02.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo03.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo04.log' size 200M;

select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo03.log
/u01/app/oracle/oradata/ORCL/redo02.log
/u01/app/oracle/oradata/ORCL/redo01.log
/u01/app/oracle/oradata/ORCL/stdredo01.log
/u01/app/oracle/oradata/ORCL/stdredo02.log
/u01/app/oracle/oradata/ORCL/stdredo03.log
/u01/app/oracle/oradata/ORCL/stdredo04.log
添加完成

4 为了让ADG库起到更好的作用,我们需要修改LINUX内核参数。
将这两个参数加入到sysctl.conf文件中并sysctl -p生效(用ROOT用户)
vi /etc/sysctl.conf
net.ipv4.tcp_rmem = 4096    87380   6291456
net.ipv4.tcp_wmem = 4096    16384   4194304
添加后生效
sysctl -p

注:net.ipv4.tcp_r(w)mem含义为:自动优化所使用的接收缓冲区

5 将监听修改为静态监听(强烈推荐。因为我们要加入网络优化参数,如果你不加参数也可以)

切换到监听所在目录(主备库都要做)

cd $ORACLE_HOME/network/admin

vi listener.ora(创建静态监听)这是主库的
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/19c/db_1/)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SDU=32767)      
      (SID_NAME = orcl)
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19c/db_1)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (SEND_BUF_SIZE=1406250)
      (RECV_BUF_SIZE=1406250)
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle

修改完了以后重新加载监听 lsnrctl reload
然后检查监听状态 lsnrctl status

vi listener.ora(创建静态监听)这是备库的

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/19c/db_1/)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SDU=32767)      
      (SID_NAME = orcl)
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19c/db_1)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (SEND_BUF_SIZE=1406250)
      (RECV_BUF_SIZE=1406250)
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-dg)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle

6 修改tnsname.ora文件 主备库都添加下面的内容
注释:这是添加主备库的别名,其中MD代表MASETDATABASE 主库别名;
      SD代表SLAVEDATABASE 备库别名。

vi tnsnames.ora(先修改主库的,里面有东西的话不用管直接添加下列内容)

MD =
  (DESCRIPTION =
    (SDU=32767)
    (SEND_BUF_SIZE=1406250)
    (RECV_BUF_SIZE=1406250)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

SD =
  (DESCRIPTION =
    (SDU=32767)
    (SEND_BUF_SIZE=1406250)
    (RECV_BUF_SIZE=1406250)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-dg)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

vi tnsnames.ora(修改备库的,里面有东西的话不用管直接添加下列内容)

MD =
  (DESCRIPTION =
    (SDU=32767)
    (SEND_BUF_SIZE=1406250)
    (RECV_BUF_SIZE=1406250)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

SD =
  (DESCRIPTION =
    (SDU=32767)
    (SEND_BUF_SIZE=1406250)
    (RECV_BUF_SIZE=1406250)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-dg)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

下列连通性实验必须保证主备库监听都是开启的:
主库在oracle用户下使用:tnsping SD 
[oracle@oracle19c admin]$ tnsping SD

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-FEB-2022 14:47:33

Copyright (c) 1997, 2019, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (SDU=32767) (SEND_BUF_SIZE=1406250) (RECV_BUF_SIZE=1406250) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-dg)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (10 msec)

看到0k就代表成功

备库在oracle用户下使用:tnsping MD
[oracle@oracle19c-dg admin]$ tnsping md

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-FEB-2022 14:47:43

Copyright (c) 1997, 2019, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (SDU=32767) (SEND_BUF_SIZE=1406250) (RECV_BUF_SIZE=1406250) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)

看到OK就代表成功

7 复制密码文件(从主库到备库):
cd $ORACLE_HOME/dbs
scp orapworcl oracle@oracle19c-dg:$ORACLE_HOME/dbs
(传输过程出现这玩意:Are you sure you want to continue connecting (yes/no)?  必须 输入yes)

拷贝完成后测试一下:
sqlplus sys/oracle@MD as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 11 15:57:31 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> exit


8 主库添加下列参数:

alter system set job_queue_processes=10 scope=spfile; --作业进程限制 可加可不加看你具体需求

alter system set db_unique_name='orclmd' scope=spfile; (由于我们使用的是一个高可用集群,所以集群下每个节点都需要有一个唯一名) orclmd=orcl(实例名)md(masterdatabase)

本地监听只会注册你规定好的别名:
alter system set local_listener='MD' scope=spfile;

alter system set global_names=true scope=both; --开启全局名称
 
ALTER DATABASE RENAME GLOBAL_NAME TO orcl; --设置你的全局名称 要和非DG集群时你的实例名保持一致

--db_file_name_convert :在使用数据复制时,指定你的主备库的数据复制路径

alter system set db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL' scope=spfile;

alter system set db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL' scope=spfile;                                     (主库)                           (备库)

如果你的数据文件有多个路径(两个路径:/u01/app/oracle/oradata/ORCL和/u01/app/oracle/oradata/ORCL1)


                                           主库第一个路径                对应的备库的第一路径
alter system set db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL' ,'/u01/app/oracle/oradata/ORCL1','/u01/app/oracle/oradata/ORCL1'scope=spfile;       
主库第二路径                    对应备库第二路径

--log_file_name_convert:在使用数据复制时,指定你的主备库的日志复制路径(online REDO和standby redo)

alter system set log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL/redo' scope=spfile;


--FAL_CLIENT 设定FAL的客户端名称,一般为本地在tnsnames.ora中的别名,改参数只在备库角色时有效,但是ORACLE建议你还是在两边都是要设置,为了方便角色切换。

alter system set fal_client='MD' scope=spfile;

--这个参数设定备库从哪里获取到归档日志,一般设定为对方(如果是主库的就相对于是备库,如果备库的话就相对于是主库)在tnsnames.ora文件里的别名。

alter system set fal_server='SD' scope=spfile;

--启动db接收或发送redo data,包括所有库的db_unique_name

alter system set log_archive_config = 'DG_CONFIG=(orclmd,orclsd)' scope=spfile;

重新指定归档目录
alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/ORCL/arch valid_for=(all_logfiles,all_roles) db_unique_name=orclmd' scope=spfile;

alter system set log_archive_dest_2='service=SD LGWR SYNC AFFIRM valid_for=(all_logfiles,primary_role) db_unique_name=orclsd' scope=spfile;

-归档目录的状态
alter system set LOG_ARCHIVE_DEST_STATE_1='ENABLE';

alter system set LOG_ARCHIVE_DEST_STATE_2='ENABLE';

--该参数控制是否自动在备库中建立主库新建的数据文件
注意以下两点:
1 他不会自动创建日志文件
2 如果数据文件重名会覆盖原有的数据文件

alter system set standby_file_management='AUTO' scope=spfile;

--设置一个叫做orcl的服务
alter system set service_names='orcl' scope=spfile;

--设置归档的进程数据量
alter system set log_archive_max_processes=4 scope=spfile; 

9 修改备库参数

9.1 在主库中把spfile备份出一个pfile出来,方便我们修改
cd $ORACLE_HOME/dbs
strings spfileorcl.ora > orcl_init.ora
scp orcl_init.ora oracle@oracle19c-dg:$ORACLE_HOME/dbs

9.2 进入到备库的$ORACLE_HOME/dbs下
cd $ORACLE_HOME/dbs

vi orcl_init.ora(把这种orcl.__的统统删除)
(修改下列参数)

*.db_unique_name='orclsd'
*.global_names=TRUE
*.local_listener='SD'
*.fal_client='SD'
*.fal_server='MD'
*.log_archive_config='DG_CONFIG=(orclmd,orclsd)' --这个位置不需要修改了
*.log_archive_dest_1='location=/u01/app/oracle/oradata/ORCL/arch valid_for=(all_logfiles,all_roles) db_unique_name=orclsd'
*.log_archive_dest_2='service=MD LGWR SYNC AFFIRM valid_for=(all_logfiles,primary_role) db_unique_name=orclmd'
*.log_archive_format='ARC_%t_%S_%r.arc'  (我主库在开归档时没有改,你们按需修改归档命名格式)


创建归档目录()
mkdir -p /u01/app/oracle/oradata/ORCL/arch
创建adump目录
mkdir -p /u01/app/oracle/admin/orcl/adump
创建redo目录
mkdir -p /u01/app/oracle/oradata/ORCL/redo

备库的参数文件整体信息:
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/app/oracle/oradata/ORCL/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL'
*.db_name='orcl'
*.db_unique_name='orclsd'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.fal_client='SD'
*.fal_server='MD'
*.global_names=TRUE
*.local_listener='SD'
*.log_archive_config='DG_CONFIG=(orclmd,orclsd)'
*.log_archive_dest_1='location=/u01/app/oracle/oradata/ORCL/arch valid_for=(all_logfiles,all_roles) db_unique_name=orclsd'
*.log_archive_dest_2='service=MD LGWR SYNC AFFIRM valid_for=(all_logfiles,primary_role) db_unique_name=orclmd'
*.log_archive_max_processes=4
*.log_file_name_convert='/u01/app/oracle/oradata/ORCL','/u01/app/oracle/oradata/ORCL/redo'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=200m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='orcl'
*.sga_target=700m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'


10 重启主备库监听

11 主备库测试连接(如果你之前已经做过了,那么这一步你也没必要做了)
--主
sqlplus sys/oracle@SD as sysdba

--备
sqlplus sys/oracle@MD as sysdba

12 启动备库到nomount状态(用我们刚才做的那个pfile,如果你之前做完了 这一步就不用再做了)
########################################################
startup nomount pfile='/u01/app/oracle/product/19c/db_1/dbs/orcl_init.ora'

数据库正常启动以后创建spfile
create spfile from  pfile='/u01/app/oracle/product/19c/db_1/dbs/orcl_init.ora';

关闭数据库
shutdown abort
########################################################

这次再将备库启动到nomount状态 spfile文件创建完成
startup nomount


执行这个命名alter system set standby_file_management='MANUAL';防止redo复制时出错
用该命令检查一下参数:SHOW PARAMETER STANDBY_FILE_MANAGEMENT

NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
standby_file_management              string
MANUAL(看到这玩意就是成功了)

13 在主库通过Rman Duplicate创建备库
主库上执行

rman target sys/oracle@MD auxiliary sys/oracle@SD nocatalog    ORACLE用户下执行的


然后开始复制数据库: 
duplicate target database for standby from active database nofilenamecheck;
                     
                     
14 在备库执行此语句代表文件全部传输到此
select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo/redo03.log
/u01/app/oracle/oradata/ORCL/redo/redo02.log
/u01/app/oracle/oradata/ORCL/redo/redo01.log
/u01/app/oracle/oradata/ORCL/redo/stdredo01.log
/u01/app/oracle/oradata/ORCL/redo/stdredo02.log
/u01/app/oracle/oradata/ORCL/redo/stdredo03.log
/u01/app/oracle/oradata/ORCL/redo/stdredo04.log

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/system01.dbf
/u01/app/oracle/oradata/ORCL/sysaux01.dbf
/u01/app/oracle/oradata/ORCL/undotbs01.dbf
/u01/app/oracle/oradata/ORCL/users01.dbf
备库复制完之后已经就是mount状态了

15 到备库开启实时日志应用

alter database open;

alter database recover managed standby database using current logfile disconnect from session;

set pagesize 100

归档日志的应用状态
select sequence# ,applied from v$archived_log;

SEQUENCE# APPLIED
---------- ---------------------------
11 YES
12 YES
13 YES
14 IN-MEMORY(不用去关心)

上述语句执行完毕后,把我们这个老朋友给改回来

alter system set standby_file_management='AUTO';

standby_file_management  --->备库文件管理“AUTO-自动模式,MANUAL-手动模式”

16 主库建表验证是否备库中存在(后面再做。。。。)

17 关闭备库后重新启动
关闭备库:
shutdown immediate

开启备库:
startup

查看备库状态:
select database_role,protection_mode,open_mode from v$database;

SQL> select database_role,protection_mode,open_mode from v$database;

DATABASE_ROLE    PROTECTION_MODE      OPEN_MODE
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM PERFORMANCE  READ ONLY

看到这个状态就说明你成功了

recover managed standby database using current logfile disconnect from session; (备库应用日志进行介质恢复)

SQL> recover managed standby database using current logfile disconnect from session;
Media recovery complete.
SQL>  select database_role,protection_mode,open_mode from v$database;

DATABASE_ROLE    PROTECTION_MODE      OPEN_MODE
---------------- -------------------- --------------------
PHYSICAL STANDBY MAXIMUM PERFORMANCE  READ ONLY WITH APPLY (实时应用日志开启成功)

至此 ADG配置完成
 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[渲染层网络层错误] net::ERR_CONTENT_LENGTH_MISMATCH 问题解决

问题描述 问题背景 微信小程序访问后端img资源的时候,偶尔出现这个感叹号,图片加载不出来,但是对应的url贴出来在浏览器中访问,或者重新加载是可以访问的。 错误描述 经查询前端报错 [渲染层网络层错误] net::ERR_CONTENT_LE…

【C++】踏上C++学习之旅(五):auto、范围for以及nullptr的精彩时刻(C++11)

文章目录 前言1. auto关键字(C11)1.1 为什么要有auto关键字1.2 auto关键字的使用方式1.3 auto的使用细则1.4 auto不能推导的场景 2. 基于范围的for循环(C11)2.1 范围for的语法2.2 范围for的使用条件 3. 指针空值nullptr&#xff0…

springboot2.x使用SSE方式代理或者转发其他流式接口

文章目录 1.需求描述2.代码2.1.示例controller2.2.示例service2.3.示例impl 3.测试 1.需求描述 使用SSE的方式主要还是要跟前端建立一个EventSource的链接,有了这个连接,然后往通道里写入数据流,前端自然会拿到流式数据,写啥拿啥…

“高效开发之路:用Spring MVC构建健壮的企业级应用”

一、SpringMVC框架概念: (一)概述 SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需中间整合层整合。该模块是一个基于MVC的web框架。 作用:只要需要前后端通信,就需要springMVC帮我完成&#xff…

论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer

论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer 1 背景1.1 问题1.2 提出的方法 2 创新点3 方法4 模块4.1 混合注意力模块(HAB)4.2 重叠交叉注意力模块(OCAB)4.3 同任务预训练 5 效果5.1 …

制作gif动图并穿插到CSDN文章中

一、下载LICEcap软件 安装包放在文章末尾 二、双击运行 会出现一个透明框,可以通过左下角的Size来修改画布大小,也可以直接拖动来调整 把透明框拖至自己想放置的位置 点击record进行录制,点击stop暂停,录制完成后给自己的gif图…

新160个crackme - 093-kesan

运行分析 需破解用户名和注册码 PE分析 Delphi程序,32位,无壳 静态分析&动态调试 ida找不到字符串,根据Delphi程序逻辑,双击进入cls_Unit1_TForm1查找 向下翻找后发现4个事件,逐个分析 动调_TForm1_Edit1Change函数…

自己开发得期货资管模拟软件演示1.0.15版仅供学习

期货资管模拟软件演示1.0.15版仅供学习——C技术栈知识分享 本文将以期货资管模拟软件演示1.0.15版为例,分享其基于C技术栈的框架知识。 一、C技术栈在期货交易软件开发中的应用 C作为一种高性能的编程语言,以其强大的内存管理能力和高效的执行速度&a…

详解:字符串常量池

字符串常量池是Java运行时环境(JRE)的一部分,它用于存储字符串字面量。字符串字面量是源代码中直接用双引号括起来的字符串,例如"hello"。在Java中,字符串是不可变的,这意味着一旦创建了一个字符…

三次样条插值算法及推导过程

目录 1、定义 2、已知条件求解 3、具体推导 4、matlab案例 5、案例结果 6、matlab仿真 1、定义 给定 n 1 n1 n1个数据点,共有 n n n个区间,三次样条方程 S ( n ) S(n) S(n)满足以下条件:在每个分段区间内 ( x i , x i 1 ) (x_i,x_{i1}) (…

[数据结构从小白到大牛]第五篇:3分钟带你吃透双链表并用C语言模拟实现

目录 1->前言 2->链表的概念和结构 2.1链表概念 2.2->带头双向循环链表结构 3->模拟实现带头双向循环链表 3.1定义链表结点 struct ListNode 3.2创建链表结点 CreateLTNode 函数 3.3链表初始化函数 ListInit函数 3.4链表打印函数 ListPrint函数 3.5链表…

Rancher的安装

1. 概览 1.1 用户界面优势 Rancher 提供了一个直观的图形用户界面(GUI)。对于不熟悉 Kubernetes 复杂的命令行操作(如使用kubectl)的用户来说,通过 Rancher 的界面可以方便地进行资源管理。例如,用户可以在…

【办公类-04-04】华为助手导出照片视频分类(根据图片、视频的文件名日期导入“年-月-日”文件夹中,并转移到“年-月”文件中整理、转移到“年”文件夹中整理)

背景需求 最近带班,没有时间整理照片,偶尔导一次,几个月的照片。发现用电脑版“华为手机助手“中的WLAN连接”与华为手机的“华为手机助手”连接,速度更快、更稳定,不会出现数据线连接时碰碰就断网的问题 1、先打开电…

CDGP|企业数据治理流程全解析

在当今信息化时代,数据已成为企业最重要的资产之一。为了充分发挥数据的价值,企业需要对数据进行全面、系统的治理。企业数据治理流程是一套确保数据质量、安全性和合规性的规范化流程,涵盖了从数据采集到销毁的全过程。本文将详细介绍一般企…

学习threejs,将多个网格合并成一个网格

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Geometry 几何体1.2 …

Linux 线程控制

一. 线程互斥 1.1 线程互斥相关概念 临界资源:多线程执行流共享的资源就叫做临界资源。临界区:每个线程内部,访问临界资源的代码,就叫做临界区。互斥:任何时刻,互斥保证有且只有一个执行流进入临界区&…

Centos安装ZooKeeper教程(单机版)

本章教程介绍,如何在Centos7中,安装ZooKeeper 3.9.3版本。 一、什么是ZooKeeper ? Apache ZooKeeper 是一个分布式协调服务,用于大型分布式系统中的管理和协调。它为分布式应用提供了一个高性能的通信框架,简化了开发人员在构建复杂分布式系统的任务。ZooKeeper 能够解决一…

企业CRM管理系统PHP源码/PHP客户关系CRM客户管理系统源码

系统功能实现 1、 公海管理:公海类型、客户公海。 2、 线索管理:我的线索、线索列表、线索状态、线索来源。 3、 客户管理:我的客户、客户列表、成交客户、行业类别、预查、地区列表、客户状态、客户级别。 4、 业绩订单:订单列表、我的订单。 5、 系统设置:系统设置…

设置JAVA以适配华为2288HV2服务器的KVM控制台

华为2288HV2服务器比较老旧了,其管理控制台登录java配置比较麻烦,华为的ibmc_kvm_client_windows客户端测试了几个版本,连接控制台也有问题,最终安装JDK解决。 一、测试环境 主机为WindowsServer2012R2,64位系统 二、Java软件包…