完整教程:Centos7 oracle 11G 搭建ADG

news/2025/11/20 11:15:32/文章来源:https://www.cnblogs.com/yangykaifa/p/19246133

Centos7 oracle 11G R2 搭建ADG

主节点 192.168.46.61 oracleMaster
备节点 192.168.46.62 oracleSlave

1、登录到sysdba 用户

如果不说明则下面的操作都是在此用户下进行操作

sqlplus / as sysdba

2、检查数据库是否启动了强日志模式并且启动归档(主库)

SQL> select name, log_mode, force_logging from v$database;
NAME      LOG_MODE     FOR
--------- ------------ ---
ORCL      NOARCHIVELOG NO

如显示 NO 则当前未启动强日志模式,NOARCHIVELOG 表示当前日志模式未未归档模式

2.1、启动强日志模式(主库)

SQL> alter database force logging;
Database altered.

2.2、开启归档模式(主库)

需要重启实例至mount状态

## 关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size                  2220200 bytes
Variable Size             318771032 bytes
Database Buffers          742391808 bytes
Redo Buffers                5554176 bytes
Database mounted.
## 开启归档模式
SQL> alter database archivelog;
Database altered.
## 打开数据库
SQL> alter database open;
Database altered.
## 检查一下归档是否已开启
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     9
Next log sequence to archive   11
Current log sequence           11

3、创建 standby redolog 日志组(主库)

3.1、首先查询下当前实例日志组个数

SQL> select thread#,group#,bytes/1024/1024 from v$log;THREAD#     GROUP# BYTES/1024/1024
---------- ---------- ---------------1          1              501          2              501          3              50

当前实例日志组个数为3,所以需要至少需要创建(3+1)* 1 = 4组 standby redolog,大小均为50M。

SQL> col member for a50
SQL> select group#,member from v$logfile;GROUP# MEMBER
---------- --------------------------------------------------3 /data/oracle/oradata/orcl/redo03.log2 /data/oracle/oradata/orcl/redo02.log1 /data/oracle/oradata/orcl/redo01.log

3.2、新建4个 standby redolog 日志组,编号从4开始:

路径根据上面的改写,因为每个人的安装位置不同

SQL> alter database add standby logfile group 4 '/data/oracle/oradata/orcl/standby_redo04.log' size 50M;
SQL> alter database add standby logfile group 5 '/data/oracle/oradata/orcl/standby_redo05.log' size 50M;
SQL> alter database add standby logfile group 6 '/data/oracle/oradata/orcl/standby_redo06.log' size 50M;
SQL> alter database add standby logfile group 7 '/data/oracle/oradata/orcl/standby_redo07.log' size 50M;

3.3、查看日志组成员情况

SQL> set pagesize 100
SQL> col member for a60
SQL> select group#,member from v$logfile order by group#;GROUP# MEMBER
---------- ------------------------------------------------------------1 /data/oracle/oradata/orcl/redo01.log2 /data/oracle/oradata/orcl/redo02.log3 /data/oracle/oradata/orcl/redo03.log4 /data/oracle/oradata/orcl/standby_redo04.log5 /data/oracle/oradata/orcl/standby_redo05.log6 /data/oracle/oradata/orcl/standby_redo06.log7 /data/oracle/oradata/orcl/standby_redo07.log
7 rows selected.

查询到的话则表示添加成功

4、⭐️修改 listener.ora 文件 ⭐️

4.1、修改主库的 listener.ora 文件

[oracle@oracleMaster dbs]$ cd $ORACLE_HOME/network/admin/
[oracle@oracleMaster admin]$ vim $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME= orcl.master)(ORACLE_HOME=/data/oracle/product/11.2.0/db_01)(SID_NAME=orcl)))
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = oracleMaster)(PORT = 1521))))
ADR_BASE_LISTENER = /data/oracle

4.2、修改备库的listener.ora 文件

SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME= orcl.slave)(ORACLE_HOME=/data/oracle/product/11.2.0/db_01)(SID_NAME=orcl)))
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = oracleSlave)(PORT = 1521))))
ADR_BASE_LISTENER = /data/oracle

由于我的主库和备库使用不同的 GLOBAL_DBNAME,所以此处和大多数的教程不同,需要根据你安装的 oracle 去修改对应的 GLOBAL_DBNAME、ORACLE_HOME、SID_NAME

4.3、配置说明

LISTENER:

  • 在安装完 oracle 启动监听程序时此配置自动生成

SID_LIST_LISTENER:

  • GLOBAL_DBNAME:对应文件 /home/oracle/response/dbca.rsp 中的 GDBNAME 配置项
  • ORACLE_HOME:为环境变量 /home/oracle/.bash_profile 文件中的 ORACLE_HOME 配置项
  • SID_NAME:对应文件 /home/oracle/response/dbca.rsp 中的SID配置项

也可以通过sql 查询出来

## 查询GLOBAL_NAME
SQL>  select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
ORCL.MASTER
## 查询SID
SQL> show parameter instance_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl

4.4、glocal_name、service_name、oracle_sid区别

glocal_name

对一个数据库的唯一标识,在创建数据库的时候决定,缺省值为db_name.db_domain。在之后对参数文件中db_name 和 db_domain 参数的任何修改都不影响 global_name的值,如果要修改 glocal_name,只能

SQL> alter database rename global_name to 

来进行修改,然后修改相应的参数

service_name

在 oracle 的并行环境中,一个数据库对应多个实例,就需要多个网络服务名,设置比较繁琐。service_name 参数就是为了解决这个问题,该参数对应一个数据库,而不是一个实例,缺省值为 db_name.db_domain,即等于global_name。一个数据库可以对应多个 service_name.

oracle_sid

oracle_sid这个参数是操作系统中用到的,他是描述默认连接的数据库实例。instance_name是数据库参数。而oracle_sid 是操作系统的环境变量,oracle_sid 必须与 instance_name 的值一致。

4.5、重启监听

4.5.1、重启主库
[oracle@oracleMaster admin]$ lsnrctl reload
4.5.2、重启备库
[oracle@oracleSlave admin]$ lsnrctl reload

5、⭐️tnsname.ora文件⭐️

5.1、修改主库tnsname.ora

vim $ORACLE_HOME/network/admin/tnsnames.ora

增加如下配置,原有配置删除修改为下面的配置

PRI =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.46.61)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl.master)))
STY =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.46.62)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl.slave)))

配置解释

5.2、修改备库tnsname.ora

    将主库的配置 copy 过去即可

    scp $ORACLE_HOME/network/admin/tnsnames.ora oracle@oracleSlave:$ORACLE_HOME/network/admin/tnsnames.ora

    5.3、测试连接

    5.3.1、主库
    ## 测试连接
    [oracle@oracleMaster admin]$  tnsping STY
    TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 17-JUL-2023 04:02:58
    Copyright (c) 1997, 2009, Oracle.  All rights reserved.
    Used parameter files:
    /data/oracle/product/11.2.0/db_01/network/admin/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracleSlave)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.slave) (SID = orcl)))
    OK (0 msec)
    5.3.2、备库
    [oracle@oracleSlave admin]$ tnsping PRI

    6、修改 primary pfile

    6.1、创建 pfile 文件

    ## 查看主库 spfile 文件位置
    SQL> show parameter spfile;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    spfile                               string      /data/oracle/product/11.2.0/db_01/dbs/spfileorcl.ora
    ## 创建 pfile 文件用于修改
    SQL> create pfile from spfile;
    File created.

    6.2、修改 pfile 文件

    文件命名方式为initXX.ora XX 为数据库的 SID 通过下面的SQL 查询
    具体的配置参数请参考博客 Oracle 11g Dataguard参数详解

    show parameter instance_name;
    [oracle@oracleMaster dbs]$ vim /$ORACLE_HOME/dbs/initorcl.ora

    log_archive_dest_state_N

    • LOG_ARCHIVE_DEST_n配套使用的参数,默认值为enable

      log_archive_dest_state_1=enable

    log_archive_dest_1

    • 本地数据的配置

    log_archive_dest_(2-N)

    • 备端数据库的配置,可以配置多个序号依次递增

    DB_FILE_NAME_CONVERT

    • 在备库中,该参数允许你逻辑上将数据文件从主库迁移到备库上,如果你使用的是基于磁盘的存储结构并且存储路径在两个系统上并不相同,那么就有必要配置它。
    • 只有在备库切换为主库这期间,该转换才会执行。一旦进行主备切换或者故障切换到备库,这些值就会被写入到控制文件和数据文件头。通过简单的字符替换就可以实现功能。

    LOG_FILE_NAME_CONVERT

    • 它的功能和DB_FILE_NAME_CONVERT参数相同,只不过这里转换的是日志文件,包括ORL文件和任何SRL文件。

    FAL_SERVER

    • 向主库或者任意备库的TNS标识符列表

    • 多个主库或者备库使用逗号间隔

      fal_server=‘PRI,PRI1’

    FAL_CLIENT

    • 发起间隔请求的数据库的TNS名称,当前机器的TNS名称

      fal_client=‘PRI’

    STANDBY_FILE_MANAGEMENT

    • 这个简单的参数只用于物理备库。该参数设置成AUTO的时候,主库中添加和删除数据文件的同时,备库中也会自动的进行相应的更改。

    • 默认情况下,这个参数的值为MANUAL,这意味着备库上的应用进程不会创建新的数据文件,你需要手动创建它们

    • standby_file_management=‘AUTO’

    在 *.undo_tablespace='UNDOTBS1' 下面增加如下参数,文件中不能使用中文等特殊字符不然启动不了

    *.db_unique_name='PRI'
    *.log_archive_config='DG_CONFIG=(PRI,STY)'
    *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=PRI'
    *.log_archive_dest_2='service=STY SYNC REOPEN=15 NET_TIMEOUT=15 valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=STY'
    *.standby_file_management='AUTO'
    *.fal_client='PRI'
    *.fal_server='STY'

    6.3、将pfile文件和密码文件传输到 standby端

    scp initorcl.ora oracle@oracleSlave:/data/oracle/product/11.2.0/db_01/dbs

    重新指定密码

    orapwd file=orapworcl password=123456 force=y

    将密码传输到 standby 端

    scp orapworcl oracle@oracleSlave:$ORACLE_HOME/dbs/orapworcl

    6.4、primary 设置数据库以 pfile启动

    [oracle@oracleMaster dbs]$ sqlplus / as sysdba
    ## 先停掉数据库
    SQL> shutdown immediate
    ## 从刚才修改的 pfile 创建 spfile并重启数据库
    SQL> create spfile from  pfile='/data/oracle/product/11.2.0/db_01/dbs/initorcl.ora';
    File created.
    ## 启动数据库,检查对pfile的修改已经生效:
    SQL> startup
    ORACLE instance started.
    Total System Global Area 1068937216 bytes
    Fixed Size                  2220200 bytes
    Variable Size             318771032 bytes
    Database Buffers          742391808 bytes
    Redo Buffers                5554176 bytes
    Database mounted.
    Database opened.
    ## 查看归档日志
    SQL> archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /data/oracle/oradata/orcl/archive
    Oldest online log sequence     11
    Next log sequence to archive   13
    Current log sequence           13
    上面的 Archive destination 的参数值 /data/oracle/oradata/orcl/archive 可以看出 pfile 已经生效
    ## 查看数据库是否用spfile启动
    SQL> show parameter spfile;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    spfile                               string      /data/oracle/product/11.2.0/db_01/dbs/spfileorcl.ora

    7、修改 standby pfile

    7.1、修改 standby 端初始化参数文件

    vim /$ORACLE_HOME/dbs/initorcl.ora

    在 *.undo_tablespace='UNDOTBS1' 下面替换成如下参数

    *.db_unique_name='STY'
    *.log_archive_config='DG_CONFIG=(STY,PRI)'
    *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=STY'
    *.log_archive_dest_2='service=PRI SYNC REOPEN=15 NET_TIMEOUT=15 valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=PRI'
    *.standby_file_management='AUTO'
    *.fal_client='STY'
    *.fal_server='PRI'
    *.log_archive_dest_state_1=enable
    *.log_archive_dest_state_2=enable

    7.2、设置数据库以 pfile启动

    ## 先停掉数据库
    SQL>  shutdown immediate
    ## 从刚才修改的 pfile 创建 spfile并重启数据库
    SQL> create spfile from  pfile='/data/oracle/product/11.2.0/db_01/dbs/initorcl.ora';
    File created.
    ## 以 nomount 状态启动数据库
    SQL> startup nomount;
    ORACLE instance started.
    Total System Global Area  830930944 bytes
    Fixed Size            2217912 bytes
    Variable Size          641730632 bytes
    Database Buffers      180355072 bytes
    Redo Buffers            6627328 bytes

    7.3、利用RMAN在备库上恢复主库。

    [oracle@oracleSlave orcl]$ rman target sys/123456@PRI auxiliary sys/123456@STY
    Recovery Manager: Release 11.2.0.1.0 - Production on Mon Jul 17 02:17:16 2023
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    connected to target database: ORCL (DBID=1669896784)
    connected to auxiliary database: ORCL (not mounted)

    执行恢复:这个命令可以直接恢复数据文件、standby日志文件和控制文件。

    RMAN> duplicate target database for standby from active database nofilenamecheck;

    退出

    RMAN> quit

    7.4、Open Read Only standby数据库并且开启实时日志应用

    ## 停止数据库
    shutdown immediate
    ## 启动数据库,此时opne_mode 为READ ONLY WITH APPLY
    startup
    ## 查看当前 openmode
    select database_role,protection_mode,protection_level,open_mode from v$database;
    ## 查看归档日志进程
    select process,client_process,sequence#,status from v$managed_standby;
    ## 开启实时日志应用
    recover managed standby database using current logfile disconnect from session;
    ## 查看归档日志进程,此时多了一个进程 MRP0      N/A              20 APPLYING_LOG
    select process,client_process,sequence#,status from v$managed_standby;

    8、检查主库和备库的归档序列号是否一致

    归档,当有部分日志还没有被应用,主要是因为日志还没归档,可以执行

    alter system switch logfile;

    查看当前序列号

    archive log list;

    9、验证数据是否同步

    create table test_sync(id varchar2(100));
    select count(*) from test_sync;
    beginfor i in 1..10000 loopinsert into test_sync values ('ww');end loop;end;/
    commit;

    从库查看数据是否同步过来

    SQL> select count(*) from test_sync;COUNT(*)
    ----------10000

    当前ADG配置完成

    10、adg 打开关闭步骤

    10.1、关闭ADG

    主库shutdown——>备库取消应用归档日志——>关闭备库——>关闭主库和备库的lsnrctl监听。
    1:主库上:SQL> shutdown immediate
    2:备库上:SQL> alter database recover managed standby database cancel;
    3:备库上:SQL> shutdown immediate
    4:主库和备库:
    [oracle@oracleMaster ~]$ lsnrctl stop
    [oracle@oracleSlave ~]$ lsnrctl stop

    10.2、启动adg

    启动主库和备库lsnrctl监听——>启动备库——>启动主库——>切换主库日志
    1:主库和备库:
    [oracle@oracleMaster ~]$ lsnrctl start
    [oracle@oracleSlave ~]$ lsnrctl start
    2:启动备库:
    SQL> startup nomount
    SQL> alter database mount standby database;
    SQL> alter database open read write;
    SQL> alter database recover managed standby database using current logfile disconnect
    3:启动主库:
    SQL> startup
    4:切换主库日志
    SQL> alter system switch logfile;
    备库将开始应用主库传输过来的归档日志。

    10、相关操作

    10.1、查看保护模式

    select database_role,protection_mode,protection_level,open_mode from v$database;

    10.2、查看当前进程

    select process,client_process,sequence#,status from v$managed_standby;

    10.3、查看控制日志同步的参数检查

    select process,client_process,sequence#,status from v$managed_standby;

    10.4、查看日志归档参数

    show parameter log_archive_dest_2

    10.5、查看当前序列号

    archive log list;

    10.6、开启实时日志应用

    SQL> recover managed standby database using current logfile disconnect from session;

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

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

    相关文章

    opentelemetry全链路初探--日志跳转trace

    前言 上一小节描述了metrics、traces,本小节来把log也加进去,并且做一个traces与log的联动当查看日志的时候,可以同时跳转到对应的jaeger,查看分段trace情况应用服务本次要测试的应用服务架构为 a.py-->b.py 业…

    深入解析:020数据结构之优先队列——算法备赛

    深入解析:020数据结构之优先队列——算法备赛pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

    2025年矿用电热风炉生产厂家权威推荐榜单:矿用电热风炉机组/矿井电热风炉/矿用防爆点热风炉源头厂家精选

    随着矿山安全与环保要求的持续提高,矿用电热风炉作为矿井供暖、井口防冻的核心设备,其市场需求稳步增长。据矿山机械行业协会统计,2024年我国矿用供热设备市场规模已突破52亿元,其中电热风炉因零排放、高热效率的特…

    自动模切机厂家哪家专业?行业实力企业解析

    自动模切机厂家哪家专业?行业实力企业解析", "自动模切机作为印后加工、包装生产等领域的关键设备,其性能直接影响产品精度与生产效率。在工业生产中,模切机主要用于对纸张、薄膜、皮革等材料进行精确裁切…

    搞懂对称加密与非对称加密

    前言 在数字时代、数据就像钱一样金贵,甚至有时候比钱还要宝贵。无论是企业做系统开发,还是个人用各种APP,背后总有一堆加密算法在默默撑场子。今天我们就来聊聊什么是对称加密,什么是非对称加密 对称加密与非对称…

    2025 年粘接与复材技术服务优选:上海逸发粘接化工科技有限公司 —— 国际标准落地 + 全产业链赋能,助力制造业合规升级

    行业背景 随着制造业向高端化、国际化转型,粘接与复合材料技术已成为轨道交通、航空航天、汽车等核心领域的关键支撑工艺。EN17460、ISO21368 等国际标准的推行,对行业从业人员的专业资质、企业的技术规范提出了更高…

    隐私计算新突破:同态加密与联邦学习的融合

    隐私计算新突破:同态加密与联邦学习的融合革命 在数据要素价值释放与隐私保护的双重压力下,隐私计算技术正迎来关键突破。2025年11月,香港中文大学AIoT实验室联合多家机构在《Nature Machine Intelligence》发表Lan…

    28、 COALESCE() 空值处理函数

    1、COALESCE() 函数 空值处理函数,用于返回参数列表中第一个非 NULL 的值。COALESCE(value1, value2, ..., valueN)从左到右依次检查每个参数,返回第一个不为 NULL 的值。 如果所有参数都是 NULL,则返回 NULL。如:…

    2025年热门的石油化工活性炭优质厂家推荐榜单

    2025年热门的石油化工活性炭优质厂家推荐榜单行业背景与市场趋势石油化工行业作为国民经济的重要支柱产业,对活性炭的需求持续增长。根据中国活性炭行业协会最新数据显示,2024年我国活性炭市场规模已达85亿元,预计2…

    2025CMDB 平台建设与选型全攻略:从数据治理到智能运维,选对适配企业的配置管理方案

    文章对比主流配置管理平台全栈能力差异,从场景需求匹配视角提供精准选型策略,助力企业筛选适配当前且支撑未来的CMDB厂商方案。01 引言:CMDB—— 动态场景协同的运维核心枢纽 随着企业 IT 架构从 “单一物理设备” …

    2025年质量好的设计感床上用品年度综合评价榜

    2025年质量好的设计感床上用品年度综合评价榜行业背景与市场趋势随着居民生活水平提高和消费升级趋势持续深化,中国家纺行业近年来保持稳健增长态势。据中国家用纺织品行业协会最新数据显示,2024年中国家纺市场规模已…

    2025年工业管式加热炉定做厂家权威推荐榜单:高温管式加热炉/管式加热炉/实验室管式加热炉源头厂家精选

    工业管式加热炉作为材料合成、催化剂测试等工艺的核心设备,其性能直接影响产品质量与能耗指标。据工业加热设备协会2024年统计数据显示,我国管式加热炉市场规模已达87亿元,其中定制化产品占比从2020年的35%提升至20…

    2025年插头立式注塑机源头厂家权威推荐榜单:120吨立式注塑机/管件立式注塑机/立式圆盘注塑机源头厂家精选

    在电子连接器与精密配件制造持续向自动化、高效率方向发展的背景下,插头立式注塑机因其在五金嵌件埋入稳定性、生产节拍紧凑性方面的优势,已成为电源插头、通信线束等产品生产的核心设备。为帮助您精准筛选优质供应商…

    2025年阜阳民事纠纷律师专业口碑推荐榜单

    摘要 随着法治建设的深入推进,阜阳市民事纠纷法律服务行业呈现专业化、精细化的2025年发展趋势。本文基于权威数据分析和用户真实评价,为您推荐当前阜阳地区最值得信赖的民事纠纷律师,并提供专业选择建议。文末附专…

    2025年阜阳民事纠纷律师口碑推荐排行榜单:专业选择指南

    摘要 随着法治建设的深入推进,阜阳地区民事纠纷法律服务行业呈现专业化、精细化发展趋势。2025年数据显示,阜阳市民事纠纷案件年均增长12%,对专业律师的需求持续攀升。本文基于行业数据、客户评价和专业能力等多维度…

    【医学+大数据主题、快至会后4个半月EI检索】第四届公共卫生与数据科学国际学术会议(ICPHDS 2025)

    第四届公共卫生与数据科学国际学术会议(ICPHDS 2025) 2025 4th International Conference on Public Health and Data Science 在这里看会议官网详情 1、ICPHDS 2025已成功通过ACM申请! 2、会后稿件将以ICPHDS 2025…

    2025年阜阳民事纠纷律师专业排名与口碑推荐指南

    摘要 随着法治建设的深入推进,阜阳地区民事纠纷法律服务行业在2025年呈现专业化、精细化发展趋势。根据安徽省律师协会最新数据显示,阜阳民事纠纷案件年增长率达12.5%,对专业律师的需求持续攀升。本文基于权威数据分…

    2025年口碑好的阜阳民事纠纷律师哪家靠谱

    摘要 随着2025年阜阳地区民事纠纷案件的逐年增加,行业数据显示,当地法律咨询服务需求同比增长15%,消费者更倾向于选择口碑好、专业性强的律师。本文基于行业调研和用户反馈,为您推荐排名前十的阜阳民事纠纷律师,并…

    基于串级 PID 实现四旋翼飞行器MATLAB/Simulink仿真

    外环:位置 PID(X-Y-Z)→ 输出期望姿态角; 内环:姿态 PID(滚/俯/偏)→ 输出期望力矩; 电机混控 → 生成 4 个转速 → 动力学模块 → 实时更新位姿; 支持 阶跃/圆周轨迹 与 风扰 注入;Simulink 顶层结构(保存…

    2025年评价高的pvc工业门厂家推荐及选择指南

    2025年评价高的PVC工业门厂家推荐及选择指南 行业背景与市场趋势 随着工业自动化、智能制造的快速发展,工业门作为厂房、仓库、物流中心等场所的关键设施,其市场需求持续增长。根据中国建筑金属结构协会2024年发布…