Oracle数据库备份与恢复【RMAN】_分配的通道:ora_disk_1-程序员宅基地

技术标签: oracle  rman  Oracle备份与恢复  

1、理解备份与恢复

1.1、什么是备份与恢复

数据库备份通常分为如下两种:
1、物理备份:备份组成数据库的物理文件(包含数据文件、控制文件、归档重做日志文件),也即是在其他位置存放数据库物理文件的同本,比如脱机的磁盘或者磁带设备;
2、逻辑备份:指备份数据库中的逻辑数据,比如数据表和存储过程,可以使用Oracle的数据泵工具导出到二进制文件,在数据库恢复时导入到数据库。
1和2的关系:物理备份是制定任何备份策略的基础,逻辑备份可以看作是物理备份的有效补充,但是物理备份需要较长的备份和恢复时间,而逻辑备份可以仅对重要的数据库数据进行备份,可以实现较快的备份与恢复操作,因此在实际的工作中即要进行物理备份,也要确保对于重要数据的即时逻辑备份。
在实际工作过程中,需要DBA处理的故障有3大类,分别是介质故障、用户错误活应用程序错误,其他的错误不会造成数据的丢失,或需要从备份中恢复,比如可能需要重启数据库以便恢复数据库实例的失败。下面是对这3类DBA需要进行备份与恢复的错误详细描述:

  1. 介质故障,比如物理磁盘损坏导致读取或写入磁盘的失败,此时就需要进行介质恢复来实现数据完整性,对于这类故障,DBA必须制定完整的备份恢复策略,以防止出现灾难性的数据丢失。
    数据库备份以及介质恢复
  2. 用户错误
  3. 应用程序错误
  4. 实例恢复
  5. 介质恢复
    DBA必须尽量制定有效的备份恢复策略,缩减平均恢复时间(MTTR)延长平均故障间隔时间(MTBF),定期对备份和恢复的策略有效性进行检查(自动备份是否能够正常执行,备份后的文件能够正常恢复)。

1.2、备份与恢复的方法

1、进行Oracle备份恢复的方式有以下3种:

  1. 使用RMAN恢复管理器进行备份和恢复,RMAN是Oracle内置的备份恢复程序,不用单独安装。也可以通过Database Control界面来管理数据库实例;
  2. 用户管理的备份与恢复,这种是使用操作系统命令对数据库文件进行备份与恢复;
  3. 使用SQL*Loader或者数据泵导入导出工具进行逻辑备份与恢复,这种方式可以备份重要数据,并可以实现在不同操作系统或者不同的Oracle版本之间的数据传输。
    但是Oracke建议使用RMAN完成备份与恢复的工作,好处是用户不用记住备份的数据文件和归档重做日志文件,RMAN可以自己存储位置来记录这些信息,并且RMAAN能够验证备份文件内部数据块的有效性,并能欧在资料库中记录复制的情况。
    2、备份的方式
  4. 一致性备份:备份所包含的各个文件中的系统更改号(SCN)都相同,即备份所包含的各个文件中的所有数据均来自同一时间点。
  5. 非一致性备份:指文件包含来自不同时间点的数据,这主要用于联机备份模式,即数据库在处理事务时进行数据文件的备份,这种备份方式除了复原数据外,还需要使用归档和联机重做日志文件进行恢复,使数据库数据恢复到特定的时间点上。
  6. 数据库完全备份,是指对数据库内所有的数据文件、控制文件的备份,是最常用的备份类型,完全被分既可以是一致性备份也可以是非一致性备份。
  7. 部分备份数据库,对数据库部分内容进行备份,比如一个表或者一个数据文件,这种方式一般较少使用。
  8. 联机备份,是指数据库在运行过程中的备份,也称热备份,但是只有数据库运行在归档模式下,才能够对整个数据库进行联机备份,如果数据库雨荨在非归档模式下,则只能进行脱机备份。
  9. 脱机备份,数据处于关闭状态下的备份,也成热备份,只要数据库不适用SHUTDOWN ABORT进行关闭的,则备份总是一致性备份,否则备份就是非一致性备份,在富源数据库后需要应用重做日志文件使其保持一致性状态。

2、使用RMAN备份

2.1、设置归档日志模式

第一步:在SQL*PLUS中使用ARCHIVE LOG LIST 或者查询从v$database数据字典视图来查看当前数据库所处的模式。
1、在操作系统中使用sysdba账号登陆数据库

1、sqlplus / as sysdba;--登陆本机数据库
2、sqlplus [username]/[password]@[IP]:1521/[SID];--远程登陆数据库

第二步:查询v$database数据字典视图的log_mode字段,或者使用ARCHIVE LOG LIST来查看数据库所处模式。

set linesize 500;--格式化输出结果宽度
select dbid,name,log_mode,platform_name from v$database;--使用v$database查询

结果如下:NOARCHIVELOG代表非归档模式
v$database查询结果
或者

archive log list;

结果如下:
crchive log list查询结果
第二步:通过第一步中的结果可以看出当前数据库处于非归档模式,现在使用如下步骤将数据库设置成归档模式:
(1)、使用SHUTDOWN命令关闭数据库实例,然后将数据库启动到MOUNT状态,示例如下:

SQL> SHUTDOWN IMMEDIATE;--关闭数据库实例
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP MOUNT;--启动数据库到MOUNT状态
ORACLE 例程已经启动。

Total System Global Area 3373858816 bytes
Fixed Size                  2180424 bytes
Variable Size            2348812984 bytes
Database Buffers         1006632960 bytes
Redo Buffers               16232448 bytes
数据库装载完毕。

(2)、使用ALTER DATABASE ARCHIVELOG语句将数据库设置为归档日志模式,或者使用ALTER DATABASE NOARCHIVELOG将数据库设置为非归档日志模式,语句如下:

SQL> ALTER DATABASE ARCHIVELOG;

数据库已更改。

(3)、将数据库设置为打开状态,语句如下:

SQL> ALTER DATABASE OPEN;

数据库已更改。

(4)、此时数据库已经使用归档模式在运行,可以使用ARCHIVE LOG ALL将重做日志文件进行归档,示例语句如下:

SQL> ARCHIVE LOG ALL;
ORA-00271: 没有需要归档的日志

如上结果所示,报错ORA-00271: 没有需要归档的日志,这可能是已经进行了归档或日志文件组还没有开始写入,可以使用如下命令对当前的日志组进行归档。
(5)、解决报错信息ORA-00271

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

系统已更改。

第三步:至此,数据库以能够自动完成归档,此时可以再次使用“第二步”中的语句查询出归档日志存储位置。

SQL> ARCHIVE LOG LIST;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST--归档日志默认使用闪回区域
最早的联机日志序列     593
下一个存档日志序列   595
当前日志序列           595

如果需要查看归档日志文件可以执行以下命令:

C:\>RMAN TARGET /   --使用rman target / 命令登陆RAMN并连接数据库,或者使用rman target [username]/[passwd]@[IP]:1521/[SID]连接目标数据库

恢复管理器: Release 11.2.0.1.0 - Production on 星期四 1017 17:46:06 2019

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: ORCL (DBID=1547773451)

RMAN> crosscheck archivelog all;--查看所有的归档日志文件

使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
对归档日志的验证成功
归档日志文件名=D:\APP\MINGYUAN\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_10_17\O1_MF_1_594_GTJ9Q3HR_.ARC RECID=1 STAMP=1021912291  --这个就是归档日志存储位置
已交叉检验的 1 对象
RMAN>

2.2、完整数据库备份

创建一个完成的数据库备份,备份所有的数据库文件及SPFILE文件,复制Oracle的安装目录,语句如下:

2.2.1、指定备份集的位置

RMAN> BACKUP DATABASE FORMAT 'C:\backup\%d_bak_%U';--%d指定数据库名称,%U指定产生一个唯一的命名,%t指定备份集的时间戳,%s指定备份集编号及%p指定备份片编号。

启动 backup18-10-19
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00005 名称=D:\APP\ORADATA\ORCL\XTDATA.DBF
输入数据文件: 文件号=00003 名称=D:\APP\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件: 文件号=00004 名称=D:\APP\ORADATA\ORCL\USERS01.DBF
输入数据文件: 文件号=00001 名称=D:\APP\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:\APP\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 正在启动段 118-10-19
通道 ORA_DISK_1: 已完成段 118-10-19
段句柄=C:\BACKUP\ORCL_BAK_04UEKOF4_1_1 标记=TAG20191018T150404 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:05:25
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 118-10-19
通道 ORA_DISK_1: 已完成段 118-10-19
段句柄=C:\BACKUP\ORCL_BAK_05UEKOP9_1_1 标记=TAG20191018T150404 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup18-10-19

RMAN>

2.2.2、默认使用闪回恢复区创建备份

RMAN> BACKUP AS BACKUPSET DATABASE SPFILE;

启动 backup18-10-19
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=192 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00005 名称=D:\APP\ORADATA\ORCL\XTDATA.DBF
输入数据文件: 文件号=00003 名称=D:\APP\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件: 文件号=00004 名称=D:\APP\ORADATA\ORCL\USERS01.DBF
输入数据文件: 文件号=00001 名称=D:\APP\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:\APP\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 正在启动段 118-10-19
RMAN-03009: backup 命令 (ORA_DISK_1 通道上,10/18/2019 14:32:33) 失败
ORA-19809: 超出了恢复文件数的限制
ORA-19804: 无法回收 52428800 字节磁盘空间 (4102029312 限制中)
继续执行其他作业步骤, 将不重新运行失败的作业
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 118-10-19
通道 ORA_DISK_1: 已完成段 118-10-19
段句柄=D:\APP\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_10_18\O1_MF_NCSNF_TAG20191018T143217_GTLQ426G_.BKP 标记=TAG20191018T143217 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 118-10-19
通道 ORA_DISK_1: 已完成段 118-10-19
段句柄=D:\APP\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_10_18\O1_MF_NNSNF_TAG20191018T143217_GTLQ439W_.BKP 标记=TAG20191018T143217 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

RMAN-03009: backup 命令 (ORA_DISK_1 通道上,10/18/2019 14:32:33) 失败
ORA-19809: 超出了恢复文件数的限制
ORA-19804: 无法回收 52428800 字节磁盘空间 (4102029312 限制中)

RMAN>

如上所示,出现报错信息,该信息是指归档文件过大,导致归档失败,db_recovery_file_desc有size限制,默认是2G。
解决方法:删除多余的归档文件。然后设置较大的db_recovery_file_dest_size。
过程如下:
(1)查看闪回恢复区空间

C:\Users>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1018 16:07:10 2019

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$recovery_file_dest;--space_limit:该区域的大小是多少,space_used:已经使用了多少空间,space_reclaimable:删除一些垃圾数据之后可以回收的空间大小(如obsolete,redundant、low priority),number_of_files:说明该区域目前存在有多少文件

NAME                                           SPACE_LIMIT SPACE_USED        SPACE_RECLAIMABLE NUMBER_OF_FILES
---------------------------------------------- ----------  ----------------- ----------------- ---------------
D:\app\flash_recovery_area                     4102029312  372635648         372635648         12
SQL>

(2)、查询并删除无效归档日志文件

C:\Users>rman target /
RMAN>crosscheck archivelog all;   -- 运行这个命令可以把无效的expired的archivelog标出来。
RMAN>delete expired archivelog all;  -- 直接全部删除过期的归档日志。

(3)、如果无法删除归档日志文件,可以重新设置归档日志文件,并分配更大的空间,配置合理的覆盖策略。【具体方法请查询相关Blog文章】

2.2.3、查询、删除备份集


RMAN> LIST BACKUP OF DATABASE;--查询备份数据库文件


备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
3       Full    11.13G     DISK        00:05:17     18-10-19
        BP 关键字: 3   状态: AVAILABLE  已压缩: NO  标记: TAG20191018T150404
段名:C:\BACKUP\ORCL_BAK_04UEKOF4_1_1
  备份集 3 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 4228805    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\SYSTEM01.DBF
  2       Full 4228805    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\SYSAUX01.DBF
  3       Full 4228805    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\UNDOTBS01.DBF
  4       Full 4228805    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\USERS01.DBF
  5       Full 4228805    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\XTDATA.DBF

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
5       Full    11.13G     DISK        00:03:34     18-10-19
        BP 关键字: 5   状态: AVAILABLE  已压缩: NO  标记: TAG20191018T154338
段名:C:\BACKUP\HYYS0508_BAK_06UEKQPA_1_1
  备份集 5 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 4230473    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\SYSTEM01.DBF
  2       Full 4230473    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\SYSAUX01.DBF
  3       Full 4230473    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\UNDOTBS01.DBF
  4       Full 4230473    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\USERS01.DBF
  5       Full 4230473    18-10-19 D:\APP\MINGYUAN\ORADATA\ORCL\XTDATA.DBF

RMAN> DELETE BACKUPSET 5;--删除BS关键字为5的备份数据库文件

使用通道 ORA_DISK_1

备份片段列表
BP 关键字  BS 关键字  Pc# Cp# 状态      设备类型段名称
------- ------- --- --- ----------- ----------- ----------
5       5       1   1   AVAILABLE   DISK        C:\BACKUP\HYYS0508_BAK_06UEKQPA_1_1

是否确定要删除以上对象 (输入 YES 或 NO)? Y
已删除备份片段
备份片段句柄=C:\BACKUP\HYYS0508_BAK_06UEKQPA_1_1 RECID=5 STAMP=1021995818
1 对象已删除

RMAN>

3、使用RMAN恢复数据库

RMAN的恢复对应有两个操作:

  • 数据库复原【RESTORE】,指利用备份集的数据文件来替换已经损坏的数据库文件或者将起恢复到一个新的位置。
  • 数据库恢复【RECOVER】,应用所有的归档重做日志将数据库恢复到健康的状态,或者仅应用部分的REDO将数据库恢复到指定的时间点。
    执行数据库恢复时,需要将整个数据库进入到MOUNT状态,如果只是对个别的表空间或者数据文件的恢复可以在OPEN状态下进行操作。
    恢复操作时,可以使用完全恢复来恢复到最近的时间点,也可以使用部分恢复来恢复到特定的时间点,恢复完成后,在开启数据库,或者如果是不完全恢复,需要指定RESETLOGS打开数据库。
    完全恢复数据库步骤如下:
    (1)、启动数据库到MOUNT状态
RMAN> STARTUP MOUNT;--需要数据库已经被SHUTDOWN才能恢复到这个状态,如果是正常的数据库需要使用管理员账号进行SHUTDOWN IMMEDIATE之后才能进行该操作。
Oracle 实例已启动
数据库已装载
系统全局区域总计    3373858816 字节
Fixed Size                     2180424 字节
Variable Size               2348812984 字节
Database Buffers            1006632960 字节
Redo Buffers                  16232448 字节

RMAN>

(2)、使用RESTORE DATABASE还原数据库

RMAN> RESTORE DATABASE;

启动 restore18-10-19
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=212 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\MINGYUAN\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\MINGYUAN\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\MINGYUAN\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\MINGYUAN\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\MINGYUAN\ORADATA\ORCL\XTDATA.DBF
通道 ORA_DISK_1: 正在读取备份片段 C:\BACKUP\HYYS0508_BAK_08UELAFM_1_1
通道 ORA_DISK_1: 段句柄 = C:\BACKUP\HYYS0508_BAK_08UELAFM_1_1 标记 = TAG20191018T201134
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:55
完成 restore18-10-19

RMAN>

(3)、在还原数据库后如果数据库在备份之后没有产生过任何事务,则恢复操作到此完成。
否则就需要使用RECOVER进行恢复操作。操作方式如下:

RMAN> RECOVER DATABASE;

启动 recover 于 18-10-19
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01

完成 recover 于 18-10-19

RMAN>

(4)、将还原好的数据库切换到OPEN状态完成对数据库的恢复工作。

RMAN> ALTER DATABASE OPEN;
数据库已打开

备注:以上的恢复命令可以使用RUN来批量执行

RMAN>RUN{
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_31633205/article/details/102602803

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签