版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle 数据安全 0102 04 03 备份与容灾的重要性备份与容灾概况 逻辑备份物理备份 05 容灾 一一. 为什么要进行备份和容灾?为什么要进行备份和容灾? 1.1. 数据库系统故障数据库系统故障 案例案例1:如某客户的IT设备机房突然停电,造成存储磁盘损坏,数据文 件也因此损坏,来电后数据库无法启动,如果没有备份,则数据库恢复 工作将非常艰难. 案例案例2:某客户的oracle数据库系统采用aix小机做硬件平台,但由于此 小机购买年份较早,早过了维保期,某天突然宕机,操作系统无法启动, 由于没有专业的小机维护人员,小机始终无法启动,业务也因此无法运 行,幸好有异机备份,在短时间内恢
2、复了数据。 案例案例3:某客户要新装一套rac数据库,但由于安装过程报错,需要删除 软件并重新安装,但不小心连到了生产数据库,删除了生产库的数据库 软件,类似误删除操作还有很多惨痛的案例 一一.为什么要进行备份和容灾?为什么要进行备份和容灾? 1.2. 应用程序故障应用程序故障 案例:案例:某客户的软件系统在试运行期间,由于需要上新的功能模块,开 发人员添加一个栏目时发现添加有问题,需要删掉此栏目,结果删除的 时候把上级目录也删掉了,导致整个目录的其他栏目都删掉了,此问题 是软件的一个bug,而此时undo回滚表空间的内容也已经冲掉了,如果 没有备份,数据将很难找回来。 1.3. 人为失误人为
3、失误 案例:案例:某客户维护一张表时,认为数据不再需要了,就truncate table t_xxx,结果后来又证明那张表还有需要的数据,但后悔已经来不及了 二二. 备份和容灾概况备份和容灾概况 我们有哪些方式避免各种自然灾害、人为失误及应用程序故障?我们有哪些方式避免各种自然灾害、人为失误及应用程序故障? Oracle为我们提供了多种备份和容灾方式:为我们提供了多种备份和容灾方式: 1.冷备份(操作系统copy数据文件) 2.Rman物理备份 3.逻辑备份(exp/expdp) 4.rac 5.数据卫士(Dataguard) 6.Goldengate 其他厂商提供的备份和容灾方式:其他厂商提
4、供的备份和容灾方式: IBM的FlashCopy EMC的SRDF等存储复制技术 2.1 区分物理备份和逻辑备份区分物理备份和逻辑备份 物理备份就是转储ORACLE物理文件(如数据文件、控制文件、归档日志文 件等),一旦数据库发生故障,可以利用这些文件进行还原; 逻辑备份就是对数据库对象(如用户、表、存储过程等)利用EXPORT等工具 进行导出工作,可以利用IMPORT等工具把逻辑备份文件导入到数据库。 特点:特点: 物理备份备份的是数据文件、归档日志等底层文件,是真正适用于生产环境 的备份,强烈推荐生产库采用物理备份 逻辑备份是按一定的格式导出业务数据,适合特定场合,两种备份都不能直 接查看
5、数据,需要用相应的工具导入或还原才能读取数据 2.2.1 什么是冷备份?什么是冷备份? 数据库没有打开的情况下,使用操作系统命令或数据库没有打开的情况下,使用操作系统命令或rman进行备份,由于数据库没有进行备份,由于数据库没有 打开,数据库的数据是干净一致的,不存在活动事务。打开,数据库的数据是干净一致的,不存在活动事务。 方式: 使用操作系统命令直接复制数据文件到另外一个目录即可,windows下直接复制粘 贴,其他平台 如linux下:cp oracledb10g datafile$ pwd /u01/oradata/ORCL/datafile oracledb10g datafile$
6、 cp *.dbf *.ctl *.log /backup/ 特点:需要将数据库关闭才能做冷备,这样就影响了业务使用,因此在实际生 产环境不具实际使用价值 2.2 区分冷备份和热备份区分冷备份和热备份 2.2.2 什么是热备份?什么是热备份? 数据库在数据库在open状态,事务还在活动,此时备份就是热备份,状态,事务还在活动,此时备份就是热备份,oracle数据库支持热数据库支持热 备份,最常用最实用的是用备份,最常用最实用的是用rman进行热备份进行热备份 三三. rman物理备份物理备份 Rman是是oracle数据库的一个组件,功能强大,既能备份也能恢复数据库的一个组件,功能强大,既能备
7、份也能恢复 rman可以备份可以备份 这些文件:这些文件: 数据文件 归档日志文件 参数文件 控制文件 三三. rman物理备份物理备份 恢复原理:恢复原理:基础整库备份+归档日志(+日志重演) 恢复到 想要恢复的时间点 因此必须开启归档模式,让数据库的在线重做日志保存到归档日志目录 里,这样才能利用基点备份基点备份+归档日志归档日志重演数据库到指定时间 而如果使用非归档模式,则数据库不会保存在线重做日志,数据丢失后 将不能利用基点备份重演日志,通常用通常用rman做物理备份。做物理备份。 查看归档是否开启:查看归档是否开启: 使用sys或system用户用sqlplus登录数据库: SYSo
8、rclarchive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/admin/orcl/archivelog 或者: SQL select log_mode from v$database; LOG_MODE - ARCHIVELOG oracledb $ rman target / -使用使用rman登录数据库登录数据库 connected to target database: TESTDB (DBID=2592324560) R
9、MAN backup database format /backup/fullbak_%U; Starting backup at 2013/09/05 09:23:00 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=145 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specify
10、ing datafile(s) in backupset input datafile fno=00001 name=/u01/app/oracle/oradata/testdb/system.dbf input datafile fno=00003 name=/u01/app/oracle/oradata/testdb/sysaux.dbf input datafile fno=00004 name=/u01/app/oracle/oradata/testdb/users.dbf channel ORA_DISK_1: starting piece 1 at 2013/09/05 09:23
11、:01 channel ORA_DISK_1: finished piece 1 at 2013/09/05 09:24:07 piece handle=/backup/fullbak_05oj2uvl_1_1 tag=TAG20130905T092301 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:06 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s
12、) in backupset including current control file in backupset including current SPFILE in backupset channel ORA_DISK_1: starting piece 1 at 2013/09/05 09:24:10 channel ORA_DISK_1: finished piece 1 at 2013/09/05 09:24:11 piece handle=/backup/fullbak_06oj2v1n_1_1 tag=TAG20130905T092301 comment=NONE chann
13、el ORA_DISK_1: backup set complete, elapsed time: 00:00:04 Finished backup at 2013/09/05 09:24:11 3.1 备份过程示例:备份过程示例: 可以看出备份全库时包括两部分:一个数据文件的备份集,其中包括了所有的 数据文件,一个控制文件+spfile的备份集,包括了控制文件和spfile rootdb backup# ls -lh total 811M -rw-r- 1 oracle oinstall 795M Sep 5 09:23 fullbak_05oj2uvl_1_1 -rw-r- 1 oracl
14、e oinstall 15M Sep 5 09:24 fullbak_06oj2v1n_1_1 3.2 rman备份恢复场景示例:备份恢复场景示例: 现在已经做了全备,即基点备份,如果我们需要恢复数据库,我们就可以使用 这个全备的rman备份做基点,加上归档日志来恢复,如创建一个表并插入数 据,如果此时突然发生磁盘磁盘损坏,导致数据文件损坏及数据库异常终止, 可以按如下方法恢复: SQL create table t (id number,name varchar2(30); Table created. SQL insert into t values (1,mcl); 1 row crea
15、ted. SQL insert into t values (2,admin); 1 row created. SQL insert into t values (3,dba); 1 row created. SQL commit; 1.在mcl用户下新建一张表,并插入数据 SQL select * from t; ID NAME - - 1 mcl 2 admin 3 dba SQL alter system switch logfile; System altered. 2.假设此时磁盘发生损坏,并强制关闭了数据库 -强制关闭数据库强制关闭数据库 SQL shutdown abort OR
16、ACLE instance shut down. -删除数据文件删除数据文件 oracledb testdb$ ls current.269.808996433 goldengate.dbf redo03.dbf TESTDB undotbs2.dbf current.269.808996433.bak redo01.dbf sysaux.dbf ts_bbed.dbf undotbs3.dbf current.bak redo02.dbf system.dbf ts_mcl.dbf users.dbf oracledb testdb$ rm -rf * -启动数据库启动数据库 SQL sta
17、rtup ORACLE instance started. Total System Global Area 331350016 bytes Fixed Size 2083720 bytes Variable Size 117441656 bytes Database Buffers 205520896 bytes Redo Buffers 6303744 bytes ORA-00205: error in identifying control file, check alert log for more info SQL select instance_name,status from v
18、$Instance; INSTANCE_NAME STATUS - - testdb STARTED 3.恢复控制文件 RMAN restore controlfile from /backup/fullbak_06oj2v1n_1_1; Starting restore at 2013/09/05 10:46:47 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=156 devtype=DISK channe
19、l ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 output filename=/u01/app/oracle/oradata/testdb/current.269.808996433 Finished restore at 2013/09/05 10:46:51 -mount控制文件控制文件 SQL alter database mount; Database altered. SQL select instance_name,status fr
20、om v$Instance; INSTANCE_NAME STATUS - - testdb MOUNTED 4.恢复数据文件 包括两步:restore、recover RMAN restore database; Starting restore at 2013/09/05 12:42:18 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backupset restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set r
21、estoring datafile 00001 to /u01/app/oracle/oradata/testdb/system.dbf restoring datafile 00002 to /u01/app/oracle/oradata/testdb/ts_mcl.dbf restoring datafile 00003 to /u01/app/oracle/oradata/testdb/sysaux.dbf restoring datafile 00004 to /u01/app/oracle/oradata/testdb/users.dbf restoring datafile 000
22、05 to /u01/app/oracle/oradata/testdb/ts_bbed.dbf restoring datafile 00006 to /u01/app/oracle/oradata/testdb/goldengate.dbf restoring datafile 00007 to /u01/app/oracle/oradata/testdb/undotbs2.dbf restoring datafile 00008 to /u01/app/oracle/oradata/testdb/undotbs3.dbf channel ORA_DISK_1: reading from
23、backup piece /backup/fullbak_05oj2uvl_1_1 channel ORA_DISK_1: restored backup piece 1 piece handle=/backup/fullbak_05oj2uvl_1_1 tag=TAG20130905T092301 channel ORA_DISK_1: restore complete, elapsed time: 00:00:55 Finished restore at 2013/09/05 12:43:13 Restore其实就是把备份还原出来,但此时还是备份时的数据状态,也就是建mcl.t 表之前的状
24、态,数据文件目录的文件现在都回来了,但注意此时数据并没有mcl.t 表 oracledb backup$ ls -lh /u01/app/oracle/oradata/testdb/ total 1.2G -rw-r- 1 oracle oinstall 15M Sep 5 12:45 current.269.808996433 -rw-r- 1 oracle oinstall 21M Sep 5 12:42 goldengate.dbf -rw-r- 1 oracle oinstall 301M Sep 5 12:42 sysaux.dbf -rw-r- 1 oracle oinstall
25、521M Sep 5 12:43 system.dbf -rw-r- 1 oracle oinstall 11M Sep 5 12:42 ts_bbed.dbf -rw-r- 1 oracle oinstall 1.1M Sep 5 12:42 ts_mcl.dbf -rw-r- 1 oracle oinstall 51M Sep 5 12:42 undotbs2.dbf -rw-r- 1 oracle oinstall 51M Sep 5 12:42 undotbs3.dbf -rw-r- 1 oracle oinstall 213M Sep 5 12:42 users.dbf RMAN r
26、ecover database; Starting recover at 2013/09/05 12:53:46 using channel ORA_DISK_1 starting media recovery archive log filename=/u01/app/oracle/arch/1_17_823348175.dbf thread=1 sequence=17 archive log filename=/u01/app/oracle/arch/1_17_823348175.dbf thread=1 sequence=18 RMAN-00571: = RMAN-00569: = ER
27、ROR MESSAGE STACK FOLLOWS = RMAN-00571: = RMAN-03002: failure of recover command at 09/05/2013 12:53:53 RMAN-11003: failure during parse/execution of SQL statement: alter database recover logfile /u01/app/oracle/arch/1_17_823348175.dbf ORA-00310: archived log contains sequence 17; sequence 18 requir
28、ed ORA-00334: archived log: /u01/app/oracle/arch/1_17_823348175.dbf 5.恢复数据文件 continue 包括两步:restore、recover SQL archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/arch Oldest online log sequence 15 Next log sequence to archive 17 Current log
29、 sequence 17 6.打开数据库 由于数据库的当前联机日志已经被删除,因此需要resetlogs方式重建redolog, 并打开数据库 SQL alter database open resetlogs; Database altered. 7.验证数据 SQL select * from mcl.t; ID NAME - - 1 mcl 2 admin 3 dba 总结:备份不是目的,恢复才是目的。恢复时需要一个基点备份(restore出来), 然后在此基础上重演归档日志和在线日志(recover过程),恢复到故障发生的那 一刻 3.3 生产环境下备份作业(适合小数据量)生产环境下备
30、份作业(适合小数据量) 1.准备一个空间足够的备份盘,并mount到/backup目录 2.创建相关备份目录 mkdir -p /backup/oracle/testdb/archbackup mkdir -p /backup/oracle/testdb/fullbackup mkdir -p /backup/oracle/testdb/ctlbackup mkdir -p /backup/oracle/testdb/script mkdir -p /backup/oracle/testdb/log mkdir -p /backup/oracle/testdb/other chown -R o
31、racle:oinstall /backup/ chmod -R 775 /backup/ 3.上传备份脚本到/backup/oracle/testdb/script/ 4.制定任务计划定时执行备份: crontab -e 0 2 * * * /backup/oracle/testdb/script/startrman.sh 3.4 生产环境下增量备份作业(适合大数据量)生产环境下增量备份作业(适合大数据量) 增量备份的级别:增量备份的级别: 增量备份可以有 n 多个级别,从0级、1级、2级这样顺序排列直到 n 级( n 为小于等于4的正整数)。 增量备份分类:增量备份分类: 差异增量备份(备
32、份同级和小于同级的变化数据) 累计增量备份(备份小于同级的变化数据) 差异增量备份差异增量备份 周日:周日:全库备份 周一:周一:只备份 level0之后有变化 的数据块 周二:周二:只备份周 一以来所有变化 的数据块 周三:周三:只备份周 二以来所有变化 的数据块 累计累计增量备份增量备份 周日:周日:全库备份 周一:周一:备份周日 level0之后有变化 的数据块 周二:周二:备份周日 以来所有变化的 数据块 周三:周三:备份周日 以来所有变化的 数据块 差异增量备份特点:只备份小于同级的数据变化,但恢复时需要读取更多的备 份集,因此备份时间短,恢复时间长。 累计增量备份特点:只备份小于等
33、于同级的数据变化,但恢复时可以读取更少 的备份集,因此备份时间长,恢复时间短。 实际生产环境备份示例:实际生产环境备份示例: 1.创建备份磁盘及目录,建立相关目录(参考上节) 部署备份作业步骤:部署备份作业步骤: 2. 上传备份脚本到/backup/oracle/testdb/script目录 3. 开启备份的block change trace功能(非必须) SQL alter database enable block change tracking; SQL select * from v$block_change_tracking; STATUS FILENAME BYTES - -
34、- ENABLED +DATADG/urpdb/changetracking/ctf.303.823879167 12681216 crontab -e 0 2 * * * /backup/oracle/testdb/script/startrman.sh 4. 制定备份自动 注意:以上脚本需要根据实际数据库名做修改注意:以上脚本需要根据实际数据库名做修改 四四. 逻辑备份逻辑备份 逻辑备份包括逻辑备份包括exp/expdp: 其中exp是oracle比较古老的数据导出工具了,oracle10g及以后建议使用expdp 导数据,因为后者速度更快,使用更加灵活,两者之间最大的区别在于:exp可
35、以把数据导出到客户端,也可以导出到服务器端,但expdp只能导出到服务器端 逻辑导出的特点:逻辑导出的特点: 优点:优点:逻辑导出可以只导出部分对象,方式灵活,导出的dmp文件可以跨平台、 跨操作系统、跨数据库版本导入到别的数据库中,因此这种平台无关、版本无 关的特性适合数据迁移(1T以下)、数据备份。 缺点:缺点:导出那一刻数据就已经固定了,无法利用数据库日志进行重演而恢复到 最新的状态,但有时候也不需要这种功能。另外导出速度快,导入速度慢,不 适合大数据量的导入,但对于中小型数据库(1T以下)使用场景很多。 exp/expdp分为三种导出模式:分为三种导出模式: 表模式:表模式:导出一个表
36、或多个表,在导出时指定tables=xxx.xxx 用户模式:用户模式:导出一个schema下的所有对象 全库模式:全库模式:full=y SQL select userenv(language) from dual; USERENV(LANGUAGE) - AMERICAN_AMERICA.AL32UTF8 4.1 exp示例:示例: 1.查询数据库的字符集查询数据库的字符集2.设置设置NLS_LANG环境变量,避免环境变量,避免 导出时字符集转换导出时字符集转换 oracledb backup$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 3.exp
37、导出数据导出数据 oracledb backup$ exp mcl/mcl tables=mcl.t file=/backup/mcl_t.dmp Export: Release 10.2.0.4.0 - Production on Thu Sep 5 16:23:44 2013 Copyright (c) 1982, 2007, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Part
38、itioning, OLAP, Data Mining and Real Application Testing options Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set About to export specified tables via Conventional Path . . . exporting table T 3 rows exported Export terminated successfully without warnings. oracledb backup$ mk
39、dir -p /backup/dir_dump/ SQL create directory dir_dump as /backup/dir_dump; Directory created. 4.2 expdp示例:示例: 1.建目录及目录对象:建目录及目录对象: 2.导出数据:导出数据: oracledb backup$ expdp mcl/mcl directory=dir_dump tables=mcl.t dumpfile=mcl_t_expdp.dmp logfile=expdp_mcl_t.log Export: Release 10.2.0.4.0 - 64bit Producti
40、on on Thursday, 05 September, 2013 16:44:30 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting MCL.SYS_EXPORT_TABLE_01
41、: mcl/* directory=dir_dump tables=mcl.t dumpfile=mcl_t_expdp.dmp logfile=expdp_mcl_t.log Estimate in progress using BLOCKS method. Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 64 KB Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type T
42、ABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . exported MCL.T 5.242 KB 3 rows Master table MCL.SYS_EXPORT_TABLE_01 successfully loaded/unloaded * Dump file set for MCL.SYS_EXPORT_TABLE_01 is: /backup/dir_dump/mcl_t_expdp.dmp Job MCL.SYS_EXPORT_TABLE_01 successfully completed at 16:44:52 4.3 一个实际生
43、产环境逻辑备份示例:一个实际生产环境逻辑备份示例: 生产库环境:10.2.0.5 rac数据库 操作系统平台:HUPX11.31 备份库环境:10.2.0.1 单机数据库操作系统平台:AIX 5.3 逻辑备份需求: 主库有rman物理备份,但为了加固数据安全,防止因存储控制器损坏等问题造 成数据全部丢失,利旧AIX 小机做逻辑备份,数据文件总大小为196G, expdp导出并压缩后的实际数据为 5G,业务用户约50个,每天夜里备份完所 有的业务用户数据后,使用scp复制到备库,并在主库保留7天数据,备库上 保留14天。 5. 其他灾备其他灾备 5.1 rac RAC是为了满足人们对系统的高可靠
44、性、高速性以及VLDB(大规模数据库)的需求而开发设 计的一项集群处理技术。另外,它还能提高系统的吞吐量,并有效支持更多的用户 ,RAC可 以让多个节点的多个实例同时访问同一个数据库。这样,系统就可以把一个大的任务分为几个 子任务,给不同的节点去执行,从而横向扩展服务器内存、cpu压力。 Rac的的优点优点: 多个数据库服务器担任实例,同时能对外提供服务,可以提供负载均衡和故障切 换,任何一台数据库服务器发生故障,业务均不会受到影响,对服务器单点故障 能起到很好的保护作用. Rac的的缺点缺点: 在共享存储上只有1份数据,如果存储发生故障,数据可能会丢失,RTO时间也比较 长,从性能角度上讲,
45、如果软件本身的性能比较差(如sql比较低效),扩容成rac 也不能解决性能问题,另外如果硬件比较差,如存储读写慢、内网速度慢,rac本 身就是性能瓶颈; 部署要求部署要求: 两台相同硬件架构(甚至型号)的数据库服务器,每台数据库服务器至少两块网卡, 一台共享存储,至少一台光纤交换机; 5.1 rac 5.2 dataguard dataguard包含一个生产数据库(单机或者rac)和一个或更多备份数据库(也可以是单机或 rac)。在 Data Guard 配置中的数据库可以通过oracle Net 连接并可以分布在不同地理位置, 通过冗余数据来提供数据保护。 dataguard 通过日志同步机制保证冗余数据和主数据之间的 同步,这种同步可以是实时、延时、同步、异步多种形式。数据库所处位置是没有限制的,只 要它们能互相通信,特点如下: p Data Guard 采用捕获主库归档日志或在线重做日志的方式,把所有主库的数据改变传递到 备库进行重演,以此保证低延迟、一致性的多份数据。 p 10g版本的dataguard的备库只能处于mount模式下做日志同步,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公关从业者沟通艺术与社交技巧指南
- 2026年生成式AI在建筑方案设计中的创新应用
- 2026年热力管网补偿器安装与保温质量控制方案
- 2021-2022学年浙江省宁波市余姚市九年级(上)期中数学试卷-带答案详解
- 2023-2024学年人教版小学数学五年级下册第四单元《分数的意义和性质》 单元测试(含答案解析)
- IQC、IPQC、FQC、OQC……这些基础术语如何区分与运用
- 禽类产品购买服务协议书
- 外出行医协议书
- 专题活动策划方案特点(3篇)
- 照明工厂活动策划方案(3篇)
- GB/T 19022-2003测量管理体系测量过程和测量设备的要求
- (完整版)英语常用词素表
- 5循证医学基础证据 课件
- 赣美版小学五年级美术下册全套课件
- 华东理工大学分析化学第2章-分析化学中的数据处理及评价课件
- 电厂工程热工专业施工方案
- DB32T 4111-2021 预应力混凝土实心方桩基础技术规程
- 华中农业大学(横向项目研究)技术合同参考样本
- FAI(样品)检验报告(样式)
- 2022年云南省特岗教师招聘考试《初中化学教师专业课考试大纲》
- 医疗器械培训计划年
评论
0/150
提交评论