• Oracle备份和恢复


    --什么是脱机备份
      脱机备份也叫冷备份,首先管理员使用 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;
  • 相关阅读:
    P1117 [NOI2016] 优秀的拆分 SA+DP
    P3346 [ZJOI2015]诸神眷顾的幻想乡 广义SAM
    P3705 [SDOI2017]新生舞会 分数规划+费用流
    P2336 [SCOI2012]喵星球上的点名 SA+树状数组
    543. Diameter of Binary Tree
    451. Sort Characters By Frequency
    563. Binary Tree Tilt
    703. Kth Largest Element in a Stream
    743. Network Delay Time
    kaggle _Titanic: Machine Learning from Disaster
  • 原文地址:https://www.cnblogs.com/gynbk/p/6556206.html
Copyright © 2020-2023  润新知