ITPub博客

首页 > 数据库 > Oracle > oracle 数据库恢复

oracle 数据库恢复

原创 Oracle 作者:lz_110505 时间:2019-07-29 16:30:33 0 删除 编辑

--数据库恢复语句流程

--创建缺省表空间,系统支持表、公用数据表

1)

create bigfile tablespace NNC_DATA01 datafile 'D:\oracle\NNC_DATA01.dbf' size 100m autoextend on NEXT 10k;--蓝色字体分别是表空间名字,表空间存储路径

--表空间 名为 TALENTBASE

create bigfile tablespace TALENTBASE datafile 'D:\oracle\tablespace\tb_bxyh.dbf' size 100m autoextend on NEXT 10k;

--创建临时表空间

create bigfile temporary tablespace NNC_DATA01 tempfile 'D:\oracle\NNC_DATA01.dbf' size 100m autoextend on NEXT 10k;--蓝色字体分别是临时表空间名字,临时表空间存储路径


2)--创建用户,并关联表空间和虚拟表空间,并为用户赋权(共三个 dba、resource、connect);

     --使用附件中的如下语句:

--用户权限

grant connect,dba,resource to user;

   

--删除用户,如果是原有项目数据库用户,覆盖时需要先删除用户;如果是新项目则不需要删除,直接创建

--drop user 用户名 cascade;

drop user tb_bxyh cascade

--创建管理员用户

create user username identified by username default tablespace tb_bxyh temporary tablespace tb_bxyh_bxyh;

--授权

grant connect,dba,resource to username;

--修改限额

ALTER USER HCM QUOTA UNLIMITED ON username;


4、然后打开F:\oracle数据库文件\cmd文件,维护导入语句。

--当用exp导出的文件,恢复时使用imp;

imp 用户名/密码@ora11g file=导入文件路径 fromuser=导出用户名 touser=导入用户名 log=导入文件执行日志

imp H/H201709@orcl file=C:/Users/Administrator/Desktop/jiar/EXPH_20171011030000/oracle_backup/EXPH_20171011030000.dmp fromuser=H touser=H log=EXPH_20171011030000.log


--指定不导出表

expdp db/db@hrdb directory=DATA_PUMP_DIR exclude=table:"in('tp_sys_blob')" dumpfile=20190305.dmp logfile=20190305.log schemas=tt;


--当用expdp导出的文件,恢复时使用impdp;

impdp 用户名/密码@ora11g  directory=dump_dir dumpfile=导入文件名 logfile=导入文件执行日志 remap_schema=导出用户名:导入用户名

impdp tb_czyhtest/hr_39_DB@orcl  directory=dump_dir dumpfile=bak0210.dmp logfile=bak0210.log remap_schema=tb_czyhtest:tb_czyhtest

--查找导入路径

select  *  from  dba_directories;


5、执行完成后,必须查看导入日志文件,每次导入的表信息大概是1000多点,在导入结尾处会有如下字样,标示导入成功。出现警告不影响使用。

        (即将启用约束条件...成功终止导入, 但出现警告。)

  --如果备份导出的日志显示表缺少,可以用如下语句进行查询,并将查询结果在对应数据库中执行,再次备份导出时就可以将空表导出。

 

问题:有时候导入时,会提示表空间不足,这时候需要根据提示找到表空间,然后在PLsql中查询,当前表空间的存储文件有哪些。

比如经常会提示‘Tablebase’表空间不足,这时我们使用如下语句,查看已有文件信息:

----查询表空间大小以及使用率:

select tablespace_name, bytes, user_bytes, user_bytes/bytes,file_name from dba_data_files where tablespace_name='TALENTBASE';

目前使用的存储文件都在'E:\oradata\ora11g\...'下面,现在已经有talentbase11.dbf了,那么我们可以使用如下语句,在新增一个存储文件,然后在执行导入语句。

--表空间不足

 alter  tablespace TALENTBASE

 add datafile 'E:\oradata\ora11g\TALENTBASE12.dbf'

 size 100M autoextend on next 10M maxsize unlimited;

 --自动扩展

alter database datafile '/db/oracle/oradata/hrdb.dbf'autoextend on next 100m maxsize 10000m

--查找表空间

select * from dba_data_files


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

请登录后发表评论 登录
全部评论

注册时间:2019-07-25

  • 博文量
    12
  • 访问量
    13597