通过Oracle 逻辑DG 实现数据库滚动升级

通过Oracle逻辑DG实现数据库滚动升级系统环境:操作系统:RedHatEL5Oracle:Oracle10gR2对于Oracle数据库的升级,一般需要长时间shutdowndatabase;升级的时间会

 三、主备库Switchover

  注意:对于升级完成的备库,以下参数不能修改(全部升级完成后再修改)

升级后的版本:

SQL> select * from v$version;

BANNER

—————————————————————-

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Prod

PL/SQL Release 10.2.0.4.0 – Production

CORE    10.2.0.4.0      Production

TNS for Linux: Version 10.2.0.4.0 – Production

NLSRTL Version 10.2.0.4.0 – Production

如果修改后,在做switchover时会出现以下错误:

wKioL1NM43zTjTbTAAQgGx0bdFM097.jpg

switchover 前准备:

查看主备库是否同步:

主库:

14:38:08 SYS@ test1>select count(*) from scott.emp1;

 COUNT(*)

———-

       33

Elapsed: 00:00:00.00

14:38:13 SYS@ test1>alter system switch logfile;

System altered.

Elapsed: 00:00:05.03

14:38:22 SYS@ test1>select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

TEST1     PRIMARY          MAXIMUM PERFORMANCE  TO STANDBY

Elapsed: 00:00:00.13

14:40:27 SYS@ test1>

备库:

SQL> alter database start logical standby apply immediate;

Database altered.

SQL> show parameter comp

NAME                                 TYPE        VALUE

———————————— ———– ——————————

compatible                           string      10.2.0

nls_comp                             string

plsql_compiler_flags                 string      INTERPRETED, NON_DEBUG

plsql_v2_compatibility               boolean     FALSE

SQL> select count(*) from scott.emp1;

 COUNT(*)

———-

       30

SQL> /

 COUNT(*)

———-

       33

SQL> select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

SHDB      LOGICAL STANDBY  MAXIMUM PERFORMANCE  NOT ALLOWED

备库切换前准备:

SQL> alter database prepare to switchover to primary;

Database altered.

SQL> select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

SHDB      LOGICAL STANDBY  MAXIMUM PERFORMANCE  PREPARING SWITCHOVER

SQL>

主库切换前准备:

14:40:27 SYS@ test1>alter database prepare to switchover to logical standby;

Database altered.

Elapsed: 00:00:00.04

14:42:06 SYS@ test1>select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

TEST1     PRIMARY          MAXIMUM PERFORMANCE  PREPARING SWITCHOVER

Elapsed: 00:00:00.00

在备库做prepare switchover 后,主库状态:

14:42:11 SYS@ test1>/

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

TEST1     PRIMARY          MAXIMUM PERFORMANCE TO LOGICAL STANDBY

Elapsed: 00:00:00.01

14:43:38 SYS@ test1>

主库切换:

14:43:38 SYS@ test1>alter database commit to switchover to logical standby;

Database altered.

Elapsed: 00:00:31.50

14:45:01 SYS@ test1>

14:45:01 SYS@ test1>select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

TEST1     LOGICAL STANDBY  MAXIMUM PERFORMANCE  NOT ALLOWED

切换过程主库告警日志:

ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY (test1)

Tue Apr 15 14:44:30 2014

LOGSTDBY: Ensuring no active hot backups.

LOGSTDBY: Disabling job queue processes.

LOGSTDBY: Enabling database guard to prevent new transactions.

Tue Apr 15 14:44:30 2014

Waiting for transactions in flight at scn 0x0000.0004ebee to complete

LNS1 started with pid=16, OS id=3161

Tue Apr 15 14:44:37 2014

Thread 1 advanced to log sequence 69

 Current log# 3 seq# 69 mem# 0: /u01/app/oracle/oradata/test1/redo03a.log

Tue Apr 15 14:44:37 2014

ARCH: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2

ARCH: Standby redo logfile selected for thread 1 sequence 68 for destination LOG_ARCHIVE_DEST_2

Tue Apr 15 14:44:37 2014

LOGSTDBY: Waiting for pending archivals to dest [2].

Tue Apr 15 14:44:37 2014

LNS: Standby redo logfile selected for thread 1 sequence 69 for destination LOG_ARCHIVE_DEST_2

LNS1 started with pid=16, OS id=3163

Tue Apr 15 14:44:43 2014

ARCH: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2

Tue Apr 15 14:44:43 2014

Thread 1 advanced to log sequence 70

 Current log# 1 seq# 70 mem# 0: /u01/app/oracle/oradata/test1/redo01a.log

Tue Apr 15 14:44:43 2014

ARCH: Standby redo logfile selected for thread 1 sequence 69 for destination LOG_ARCHIVE_DEST_2

LOGSTDBY: Verifying receipt of EOR logfile on log archive destination [2].

Tue Apr 15 14:44:43 2014

LOGSTDBY: Verified EOR logfile archival to dest [2].

Tue Apr 15 14:44:44 2014

LNS: Standby redo logfile selected for thread 1 sequence 70 for destination LOG_ARCHIVE_DEST_2

Tue Apr 15 14:44:55 2014

Thread 1 cannot allocate new log, sequence 71

Checkpoint not complete

 Current log# 1 seq# 70 mem# 0: /u01/app/oracle/oradata/test1/redo01a.log

LNS1 started with pid=16, OS id=3166

Tue Apr 15 14:45:01 2014

Shutting down archive processes

Tue Apr 15 14:45:01 2014

Thread 1 advanced to log sequence 71

 Current log# 2 seq# 71 mem# 0: /u01/app/oracle/oradata/test1/redo02a.log

Tue Apr 15 14:45:01 2014

LOGSTDBY: Switchover complete (test1)

Tue Apr 15 14:45:01 2014

Completed: alter database commit to switchover to logical standby

Tue Apr 15 14:45:02 2014

LNS: Standby redo logfile selected for thread 1 sequence 71 for destination LOG_ARCHIVE_DEST_2

Tue Apr 15 14:45:06 2014

ARCH shutting down

ARC3: Archival stopped

备库切换过程告警日志:

RFS[1]: Possible network disconnect with primary database

Tue Apr 15 14:44:37 2014

Redo Shipping Client Connected as PUBLIC

— Connected User is Valid

RFS[4]: Assigned to RFS process 3189

RFS[4]: Identified database type as ‘logical standby’

Tue Apr 15 14:44:37 2014

RFS LogMiner: Client enabled and ready for notification

RFS[4]: Successfully opened standby log 5: ‘/u01/app/oracle/oradata/sh/std_redo05a.log’

Tue Apr 15 14:44:37 2014

RFS LogMiner: Client enabled and ready for notification

Tue Apr 15 14:44:37 2014

LOGMINER: Archived logfile found, transition to mining logfile: /u01/arch_sh1arch_1_68_797856158.log

Tue Apr 15 14:44:37 2014

RFS LogMiner: Registered logfile [/u01/arch_sh1arch_1_68_797856158.log] to LogMiner session id [21]

腾讯智影-AI数字人 腾讯智影-AI数字人

基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播

腾讯智影-AI数字人 73 查看详情 腾讯智影-AI数字人

Tue Apr 15 14:44:37 2014

Redo Shipping Client Connected as PUBLIC

— Connected User is Valid

RFS[5]: Assigned to RFS process 3191

RFS[5]: Identified database type as ‘logical standby’

Tue Apr 15 14:44:37 2014

RFS LogMiner: Client enabled and ready for notification

RFS[5]: Successfully opened standby log 4: ‘/u01/app/oracle/oradata/sh/std_redo04a.log’

RFS[5]: Possible network disconnect with primary database

Tue Apr 15 14:44:37 2014

LOGMINER: End mining logfile: /u01/arch_sh1arch_1_68_797856158.log

Tue Apr 15 14:44:37 2014

LOGMINER: Log Auto Delete – deleting: /u01/arch_sh1arch_1_67_797856158.log

Deleted file /u01/arch_sh1arch_1_67_797856158.log

Tue Apr 15 14:44:43 2014

Redo Shipping Client Connected as PUBLIC

— Connected User is Valid

RFS[6]: Assigned to RFS process 3193

RFS[6]: Identified database type as ‘logical standby’

Tue Apr 15 14:44:43 2014

RFS LogMiner: Client enabled and ready for notification

RFS[6]: Successfully opened standby log 4: ‘/u01/app/oracle/oradata/sh/std_redo04a.log’

Tue Apr 15 14:44:43 2014

RFS LogMiner: Client enabled and ready for notification

Tue Apr 15 14:44:43 2014

LOGMINER: Begin mining logfile for session 21 thread 1 sequence 69, /u01/app/oracle/oradata/sh/std_redo04a.log

Tue Apr 15 14:44:43 2014

LOGMINER: End mining logfile: /u01/app/oracle/oradata/sh/std_redo04a.log

Tue Apr 15 14:44:43 2014

RFS LogMiner: Registered logfile [/u01/arch_sh1arch_1_69_797856158.log] to LogMiner session id [21]

Tue Apr 15 14:44:43 2014

LOGSTDBY: Shutdown acknowledged

LOGSTDBY Analyzer process P003 pid=27 OS id=3153 stopped

LOGSTDBY Apply process P004 pid=28 OS id=3155 stopped

LOGSTDBY Apply process P005 pid=29 OS id=3157 stopped

LOGSTDBY Apply process P006 pid=30 OS id=3159 stopped

LOGSTDBY Apply process P007 pid=31 OS id=3161 stopped

LOGSTDBY Apply process P008 pid=32 OS id=3163 stopped

Tue Apr 15 14:44:44 2014

LOGMINER: Log Auto Delete – deleting: /u01/arch_sh1arch_1_68_797856158.log

Deleted file /u01/arch_sh1arch_1_68_797856158.log

Tue Apr 15 14:44:44 2014

LOGSTDBY status: ORA-16257: Switchover initiated stop apply successfully completed

Tue Apr 15 14:44:44 2014

Redo Shipping Client Connected as PUBLIC

— Connected User is Valid

RFS[7]: Assigned to RFS process 3195

RFS[7]: Identified database type as ‘logical standby’

Primary database is in MAXIMUM PERFORMANCE mode

Tue Apr 15 14:44:44 2014

RFS LogMiner: Client enabled and ready for notification

Primary database is in MAXIMUM PERFORMANCE mode

RFS[7]: Successfully opened standby log 4: ‘/u01/app/oracle/oradata/sh/std_redo04a.log’

RFS[7]: Possible network disconnect with primary database

Redo Shipping Client Connected as PUBLIC

— Connected User is Valid

RFS[8]: Assigned to RFS process 3197

RFS[8]: Identified database type as ‘logical standby’

Primary database is in MAXIMUM PERFORMANCE mode

Tue Apr 15 14:45:02 2014

RFS LogMiner: Client enabled and ready for notification

Primary database is in MAXIMUM PERFORMANCE mode

RFS[8]: Successfully opened standby log 5: ‘/u01/app/oracle/oradata/sh/std_redo05a.log’

主库切换完成后,备库状态:

SQL> select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

SHDB      LOGICAL STANDBY  MAXIMUM PERFORMANCE  PREPARING SWITCHOVER

SQL> /

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

SHDB      LOGICAL STANDBY  MAXIMUM PERFORMANCE  TO PRIMARY

SQL>

备库切换:

SQL> alter database commit to switchover to primary;

Database altered.

SQL> select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

SHDB      PRIMARY         MAXIMUM PERFORMANCE  SESSIONS ACTIVE

SQL>

备库切换过程告警日志:

ALTER DATABASE SWITCHOVER TO PRIMARY (sh)

Tue Apr 15 14:48:31 2014

RFS LogMiner: Client enabled and ready for notification

Tue Apr 15 14:48:31 2014

LOGMINER: WARNING: registered partial log file /u01/arch_sh1arch_1_70_797856158.log

Tue Apr 15 14:48:31 2014

RFS LogMiner: Registered logfile [/u01/arch_sh1arch_1_70_797856158.log] to LogMiner session id [21]

LOGSTDBY Event: Starting SCN of new stream from seeded lockdown [0x0000.00071f8b]

LOGSTDBY Event: Successful close of the current log stream:

LOGSTDBY Event:   primary:       [1174898526]

LOGSTDBY Event:   first scn:     [0x0000.00046d38]

LOGSTDBY Event:   end scn:       [0x0000.0004ebf8]

LOGSTDBY Event:   processed scn: [0x0000.0004ebf9]

LNS1 started with pid=20, OS id=3209

Tue Apr 15 14:48:34 2014

ARCH: LGWR is scheduled to archive destination LOG_ARCHIVE_DEST_2 after log switch

Tue Apr 15 14:48:34 2014

ARC0: STARTING ARCH PROCESSES

Tue Apr 15 14:48:34 2014

Thread 1 advanced to log sequence 30 (LGWR switch)

 Current log# 3 seq# 30 mem# 0: /u01/app/oracle/oradata/sh/redo03a.log

Tue Apr 15 14:48:34 2014

ARC3: Archival started

ARC0: STARTING ARCH PROCESSES COMPLETE

ARC3 started with pid=20, OS id=3211

Tue Apr 15 14:49:24 2014

ARCH: Standby redo logfile selected for thread 1 sequence 29 for destination LOG_ARCHIVE_DEST_2

Completed: alter database commit to switchover to primary

Tue Apr 15 14:49:28 2014

Starting background process CJQ0

CJQ0 started with pid=23, OS id=3215

主库日志:

RFS[4]: Assigned to RFS process 3177

RFS[4]: Identified database type as ‘logical standby’

Tue Apr 15 14:48:34 2014

RFS LogMiner: Client enabled and ready for notification

Tue Apr 15 14:49:24 2014

RFS[4]: Successfully opened standby log 4: ‘/u01/app/oracle/oradata/test1/std_redo04a.log’

Tue Apr 15 14:49:25 2014

RFS LogMiner: Client enabled and ready for notification

Tue Apr 15 14:49:29 2014

RFS LogMiner: Registered logfile [/disk1/arch_test1/arch_1_29_844857742.log] to LogMiner session id [21]

四、switchover 成功后,升级原主库:

原主库:

14:47:27 SYS@ test1>select name,database_role,protection_mode,switchover_status from v$database;

NAME      DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

——— —————- ——————– ——————–

TEST1     LOGICAL STANDBY MAXIMUM PERFORMANCE  NOT ALLOWED

Elapsed: 00:00:00.00

数据库版本:

14:54:26 SYS@ test1>select * from v$version;

BANNER

—————————————————————-

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Prod

PL/SQL Release 10.2.0.1.0 – Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 – Production

NLSRTL Version 10.2.0.1.0 – Production

原备库数据库版本:

SQL> select * from v$version;

BANNER

—————————————————————-

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Prod

PL/SQL Release 10.2.0.4.0 – Production

CORE    10.2.0.4.0      Production

TNS for Linux: Version 10.2.0.4.0 – Production

NLSRTL Version 10.2.0.4.0 – Production

    @原主库的升级,本案例就不在重复讲述,切换成功后,,滚动升级应该到此已成功!

本文出自 “天涯客的blog” 博客,请务必保留此出处

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/560317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何关闭Win10易升?Win10系统易升的关闭方法
上一篇 2025年11月10日 00:45:18
javascript怎么判断字符串以什么开头
下一篇 2025年11月10日 00:45:22

相关推荐

  • 在Linux中如何通过命令行安装Java JDK

    在Linux中安装Java JDK可通过包管理器或手动安装,推荐使用系统自带工具安装OpenJDK。对于Ubuntu/Debian系统,先更新软件包列表:sudo apt update,再搜索可用版本:apt search openjdk-*,然后安装指定版本如OpenJDK 17:sudo apt…

    2026年9月20日
    000
  • 如何配置Scala与Java混合开发环境 Scala环境与JDK整合方法

    配置Scala与Java混合开发环境的关键是安装JDK、Scala并统一管理依赖。1. 安装JDK 8或11,配置JAVA_HOME和PATH;2. 安装Scala并设置SCALA_HOME;3. 使用SBT创建项目,配置build.sbt,组织src目录;4. 在IntelliJ IDEA中安装S…

    2026年9月20日
    100
  • 如何在Laravel中实现数据加密

    在laravel中实现数据加密的最直接且推荐方式是使用内置的crypt门面,其基于openssl并默认采用aes-256算法,通过app_key进行加解密。1. 使用crypt::encryptstring()或crypt::encrypt()对字符串或数组/对象进行加密;2. 使用crypt::d…

    2026年9月13日
    100
  • 如何在mysql中迁移分区表数据

    答案:MySQL分区表数据迁移需确保结构兼容性和数据完整性,常用方法包括:1. 使用INSERT INTO…SELECT迁移数据,要求目标表已存在且WHERE条件匹配分区范围;2. 通过mysqldump导出导入,适用于跨实例迁移,操作简单但大表性能差;3. 模拟EXCHANGE PAR…

    2026年9月10日
    100
  • thinkphp8相比thinkphp6有哪些新特性

    ThinkPHP8在性能、架构、功能和开发体验上全面升级,采用全新模块化架构,优化路由解析与数据库查询,提升响应速度;支持PHP 8.0+新特性,代码更简洁高效;增强中间件、路由、模型及验证功能,强化安全防护;兼容TP6代码,无缝升级,降低迁移成本。 ThinkPHP8 相比 ThinkPHP6 进…

    2026年9月10日
    400
  • 真我 realme 手机全球累计出货量突破 3 亿台,7 年实现跨越式增长

    8 月 5 日消息,真我(realme)副总裁、全球营销总裁及中国区负责人徐起在社交平台透露:真我手机全球累计销量已正式突破 3 亿台。这一里程碑式的成就,标志着这家仅成立七年的智能手机品牌再度刷新行业纪录,迈入全新的发展阶段。 真我 realme 始于 2018 年,始终坚持“敢越级”的品牌理念,…

    2026年9月10日
    100
  • Oracle DATE类型的时间组件处理与日期存储策略

    Oracle数据库的`DATE`数据类型始终包含日期和时间组件,即使未明确指定时间,系统也会默认填充午夜(00:00:00)。因此,当期望只存储日期时,实际存储的仍会包含时间部分。本文将深入探讨这一特性,并提供在SQL查询和应用程序层面有效管理和显示日期(不含时间)的策略,强调应通过格式化而非尝试修…

    2026年9月9日
    200
  • mysql中如何审计用户操作

    答案:MySQL审计可通过企业版插件、通用日志、触发器或外部工具实现。使用MySQL Enterprise Audit插件可详细记录登录与操作行为;社区版可启用general_log记录所有SQL语句,但影响性能;关键表可创建审计表和触发器追踪DML变更;还可结合Percona、ProxySQL或E…

    2026年9月9日
    100
  • 阿里吴泳铭最新演讲:实现超级人工智能 ASI 的三个阶段

    阿里吴泳铭最新演讲:实现超级人工智能 ASI 的三个阶段阿里吴泳铭最新演讲:实现超级人工智能 ASI 的三个阶段阿里吴泳铭最新演讲:实现超级人工智能 ASI 的三个阶段阿里吴泳铭最新演讲:实现超级人工智能 ASI 的三个阶段

    9 月 24 日,在杭州召开的云栖大会上,阿里巴巴集团 ceo、阿里云智能集团董事长兼 ceo 吴泳铭发表主旨演讲,他认为实现通用人工智能 agi 已是确定性事件,但这只是起点,终极目标是发展出能自我迭代、全面超越人类的超级人工智能 asi。 吴泳铭首次系统阐述了通往 ASI 的三阶段演进路线: 第…

    2026年9月9日 用户投稿
    200
  • 如何在安装完成后配置表空间管理

    首先创建表空间并指定存储路径与大小,Oracle和PostgreSQL通过CREATE TABLESPACE命令实现;接着可为用户设置默认表空间,避免每次建表显式指定;然后在建表时可通过TABLESPACE子句指定对象存储位置;定期使用系统视图或函数监控表空间使用情况,防止空间不足;当空间紧张时,可…

    2026年9月9日
    000
  • 什么是mysql数据库及其基本概念

    MySQL是开源关系型数据库,基于SQL操作,用于Web开发;包含数据库、表、行、列等基本概念,支持主键唯一标识和外键关联表,常用SQL语句包括SELECT、INSERT、UPDATE、DELETE,广泛应用于电商、博客等需数据持久化与一致性的场景。 MySQL 是一种广泛使用的关系型数据库管理系统…

    2026年9月8日
    100
  • OpenJPA与Oracle:解决4000字节字符串限制警告

    当openjpa在oracle数据库环境中记录“warn: … is being mapped with a handler that may not be able to store values over 4000 bytes/chars long”警告时,这通常意味着实体中某个字符…

    2026年9月8日
    000
  • 数据量大的App制作,数据库如何选型?

    在开发处理大量数据的应用程序时,数据库的选择至关重要。选择一个合适的数据库不仅能确保数据的存储效率和安全性,还能提升应用程序的整体性能和用户体验。以下将从几个关键方面探讨如何为数据量大的app选择合适的数据库。 首先,考虑数据量的大小。 对于数据量庞大的应用程序,首要考虑的是数据库的存储能力和扩展性…

    2026年9月7日
    000
  • 数据库增删改查基本语句是什么?

    数据库中增删改查基本语句:“INSERT INTO 表名 字段列表 VALUES (值列表)”,“DELETE FROM 表名 WHERE子句”,“UPDATE 表名 SET 列=值 WHERE子句”,“SELECT * FROM 表名”。 (推荐教程:mysql视频教程) 数据库增删改查基本语句 …

    2026年9月7日
    000
  • Swoole进阶:掌握事件循环机制与实现

    随着web应用变得越来越复杂,对持续高并发和低延迟的需求也越来越高。这意味着传统的请求-响应式编程模型已经无法满足需求。这时候,异步编程和事件驱动编程就成为了非常重要的工具,swoole提供了这两种编程模型的支持。这篇文章将介绍swoole的事件循环机制以及如何实现它。 什么是事件循环?事件循环是一…

    用户投稿 2026年9月7日
    000
  • 如何使用ThinkPHP6实现邮件发送

    随着电子邮件在日常生活中的广泛应用,很多网站和应用程序都需要实现邮件发送功能。thinkphp6提供了很方便的方式来实现邮件发送功能,并且支持多种邮件服务商。 本文将介绍如何使用ThinkPHP6框架来实现邮件发送功能。 配置邮件发送参数 ThinkPHP6的邮件发送功能需要在应用的.env文件中配…

    用户投稿 2026年9月7日
    100
  • WebMan技术在电子商务网站中的应用

    WebMan技术在电子商务网站中的应用 随着互联网的快速发展,电子商务成为了商业活动的主要形式之一。通过电子商务网站,商家能够方便地展示和销售他们的产品或服务。为了提供用户友好的界面和高效的交互体验,WebMan技术成为了不可或缺的组成部分。本文将介绍WebMan技术在电子商务网站中的应用,并提供相…

    2026年9月7日
    1000
  • 如何使用ThinkPHP6实现拦截器

    随着互联网技术的不断发展和应用,网站的访问量越来越大。为了保证网站的稳定性和安全性,我们需要添加各种安全层面的保护。拦截器是其中一个非常实用的技术手段,它可以在用户访问某个页面之前拦截请求,进行特定的处理,从而达到控制访问权限的目的。本文将介绍如何使用thinkphp6实现拦截器。 环境准备 在开始…

    用户投稿 2026年9月7日
    100
  • 利用ThinkPHP6实现云存储

    在当下的互联网应用中,对于文件存储和传输的需求越来越高。云存储成为了一种越来越流行的解决方案,本文将介绍如何利用thinkphp6框架实现云存储。 一、什么是云存储 云存储是将数据存储在云计算平台上的一种方式,它可以在不同的设备之间进行数据共享和传输。相较于传统的本地存储方式,云存储具有以下几个优势…

    用户投稿 2026年9月7日
    000
  • 如何使用ThinkPHP6实现动态路由

    thinkphp6是一个开源的php框架,它提供了许多便捷的功能来帮助开发者快速构建web应用程序。其中一个强大的功能就是动态路由。本文将介绍如何使用thinkphp6实现动态路由。 什么是动态路由? 路由是指将URL请求映射到应用程序的特定部分的过程。在静态路由中,URL路径与应用程序的路由规则一…

    用户投稿 2026年9月7日
    000

发表回复

登录后才能评论
关注微信