当前位置: 首页 > news >正文

【Oracle】数据备份与恢复

在这里插入图片描述

个人主页:Guiat
归属专栏:Oracle

在这里插入图片描述

文章目录

  • 1. Oracle备份恢复概述
    • 1.1 为什么备份这么重要?
    • 1.2 Oracle备份策略全景图
  • 2. 物理备份详解
    • 2.1 冷备份 - 最简单粗暴的方式
      • 2.1.1 冷备份的步骤
      • 2.1.2 冷备份恢复过程
    • 2.2 热备份 - 不停机的备份艺术
      • 2.2.1 启用归档模式
      • 2.2.2 表空间级热备份
    • 2.3 RMAN - Oracle的备份神器
      • 2.3.1 RMAN基础配置
      • 2.3.2 完整数据库备份
      • 2.3.3 RMAN备份脚本示例
      • 2.3.4 RMAN备份策略图
  • 3. 逻辑备份详解
    • 3.1 Data Pump - 现代逻辑备份利器
      • 3.1.1 创建Directory对象
      • 3.1.2 使用expdp进行导出
      • 3.1.3 使用impdp进行导入
      • 3.1.4 Data Pump监控和管理
    • 3.2 传统Export/Import工具
      • 3.2.1 Export导出示例
      • 3.2.2 Import导入示例
  • 4. 数据恢复策略
    • 4.1 恢复场景分类
    • 4.2 使用RMAN进行恢复
      • 4.2.1 完整数据库恢复
      • 4.2.2 单个数据文件恢复
      • 4.2.3 基于时间点的恢复
      • 4.2.4 表空间时间点恢复(TSPITR)
    • 4.3 控制文件恢复
      • 4.3.1 从自动备份恢复控制文件
      • 4.3.2 从指定备份恢复控制文件
  • 5. 高级备份恢复技术
    • 5.1 闪回技术
      • 5.1.1 闪回查询
      • 5.1.2 闪回表
      • 5.1.3 闪回删除(回收站)
      • 5.1.4 闪回数据库
    • 5.2 Oracle Data Guard
      • 5.2.1 Data Guard架构
      • 5.2.2 创建物理备用数据库
    • 5.3 零数据丢失恢复设备(ZDLRA)
  • 6. 备份恢复最佳实践
    • 6.1 备份策略设计原则
    • 6.2 3-2-1备份规则
      • 6.2.1 实现3-2-1规则的脚本

正文

1. Oracle备份恢复概述

Oracle数据库的备份与恢复就像给你的数据上了一道保险,万一出现意外情况,你总能有个可靠的退路。无论是硬件故障、人为误操作,还是自然灾害,备份都是你最后的救命稻草。

1.1 为什么备份这么重要?

数据库备份不仅仅是为了防范灾难,更是为了:

  • 保护企业的核心数据资产
  • 满足法律法规和合规性要求
  • 确保业务连续性不中断
  • 提供测试和开发环境的数据源
  • 支持历史数据的归档需求

1.2 Oracle备份策略全景图

Oracle提供了多种备份方式,每种都有自己的特点和适用场景:

Oracle备份策略
物理备份
逻辑备份
冷备份
热备份
RMAN备份
Export/Import
Data Pump
SQL脚本
数据库完全关闭
拷贝所有数据文件
归档模式下
在线备份
Oracle官方工具
增量备份

2. 物理备份详解

2.1 冷备份 - 最简单粗暴的方式

冷备份就是把数据库完全关闭,然后把所有相关文件都拷贝一份。虽然简单,但是对业务影响比较大。

2.1.1 冷备份的步骤

-- 1. 首先查看数据库当前状态
SELECT name, open_mode FROM v$database;-- 2. 查看数据文件位置
SELECT file_name, tablespace_name FROM dba_data_files
UNION ALL
SELECT file_name, tablespace_name FROM dba_temp_files;-- 3. 查看控制文件位置
SELECT name FROM v$controlfile;-- 4. 查看日志文件位置
SELECT member FROM v$logfile;-- 5. 正常关闭数据库
SHUTDOWN IMMEDIATE;

关闭数据库后,在操作系统层面进行文件拷贝:

#!/bin/bash
# 冷备份脚本示例# 设置备份目录
BACKUP_DIR="/backup/cold_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR# 备份数据文件
cp /u01/oradata/ORCL/*.dbf $BACKUP_DIR/
cp /u01/oradata/ORCL/temp01.dbf $BACKUP_DIR/# 备份控制文件
cp /u01/oradata/ORCL/control*.ctl $BACKUP_DIR/# 备份日志文件
cp /u01/oradata/ORCL/redo*.log $BACKUP_DIR/# 备份参数文件
cp $ORACLE_HOME/dbs/spfileORCL.ora $BACKUP_DIR/
cp $ORACLE_HOME/dbs/initORCL.ora $BACKUP_DIR/# 备份密码文件
cp $ORACLE_HOME/dbs/orapwORCL $BACKUP_DIR/echo "冷备份完成,备份位置:$BACKUP_DIR"

2.1.2 冷备份恢复过程

#!/bin/bash
# 冷恢复脚本示例# 停止数据库
sqlplus / as sysdba << EOF
SHUTDOWN ABORT;
EXIT;
EOF# 恢复所有文件
BACKUP_DIR="/backup/cold_backup_20241201_140000"
cp $BACKUP_DIR/*.dbf /u01/oradata/ORCL/
cp $BACKUP_DIR/control*.ctl /u01/oradata/ORCL/
cp $BACKUP_DIR/redo*.log /u01/oradata/ORCL/
cp $BACKUP_DIR/spfileORCL.ora $ORACLE_HOME/dbs/
cp $BACKUP_DIR/orapwORCL $ORACLE_HOME/dbs/# 启动数据库
sqlplus / as sysdba << EOF
STARTUP;
EXIT;
EOF

2.2 热备份 - 不停机的备份艺术

热备份允许在数据库运行时进行备份,但有个前提条件:数据库必须运行在归档模式下。

2.2.1 启用归档模式

-- 检查当前归档模式
SELECT log_mode FROM v$database;-- 如果不是归档模式,需要先设置
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;-- 验证归档模式
SELECT log_mode FROM v$database;
SELECT name, log_mode FROM v$database;

2.2.2 表空间级热备份

-- 开始备份特定表空间
ALTER TABLESPACE USERS BEGIN BACKUP;-- 在操作系统层面拷贝数据文件
-- cp /u01/oradata/ORCL/users01.dbf /backup/hot_backup/-- 结束备份模式
ALTER TABLESPACE USERS END BACKUP;-- 强制日志切换,确保备份一致性
ALTER SYSTEM SWITCH LOGFILE;

完整的热备份脚本:

-- 创建热备份存储过程
CREATE OR REPLACE PROCEDURE hot_backup_all_tablespaces ASCURSOR c_tablespaces ISSELECT tablespace_name FROM dba_tablespaces WHERE status = 'ONLINE' AND contents != 'TEMPORARY';v_backup_dir VARCHAR2(200) := '/backup/hot_backup_' || TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS');v_sql VARCHAR2(4000);
BEGIN-- 创建备份目录DBMS_OUTPUT.PUT_LINE('开始热备份到目录: ' || v_backup_dir);FOR ts IN c_tablespaces LOOPBEGIN-- 开始表空间备份EXECUTE IMMEDIATE 'ALTER TABLESPACE ' || ts.tablespace_name || ' BEGIN BACKUP';DBMS_OUTPUT.PUT_LINE('开始备份表空间: ' || ts.tablespace_name);-- 这里应该调用操作系统命令拷贝文件-- 实际环境中需要结合shell脚本-- 结束表空间备份EXECUTE IMMEDIATE 'ALTER TABLESPACE ' || ts.tablespace_name || ' END BACKUP';DBMS_OUTPUT.PUT_LINE('完成备份表空间: ' || ts.tablespace_name);EXCEPTIONWHEN OTHERS THEN-- 确保即使出错也要结束备份模式BEGINEXECUTE IMMEDIATE 'ALTER TABLESPACE ' || ts.tablespace_name || ' END BACKUP';EXCEPTIONWHEN OTHERS THEN NULL;END;RAISE;END;END LOOP;-- 备份控制文件EXECUTE IMMEDIATE 'ALTER DATABASE BACKUP CONTROLFILE TO ''' || v_backup_dir || '/control_backup.ctl''';-- 强制日志切换EXECUTE IMMEDIATE 'ALTER SYSTEM SWITCH LOGFILE';DBMS_OUTPUT.PUT_LINE('热备份完成!');
END;
/

2.3 RMAN - Oracle的备份神器

RMAN(Recovery Manager)是Oracle官方推荐的备份恢复工具,功能强大且易于管理。

2.3.1 RMAN基础配置

-- 连接到RMAN
$ rman target /-- 查看RMAN配置
RMAN> SHOW ALL;-- 配置备份保留策略
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;-- 配置备份优化
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;-- 配置控制文件自动备份
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;-- 设置备份存储位置
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/%U';

2.3.2 完整数据库备份

-- 完整数据库备份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;-- 带压缩的完整备份
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;-- 增量备份(0级,相当于完整备份)
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;-- 增量备份(1级,只备份变化的块)
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

2.3.3 RMAN备份脚本示例

#!/bin/bash
# RMAN备份自动化脚本# 设置环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH# 设置备份目录
BACKUP_DIR=/backup/rman/$(date +%Y%m%d)
mkdir -p $BACKUP_DIR# 执行备份
rman target / << EOF
RUN {ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT '$BACKUP_DIR/full_%U';ALLOCATE CHANNEL ch2 DEVICE TYPE DISK FORMAT '$BACKUP_DIR/full_%U';BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;BACKUP CURRENT CONTROLFILE FORMAT '$BACKUP_DIR/control_%U';DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1';RELEASE CHANNEL ch1;RELEASE CHANNEL ch2;
}
EXIT;
EOF# 检查备份状态
if [ $? -eq 0 ]; thenecho "RMAN备份成功完成 - $(date)"
elseecho "RMAN备份失败 - $(date)"exit 1
fi

2.3.4 RMAN备份策略图

RMAN备份策略
0级增量备份
1级增量备份
归档日志备份
每周日执行
完整数据备份
每日执行
仅备份变化块
每小时执行
保证恢复连续性
恢复基础
快速恢复

3. 逻辑备份详解

3.1 Data Pump - 现代逻辑备份利器

Data Pump是Oracle推荐的逻辑备份工具,比传统的exp/imp工具性能提升了很多。

3.1.1 创建Directory对象

-- 创建目录对象
CREATE DIRECTORY dpump_dir AS '/backup/datapump';-- 授权给用户
GRANT READ, WRITE ON DIRECTORY dpump_dir TO hr;
GRANT READ, WRITE ON DIRECTORY dpump_dir TO system;

3.1.2 使用expdp进行导出

# 导出整个数据库
expdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=full_db_%U.dmp \LOGFILE=full_db_export.log FULL=Y PARALLEL=4# 导出特定用户
expdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=hr_user.dmp \LOGFILE=hr_export.log SCHEMAS=HR# 导出特定表
expdp hr/password@orcl DIRECTORY=dpump_dir DUMPFILE=employees.dmp \LOGFILE=emp_export.log TABLES=EMPLOYEES# 按查询条件导出
expdp hr/password@orcl DIRECTORY=dpump_dir DUMPFILE=recent_orders.dmp \LOGFILE=orders_export.log TABLES=ORDERS \QUERY='WHERE order_date > SYSDATE-30'

3.1.3 使用impdp进行导入

# 导入整个dump文件
impdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=full_db_01.dmp \LOGFILE=full_db_import.log# 导入到不同用户
impdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=hr_user.dmp \LOGFILE=hr_import.log REMAP_SCHEMA=HR:HR_BACKUP# 导入到不同表空间
impdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=hr_user.dmp \LOGFILE=hr_import.log REMAP_TABLESPACE=USERS:USERS_BACKUP# 只导入表结构,不导入数据
impdp system/password@orcl DIRECTORY=dpump_dir DUMPFILE=hr_user.dmp \LOGFILE=structure_only.log CONTENT=METADATA_ONLY

3.1.4 Data Pump监控和管理

-- 查看正在运行的Data Pump作业
SELECT owner_name, job_name, operation, job_mode, state 
FROM dba_datapump_jobs;-- 连接到正在运行的作业
$ expdp system/password@orcl ATTACH=SYS_EXPORT_FULL_01-- 在交互模式下检查状态
Export> STATUS-- 暂停作业
Export> STOP_JOB-- 继续作业
Export> START_JOB-- 终止作业
Export> KILL_JOB

3.2 传统Export/Import工具

虽然Data Pump更强大,但在某些场景下,传统的exp/imp仍然有用。

3.2.1 Export导出示例

# 导出整个数据库
exp system/password@orcl FILE=full_database.dmp LOG=full_export.log FULL=Y# 导出特定用户
exp system/password@orcl FILE=hr_user.dmp LOG=hr_export.log OWNER=HR# 导出特定表
exp hr/password@orcl FILE=employees.dmp LOG=emp_export.log TABLES=EMPLOYEES# 导出表结构(不包含数据)
exp hr/password@orcl FILE=structure.dmp LOG=structure.log TABLES=EMPLOYEES ROWS=N

3.2.2 Import导入示例

# 导入dump文件
imp system/password@orcl FILE=hr_user.dmp LOG=hr_import.log FROMUSER=HR TOUSER=HR_NEW# 只导入表结构
imp system/password@orcl FILE=hr_user.dmp LOG=structure_import.log ROWS=N# 忽略创建错误继续导入
imp system/password@orcl FILE=hr_user.dmp LOG=hr_import.log IGNORE=Y

4. 数据恢复策略

4.1 恢复场景分类

不同的故障需要不同的恢复策略:

Oracle恢复场景
完全恢复
不完全恢复
实例恢复
介质恢复
基于时间恢复
基于SCN恢复
基于日志序列恢复
实例异常关闭
自动恢复
数据文件损坏
需要备份恢复
恢复到指定时间点
恢复到指定SCN
恢复到指定日志

4.2 使用RMAN进行恢复

4.2.1 完整数据库恢复

-- 完整数据库恢复(数据库关闭状态)
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;-- 检查恢复后的数据库
RMAN> LIST BACKUP SUMMARY;
RMAN> REPORT SCHEMA;

4.2.2 单个数据文件恢复

-- 在线恢复数据文件(数据库开启状态)
RMAN> SQL "ALTER TABLESPACE USERS OFFLINE IMMEDIATE";
RMAN> RESTORE DATAFILE '/u01/oradata/ORCL/users01.dbf';
RMAN> RECOVER DATAFILE '/u01/oradata/ORCL/users01.dbf';
RMAN> SQL "ALTER TABLESPACE USERS ONLINE";-- 离线恢复数据文件
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATAFILE 4;
RMAN> RECOVER DATAFILE 4;
RMAN> ALTER DATABASE OPEN;

4.2.3 基于时间点的恢复

-- 恢复到指定时间点
RMAN> STARTUP MOUNT;
RMAN> RUN {SET UNTIL TIME "TO_DATE('2024-12-01 14:30:00','YYYY-MM-DD HH24:MI:SS')";RESTORE DATABASE;RECOVER DATABASE;
}
RMAN> ALTER DATABASE OPEN RESETLOGS;-- 恢复到指定SCN
RMAN> RUN {SET UNTIL SCN 1000000;RESTORE DATABASE;RECOVER DATABASE;
}
RMAN> ALTER DATABASE OPEN RESETLOGS;

4.2.4 表空间时间点恢复(TSPITR)

-- 执行表空间时间点恢复
RMAN> RECOVER TABLESPACE USERS UNTIL TIME "TO_DATE('2024-12-01 10:00:00','YYYY-MM-DD HH24:MI:SS')"AUXILIARY DESTINATION '/tmp/aux_dest';

4.3 控制文件恢复

4.3.1 从自动备份恢复控制文件

-- 启动到nomount状态
RMAN> STARTUP NOMOUNT;-- 恢复控制文件
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;-- 挂载数据库
RMAN> ALTER DATABASE MOUNT;-- 恢复数据库
RMAN> RECOVER DATABASE;-- 打开数据库(可能需要resetlogs)
RMAN> ALTER DATABASE OPEN RESETLOGS;

4.3.2 从指定备份恢复控制文件

-- 从指定备份片恢复
RMAN> RESTORE CONTROLFILE FROM '/backup/rman/control_c-1234567890-20241201-00';-- 从最新备份恢复
RMAN> RESTORE CONTROLFILE FROM TAG 'weekly_backup';

5. 高级备份恢复技术

5.1 闪回技术

Oracle的闪回技术提供了多种数据恢复选项,无需传统的备份恢复过程。

5.1.1 闪回查询

-- 查看表在指定时间点的数据
SELECT * FROM employees 
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' HOUR);-- 基于SCN的闪回查询
SELECT * FROM employees AS OF SCN 1000000;-- 查看数据变化历史
SELECT employee_id, first_name, last_name, VERSIONS_STARTTIME, VERSIONS_ENDTIME,VERSIONS_OPERATION
FROM employees 
VERSIONS BETWEEN TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY) AND SYSTIMESTAMP
WHERE employee_id = 100;

5.1.2 闪回表

-- 启用表的行移动功能
ALTER TABLE employees ENABLE ROW MOVEMENT;-- 闪回表到指定时间点
FLASHBACK TABLE employees TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' HOUR);-- 闪回表到指定SCN
FLASHBACK TABLE employees TO SCN 1000000;

5.1.3 闪回删除(回收站)

-- 查看回收站内容
SELECT object_name, original_name, type, ts_name, createtime, droptime 
FROM recyclebin;-- 恢复删除的表
FLASHBACK TABLE employees TO BEFORE DROP;-- 恢复删除的表并重命名
FLASHBACK TABLE employees TO BEFORE DROP RENAME TO employees_restored;-- 清空回收站
PURGE RECYCLEBIN;

5.1.4 闪回数据库

-- 启用闪回数据库
ALTER DATABASE FLASHBACK ON;-- 设置闪回恢复区大小
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G;-- 执行数据库闪回
STARTUP MOUNT;
FLASHBACK DATABASE TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' HOUR);
ALTER DATABASE OPEN RESETLOGS;

5.2 Oracle Data Guard

Data Guard提供了高可用性和灾难恢复解决方案。

5.2.1 Data Guard架构

主数据库
Primary
备用数据库
Standby
在线事务处理
生成归档日志
日志传输
Log Transport
日志应用
Log Apply
数据同步
灾难恢复
读取负载均衡

5.2.2 创建物理备用数据库

-- 在主数据库上准备
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/path/to/redo04.log' SIZE 100M;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=standby_db ASYNC VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=standby_db';-- 备份主数据库用于备用库
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;-- 在备用数据库上恢复
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;-- 启动备用数据库
STARTUP MOUNT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

5.3 零数据丢失恢复设备(ZDLRA)

这是Oracle云端的备份服务,提供接近零的数据丢失保护。

-- 配置ZDLRA连接
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/opt/oracle/backup/lib/libra.so, ENV=(ZDLRA_SID=zdlra_db)';-- 备份到ZDLRA
RMAN> BACKUP DATABASE TO DESTINATION 'ZDLRA';-- 从ZDLRA恢复
RMAN> RESTORE DATABASE FROM DESTINATION 'ZDLRA';

6. 备份恢复最佳实践

6.1 备份策略设计原则

一个好的备份策略应该考虑以下因素:

备份策略设计
业务需求分析
技术实现
成本控制
RTO恢复时间目标
RPO恢复点目标
业务重要性
备份频率
备份类型
存储方式
存储成本
网络带宽
人力成本
备份方案
实施部署
监控维护

6.2 3-2-1备份规则

这是业界公认的备份最佳实践:

  • 3份数据拷贝:1份生产数据 + 2份备份
  • 2种不同媒介:本地磁盘 + 远程存储
  • 1份异地备份:防范灾难性事件

6.2.1 实现3-2-1规则的脚本

#!/bin/bash
# 实现3-2-1备份规则的综合脚本# 配置参数
LOCAL_BACKUP="/backup/local"
REMOTE_BACKUP="/backup/remote"
CLOUD_BACKUP="s3://mybucket/oracle-backup"
ORACLE_SID="ORCL"# 本地RMAN备份
echo "开始本地RMAN备份..."
rman target / << EOF
RUN {ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '$LOCAL_BACKUP/rman_%U';BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;BACKUP CURRENT CONTROLFILE FORMAT '$LOCAL_BACKUP/control_%U';RELEASE CHANNEL c1;
}
EOF# 远程备份(使用rsync)
echo "开始远程同步备份..."
rsync -avz --delete $LOCAL_BACKUP/ backup-server:$REMOTE_BACKUP/# 云端备份(使用aws cli)
echo "开始云端备份..."
aws s3 sync $LOCAL_BACKUP $CLOUD_BACKUP --delete# 清理过期备份
echo "清理过期备份..."
rman target / << EOF
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
EOFecho "3-2-1备份完成 - $(date)"

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

相关文章:

  • “候选对话链”(Candidate Dialogue Chain)概念
  • 历年中山大学计算机保研上机真题
  • 【极客日常】分享go开发中wire和interface配合的一些经验
  • DRW - 加密市场预测
  • 多自主水下航行器(AUV)协同围捕策略
  • 蓝桥云课ROS学习C++教程cpp-geeksforgeeks版本
  • 【AI论文】SWE-rebench:一个用于软件工程代理的任务收集和净化评估的自动化管道
  • Cinnamon开始菜单(1):获取应用数据
  • 基于Dify实现各类报告文章的智能化辅助阅读
  • 数据共享交换平台之数据资源目录
  • 大模型登《情报学报》!大模型驱动的学术文本挖掘!
  • 内存管理 : 05 内存换入-请求调页
  • 【萌笔趣棋】网页五子棋项目测试报告
  • unix/linux source 命令,其基本概念、定义、性质、定理
  • 适配器模式:让不兼容接口协同工作
  • 远程管理SSH服务的搭建
  • Java进阶---JVM
  • (javaSE)Java数组进阶:数组初始化 数组访问 数组中的jvm 空指针异常
  • DAY 35 超大力王爱学Python
  • 【AI学习】检索增强生成(Retrieval Augmented Generation,RAG)
  • 阿里云一个域名做两个网站/宁德seo
  • 金华网站建设/网站快速收录
  • 莆田市城厢区建设局网站/谷歌推广真有效果吗
  • 在网站写小说怎么做封面/玉林网站seo
  • 什么网站有教做变蛋的/线上卖货平台有哪些
  • 四平网站seo/如何推广微信公众号