DataGuard(一主一备一级联之failover)

2023-11-09


fail over

1 failover介绍

 

failover转换,主要考虑的是如何减少数据量的丢失,如果可以允许数据丢失,可以直接切换备库为主库,不必在进行下面的讨论!

 

 

减少数据的丢失,实际就是弥补日志数据没有传递的问题

在11g中,推出了日志手工flush的功能,来弥补日志数据没有传递的问题。前提是主库能启动到mount 状态。Flush 可以把没有发送的归档和current online redo 发送到备库。

SQL> startup mount                    

SQL> alter system flush redo to 'orclps1';

注意:这个过程并不会经常成功执行,而且在10g这样的版本下也没有办法自动flush redo。解决的方法也是有的,就是从Primary目录中,将日志拷贝到Standby端,手工去加载。

 

另外failover之后,原主库如何重建为备库:

1.利用flashback database将原主库恢复到failover之前的时间点,前提是开启flashback on。

2.rman备份恢复,如果有failover之前的备份,可以先恢复到之前时间点,然后在将主库转为备库。

3.环境重建,最简单的方法,删除原主库,再搭建新的备库。

 

备库转为主库的时间戳

select to_char(standby_became_primary_scn) from v$database;

常用于数据库开启了flashback on后原主库闪回到备库切换为主库的时间点,以保证原主库切换为新备库后还能继续和新主库同步并应用日志。

 

下面介绍一下后面的实验

实验一:利用11g新功能flush redo同步数据,减少数据丢失。

实验二:当主库宕机后,无法启动到mount时,通过拷贝主库归档和在线日志到备库注册加载,减少数据量的丢失。(当然,如果运气好,注册后就能应用)

 

2 实验一:failover之flush redo同步数据

现数据库环境如下

节点

网络ip地址

数据库名

unique name

数据库实例名

数据文件位置

zyx.test.com(备库)

192.168.11.111

orcl

orcl

test

/u01/app/oracle/oradata/orcl/

orcl.test.com(主库)

192.168.11.22

orcl

orclps

orclps

/u01/app/oracle/oradata/orcl/

dg2.orcl.com(级联库)

192.168.11.23

orcl

orclstd

orclstd

/u01/app/oracle/oradata/orcl/

 

----实验中,将主库failover为备库,级联库不变(为了后续实验,主库备库级联库都开启flashback)

 

2.1 环境准备

----首先,orclps主库开启flahback

sys@ORCL>shut immediate

sys@ORCL>startup mount

sys@ORCL> alter database flashback on;

sys@ORCL>alter database open;

sys@ORCL>select name,flashback_on from v$database;

----备库orcl开启flashback

sys@ORCL> alter database recover managed standby database cancel;

sys@ORCL>shut immediate

sys@ORCL>startup mount

sys@ORCL> alter database flashback on;

sys@ORCL>alter database open;

sys@ORCL>alter database recover managed standby database using current logfile disconnect;

----级联库orclstd开启flashback

SQL> alter database recover managed standby database cancel;

SQL> shut immediate

SQL> startup mount

SQL> alter database flashback on;

SQL> alter database recover managed standby database using current logfile disconnect;

 

2.2 模拟故障

----备库orcl关闭网络,然后在主库上创建表插入数据并提交

service network stop

 

----此时主库状态

sys@ORCL>select database_role,switchover_status,db_unique_name  from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS    DB_UNIQUE_NAME

---------------- -------------------- ------------------------------

PRIMARY          RESOLVABLE GAP       orclps

 

----主库上模拟故障

sys@ORCL>create table shall(shall int);

 

begin

for i in 1..100000 loop

insert into shall values(i);

end loop;

commit;

end;

/

PL/SQL procedure successfully completed.

 

sys@ORCL>alter system switch logfile;

 

sys@ORCL>insert into shall values (111);

sys@ORCL>commit;

 

sys@ORCL>shut abort

 

2.3 flush redo同步数据

----备库开启网络

service network start

 

----此时备库是无法查询到主库故障之前未传输的数据

sys@ORCL>select count(*) from shall;

select count(*) from shall

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

 

----此时如果主库能启动到mount,可以利用flush redo同步

------先查看未同步日志

sys@ORCL>startup mount

sys@ORCL>select sequence#, applied from v$archived_log;

 

------开始同步

sys@ORCL> alter system flush redo to 'orcl';

 

------等待传输完毕后,在备库查看之前未传输的数据

sys@ORCL>select count(*) from shall;

  COUNT(*)

----------

    100001

 

2.4 flush同步后主备库切换

--------现备切换为新主库

sys@ORCL>alter database recover managed standby database cancel;

sys@ORCL>alter database recover managed standby database finish;

sys@ORCL>select switchover_status,db_unique_name from v$database;

sys@ORCL>alter database commit to switchover to primary with session shutdown;

sys@ORCL>alter database open;

 

-------原主库切换为新备库(没有开启flashback on和原rman备份,就重建备库)

----------先查询新主库切换时间戳

sys@ORCL>select to_char(standby_became_primary_scn) from v$database;

TO_CHAR(STANDBY_BECAME_PRIMARY_SCN)

----------------------------------------

1045602

 

----------闪回数据库

sys@ORCL>flashback database to scn 1045602;

 

----------原主库切换备库

sys@ORCL>alter database convert to physical standby;

sys@ORCL>shut immediate

sys@ORCL>startup

sys@ORCL>alter database recover managed standby database using current logfile disconnect;

 

----查看主备日志应用情况

sys@ORCL>select sequence#, applied from v$archived_log;

 

2.5 数据同步测试

------主库orcl删除shall表

sys@ORCL>drop table shall purge;

 

------备库orclps备库已经无法查看该表咯

sys@ORCL>select count(*) from shall;

select count(*) from shall

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

 

------此时级联库orclstd还能查看到数据

SQL> select count(*) from shall;

  COUNT(*)

----------

    100001

 

------主库orcl切换一下日志

sys@ORCL>alter system switch logfile;

 

------此时级联库orclstd也无法查看数据咯

SQL> select count(*) from shall;

select count(*) from shall

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

 

 

---------------为什么这次failover级联库上没有任何更改,还能找到新的备库去同步数据?因为之前做switover时参数都已经配置好了,主库和备库任何一个库只要是备库就会传归档到级联库。

 

 

3 实验二:failover之备库手动注册主库日志后无法应用

现数据库环境如下

节点

网络ip地址

数据库名

unique name

数据库实例名

数据文件位置

zyx.test.com(主库)

192.168.11.111

orcl

orcl

test

/u01/app/oracle/oradata/orcl/

orcl.test.com(备库)

192.168.11.22

orcl

orclps

orclps

/u01/app/oracle/oradata/orcl/

dg2.orcl.com(级联库)

192.168.11.23

orcl

orclstd

orclstd

/u01/app/oracle/oradata/orcl/

 

----实验中,将备库failover为主库

 

3.1模拟故障

----备库orclps关闭网络,然后在主库上创建表插入数据并提交

service network stop

 

----此时主库orcl状态

sys@ORCL>select database_role,switchover_status,db_unique_name  from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS    DB_UNIQUE_NAME

---------------- -------------------- ------------------------------

PRIMARY          RESOLVABLE GAP       orcl

 

----主库orcl上模拟故障

sys@ORCL>create table shall(shall int);

 

begin

for i in 1..100000 loop

insert into shall values(i);

end loop;

commit;

end;

/

PL/SQL procedure successfully completed.

 

sys@ORCL>alter system switch logfile;

 

begin

for i in 1..1234 loop

insert into shall values(i);

end loop;

commit;

end;

/

PL/SQL procedure successfully completed.

 

sys@ORCL>shut abort

 

3.2手动注册主库归档

----如果flush redo不能完成日志传递,或者说主库已经无法进入到mount模式,那么就需要手动去完成日志同步

----备库orclps开启网络

service network start

 

----此时备库orclps是无法查询到主库故障之前未传输的数据

sys@ORCL>select count(*) from shall;

select count(*) from shall

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

 

----假如主库orcl已经无法启动,这时候先查看备库orclps应用日志序号,然后把主库orcl未传送归档拷贝过去

sys@ORCL>select sequence#, applied from v$archived_log;

 SEQUENCE# APPLIED

        38 YES

        38 YES

        39 YES

        39 YES

        40 YES

        40 YES

        41 IN-MEMORY

        41 YES

70 rows selected.

 

------从上面可以看到,备库orclps日志正应用到序号41,且还为发送已经同步完毕信号给主库,此时需要去找主库orcl把对应的41号序号之后的归档,传输到备库进行应用。(41 yes表示级联库已经应用完毕)---->此时建议将级联库orclstd转为主库,就不用再在当前备库orclps中考虑如何让注册的归档进行应用,为了实验环境的需要,这里还是将当前备库orclps转为主库。

------>看下面,呵呵,当前备库orclps无法应用日志,但是级联库orclstd可以应用

 

------手工归档应用 -------复制主库orcl未应用归档到备库

[oracle@zyx ~]$ cd  /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2016_04_23/

[oracle@zyx 2016_04_23]$ ll -rth

-rw-r----- 1 oracle oinstall 120K Apr 23 04:02 o1_mf_1_40_cko0vbn5_.arc

-rw-r----- 1 oracle oinstall 228K Apr 23 04:10 o1_mf_1_41_cko195d2_.arc

-rw-r----- 1 oracle oinstall  31K Apr 23 04:11 o1_mf_1_42_cko1cm23_.arc

-rw-r----- 1 oracle oinstall  25M Apr 23 04:12 o1_mf_1_43_cko1dq1c_.arc

 

[oracle@zyx 2016_04_23]$ scp o1_mf_1_42_cko1cm23_.arc o1_mf_1_43_cko1dq1c_.arc o1_mf_1_42_cko1cm23_.arc 192.168.11.22:/home/oracle/

oracle@192.168.11.22's password:

o1_mf_1_42_cko1cm23_.arc         100%   31KB  31.0KB/s   00:00   

o1_mf_1_43_cko1dq1c_.arc          100%   24MB  24.5MB/s   00:01   

 

-------备库orclps上注册复制过来的归档日志

sys@ORCL>select sequence#, applied from v$archived_log;

 

sys@ORCL>alter database register physical logfile '/home/oracle/o1_mf_1_42_cko1cm23_.arc';

sys@ORCL>alter database register physical logfile '/home/oracle/o1_mf_1_43_cko1dq1c_.arc';

 

sys@ORCL>select sequence#, applied from v$archived_log;

        39 YES

        40 YES

        40 YES

        41 IN-MEMORY

        41 YES

        42 NO

        43 NO

72 rows selected.

------------如果日志未应用

 

-------应用归档日志

----如果日志未应用,需要更改日志应用方式,必须更改才能应用日志(备用数据库断开)

sys@ORCL>alter database recover managed standby database cancel;

sys@ORCL> alter database recover managed standby database disconnect from session;

sys@ORCL>select sequence#, applied from v$archived_log;

        40 YES

        41 YES

        41 YES

        42 NO

        43 NO

        42 YES

        43 YES

74 rows selected.

----发现级联库orclstd日志已经应用完毕,但是当前备库orclps还是没有应用

----级联库orclstd可以查看表shall,但是备库orclps是无法查看shall表的

SQL> select count(*) from shall;

  COUNT(*)

----------

    100000

 

3.3 处理当前备库orclps日志无法应用问题

------首先,应该查看alert日志,作为数据库管理员,任何时候都应该时刻关注日志内容

----查看告警日志之前,我再试一试看能否应用日志

sys@ORCL> alter database recover managed standby database cancel;

sys@ORCL>alter database recover managed standby database using current logfile disconnect;

sys@ORCL>select sequence#, applied from v$archived_log;

----发现还是无法应用日志

 

Mon Apr 25 21:18:16 2016

Completed:  alter database recover managed standby database disconnect from session

Mon Apr 25 21:56:02 2016

 alter database recover managed standby database cancel

Mon Apr 25 21:56:03 2016

MRP0: Background Media Recovery cancelled with status 16037

Errors in file /u01/app/oracle/diag/rdbms/orclps/orclps/trace/orclps_pr00_45894.trc:

ORA-16037: user requested cancel of managed recovery operation

Recovery interrupted!

Mon Apr 25 21:56:03 2016

 

------看一下这个trc的内容

[oracle@orcl ~]$ vim /u01/app/oracle/diag/rdbms/orclps/orclps/trace/orclps_pr00_45894.trc

Started Parallel Media Recovery

*** 2016-04-25 21:18:15.833 4329 krsh.c

Managed Standby Recovery not using Real Time Apply

Dumping database incarnation table:

Resetlogs 0 scn and time: 0x0000.000e2006 04/22/2016 22:09:31

Recovery target incarnation = 2, activation ID = 1437653945

Influx buffer limit = 8330 min(50% x 16660, 100000)

Start recovery at thread 1 ckpt scn 1046709 logseq 42 block 58

Initial buffer sizes: read 1024K, overflow 832K, change 805K

 

 

--------再看看当前的数据库scn时间戳及ckpt检查点记录的scn时间戳。

--------发现当前数据库的时间戳和恢复点ckpt时间戳不一致,怎么办??

sys@ORCL>select current_scn,checkpoint_change# from v$database;

CURRENT_SCN CHECKPOINT_CHANGE#

----------- ------------------

    1046708            1024546

 

-------利用ORA debug 修改数据库KCSGSCN(bbed 也可以直接修改)

---------修改备库当前检查点时间戳,把时间戳和恢复点时间戳改为一致

------------当前的数据库scn

sys@ORCL>oradebug setmypid

Statement processed.

sys@ORCL>oradebug dumpvar sga kcsgscn_

kcslf kcsgscn_ [06001AE70, 06001AEA0) = 000FF8B4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6001AB50 00000000

-------------计算一下000FF8B4该值为16进制转10进制得1046708

 

----先计算一下上面日志中ckpt scn 1046709的16进制值其实就是000FF8B5

sys@ORCL>select to_char(1046709,'xxxxxxxx') from dual;

TO_CHAR(1

---------

    ff8b5

 

----下面修改数据库scn

sys@ORCL>oradebug poke 0x06001AE70 8 0x00000000000ff8b5

BEFORE: [06001AE70, 06001AE78) = 000FF8B4 00000000

AFTER:  [06001AE70, 06001AE78) = 000FF8B5 00000000

 

sys@ORCL>oradebug dumpvar sga kcsgscn_

kcslf kcsgscn_ [06001AE70, 06001AEA0) = 000F2A26 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6001AB50 00000000

 

------现在查看一下日志是否应用

sys@ORCL>select sequence#, applied from v$archived_log;

 SEQUENCE# APPLIED

---------- ---------

        41 YES

        41 YES

        42 NO

        43 NO

        42 YES

        43 YES

74 rows selected.

 

------重新开启日志应用在查看

sys@ORCL>alter database recover managed standby database using current logfile disconnect;

--------发现数据库hang住,强制退出,然后shut baort重启在应用日志

sys@ORCL>shut abort

sys@ORCL>startup

--------查看下当前scn

sys@ORCL>select current_scn,checkpoint_change# from v$database;

CURRENT_SCN CHECKPOINT_CHANGE#

----------- ------------------

    1046708            1024546

 

------进行日志应用

sys@ORCL>alter database recover managed standby database using current logfile disconnect;

Database altered.

 

--------再次查看当前scn

sys@ORCL>select current_scn,checkpoint_change# from v$database;

 

CURRENT_SCN CHECKPOINT_CHANGE#

----------- ------------------

    1047091            1024546

--------查看日志应用情况

sys@ORCL>select sequence#, applied from v$archived_log;

 SEQUENCE# APPLIED

---------- ---------

        41 YES

        41 YES

        42 YES

        43 YES

        42 YES

        43 IN-MEMORY

74 rows selected.

-------------哈哈!现在应用日志咯!!!

 

------查询下之前未应用的数据

sys@ORCL>select count(*) from shall;

  COUNT(*)

----------

    100000

 

 

3.4 手工注册主库redo日志

--------上面可以看到,数据归档部分数据已经完成恢复,但是主库shutdown之前的在线redo数据丢失,下面就找回主库在线redo数据

 

------复制主库redo到备库

------如果主库能看到current redo,可以只传current redo到备库

sys@ORCL>select group#,sequence#,status from v$log;

 

[oracle@zyx ~]$ scp /u01/app/oracle/oradata/orcl/redo0*.log 192.168.11.22:/home/oracle

oracle@192.168.11.22's password:

redo01.log                                        100%   50MB  16.7MB/s   00:03   

redo02.log                                        100%   50MB  50.0MB/s   00:01   

redo03.log                                        100%   50MB   4.6MB/s   00:11

 

------recover standby

------如果不知道主库current log,就每一个redo都应用一次,如果不对会报错,对了就会出现下面恢复完成的。当然你也可以dump redo查看里面scn,再确定恢复哪一个redo

sys@ORCL>alter database recover managed standby database cancel;

sys@ORCL>recover standby database until cancel;

ORA-00279: change 1047092 generated at 04/23/2016 04:11:57 needed for thread 1

ORA-00289: suggestion :

/u01/app/oracle/fast_recovery_area/ORCLPS/archivelog/2016_04_25/o1_mf_1_44_%u_.arc

ORA-00280: change 1047092 for thread 1 is in sequence #44

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

/home/oracle/redo02.log

Log applied.

Media recovery complete.

 

----再次打开数据库,然后查询数据是否完成

sys@ORCL>alter database open;

Database altered.

 

sys@ORCL>select count(*) from shall;

  COUNT(*)

----------

   101234

------现在数据已经全部找回!!!下面把该备库强制转为主库

 

 

3.5 强制切换备库orclps为主库

------备库orclps切换为主库

sys@ORCL>select name,open_mode,database_role,db_unique_name,primary_db_unique_name from v$database;

NAME  OPEN_MODE  DATABASE_ROLE  DB_UNIQUE_NAME  PRIMARY_DB_UNIQUE_NAME

----- ---------- ---------------- --------------- ------------------------------

ORCL  READ ONLY  PHYSICAL STANDBY orclps        orcl

 

sys@ORCL>alter  database  activate  physical  standby  database;

 

sys@ORCL>select name,open_mode,database_role,db_unique_name,primary_db_unique_name from v$database;

NAME  OPEN_MODE  DATABASE_ROLE  DB_UNIQUE_NAME  PRIMARY_DB_UNIQUE_NAME

----- ---------- ---------------- --------------- ------------------------------

ORCL  MOUNTED    PRIMARY          orclps         orcl

 

sys@ORCL>alter database open;

 

---------备库修改scn后转为主库后,原主库切换为备库,无法应用日志,不知道如何处理,估计只能重建备库吧,告警日志如下,望高手解答

Started Parallel Media Recovery
*** 2016-04-25 19:48:59.677 4320 krsh.c
Managed Standby Recovery not using Real Time Apply
Datafile 1 belongs to incarnation with resetlogs SCN : 995548, timestamp: 363f3c82
Datafile 2 belongs to incarnation with resetlogs SCN : 995548, timestamp: 363f3c82
Datafile 3 belongs to incarnation with resetlogs SCN : 995548, timestamp: 363f3c82
Datafile 4 belongs to incarnation with resetlogs SCN : 995548, timestamp: 363f3c82
Datafile 5 belongs to incarnation with resetlogs SCN : 995548, timestamp: 363f3c82
Dumping database incarnation table:
Resetlogs 0 scn and time: 0x0000.0011d146 04/30/2016 05:23:05
Resetlogs 1 scn and time: 0x0000.000f30dc 04/25/2016 17:25:22
Recovery target incarnation = 3, activation ID = 0
Influx buffer limit = 18412 min(50% x 36825, 100000)
Start recovery at thread 1 ckpt scn 1167684 logseq 40 block 2
Initial buffer sizes: read 1024K, overflow 832K, change 805K


*** 2016-04-25 19:48:59.739
Media Recovery add redo thread 1
*** 2016-04-25 19:48:59.812 4320 krsh.c
Media Recovery Waiting for thread 1 sequence 40 branch(resetlogs_id) 910113922


*** 2016-04-25 19:49:21.838
*** 2016-04-25 19:49:21.838 4320 krsh.c
MRP0: Background Media Recovery cancelled with status 16037
ORA-16037: user requested cancel of managed recovery operation


*** 2016-04-25 19:49:21.846
Media Recovery drop redo thread 1


*** 2016-04-25 19:49:21.894
Completed Media Recovery
Managed Recovery: Not Active posted.

 

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30130773/viewspace-2119324/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30130773/viewspace-2119324/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataGuard(一主一备一级联之failover) 的相关文章

  • 拓数派加入 OpenCloudOS 操作系统开源社区,作为成员单位参与社区共建

    近日 拓数派签署 CLA Contributor License Agreement 贡献者许可协议 正式加入 OpenCloudOS 操作系统开源社区 拓数派 英文名称 OpenPie 是国内基础数据计算领域的高科技创新企业 作为国内云上
  • 【计算机开题报告】二手车交易平台

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 选题目的 意义 如今时代网络技术正在快速发展 电子商务技术也以极为强势的姿态闯入人们的视野之中 随着人们生活质量的提升 为了对身边二手物品进行回收利用 二
  • 【计算机开题报告】家具销售库存管理信息系统

    一 选题的目的 意义及相关研究动态和自己的见解 随着当今社会信息化的发展 电子自动化办公越来越为各人所重视 它能有效地收集 处理各种信息 极大地提高了办事效率 而计算机技术各种软件工作平台不断的发展 又为电子自动化办公的实现提供了良好的前景
  • SQL 解析与执行流程

    一 前言 在先前的技术博客中 我们已经详细介绍过数据库的 parser 模块与执行流程 用户输入的 SQL 语句通过词法解析器生成 token 再通过语法分析器生成抽象语法树 AST 经过 AST 生成对应的 planNode 最后执行 p
  • 内网穿透的应用-使用Net2FTP轻松部署本地Web网站并公网访问管理内网资源

    文章目录 1 前言 2 Net2FTP网站搭建 2 1 Net2FTP下载和安装 2 2 Net2FTP网页测试 3 cpolar内网穿透 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • 亚信安慧AntDB引领数字化转型:浙江移动成功实现CRM系统全域改造

    数字时代 通信运营商在不断迭代的背景下 需要不断探索数字化转型的路径 以适应快速发展的市场和技术环境 在这一浪潮中 浙江移动站在前沿 率先完成了其CRM系统的全域改造 采用了亚信安慧公司研发的AntDB数据库 为整个行业树立了数字化转型的标
  • AntDB内存管理之内存上下文之如何使用内存上下文

    5 如何使用内存上下文 使用内存上下文之前 我们需要先对其进行创建 AntDB启动时已经创建并初始化好了部分内存上下文 例如 TopMemoryContext 这个TopMemoryContext是所有内存上下文的父节点或者祖先节点 一般我
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 【计算机毕业设计】病房管理系统

    当下 如果还依然使用纸质文档来记录并且管理相关信息 可能会出现很多问题 比如原始文件的丢失 因为采用纸质文档 很容易受潮或者怕火 不容易备份 需要花费大量的人员和资金来管理用纸质文档存储的信息 最重要的是数据出现问题寻找起来很麻烦 并且修改
  • 【计算机毕业设计】出租车管理系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本出租车管理系统就是在这样的大环境下诞生 其可以帮助管理者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人
  • 【计算机毕业设计】基于web的山东红色旅游信息管理系统

    有效的处理想要的相关信息和如何传播有效的信息 一直是人类不断探索的动力 人类文明火种的传承都是通过了多种媒介作为载体 也是随着社会生产力的发展不断的更新 随着互联网的到来 信息传播与管理都上升了一个新的台阶 并且方便应用的同时也要考虑信息传
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 基于java的学生宿舍管理系统设计与实现

    基于java的学生宿舍管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生宿舍管理系统设计与实现的研究背景和动机 在数字化时代的推动下 学生宿舍管理系统已经成为了管理学生宿舍的重要工具 学生宿舍管理系统能够帮助管理者更好地管
  • 基于java的饮食分享平台系统设计与实现

    基于java的饮食分享平台系统设计与实现 I 引言 A 研究背景和动机 近年来 随着人们生活水平的提高和健康意识的增强 饮食健康已经成为越来越多人的关注焦点 因此 一个方便快捷的饮食分享平台就显得尤为重要 基于Java的饮食分享平台系统设计
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】二手家电管理平台

    时代在飞速进步 每个行业都在努力发展现在先进技术 通过这些先进的技术来提高自己的水平和优势 二手家电管理平台当然不能排除在外 二手家电管理平台是在实际应用和软件工程的开发原理之上 运用java语言以及前台VUE框架 后台SpringBoot
  • 「Java开发指南」MyEclipse如何支持Spring Scaffolding?(一)

    MyEclipse v2023 1 2离线版下载 1 使用Spring的Scaffolding应用程序 支持Spring的 MyEclipse 目标之一是帮助开发人员从零开始编写更少的代码 并更广泛地使用代码生成 MyEclipse提供了丰
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

    目录 一 MongoDB 1 1 简介 a MongoDB 是什么 为什么要使用 MongoDB b 应用场景 c MongoDB 这么强大 是不是可以直接代替 MySQL d MongoDB 中的一些概念 e Docker 下载 1 2
  • 毕业设计:基于python人脸识别系统 LBPH算法 sqlite数据库 (源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业

随机推荐

  • 2020年高教社杯全国大学生数学建模竞赛赛题 C题分析与思路!(持续更新)

    C题 中小微企业的信贷决策 1 C题题目背景 分析 在实际中 由于中小微企业规模相对较小 也缺少抵押资产 因此银行通常是依据信贷政策 企业的交易票据信息和上下游企业的影响力 向实力强 供求关系稳定的企业提供贷款 并可以对信誉高 信贷风险小的
  • 【nginx编译-zierror: ‘struct crypt_data‘ has no member named ‘current_salt‘】

    nginx编译 src os unix ngx user c In function ngx libc crypt src os unix ngx user c 26 7 error struct crypt data has no mem
  • C#中Class与Struct区别

    C 中Class与Struct区别 1 class 是引用类型 继承自System Object stuce是值类型 继承自System ValueType类 因此不具多态性 但是注意 System ValueType是个引用类型 2 从职
  • 如何用SPSS对数据进行标准化处理?

    SPSS统计分析软件是我最早接触的数据分析工具 我的博客将陆续介绍SPSS统计分析软件的相关内容 这类文章将统一按照在标题或者正文第一段出现 SPSS案例分析 编号 的形式组织 便于读者朋友们快速查询 收集 今天是第一篇 即 SPSS案例分
  • python循环与文件操作

    if 语句语法结构 if 条件 elif 条件 else 1 如果表达式的值 非0 或者为布尔值 True 则代码组 if suite 被执行 否则就去执行 else suite 2 只要表达式数字为 非零值 即为 True 3 空字符串
  • 移植使用tslib 库

    目录 tslib 简介 tslib 移植 下载tslib 源码 编译tslib 源码 tslib 安装目录下的文件夹介绍 在开发板上测试tslib tslib 库函数介绍 打开触摸屏设备 配置触摸屏设备 读取触摸屏数据 基于tslib 编写
  • STL库的使用之容器模板类QVector使用

    Qt中提供了一组通用的基于模板的容器类 对比C 中的STL库的容器类 Qt的这些容器类更轻量 更安全并且容易使用同时在速度 内存消耗 内联代码等方面进行了优化 存储在Qt的容器中数据必须是可赋值的数据类型 数据类型必须提供一个默认的构造函数
  • BES2300X,BES2500X——UI(按键,提示音,指示灯)

    本文是BES2300X BES2500X系列博文UI部分 一个耳机 音箱 UI是联系使用者与开发者最直接的一个窗口 当然 对于吾等码农而言 UI设计并不是我们最关心的 我们主要做的是UI实现 本文 写BES最基础UI 按键 指示灯 提示音
  • 基于Qt的收银点餐系统之UI的改进——QStackedLayout和QScrollArea的使用

    待解决问题 在收银点餐系统之UI的基本实现中 我们实现了本系统中最基本的UI 这一个UI是静态的 不能够动态添加按钮 关于如何添加见参考资料 也不能实现点击不同的分类 出现不同的界面等 前者的逻辑通过代码很好实现 故不赘述 后者则需要用到一
  • 力扣第45天----第392题、第115题

    力扣第45天 第392题 第115题 文章目录 一 第392题 判断子序列 二 第115题 不同的子序列 一 第392题 判断子序列 挺简单的 思路跟以前的都差不多 class Solution public bool isSubseque
  • Go解析yaml和yml文件

    Go解析yaml和yml文件 文章目录 Go解析yaml和yml文件 1 yaml概述 2 功能 3 示例 4 语言的构成元素 1 清单 数组 2 关系数组 3 区块的字符 4 保留换行 Newlines preserved 5 折叠换行
  • 英文期刊催稿信模板_SCI投稿委婉催稿信模板

    SCI投稿委婉催稿信模板1 Dear editor I m not sure if it is the right time to contact you to inquire about the status of my submitte
  • 34种ArcGIS常用操作技巧大汇总

    概述 ArcGIS产品线为用户提供一个可伸缩的 全面的GIS平台 ArcObjects包含了许多的可编程组件 从细粒度的对象 例如单个的几何对象 到粗粒度的对象 例如与现有ArcMap文档交互的地图对象 涉及面极广 这些对象为开发者集成了全
  • Burpsuite2022.1详细安装步骤包含证书安装

    burpsuite安装 burpsuite2022 1 https pan baidu com s 1k46tVXOKfdSwxOha UNeyQ 提取码 6954 将 burp suite 压缩包解压到英文目录下 这里我解压到了 E Bu
  • matlab图像滤波

    转自 http hi baidu com wang 5Fpw blog item 36354a637ac87b48eaf8f879 html clc clear all I imread eight tif 用中值滤波 多维滤波 使用中心为
  • zipkin学习--01--理论

    一 介绍 是分布式跟踪系统 Distributed Tracking System 监控微服务各个服务的调用情况 举例 一个请求A 需要先后调用f1 f2 f3等微服务单元的接口 我们可以通过链路追踪查看f1 f2 f3对应接口的耗时 主要
  • CLIP:Contrastive Language-Image Pre-Training

    参考博客 CLIP论文阅读 Learning Transferable Visual Models From Natural Language Supervision CLIP Connecting Text and Images 引言 在
  • Imageview 图片的自动适配 Togglebutton 点击事件

    Imageview 图片控件 主要属性src background 图片的自动适配 Android开发图片https www easyicon net iconsearch android 素材网址 Togglebutton 开合关的两种状
  • STL-常用算法(一.遍历 查找 排序)

    目录 常用遍历算法 for each和transform函数示例 常用查找算法 find函数示例 find if函数示例 adjacent find示例 binary search函数示例 count函数示例 count if函数示例 常用
  • DataGuard(一主一备一级联之failover)

    fail over 1 failover介绍 failover转换 主要考虑的是如何减少数据量的丢失 如果可以允许数据丢失 可以直接切换备库为主库 不必在进行下面的讨论 减少数据的丢失 实际就是弥补日志数据没有传递的问题 在11g中 推出了