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

win10 wordpress安装教程视频关键词自助优化

win10 wordpress安装教程视频,关键词自助优化,建设智能网站,wordpress如何开启cdn加速服务个人主页:Guiat 归属专栏:Oracle 文章目录 1. Oracle备份恢复概述1.1 为什么备份这么重要?1.2 Oracle备份策略全景图 2. 物理备份详解2.1 冷备份 - 最简单粗暴的方式2.1.1 冷备份的步骤2.1.2 冷备份恢复过程 2.2 热备份 - 不停机的备份艺术2.…

在这里插入图片描述

个人主页: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)"

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

在这里插入图片描述

http://www.dtcms.com/wzjs/133064.html

相关文章:

  • 滨州网站建设腾度百度收录情况
  • 做交通锁具网站免费的行情网站
  • 电子政务网站建设的实验体会合肥网站推广优化
  • 北京网站建设定制google搜索引擎优化
  • 网站建设合同模板下载手机百度高级搜索入口在哪里
  • 新手学做免费网站软件好今天新闻头条
  • 楚雄做网站的公司湖南seo推广
  • 网站建设APP的软件seo专业实战培训
  • 涞源县住房和城乡建设局网站链接地址
  • 学校网站网站建设排名查询
  • 温州网站 公司万网域名注册查询
  • 河北企业建网站百度引擎搜索
  • wordpress标签大全长沙关键词优化平台
  • 网站建设都包括哪些百度客服在线咨询
  • wordpress主题结构seo顾问服务公司
  • 做美容仪器的网站百度搜索趋势
  • 笔杆子写作网站google adwords关键词工具
  • 建设网站需要多久网站检测中心
  • 免费java源代码网站网站底部友情链接代码
  • 天津做网站的网络公司品牌seo主要做什么
  • 新闻发布系统网站模板内容企业推广
  • 购物网站哪里建最好长春网站优化流程
  • 行业 专业 网站建设pc网站优化排名
  • 网站建设有没有做的必要网站推广计划
  • 网站icp备案代理营销中存在的问题及对策
  • dede古典网站模板竞价托管哪家专业
  • 怎么建立一个网站推广seo建设
  • 广东省建设工程安监局网站一键清理加速
  • 自己做qq头像的网站seo渠道
  • 网站建设网络推广武汉网站关键词推广