--什么是脱机备份 脱机备份也叫冷备份,首先管理员使用 shutdown immediate 命令关闭数据库的服务。 之后复制需要的文件,包括数据文件和控制文件等相关内容复制到磁盘的其他位置。当 数据库出现问题时,就可以在将复制出来的文件在恢复到原来的位置。 数据文件和日志文件位置:..appAdministratororadata 控制文件可以查看init.ora的配置信息:安装目录下adminorclpfile 控制文件也可以查询表 select name as 控制文件位置,status as 控制文件状态 from v$controlfile; --什么是联机备份 联机备份也叫热备份,是在数据库的归档模式下进行备份。 --查询数据库日志的命令,使用sql plus工具查看, --而且还必须使用sys用户,其他用户没有权限。 connect sys/密码@orcl as sysdba; archive log list; --设置数据库日志模式为归档模式 alter system set log_archive_start=true scope=spfile;--设置系统日志方式为归档模式 shutdown immediate;--关闭数据库 startup mount;--启动mount实例,但不启动数据库。 alter database archivelog;--修改数据库为归档日志模式。 --把数据库设置成归档模式后,就可以进行数据库的备份与恢复操作了。 --备份表空间 1、打开数据库 alter database open; 2、开始备份表空间 alter tablespace space_name begin backup; 3、将数据库中安装目录下的oradata文件夹(数据库对象都放在这里), 把文件复制到其他地方。 4、结束表空间备份 alter tablespace space_name end backup; --恢复表空间中的数据 1、对当前日志进行归档。 alter system archive log current; 2、切换日志文件,有几个日志文件,就执行几次 alter system switch logfile;--logfile是日志文件的位置。 3、关闭数据库服务 shutdown immediate; 4、删除数据库文件并重新启动数据库 select * from v$datafile;--查看数据库数据文件的位置 select * from v$recover_file;--确认缺少的数据文件 startup; 5、将数据文件设置成脱机状态并删除 alter database datafile 10 offline drop; 6、把数据库的状态设置成open alter database open; 7、恢复数据文件 recover datafile 10; 注意:恢复数据时数据文件编号要一致。 8、设置数据文件为联机状态 alter database datafile 10 online; 注意:在恢复数据库中的文件时,把数据库文件设置成脱机状态后,就需要把之前 备份好的数据文件复制到原来的数据文件存放的位置,否则就会出现错误。 错误信息:ora-00283:恢复会话因错误而取消 ora-01110:数据文件10; ora-01152:无法标识/锁定数据文件10 请参阅DBWR跟踪文件。 --逻辑备份和恢复数据库 exp工具可以到处表、空间、方案、数据库4个数据库对象。 1、导出表 打开Doc命令工具执行下面命令: exp username/pwd@orcl 根据提示的选项选择要导出的对象。 2、导出表空间语法 exp username/password@orcl file='filename.dmp' tablespace='space_name'; --使用expdp导出数据 expdp是Oracle10g开始引用的数据泵技术,使用expdp时首先创建目录 对象,通过这个对象就可以找到要备份数据的数据库服务器,并且使用expdp 工具备份出来的数据必须存放在目录对象对应的操作系统的目录中。 1、创建目录对象 create directory directory_name as 'file_name'; directory_name:目录名称。 file_name:存放数据的文件夹名。 2、给使用目录的用户赋权限 grant read,write on directory directory_name to user_name; 3、导出表,使用do工具。 expdp username/password@orcl directory=directory_name dumpfile=file_name tables=table_name; directory_name:存放导出数据的目录名称。 file_name:导出数据存放文件名称。 table_name:准备导出的表名,多个表用逗号隔开。 --使用imp导入数据 imp username/password@orcl 根据提示的选项选择要导入的对象。 将文件中数据导入到表 imp username/password@orcl file=file.dmp tables=table_name; --使用impdp导入数据 impdp username/password@orcl directory=directory_name dumpfile=file.dmp tables=table_name;